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 r1641 (426/4157) | Win2k r1631 (457/4163)
Set by stevan on 8 April 2005.
putter default and implicit seem to figure large in descriptions. 00:00
ninereasons default_var.t ?
under t/var/ ?
kungfuftr default placeholder? 00:01
putter maybe default_scalar? @_ apparently being called the default array... 00:02
ninereasons how about placeholder.t ?
good point, putter
putter "default scalar variable" seems to be a phrase in use. 00:04
kungfuftr hhhmmm... wonder if perl6 is going to have a nicer replacement for @ARGV
ninereasons I thought 'svn ci <files> ' would check in files that didn't exist before?
putter svn add first. (having hit that earlier this evening) 00:05
ninereasons ah. that worked
r1663; and only two hours to code what ... 20 lines? 00:07
ninereasons hangs his head
shapr running code is good code
ninereasons thanks for the hug :)
shapr grins
stevan putter: nothingmuch's smoker may not be up to date,.. be sure to check the revision number (if you havent already) 00:08
putter manager: "You spent the entire day and only wrote only thirty lines of this hasscalle code? You were much more productive in Java." Sigh. 00:09
ninereasons @*ARGS is not nicer, in my opinion, kungfuftr
shapr putter: haha!
That sounds like my life.
ninereasons kungfuftr, but that's what it is. 00:10
kungfuftr ninereasons: yar, though i suppose it can always be overridden to have handy methods, etc
ninereasons indeed. "no builtins except lambda" 00:11
someone said
kungfuftr "Knightrider, the kindergarden years"... Kit: "No michael, we are not nearly there yet." 00:12
++.assuming(2) 00:13
*sigh* i wish i had faster hardware... new installs are always a git
ninereasons a statement like that must make someone like shapr pretty happy (?)
kungfuftr *blink* 00:14
ninereasons shapr "..except lambda"
shapr ? 00:15
shapr throws lambdas 00:16
This is my throwing lambda of DOOM!
ninereasons is not even sure what a lambda is, really :) 00:17
shapr it's this little critter that comes from Alpha Centauri...
ninereasons a shapeshifter
shapr Actually, a lambda is a greek letter, and it's part of the lambda calculus.
kungfuftr sheep rapists
shapr yow
ninereasons lamb - da ; I get it 00:18
kungfuftr perl 6, it's getting there... FOR ME TO POOP ON!
shapr who said no builtins except lambda?
ninereasons Larry, somewhere
or something near that 00:19
(very near, if I recall)
shapr That's pretty cute. Lambda calculus is pretty close to that.
It has three builtins. S, K, and I.
putter hmm. if we could write p6 objects with compile-time inline haskell and/or C code, then various "builtins" in Prim.hs could be pulled out. Prelude.pl? ;) 00:20
ninereasons I'd say that this reminds me of Wittgenstein, if I understood Wittgenstein 00:21
shapr I've heard of him.
stevan shapr: and can't you make I out of S & K
shapr stevan: yup
and you can make all of them out of X 00:22
but it's really convoluted
stevan shapr: you go girl
shapr hey, I'm a guy.
stevan yeah right, and so it ingy
putter any reason for testgraph.pl to continue not containing a date stamp in its body? (someone doing autodiffs, etc?)
shapr Is ingy a guy? 00:23
Brian is usually a male name.
kungfuftr putter: it's in the title, is good enough
shapr: yup
stevan shapr: ingy has a habit of referring to boys as girls sometimes
on the internet, no one knows your a dog 00:24
kungfuftr stevan: except al gore, he invented everything
ninereasons .oO hopes no one discovers he's a dog
stevan woof
putter kungfuftr: who looks at titles? (I sure hadn't been.) 00:26
kungfuftr putter: me 00:27
=0)
kungfuftr will be redoing lots of the test stuff tomorrow once my freebsd install is all sorted 00:28
ninereasons I've noticed that occupant count goes down, when autrijus isn't about the place. maybe a timezone coincidence. maybe he's a rockstar. 00:29
shapr he's a rockstar, no doubt about it.
kungfuftr search.cpan.org/~dland/Acme-DonMart...nMartin.pm # excellent! 00:30
putter kungfuftr: so I should punt on adding a gmtime stamp to the top of the body? 00:35
hmm... YAML make test quickly eats a GB of memory and becomes a swap stress test. eep. 00:37
shapr yow 00:38
kungfuftr putter: yar... go for it
putter k
kungfuftr punt on? you mean "put off"? 00:39
putter yes. "punt on" === "put off" *g*
kungfuftr k 00:40
nn
putter now if only I could test it I'd be a happy camper...
nn? 00:47
crysflame putter: wow, neat 00:48
fsvo "neat"
WOW
this is incredible!
kungfuftr++ # thank you!
kungfuftr *blink* huh? 00:49
has my evil twin been selling sex toys again?
crysflame Acme::DonMArtin 00:50
kungfuftr ah
ninereasons oh man, that's funny. 00:55
putter kungfuftr: it's in 00:56
crysflame: i'm not sure which/what was neat, but thanks.
kungfuftr bah, can't believe i can't get pugs to build... hhhrrrmmm... 00:58
crysflame wuzzat? are you dland? 00:59
kungfuftr crysflame: please english speaking you be 01:00
crysflame kungfuftr: is putter DLAND of CPAN?
he seems to be appreciating my complimentary statements 01:01
kungfuftr no idea, tbh
crysflame as indicated by his most interesting which/what conglomeration
okay, enough english.
putter crysflame: re dland, no. re appreciating, "putter: wow, neat". 01:06
crysflame oh. YAML make test. it was sarcasm :| 01:47
i can't think of why YAML would do that, but i don't know it at all, either 01:48
putter ah... 01:49
stevan part of the YAML test issue is that YAML cannot stream, so building some of them hogs a lot of memory 01:50
putter 1+ GB!?! At this point I have a new global default hypothesis... if it didn't work, its an x86_64 problem. :/ 01:51
I added looking into the problem to my infinite todo list... but that was full, so it fell off... 01:52
enough ghc unicode fun for today. g'night folks. 01:54
elmex ? 02:20
yinjieh www.freebsd.org/cgi/query-pr.cgi?pr=ports/79704 # parrot vm ports 03:27
Anyone who is interested in it can give it a try :) 03:28
autrijus yay! 04:32
ingy hi autrijus
autrijus hey. how's going man? 04:35
ingy good 04:36
I'm taking some time out from hacking
I'll likely get back into it tommorrow
I want to get real Kwid support into pugs
autrijus woot! 04:37
as in kwid2html via perl5?
or something more drastic?
s/kwid2html/any2kwid+kwid2any/
ingy right, with built in pugs installation
autrijus woot!
ingy well I have to do it first
when is the next pugs release 04:38
autrijus ingy++
it's 48 hours from now
ingy :P
ok good
perfect
can I relase Perl6::Makemaker as planned? 04:39
or do you want Perl6-Pugs-Makemaker 04:40
actually i think the module needs to be Perl6::Makemaker 04:42
the dist can be anything but Perl6-MakeMaker is best prolly
gah, you already released it autrijus 04:45
Khisanth aren't all the Perl6:: modules going to need renaming after perl6's release?
ingy oh wait... 04:46
Khisanth: no, because they are all written in Perl 5
so they will just fade away if anything
autrijus: I see, those modules are indexed from Perl6-Pugs 04:49
autrijus yup. 04:54
I think it makes sense 04:55
so just hack lib/Perl6/MakeMaker.pm away
and let it update with each weekly pugs release?
I see little benefit in separating it out currently
but maybe I missed something
ingy I thought we would have Perl6-Pugs-6.141 require Perl6-MakeMaker-6.141 04:58
then we don't have to bundle ever Perl6- module inside pugs like Perl6-Bible say 04:59
ingy thinks ...
autrijus sure but well, the point of deps is that some people may choose not to install it 05:00
ingy or maybe we should bundle Perl6-Bible inside Perl6-Pugs
autrijus but P6::MM makes no sense without P6::Pugs
whilst P6::Bible makes lots of sense
independently
if there is another P6 implementation about
then it makes sense to factor P6::MM out
and have both implementation depend on it
or, if P6::Pugs has a slow release cycle
then it may make sense for P6::MM have a faster one 05:01
but as things currently stand, neither of above is true
ingy yes but P6::Pugs doesn't need to require ::MM
autrijus so factoring out P6::MM complicates the installation
without apparant benefit
it doesn't? I want ext/ to eventually use ::MM
instead of M::I::P
ingy oh... 05:02
I wasn't aware of that
autrijus otherwise moving modules/ into ext/ will be bothersome
ingy that's a little tricky...
autrijus yeah, so it doesn't need to happen right away
but with that in mind, I don't see having a separate ::MM as a benefit 05:03
ingy it's actually easier to do that if Perl6::MM is taken outside
because the prereqs get installed at Makefile.PL time
autrijus so, you said Pugs doesn't need to require MM
but with that plan, we do require MM anyway
ingy well that was before you wanted ext to use it
autrijus 12:58 < ingy> I thought we would have Perl6-Pugs-6.141 require 05:04
Perl6-MakeMaker-6.141
autrijus looks slightly confused
ingy right, and then it will get installed in time for ext stuff
if it is in build_requires() 05:05
autrijus *nod* what's bad about adding lib/ as a include path
currently installing pugs needs no other cpan modules 05:06
so unless there's a considerable benefit
I'd like not to require other CPAN modules
ingy well the Perldoc tools do require other modules
autrijus ok...
ingy it is a path of insanity to try to avoid other modules 05:07
autrijus sure
ingy that's what code is there for
not to go nuts or anything
autrijus alright. so you forsee Perldoc as part of pugs or not?
ingy well for now using lib is probably fine
I'll hold off
um
autrijus *nod* all i'm saying is that
I'd be willing to depend on other stuff and roll a Bundle::Pugs 05:08
as soon as there is a considerable benefit to do so
ingy I see Pugs build_requires('Perldoc')
autrijus avoiding premature optimisation etc
why do we require that at build time?
making manpages?
ingy yes
autrijus manpages of what? 05:09
ingy whatever manpages pugs installs
unless Pugs has no Pod/Kwid
autrijus sure.
it's fine to have Pod :) 05:10
ok. as soon as there's installable Kwids in Pugs
we build_depends on Perldoc
that's sane
we may also consider include(), but I'm fine with either.
before that happens, I'm fine with recommend() perldoc.
ingy okok 05:11
going out now...
good luck!
autrijus :D
hrm 05:14
s:perl5{%([\da-fA-F][\da-fA-F])}{chr(hex($1))}
ah. right. :e doesn't yet work in regex
that's sad.
but wait...
s:perl5{%([\da-fA-F][\da-fA-F])}{{chr(hex($1))}} 05:15
that should work, no?
yeah, it works
stevan: I'll fix your code :D
stevan: so it turns out you can use 05:17
$decoded ~~ s:perl5:g/%([\da-fA-F][\da-fA-F])/{chr(hex($1))}/;
freely 05:18
hi Qiang_zh!
autrijus loves the fact that there's no s///e anymore 05:19
hurray for sanity
Qiang_zh hello, autrijus :) 05:20
autrijus =) you coming to YAPC::NA, right? 05:23
I hear there's a perl 6 roundtable the day before the conference
not sure of the details yet
Qiang_zh i guess. this would be my first time 05:24
autrijus nice!
Qiang_zh toronto is hot already. you guys will have a good sweat during the hackthon :)
autrijus yapc++
the host mentioned skiing
Qiang_zh hmm.. beer
autrijus which does not connect with "hot" in my mind
Qiang_zh oh ??!!
autrijus yeah. we are going to this cottage far away (90 mins on highway) from toronto
apparently well suited for outdoor activitities 05:25
Khisanth 90minutes up a mountain? :)
Qiang_zh he did mention the canoe tho.
autrijus that sounds like possible
that too
Khisanth which contradicts the snow a bit
Qiang_zh summer is much more fun than winter time. there are lots activities around the town as well. 05:26
autrijus wonderful.
Qiang_zh enough snow already :)
autrijus I'm thinking of staying a bit longer
maybe come to vancouver after that
but it's not fixed yet
Qiang_zh when u going to be here ?
autrijus 23th of june iirc
Qiang_zh cancouver is nice too. 05:27
for travel or
autrijus maybe staying a bit and enjoy the weather, which is reputed to be nice 05:28
Qiang_zh YES! 05:29
autrijus ok. now lunch, and then _really_ work on this IType thing
Qiang_zh the people from perlchina wanted me to write some jounal about the conf. i think you can write some too ;D
1:30pm now. 05:30
autrijus yeah. I wake up late :) 05:31
Qiang_zh autrijus: are you going to be preoccupied with hackathon as soon as you arrived ? 05:33
or occupied .; 05:34
autrijus I think so
I arrive on 23th, then go straight to the cottage
Qiang_zh er. guess we will meet during the conf. 05:35
autrijus are you @ toronto or vancouver? 05:36
Qiang_zh toronto 05:37
autrijus oh cool. then maybe I can stay a couple days after the conf
Qiang_zh that would be nice ;)
hopefully i will move out to a bigger apartment by then (my parents going to visit me around july :) 05:38
welcome to crash . hehe
autrijus :D 05:40
noted. we'll see :)
Qiang_zh for sure.
i think i am going to get a beer... hot hot... 05:41
autrijus cool. and I'm going to get lunch 05:42
bbiab &
Alias_ Goddamned it I hate Win32 file locking 06:46
Khisanth s/ file locking// 06:50
yinjieh good
Alias_ heh 06:52
I quite like much of Windows...
It's relatively stable, it's got great application availability
It makes the everyday tasks relatively simple and relatively tolerable
Khisanth ack! please tell me "is dis(...)" has been renamed ... 07:03
autrijus greetings 07:16
Corion yawn
autrijus examples/hashes/simpleiter.p6 restored to its full glory 07:17
trailing comma, no parens around condition
hey Corion
Corion Hi autrijus ! Good that you remind me - I have to fix some of my tests too so they now use a trailing comma instead of a prefix comma :) 07:18
autrijus :D
and drop the silly parens around
for %h.kv
if $thing.meth
Corion autrijus: I moved sleep() for Win32 to use threadDelayed() and will write a test that checks that async() and sleep() work well together
autrijus good. so threadDelayed() work as expected?
Corion (likely this will mean to move threadDelay() for Unix as well)
autrijus "Note that the resolution used by the Haskell runtime system's internal timer is 1/50 second, and threadDelay will round its argument up to the nearest multiple of this resolution." 07:19
that looks ok
gaal hi there. ooh, lots of activity.
autrijus yo gaal.
15:17 < autrijus> examples/hashes/simpleiter.p6 restored to its full glory
15:17 < autrijus> trailing comma, no parens around condition
Corion autrijus: "as expected" is a bit big. I had to use a magic number of 1000000 to multiply the argument, dunno why - maybe it takes something larger than microseconds.
autrijus Corion: so, sure, go ahead and move to threadDelayed
Corion autrijus: I want to write a test first :) 07:20
autrijus hm? it's just microsec
go ahead :)
I'll test thrDel on unix
Corion autrijus: Yeah - it took me some "experimenting" to check why my "sleep(1)" didn't seem to work ;)
gaal there's a small bug in hangman, when you press enter w/o a letter. an unugly solution needs both next and NEXT :)
autrijus Corion: it's documented as microsecond 07:21
and a microsecond is 1/1000000th of a sec 07:22
so that looks sane
Corion autrijus: Ah. Then I was just tired yesterday ;)
autrijus op1 "sleep" = boolIO (threadDelay . (* 1000000))
I think I'll go with this.
(function composition)++
gaal: why NEXT{} ? 07:23
gaal to cls
Corion autrijus: I have (in Compat.hs) sleep = threadDelay $ (*) 1000000 x
:)
ah - I forgot the "x" on the lhs
autrijus: but yours is more spartanic :)
autrijus the term is "point-free". 07:24
or, "pointless".
Corion :)
autrijus r1674 has the sleep/threadDelay.
tests still (actually more) welcome
gaal www.willamette.edu/~fruehr/haskell/...ution.html for anyone who hasn't seen it
autrijus yeah, it's a classical read :) 07:25
gaal i understand about three or four of those :(
Corion gaal: I found that yesterday - very nice thing ;)
autrijus sad thing is that after my dive into GADT I now understand all of them :-/
Corion gaal: Ah well - it gives you a good chance to see where you stand ;))
gaal points-free is mentioned there, which is why i was reminded
Corion autrijus: I pity you - well, not really :) But I like the idea of creating static types to calculate the factorial :) 07:26
gaal yes, it is useful that way. i don't think the author was being (exclusively) silly.
autrijus maybe we need that for perl6 as well
but not factorial ;)
need something more exciting
Corion autrijus: Maybe grep() ? :)
gaal actually it's more than four that i understand :) but yeah 07:27
web servers :)
Corion That reminds me - maybe I should devote today to porting (more of) perlrun. Or maybe writing a stupid database for Perl6. Or HTTP::Proxy. So many choices, so little time :(
gaal: Heh. "use HTTP::Server::Simple; HTTP::Server::Simple->run()" 07:28
Good start and end for a server ;)
autrijus rumour has it that there will be a JA*H around Austrian/French Perl workshop :)
gaal use Problem::Halting; Problem::Halting.solve()
Corion: databases reeeeallly want an abstraction layer. 07:29
there's no tie interface yer, is there? 07:30
autrijus join('',map {chr(any(0..2**32-1))} 0..2**32-1).eval
Corion gaal: Yes, but I want to toy around a bit with cursors, to see what parts of DBI can be revamped a bit
gaal berk db is a cool thing to have
hahaha
Corion gaal: I'd want a pure Perl SQL DB, so Perl always has a SQL DB, even if it's dead slow :) 07:31
gaal autrijus: in p5, if you run that, you'll get a core dump.
i mean if you run its moral equivalent.
that's neat -- but i insist we want it over DBI.
autrijus Corion: well once theorbtwo finished his hs-plugin diving 07:32
we can bundle SQLite with pugs
I know I want that
gaal so my riddle is, *why* would that crash on p5?
Corion gaal: DBI can come later :)
gaal SQLite++
autrijus gaal: because it evals "dump" ?
Corion autrijus: Oooo - that is even better !
gaal t
:)
gaal wants gtk
Corion although it goes with the "bloated core" territory. But having SQL built in is good IMO :)
autrijus I think bundled SQLite is major win 07:33
it's not that bloated
and enables many wonderful uses.
gaal 30kloc of c
Corion autrijus: Yep - it's one small C set
autrijus it's the same idea of how perl5 bundled SDBMFile
SQLite is the SDBMFile of our age.
gaal berk is even faster, btu then you have to choose a version.
autrijus and you can't sql a berk. 07:34
gaal will yaml be in the core?
Corion ... and we can't distribute berkleyDB with Pugs, no?
autrijus there will be no core :D
Corion autrijus: "no core" means problems for those without a (C) compiler... That's why I started out with a pure Perl DB ... 07:35
autrijus but if there is something like a base sdk or something, I think yaml belongs there
Alias_ I like the idea of a base SDK
autrijus Corion: sure, but maybe we ship precompiled sdks too
with pbc it may even be sane
Alias_ The current Perl core is arguably too small
autrijus but it's handwavy at this point :)
Corion Alias_: :)
autrijus and arguably too bloated at the same time.
Alias_ autrijus: Too bloated for "Core", too small for an SDK 07:36
autrijus exactly.
autrijus ponders resurrecting [email@hidden.address]
but I need to work on IType now :)
gaal it'd be real neat if we had a minip6, like today's tinyperl that fits on a bootable diskette
Alias_ diskette?
gaal then again everybody has disk on keys today
i think it does, Alias_. 07:37
Alias_ floppies will be obsolete by the time Perl 6 comes out
autrijus sadly pugs is 4M and parrot is 8M.
Alias_ Not just unused, completely unavailable on most PCs
USB drives are replacing them (finally)
gaal hopes so
but hardware changes slowly
autrijus brb...
Alias_ in another year, I predict Dell won't include a floppy by default 07:38
gaal Dell != computers in classrooms all over the world 07:40
There were still Apple ][s in the early 90ies
it would be sweet to create a learner's dialect for perl6 07:41
i always wanted a "use stricter" mode in p5 to teach newcomers with.
autrijus like Helium?
autrijus likes Helium 07:42
gaal Helium?
autrijus www.cs.uu.nl/helium/
like PLT DrScheme but for Haskell
excellent learning tool
gaal hey, i can use that!
autrijus++ 07:43
looks like Hugs so far... 07:46
Khisanth autrijus: perl6 is going to be >= 12MB? :) 07:49
gaal hmmm, actually i'm sorry i raised the subject, this is prollly not something to be worrying about so much now :/
autrijus Khisanth: but parrot will trivially have a share-vm mode 07:50
so it will be the same 8MB in memory for arbitary number of processes
that's imho good design.
Khisanth that sounds quite nice 07:52
Alias_ autrijus: I'm seeing something funny with the M:I install of PPI 07:54
autrijus: Check out www.nntp.perl.org/group/perl.cpan.testers/194069 07:55
autrijus where's Test/ClassAPI.pm ?
Alias_ inc
autrijus and inc/ is not in the path 07:56
weird.
Alias_ right
autrijus this is however 0.05x code :-/
so maybe you want to file a bug against cpanplus
Alias_ 0.05x??
autrijus <- generally clueless about cpanplus 0.05x
does it work with manual maketest 07:57
without an installed T::CAPI?
Alias_ not sure
I'm assume that if inc isn't going on the list, quite possibly
autrijus try duplicating this error, then. 07:58
Alias_ quite possibly doesn't work that is
autrijus I'm sorry -- my mind is in Tie* right now
Alias_ oh, ok
The fact that inc doesn't make it over seems like a standalone problem in any case though
What does M:I do normally to ensure it is available 07:59
Corion has been disenchanted by CPANPLUS 08:00
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 r1641 (426/4157) | Win2k r1675 (288+2unex/4184) 08:01
autrijus can you investigate and kill the 2 unex? 08:07
Corion autrijus: Will do 08:11
autrijus looks at 08:14
class IArray a where
fetch :: a -> Int -> Eval Val
store :: a -> Int -> Val -> Eval ()
fetchSize :: a -> Eval Int
storeSize :: a -> Int -> Eval ()
and cringes
ah the joy of tied magics 08:15
instance (IArray a, IHash a) => PseudoHash a where ... 08:16
autrijus grins
shapr gives pugs "fastest time from research to real use" sticker
Corion shapr: 5 years is fast? :))
shapr I was thinking of GADTs really. 08:17
autrijus shapr probably means GADTs and STM and TH2
shapr Yes, and STM and TH2
Corion ah ;)
I just read yesterday that Control.Concurrent is "experimental" - should that worry me for putting it into Pugs?
autrijus nope.
it means that we have little hope of running Pugs on Hugs. 08:18
or on NHC.
but that's okay, we are doomed anyway
Corion autrijus: Too bad :)
shapr doomed?
Corion Ah - somebody made "undef @array" work - that's one of the unexpected successes 08:19
autrijus that'd be me
shapr: doomed to only run on ghc 08:20
Corion autrijus++ # making stuff work
shapr oh. that not bad as doom goes. 08:23
At the Haskell Workshop 2003 there was a presentation with the slide "Haskell, defined by GHC?" 08:24
autrijus heh. I like hugs too 08:25
very embeddable and fast
(fast as in compilation)
shapr The Haskell standard moves slowly, but GHC moves like greased lightning.
Corion shapr: Ah we'll see that with Perl6 too. "Perl6, defined by Pugs?" :-) 08:26
But that's better than "Perl6, defined by Haskell?" :-)
shapr haha
autrijus lol
Corion ... which might also happen, if the Haskell community decides to embrace and extend Perl6 development ;-)))
shapr saves that quote
autrijus yeah. it's not yet clear whether Perl 6 will be reimplemented from scratch or translated from pugs. 08:27
I tend not to worry too much about that.
Corion autrijus: Perl6 will (have to) use Pugs/Haskell. I mostly wonder if Perl6 will ever move onto Perl6 or always stay with Haskell.
Having PhDs work on the base language and provide a kickass compiler for Perl6 might be better than having p6p :-)
... but having too much lambda in our camel might be detrimental too :))) 08:28
shapr The only worry with the Haskell community is that they'd help you write pugs, then interview everybody about their experience with domain specific languages, and debate the results using terms I've never heard before.
Corion shapr: As long as I can run the results, who cares? :) 08:29
autrijus Corion: I think p6 will need to move to p6 anyway. the question is
is the p6 generated automagically from pugs source
or is it rewritten from scratch.
(or, 3rd route, generated by having GHC target parrot) 08:30
Corion autrijus: I think it will (have to) start out from a generated source, Pugs/Haskell -> P6.
autrijus that's what I think too.
Corion autrijus: "rewritten from scratch" will not happen IMO, at least not quickly. You know Larrys saying "It's easier to port a shell than a shell script" :-) 08:31
autrijus pmichaud is still planning to go that wroute though.
last I heard
Corion: that's a very acute observation
and all too true :)
shapr agrees
Corion autrijus: But nobody will want to hack in Parrot code. At least not something as complex as Perl. That's ugly close to still hacking in C.
autrijus Corion: sure, but the "from scratch" idea is to write the p6c in p6 08:32
Corion autrijus: I find myself often thinking whether it's better to port the script or the shell :)
autrijus then use pugs to compile it
then use itself to compile it
Corion autrijus: Ah, yeah. I would write the "compiler"/"converter" in Perl6 of course. But that's because I know Perl6 :)
Or Perl5, which is close enough anyway.
autrijus right.
except writing a compiler in p5 is exercise in madness. 08:33
p6 will be much better :)
Alias_ It's bad enough writing a tokenizer/lexer in P5
gaal This is the Puissant Perl Compiler, version 6.0
Corion autrijus: I've written a compiler in Turbo Pascal (4 and/or 6), so I know enough about it :-)
shapr Writing parsers in Haskell is pleasantly simple. 08:34
Alias_ I like this idea of pluggable bits
Corion gaal: Naah - this is the Perl Unlimited Golfcourse Supercute
Alias_ So what if we have p6h doing the P6->Parrot
Someone else can write p6p6 later an do a better job.
And if not... well then we welcome our new lambda overlords
Corion Alias_: Parrot code is something not to be touched by human hands IMO. At least not for large scale development 08:35
shapr snickers
autrijus it's quite pleasant as assembly goes, really.
Corion lambda (overlords): overlords + 1
Alias_ "Perl 6 - Connecting Haskell with reality!"
shapr laughs
Corion autrijus: Sure, but developing in (any kind of) assembly language, when you want multisubs, pattern matching on parameters etc. ? 08:36
autrijus o/~ I've been taught assembler / in my second year of school / it's kinda like construction work / with a toothpick for a tool o/~
shapr haha, where's that from?
Alias_ Because as far as I can tell, Haskell is a language only a PhD in Maths could love
Corion autrijus: :)
autrijus shapr: "eternal flame". you'll *love* it.
Corion Alias_: I only have a master thesis in math, but I like it, true :)
shapr I don't have any classes in either math or cs :-(
Alias_ I'm convinced people just don't naturally think in functional terms
autrijus right. because of this Alan Turing guy. 08:37
Alias_ imperative yes, exceptions sure...
Corion Alias_: Ah, you know - "The programmers in functional languages know the value of everything but the cost of nothing"
autrijus wouldn't be like that if all we have is Church machines
Alias_ autrijus: I mean when you teach somebody to do something non-computery
shapr I think that either programming itself is unnatural, or that functional is just is natural as imperative.
Alias_ autrijus: You provide lists of "do this, then do that" instructions
Corion Alias_: I think in many ways. I think functional, imperative, but sometimes I also think in the logical way of Prolog.
Alias_ autrijus: And you say things like "If this happens, then do that" 08:38
autrijus shapr: but the vocabulary is largely set by von neumann and turing
in the CS field anyway
Alias_ Corion: But you have a masters in Maths.... you have trained to think in brain-bendingly different ways
Corion Alias_: No - not always. Functional is also very useful, or when reasoning about stuff, you never think of the symbol manipulations themselves.
autrijus Alias_: I think as far as "naturalness" goes, make / prolog is perhaps most intuitive
"to do this, I need to to these first"
Alias_ ugh 08:39
autrijus that is also why SQL is popular.
since you don't need to tell it how to do things.
Corion like "father(X,Y) :- child(Y,X), male(X)"
Alias_ autrijus: That's not a good way to teach 08:40
Corion also, for stuff that has no direction of data flow and is merely a collection of facts you can query (like Prolog and SQL), imperative and functional programming are ugly.
Alias_ autrijus: I'd argue that's more a case of "If you want to do Foo, check that Bar"
autrijus Corion: I think you'll like Curry. I'm fascinated by Curry
Alias_: sure
Alias_ Because Bar isn't done... they have to do Bar naturally... but they don't think that way
Corion Alias_: But that's an incredibly convoluted way to declare things.
Alias_ Corion: That's how most people think
shapr For me at least, I found functional programming mostly by myself while using Python. I started writing my Python code such that it had no side-effects, only one return point, and I realized I wanted to do more like that.
Alias_ Every given somebody directions?
Corion Alias_: But that's not how I want to tell people stuff. Programming is like telling people stuff. And I want to tell them how it is and how it should be in the end, and not care about what they do in the middle. 08:41
Alias_ "Do this, do that, do the other. Keep going for a while. When you see foo, turn right
shapr A friend of mine saw some of my Python code and said something like "You must like Haskell" and I said "What's that?"
Alias_ Corion: That doesn't really scale
autrijus Corion: www.informatik.uni-kiel.de/~curry/examples/ # grep for "logic"
Corion Alias_: "Here is the map. You are here. Go there. Goodbye." 08:42
Alias_ Corion: Big business and governments have procedure manuals and governance and so on
Corion: Who knows what might happen if you did that. Most will go the right way, some will go the wrong way. Someone will get lost in the bush and need rescuing
autrijus ...but they also have Laws and laws are logic programs.
Alias_ autrijus: There's a reason nobody understands the law either
Corion Alias_: I know. I do these. That's why I hate hate hate that. Because they want the stuff described in little detail while even the people doing the stuff have implicit dependencies in their lists, and the implicit dependencies make sense.
autrijus Alias_: you think people understand procedure manuals? :D 08:43
Corion err - s!little detail!very detailed!
Alias_ autrijus: Yes, because they give simple steps. McDonalds would collapse if they couldn't :)
Corion Procedure manuals are for the auditors and nobody else.
autrijus oh. they follow them just fine.
but _understand_.
Alias_ autrijus: Does your CPU need to understand?
autrijus Alias_: we are coders not CPUs. 08:44
Corion Alias_: I don't want to speak to my CPU
Alias_ Anyways
autrijus as coders we need to understand what we're writing :)
Alias_ The closer to normal human ways a language is, the easier it is to understand, and thus write
autrijus Alias_: I agree.
and normal human language is a mess 08:45
shapr laughs
Alias_ not language, "ways" of thinking
autrijus mixed with imperative, logic, functional, data-driven ways.
shapr We should use COBOL then.
autrijus just see #perl6 log for the evidence :D
Alias_ shapr: I've actually been wondering if a COBOL -> Parrot compiler would be a good idea
Might let big old things run on new gear
COBOL with access to CPAN, imagine it!
autrijus this "natural language is a mess, programming language needs to be like that" is raison d'etre of perl :)
...and that's also why english is more popular than lojban, and perl more popular than haskell. 08:47
shapr xu do tavla mi fo la lojban
autrijus (I do like lojban better, so that is not meant as an insult)
Corion lojban ?
autrijus Corion: the least broken of human languages
Alias_ s/broken/human/ ??? 08:48
autrijus # en.wikipedia.org/wiki/Lojban
Corion autrijus: Ah. Something like Esperanto, then ...
shapr mi djica lenu gunka prali mi
autrijus no, esperanto is common lisp :D
Corion autrijus: :))) 08:49
autrijus from the wikipedia article about lojban: "It has no irregularities or ambiguities in spelling or grammar"
Corion autrijus: I guess the only way to promote it would be to write a text adventure/MUD for it :)
shapr lambdabot had lojban support for awhile.
Corion ... but at least one could do NLP there then
Ah. I should write an irc bot in Perl6 :) But we don't have coroutines yet, do we ? 08:50
autrijus oh wow. jbo.wikipedia.org/wiki/Ralju_papri
Corion: we have async{}
you want shared mvar?
or do you just want lazy gather/take?
shapr lojban is pretty simple, it's a small language with a simple and regular structure. I wouldn't say that it's unambiguous, but it does have some neat concepts to teach. 08:51
Alias_ So basically, Lojban has no evolutionary adaptiveness at all? :)
Corion autrijus: Yep, but I want-need to do synchronized stuff, and async{} has no way of resynchronizing :)
Alias_ Like loglan?
autrijus Corion: try writing some pseudocode, commit them in examples/, and we'll see about it :)
shapr loglan was the original, but James Cooke Brown was the dictator of that community, so the lojban people split off into their own community.
autrijus Corion: also try to find out how coro is meant to happen in p6. 08:52
Corion autrijus: I have such pseudo code, I only need to convert it to p6 :)
autrijus but if not specced, use Coro.pm as entry
shapr loglan never really got anywhere, lojban really did.
autrijus cogood. do so :)
Corion autrijus: Ah, yeah. I'll orient myself at Coro to do so :)
Alias_ shapr: Still... the problem with designing a language is that you don't much chance to evolve. You just tend to die out
I like Perl in that sense. Because you can do the big things different ways, you get a nice Darwin tick of approval 08:53
shapr lojban had a static structure for five years so people could learn it, then they went evolutionary.
Alias_ So there are dialects?
shapr James Cooke Brown started on loglan in ... the late 1950s or the late 1960s? I forget exactly when. 08:54
Alias_ Q: How many Lojbanists does it take to change a broken light bulb? 08:55
A: Two: one to decide what to change it into, and one to figure out what kind of bulb emits broken light.
shapr snickers
Anyway, part of my motivation for learning Haskell was to write a compiler for lojban.
lojban has a yacc grammar. 08:56
Corion shapr: Ewww. :)
shapr: But then, I got into Perl because I wanted to replace a shell script that created a website index with something faster. :)
shapr In the meantime I've decided that's totally the wrong way to get a spoken programming language.
Corion ... the reasons that drive us to go into the directions we do...
shapr: Ah, but you don't need a spoken programming language other than "Kill All Humans". 08:57
shapr At this partcular junction, I'd rather write more on pugs.
shapr looks at the smoke tests 08:58
Alias_ Corion: And possibly, "You will be assimalated/recycled"
Corion 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 r1641 (426/4157) | Win2k r1678 (287/4185) 08:59
Alias_ I like the idea that while English has lasted 1000ish years, Loglan lasted, what, 30? 08:59
Corion Oook
shapr Oook? Oook! 09:00
Alias_ imagines lojban rap
shapr I would argue that English hasn't really lasted that long. Can you read the original Chaucer? 09:01
Corion: www.dangermouse.net/esoteric/ook.html
Corion shapr: See Acme::Ook at search.cpan.org/~jhi/Acme-Ook-0.10/...cme/Ook.pm - written by Jarkko Hietaniemi, master librarian of Perl :) 09:02
Alias_ shapr: I can probably make a pretty good stab at it
autrijus hrm, a metalanguage can last longer than its specific implementations. 09:03
Corion autrijus: Lisp 4 life, dawg!
autrijus exactly.
Alias_ It's all evolution
autrijus I was thinking about the common Han ideograph interface 09:04
all spoken language at its invention time (some 3000~4000 years ago) has died
yet we can read all their books
Corion ... a bit larger perspective than Lisp, true :)
shapr hm, that's nifty
autrijus that also enables me to read japanese books and vice versa
despite that fact that the grammar structure and pronounciations are completely different. 09:05
Corion BTW, on Win32, there is still a segfault ...
autrijus lisp 4 life indeed
(or *gasp* xml for life)
Corion autrijus: ASCII 4 life ! :)
\o/
Alias_ autrijus: Yes, I find the separation of written and spoken languages to be quite novel 09:06
autrijus $ grep -B 3 stay src/UTF8.lhs
/ | __ ___ __ __
/ ^| // /__/ // //
/.==| \\ //_ // //
It's // || // \_/_//_//_ and it's here to stay!
clkao orz 09:07
Alias_ autrijus: Although admittedly I understand far less of the details than I would like to
autrijus Alias_: en.wikipedia.org/wiki/Hanzi
Alias_ autrijus: That invokes a time exception
ENOTIME
autrijus too bad.
shapr So you think ascii is the next Han ideograph? 09:08
Alias_ autrijus: Also, I simply lack the overwhelmingly current use for the knowledge
autrijus: I tend to be very driven by practical goals
autrijus shapr: no, Unicode it is 09:13
autrijus forsees 64bit unicode for the entire sentient galaxy
Alias_ Yeah right, like you can encode the electrosmell communication of the low gravity gassbag cows of Zeta 14 in your primitive visual encoding medium 09:16
autrijus say, would you prefer "AV.fetch" or "IArray.fetch" ? 09:17
I wonder whether I should call them AV/HV/SV/CV/GV
or IArray/IHash/IScalar/ICode/IHandle
Alias_ I prefer the legible version 09:18
autrijus I'll make it so then 09:19
Alias_ How anyone manages to learn XS given those horrible names is a mystery to me
Corion Alias_: It's an acquired taste I think :) 09:32
... but then, I hack on XS like I hack on Pugs, except that XS gives me more segfaults. 09:34
autrijus IType first cut landed 09:43
dinner &
10:24 castaway_ is now known as castaway
shapr hiya Ovid 10:46
Ovid Hi there.
theorbtwo Allo, Ovid.
shapr Ovid: I think you're right about Rob. I continued the discussion in private email and the conclusion was the same.
Ovid It's kind of sad. He seems really bright, but he has some blocks. 10:47
castaway waves at Ovidius.
Ovid Though I confess that was a little harsh with him.
Hi castaway.
shapr From later discussions with him, I think you weren't harsh. 10:48
castaway (and the rest)
rindolf Hi all! 10:49
shapr hiya shlomi
rindolf Can anyone explain to me what Perl 6 Class Roles are?
shapr: hi.
shapr goes unicycling
elmex interfaces?
rindolf elmex: you mean like interfaces in Java. 10:50
rindolf opens the latest Apocalypse
elmex rindolf: no
castaway its the "can do" relationship..
elmex rindolf: like interfaces in Perl6
castaway (iirc)
metaperl rindolf, chromatic's CPAN module has some good links on Role-based oop 10:51
Ovid I have to confess, when I read through his "extremeperl" web site, I had a few good laughs. My favorite was when he wrote "Do the simplest thing that could possibly work (DTSTTCPW) means you implement the first idea that comes to mind." 10:52
metaperl the idea is to separate a superclass's roles as instance factory and re-use mechanism
no, that makes sense to me Ovid
castaway Hmm, no, thats just the simplest thing that occurs to you at the time.. ,)
metaperl just dive in... top-down
Ovid rindolf: read Class::Traits and you'll understand.
metaperl: it makes no sense because it's wrong. 10:53
castaway I often do that, and come back later with a better view of the project, and redo parts that suddenly make sense another way
osfameron_ the simplest thing that could possibly work isn't always the most obvious
metaperl pastebot?
paste?
osfameron_ for example, I saw the example of implement fn sqr()
for value 0 or 1, the simplest thing that would work is to return the input unchanged
it's only from 2+ that your tests fail and you'd have 10:54
to actually implement input*input
Ovid Actually, the first thing that occurs to me when I face a problem is often something quite complex that covers various contigencies. I have to remind myself to keep things simple.
rindolf Ovid: not Class::Roles ?
metaperl Ovid, do you mind critiquing a question of mine to the template toolkit list? Here it is: rafb.net/paste/results/CXwCjP91.html
castaway indeed, Ovid
Ovid No. Trying to remember, but "traits" was a term already used in Perl6, so they had to be renamed roles.
metaperl: first, a confession: I came home a bit tipsy, so I'm tipsy now. However, your question seems somewhat reasonable, but as far as I know, TT is not going to handle a stream. 10:56
metaperl I hope to God it does... no... it needs to create a stream of XML output... Mason can do it... 10:57
I realydont want to use Mason
Corion Ovid: Being drunk on irc is common courtesy
Ovid I've not tried to use TT that way.
Corion: yeah, I figured this wasn't too unusual :) 10:58
metaperl: I don't blame you. I know Mason, but I prefer TT myself.
metaperl Bricolage is written Mason right? 10:59
Ovid, do you telelcommute to work at Kineticode? Arent you in AZ and isn't David Wheeler in San Francisco?
Ovid No. Mason is merely one of the "burners" Bricolage can write to. We have a TT output channel, too. And actually, I live in Portland and -- by an odd coincidence -- David a few blocks away. 11:00
Correction, we have a TT "burner", too. 11:01
Bleh. My grammar sucks right now.
metaperl Ovid, you know we have a CGI::Prototype mailing list? with GMANE feed 11:03
Ovid Nope. I just unsubscribed to a couple of lists because I'm on too many as is. 11:04
metaperl hey you live in the same town as merlyn? wow 11:05
wonder they haven't renamed in Randalville 11:06
Ovid Yeah. And just to up the ante, my roommate is Schwern :)
theorbtwo Ah, but you are the most famous of them: Ovid, world-renowned crime-fighter. 11:07
Ovid They're better at Perl, though. That pays more in the long run.
metaperl Ovid, are you serious? Are you a college student? and Schwern is too? 11:08
Ovid Nope. Not a college student. Neither is Schwern.
metaperl you mean Schwern works at Kineticode too? 11:09
Ovid No. He's just my roommate.
Corion metaperl: When two men share a room, it's not always that they work together.
castaway (or do other things ,) 11:10
Corion castaway: Whatever your dirty imagination suggests ;)
castaway attempts to look innocent. 11:11
Ovid, YAPC?
Ovid No, no. It's a two-bedroom apartment :)
Corion Hmmm. Should Perl6 have eigenstates() ? How else do I get at all the instances of a junction? 11:12
Ovid castaway: Schwern might go. I've got a tight schedule with my 20 year high school reunion and I'm debating if I should go.
theorbtwo IIRC, .states, something like that.
Corion theorbtwo: Ah
(except that object methods aren't in yet :) ) 11:13
I'm thinking of creating a nice "real world" example by doing the "expand 1-10 to 1,2,3,4...,10" thing with junctions
That is, parse a glob spec into junctions, and then output the eigenstates of the junctions. 11:14
& # shopping 11:15
metaperl www.metaperl.com/talks/p6-fp-slurpy/ 11:31
"Slurpy Sub Parms, Multi Subs and Perl 6 Functional Programming" --- my upcoming Perl Mongers presentation
metaperl hits the sack 11:36
kbrooks hey 12:03
:)
stevan autrijus: I refacted out another hack in CGI,.. to use the s:perl5:g//{}/ 13:08
kbrooks wtf
stevan autrijus: I also looked at kv.t last night,.. you were talking about Pairs doing the [[a, 1]] stuff right? because it looked like hashes were coded correctly
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 r1682 (281/4184) | Win2k r1678 (287/4185) 13:36
autrijus yo! 13:59
stevan: I refactored your refactoring
it now reads
$encoded ~~ s:perl5:g/([^-.\w ])/\%$dec2hex(ord($1))/;
which imho is even more readable :)
hrm, junction states is .values 14:00
not .states
autrijus backlogeth
castaway afternoon autrijus 14:01
theorbtwo Mornin, autrijus.
autrijus heya castaway. 14:02
masak hello autrijus
autrijus I wonder if anyone will want reduce() implemented.
autrijus is still hacking on the IType stuff... looking good
Corion: $junction.values works now iirc
theorbtwo Oh, 6 hours later. Evenin', autrijus. Afternoon, Corion.
Corion autrijus: Yay! :)
castaway you were going to give theorbtwo a hand
theorbtwo Who was?
Corion Me ?
theorbtwo And with what?
castaway pints at autrijus 14:03
Corion (I wouldn't know what and how)
but junction.values() working means I can/have to rework some of my tests!
Yay! :)
BTW, I haven't seen any "licensing" issue discussed here, but I assume all stuff is dual-licensed, corresponding to the dual nature of Pugs/P6, right? Or at least BSD licensed - I don't care about any other license :) 14:04
autrijus so far yes.
it's either Artistic2/GPL, or BSD.
theorbtwo It's dual Artistic/GPL.
autrijus and Artistic2 is compatible with Artistic1 as far as I understand 14:05
theorbtwo It's the top half of README.
Corion That's cool (all my code is BSD-licensed anyway, and I assume that all contributors to Perl handle it the same)
castaway read that as "top shelf" ;)
Corion theorbtwo: Bah - who reads the README anyway? :))
castaway people who want to know such things
autrijus but with theorbtwo's work, we may or may not include hs-plugins which is LGPL.
theorbtwo , apparently.
castaway oh! my ghc compile finished!
autrijus but I think it's safer to list it as an optional external dependency.
castaway (it only took about 8 hours
autrijus (esp. before its building problems are resolved for more platforms) 14:06
Corion autrijus: Ah, LGPL is OK too, or rather, OK for the moment. I saw what I think is a delayed April Fools' joke on /. regarding the GPLv3 that requires all GPL users to pay money to Stallman
autrijus oh. we explicitly use GPLv2.
none of the "or above" clause.
so v3 will not apply.
Corion autrijus++ 14:07
autrijus =)
Corion (it would kill all secret use of open source software at my place for sure)
autrijus I can see the use of that. 14:08
but I don't see it suitable to Pugs.
theorbtwo There's more stupid GPL3 reporting on /. today, BTW.
I'm not sure how much is /. distorting and how much is the FSF being stupid, though.
autrijus both at MAXINT. 14:09
theorbtwo Quite possibly.
autrijus oh btw, can someone check if asavige's slice test on p6c is made into t/?
Corion theorbtwo: I still think it's an April Fools Joke, either 8 days late or 357 days early.
autrijus I'm going to check in IType tonight, so the more tests for corner cases, the better
Corion But I can see how it irks Stallman to see companies profiting from GPL software. 14:10
autrijus (basically it's a rewrite of most things in AST.hs)
Odin-LAP Uh. Is the GPLv3 out, or..?
autrijus praises a certain strong typing system for making complete rewrites trivial
Corion Odin-LAP: No, only stupid FUD discussion of it on slashdot, News For Nerds, News that have reported elsewhere already.
Odin-LAP (Slashdot, of course, is plain stupid.)
Aight.
autrijus in concrete terms, it means that %ENV{FOO} = 'bar' will Actually Work. 14:11
Corion autrijus++ # %ENV<FOO> = 'bar'
castaway slaps gentoo. (the subversion package cant be found by searching for "svn")
Corion autrijus: now or tomorrow?
autrijus <FOO>. right.
Corion: tonight :)
autrijus is still haxx0ring
Corion autrijus: "tonight" by you means in the next 8 hours, correct?
autrijus 5 hours, more likely
as it is past 10pm here
Corion should get XWorld or something like that, and combine it with an irc plugin so he has an easy overview over where everybody is :) 14:12
(together with, say, GeoIP :)
theorbtwo Corion: Steal code from desert-island.dynodns.net/perl/pmplanet.pl
You might want to change the projection, though, considering the sort of audiance we get around here. 14:13
Corion theorbtwo: Yes :) It'll still need to be "fed" (via http requests?) from chatzilla and/or a bot I have to write, and I'd like the display to use OpenGL, but other than that, that's already it :)
#perl6 is All Pugs, All The Time. :)
theorbtwo I'm not sure opengl is quite applicable. 14:14
Corion BTW, I think I have worked out (on paper) how I'd like coroutines to behave, both in implementation and in syntax. But I need to do some sample code to see how well it works out :)
theorbtwo: How not? I've done OpenGL from Perl (5 though) 14:15
castaway slaps the CNN voice over person "King & Queen are just departing .. " stupid man
theorbtwo To render to a PNG or JPEG?
Corion theorbtwo: Ah, I just want it on my desktop :) 14:16
theorbtwo Oh.
xplanet is still good for you -- it uses GL when it renders to a display.
theorbtwo ponders again integrating pmplanet with google maps somehow.
Hm, possibly make the name a link to the homenode on the LHS and google maps on the RHS. 14:19
theorbtwo ponders making a graphviz graph of the british royal family and donating it to wikipedia. 14:20
Corion Hmm. $_.states() doesn't seem to work, or maybe I'm doing it wrong. 14:23
autrijus .values
not .states
Corion D'oh 14:24
theorbtwo Corion: Don't put too much trust in my memory of details.
Corion And say($junction) doesn't quote the juncted stuff, if it's a string :)
theorbtwo can't detail what he ate for dinner.
Corion $_.values() gives me pugs: Cannot cast into VSub: VList [] 14:25
autrijus quote?
pugs> say(any(1,2,3).values)
123
oh bah. parsefail
fixing
(.values different from .values())
Corion say(any('-foo', '-e1')) gives unquoted strings 14:26
autrijus why should it quote?
am I missing something/
?
Corion autrijus: D'oh - I was thinking like Data::Dumper, where I should have been thinking like print $/; 14:27
... I should shut up and code instead 14:28
autark-jp my $b = any(1..10).values(); $b[9]
what kind of variable is $b?
autrijus data dumper is .perl 14:29
autark-jp: it is currently a variable holding a list 14:30
it will soon become a Scalar variable holding a reference to an array.
or rather, Array.
autark-jp ah 14:32
Corion Bah. my @examples = map { $_ } (@ex); # doesn't work
for @ex -> $e { push @examples, $e; }; # works
autrijus right. that's a known parsefail.
you want either
my @exa = @ex.map:{$_}
or
my @exa = map {$_}, @ex; 14:33
sorry for the inconvenience.
Corion Oh. And joined junctions seem to need recursive unwrapping - is that by design ? pugs -e "my @e=map{$_.values()},(any<a b>~','~any<c d>); say +@e" # gives 2 ?instead of? 4 14:37
autrijus say((any<a b>) ~ (any<c d>)) 14:39
is 4 values
I know 14:40
any<a b>~','
is parsed as
any(<a b>~',')
which is I think correct.
so you need to be less cute and use
any(<a b>)
metaperl oooooooooooooooooooooooooooooooooos 14:51
theorbtwo That's some very open source.
metaperl lol 14:52
it's very odd
my laptop keyboard sticks on the o key when the machine comes out of sleep and on reboot
theorbtwo odd.
metaperl all the time... and I dont put down the monitor on the keypad (no physical pressure whatsoever)
autrijus yay! 14:53
metaperl here are the slides to my upcoming perl mongers talk on p6 slurpy list parms: www.metaperl.com/talks/p6-fp-slurpy/
autrijus * `map { ... } @list` now correctly parsed.
r1687, enjoy.
theorbtwo Cool, autrijus.
autrijus metaperl: "When are slurpy list parameters useful?" 14:54
Corion autrijus: Gah. Just when I commit my changed tests, you make me update them again ? :))))
autrijus metaperl: "everybody in perl65 uses a slurpy *@_"
Corion: that's called Progress
cognominal pugs> print ord '\n'
92bool::true
autrijus s/perl65/perl5/
cognominal this is odd
autrijus Corion: not so; it prints 92, then returns true
cognominal or do I miss something?
autrijus err
s/corion/cogniminal/
Corion \\ has the ord 92
:)
autrijus right. 14:55
pugs> ord "\n"
10
metaperl well, that wont be the way to use it in p6....
autrijus so it seems that you are saying
"When are slurpy _scalar_ parameters useful?"
in which case I largely agree.
cognominal oops. thx. I deal with too many languages. I am terminally confused 14:56
metaperl ah.... ok
autrijus I wonder which language allows you to write '\n' :)
Corion refrains from running perl -i.bak -pe "s!(?<map\{.*?}),!!" :)
autrijus why not? :D
theorbtwo '\n' would work in C, and probably Haskell.
Odin-LAP Single quotes don't interpolate in Perl, of course. 14:57
theorbtwo (Of course, it's not the same as "\n" in either of those languages.)
Odin-LAP Which is the problem here. :D
autrijus oh. right.
Corion autrijus: Because I think that other (test) authors should do it themselves, to see what new features are available. 14:58
:)
Hmm. Maybe I should still be evil :)
ninereasons autrijus, didn't I read somewhere that `map { ... } @list` will now be written as `map { ... }, @list` #(comma) ? 15:09
autrijus ninereasons: no.
map 123, @list;
will now be written as
map {123} @list 15:10
or
map {123}, @list;
ninereasons ah..
autrijus i.e. autothunking is verboten
but the comma is still optional after block
theorbtwo s/still/now/, I think.
ninereasons that was it.
autrijus theorbtwo: well, in perl5 it is optional. 15:11
as long as you have & in your prototype.
theorbtwo No, in perl 5 there are two forms of map, one with a comma, one without.
In perl 6, there is one form, with an optional comma.
autrijus you are correct.
hrm.
map -> $x { $x } 1,2,3;
this is okay (and works in pugs)
what about a proper sub? 15:12
map sub ($x) { $x } 1,2,3;
ninereasons that last one is very perlish looking
theorbtwo map wasn't fully unified with other functions with a prototype beginning &.
autrijus it now works but should it?
i.e. should commaless blocks extend to subs?
theorbtwo AFAIK, sub ($x) {$x} should work everwhere -> $x {$x} does.
autrijus or just pointy and bare?
alright. I'll keep it so.
cognominal pugs> loop { print "."; } 15:13
pugs: src/Eval.hs:292:12-41: Irrefutable pattern failed for pattern [pre, cond, post, body]
autrijus ooh irrefutable. 15:14
autrijus fixes
theorbtwo
.oO(I've got your irrefutable /right here/! To the moon, baby, to the moon!)
cognominal needs to learn svk or subversion. so far he has pulled plugs using wget -np -mk 15:15
castaway plugs? ;)
cognominal pugs!
Corion cognominal: :) svn up svn.openfoundry.org/pugs
theorbtwo plugs is something else (under CVS, not SVK). 15:16
Corion Or whatever the first incantation is. Possibly svn co svn.openfoundry.org/pugs/ ~/pugs/
cognominal I hope by the end of the we, I will have a pentomino solver coded in perl6
theorbtwo svn co svn.openfoundry.org/pugs/
cognominal pentoninos are my hello world.
Odin-LAP Will put it in a directory pugs/ under the current one, IIRC? 15:17
theorbtwo Correct, Odin.
cognominal even won a TPJ obfuscation contest with a pentomino solver
theorbtwo wonders what the LAP is for.
Odin-LAP Laptop.
theorbtwo Ah.
castaway original.
Odin-LAP castaway: So very, don't you think? ;p 15:18
autrijus cognominal: loop{...} fixed. thx
cognominal can you give me direction on how to understand Parser.hs. I am familiar with Parse::Yapp and Parse::RecDescent 15:19
autrijus sure 15:20
read www.cs.uu.nl/~daan/parsec.html
download that 2.0
read the examples in it
cognominal btw I am reading about monads right now 15:21
thx
autrijus you don't quite need to grok monads to use parsec.
metaperl actually the examples are flawed
autrijus parsec is da bomb :)
metaperl they import Parsec
but for ghc you need to import Text.Parser.Combinators or something like that
cognominal so you adpated parsec for pugs? 15:22
metaperl I emailed daan about that and he said he would look at it but he pointed me to the fact that the examples are part of GHC as well
autrijus part of GHC srcdist.
metaperl no, Parsec ships with GHC. and Pugs is written using GHC
autrijus not part of GHC bindist
cognominal I see a mention in Rule.hs
autrijus yes, I adapted parsec for pugs.
mainly to add things that p6 needs but parsec does not have in Expr
as well as prepare for making it into Eval monad.
i.e. evaluating-while-parsing 15:23
or, in fancier term
cognominal I like very much that the eval of pugs does not close of my lexicals
autrijus generating-parrot-assembly-and-loading-them-while-parsing
cognominal I always hated perldb for that
metaperl oh, you did? adapted or adopted? oh you _did_ adapt it
autrijus thank lightstep for that.
cognominal I even wrote an RGC
I mean a RFC
autrijus he tweaked the evaluator 15:24
I think I can derive a continuation instance from that
so the next line picks up the last line's continuation
including the lexical pad etc.
bbiab :) 15:25
metaperl do any of you know of any low-cost hosting solutions 16:17
elmex are continuations fast? 16:19
metaperl elmex, you might get more feedback on #haskell 16:20
elmex thats not a haskell thingie ;) thats a generic thing i guess 16:21
metaperl more people know about continuations there than here
elmex ;) 16:22
but what is perl going to do with them? 16:23
s/erl/erl 6/
Corion elmex: Write interesting webservers, for example, and cooperative multithreading 16:25
Hah. +10 unexpected successes. Whatever magic autrijus did :) Time to promote some tests it seems ;) 16:26
elmex muha 16:31
Corion Oh. The +10 unexpected successes are due to me botching a test :( 16:34
autrijus rehi. 17:01
continuation is basically a pointer modification and a goto. 17:02
so, extremely fast.
ninereasons autrijus, did you note from the logs that "say $_" doesn't quite work, yet? 17:05
autrijus no.
ninereasons "say" # implicit $_, rather
autrijus how so?
pugs> $_ = 3; say
3
ninereasons see t/var/default_scalar.t
autrijus oh. yeah. 17:06
ninereasons I wonder whether `for @arr { say "$^f $^b" } will turn out to be more popular than `for @arr -> $f,$b { say "$f $b"}` 17:08
metaperl ninereasons: that first expression confuses me 17:10
what are the "^"s doing?
rgs implicit parameter binding
ninereasons they are sort of like autovivified scalars
rgs like $a and $b in perl 5's sort 17:11
metaperl are you slurping the elements of @arr in by 2s?
ninereasons yes
it's almost identical to the second one
"almost"
metaperl could you slurp by 3s by adding anther $^variable?
which SYNOPSIS discusses this?
ninereasons but you'll end up with an error, if the array is "even" 17:12
metaperl Perl5 has most of Perl 6 in modules with better edge cases
List::MOreUtils::natatime() does that
and handles uneven amounts gracefully
ninereasons so, perhaps pugs should too 17:13
?
metaperl goes sunbathing 17:14
too cold for sunbathing, back in I go! 17:19
autrijus IType added. 17:21
now, do I commit or not
autrijus "make test" just to make sure
cognominal pugs> for qw( 1 2 3 ) { next if $_ == 2; print $_; } 17:26
*** Error: No compatible subroutine found: &if
at App "&if" (App "&infix:==" (Var "$_",
2))
I think this is correct perl6 17:27
autrijus it is. nullary parsing is borken.
need to write next()
cognominal ok for me 17:28
ninereasons my @z = ( [ 'a1', 'a2' ], [ 'b1', 'b2', 'b3' ]);
my %a = map { @^foo[0] => @^foo } @z ;
cool
{'a1' => ('a1', 'a2'), 'b1' => ('b1', 'b2', 'b3')} 17:29
autrijus I've done ITypes refactoring
but not the casts between them
hence, 100% of the tests are broken.
I wonder if I should commit ;) 17:30
autrijus ponders deliberately killing the tree
obra heh
is this before or after 6.2.0?
autrijus this is JustInTime for 6.2.0.
basically to get the reference / container / tieable semantic Just Right.
we were using a rubyish "everything is a scalar" semantic 17:31
turns out to not cut it.
obra heh
autrijus so I went back and emulated fulle perltie.
oh well. guess I'll local branch. 17:32
obra server branch?
or are speculative branches "bad" in pugsland?
autrijus not seeing a point... it'll be completed tomorrow anyway
it is good for long-term stuff, which this is noe
s/noe/not/
obra was wondering if it would get completed overnight if it was on the server ;)
eep! I almost autrijused my laptop with a full cup of iced latte 17:33
autrijus eep!
mmm decisions decisions
nah. local branch it is. 17:34
# autrijus.org/tmp/itype.patch -- full patch in case anyone want to take a peek
cognominal arf. I wrote =~ insteand of ~~ 17:35
wonders what =~ means in perl6
ninereasons whatever you want it to mean, I think
autrijus pugs> $_ =~ 4; $_
'4'
(parsed as = and ~) 17:36
ninereasons "scalar context"
?
autrijus "string context"
cognominal boy, my brain is a mishmash of ocaml, perl5, perl6 and haskell with some sml good mesure 17:37
ninereasons sounds like a tasty mishmash
autrijus clearly you need some Curry too
cognominal tasty but mishmash nevertheless
does pugs arlready support currying? 17:38
autrijus sure does.
.assuming
hrm. a "tie" primitive is now trivial. 17:39
what does larry say about tie again?
cognominal boy, I am making a presentation titled "experimental perl6" in two weeks. I could almost $title ~~ s/experimental//
autrijus "But Perl 6 variables are tied directly at declaration time, and for performance reasons may not be tied with a run-time "tie" statement unless the variable is explicitly declared with an implementation type that does the "Tieable" role." 17:40
english speakers: does this "may not be" mean it is against the spec to make all vars tieable?
ninereasons sigh. larry sometimes ties my brain in a knot
obra
Appending "is SomeType" to a variable or parameter is the Perl 6 equivalent of Perl 5's
"tie" mechanism, except that the tying is part of the declaration. For example:
Corion (not an english speaker): Yes. "May not" means "it is not allowed/possible". 17:41
autrijus obra: right, that's compile time tie
obra ah
autrijus alright then. not big loss. I'll just implement "is Tieable" too.
;)
autrijus loves runtime tie()ing.
obra would love a version of tie that's a pass-through by default 17:43
autrijus what's the good thing about that?
obra it's more like attach
autrijus oh. hooks.
yeah. that makes sense.
obra so. think about the filehandle tieing issue we were talking about for H::S::Recorder
yeah
autrijus although it's done in p5 already as Tie::Handle 17:44
Tie::Array etc
just subclass it and throw things to SUPER
cognominal sub japh (Str $lang) { say "just another $lang hacker"; } perl6Japh() # soooo cool
oops
autrijus waits for a version that actually runs :)
obra huh.
cognominal sub japh (Str $lang) { say "just another $lang hacker"; }; &perl6Japh := &japh.assuming("Perl6"); perl6Japh() 17:45
Ovid autrijus: has anyone started pleac yet?
autrijus Ovid: no. want to take a stab?
cognominal: nice! 17:46
Ovid Yeah. I already have a directory structure fleshed out and two example programs. I've commented out the examples that cause pugs to fail. I was going to add a README and then ask if I could check it in.
autrijus the final () is redundant
Ovid: go ahead and check in under examples/pleac/
Ovid How handy. That's where I put it :)
Corion Ovid: Consider adding your examples to t/pugsrun/*-uppercase-c.t , so they get checked if they still compile :) 17:48
Ovid Oh, I'll take a look at that. 17:49
I'll have to do that later, though. I have to run for a couple of hours and I want to get this commit out the door.
Done. I've got to run. See ya, folks! 17:55
autrijus thanks ovid! 17:57
ninereasons what is 'pleac' ? 18:07
autrijus pleac.sf.net
see readme
ninereasons thanks. (making note to regularly review readmes) 18:08
mjh is the intention with pleac to port them into whatever the simplest perl6 is that pugs can currently run, or whatever the perl6 spec allows? 18:11
autrijus mjh: the former 18:12
mjh cool :)
autrijus but feel free to do the latter too
and mark them with # comments
that's what Ovid did
and I think that's fine.
mjh takes a look at ovid's commit
ninereasons that would be an interesting structure for a test suite ; 18:16
instant appeal to perl5 people
mjh (how much does svn.perl.org/perl6/pugs lag behind svn.openfoundry.org/pugs, out of interest?) 18:23
autrijus oops. syncer restarted 18:24
mjh lol
autrijus they are supposed to be synced per minute.
mjh nods.
ninereasons it's weird to have different subversion version numbers from mirrored sources. is it still like that?
autrijus yeah. can't quite help 18:25
openfoundry is the master repos.
svn.perl.org is mainly just for redundancy and backup
ninereasons it doesn't matter much, because openfoundry is fast 18:26
autrijus good to hear that.
ninereasons but I wondered why svn wasn't used to synch the to repositories. can't that be done?
autrijus mm? 18:27
we sync them using svk and SVN::Mirror
ninereasons s/to/two/
autrijus it's svn underneath
we can arguably put a per-commit hook on openfoundry side
to automagically push to svn.perl.org
but ENOTUITS
obra ninereasons: the issue is that svn version numbers are per repository, not globally unique, no? 18:30
ninereasons I guess so.
obra and for that, someone needs to come up with some very clever new numbering system
ninereasons yes
obra or svk needs to be able to tag a copy as "r1234@master" when the copy is made. which it can sort of do now, but only in the commit log 18:31
autrijus it's also in the revprop. 18:32
it's just not displayed.
mjh svk's a smarter alternative client to the svn client, right?
ninereasons a perlish svn ? 18:33
autrijus right.
mjh (or does it also use a different server, but backed with the svn db format?)
autrijus it's a client to svn, but also to cvs and p4
hcchien a client but not only for svn
autrijus it's a bitkeeper-ish VCS.
mjh very cool 18:34
obra svk uses svn as a substrate, but also can read from p4, bk, cvs, svn and write to svn
autrijus :) I owe much of my productivity on Pugs to svk.
ninereasons How will we say __DATA__ in perl 6 ? 18:36
#" (Frees up the = twigil for %= POD doc structures and old __DATA__ stream, ... "
autrijus =for DATA
=begin DATA
=begin END
ninereasons =end DATA ?
autrijus I thought it's endless
not sure.
ninereasons having an end would make for some interesting self-parsing possibilities, I would think 18:37
autrijus sure.
Corion DATA is endless 18:39
(IMO)
The Perl parser just stops reading the file.
seek DATA, 0, 0 gets you your source code 18:40
ninereasons is the end optional, or illegal?
Corion ninereasons: You will end up with a line "=end DATA" in your $DATA filehandle :)
theorbtwo I thought the =beginning of the END was forever, but the =beginning of the DATA was stoppable.
(I thought that was one reason for changing the syntax.)
(Note the "I thought" -- I do not have a great memory for such things.) 18:42
ninereasons so DATA and END will continue to be synonyms, unless theorbtwo's memory serves?
I never much liked saying <DATA> to read __END__ 18:43
autrijus journal up. 18:45
see you tomorrow. :-) *wave* &
ninereasons big day, looking forward to reading your journ
theorbtwo Oh. See you tommorow. 18:46
Corion Oh. One of the t/statements/given tests unexpectedly succeeds! 18:47
theorbtwo wonders who "jmm" in the list of people going to YAPC::NA is.
Corion theorbtwo: J McMahon? 18:48
(that's the only one that immediately springs to mind)
(with these initials, I mean, to my mind)
theorbtwo Oh, that's possible.
theorbtwo has those initials, but I'm listed sepperately.
James Michael Mastros. 18:49
Corion theorbtwo: Ah - I didn't connect you with those, weirdly enough :) 18:50
mjh grabs some toast and looks more closely at pleac 19:18
how many of pugs' tests should fail (roughly) at make test? 19:40
(on svn head)
castaway none?
mjh guess i have a problem with my ghc, then
theorbtwo mjh, it's normal for about 5% failure.
If you look at the end of the /topic, you'll see mildly up-to-date numbers. 19:41
(Don't confuse the newbies, love.)
Odin-LAP Isn't that the chief source of entertainment for "old-timers"? 19:42
castaway well, none of the *should* fail, but some do
:)
mjh theorbtwo: ah, okay; thanks :)
castaway isnt old!
Odin-LAP Hm. Compared to me, you most likely are. >:)
But I wasn't referring to age. :p 19:43
castaway shudders at the thought
neither was I ;)
I'm just a useless lurker
theorbtwo Aww, you aren't useless, love.
Odin-LAP Ah, but that's irrelevant. You've been here a while, haven't you? ;> 19:44
castaway I dunno
castaway is mostly stalking
castaway huggles theorbtwo.
castaway declares self moral officer ,)
mjh hrm ;) 19:45
Odin-LAP hands theorbtwo an assault rifle and several crates of ammunition ... "for self-defense".
castaway heh 19:46
Odin-LAP But then again, this is a perl channel. It's not like there's a lot of sanity around. 19:47
mjh goes to order takeaway whilst waiting for the remainder of the tests to pass^wfail 19:49
ninereasons "makes hard things possible" 19:58
pugs> my @z = (['timers',1..3],['factor','a'.. 'c']) ;
pugs> my %hash = map -> @a { @a[0] => @a[1..Inf] } @z;
pugs> %hash<factor>[0][0] # ('a') 19:59
pugs> %hash.perl
'((\'factor\' => (\'a\', \'b\', \'c\')), (\'timers\' => (1, 2, 3)))'
it is so cool to be able to do that so easily 20:00
it's been years since I've had so much fun with perl (and I've only been in perl for a few years). 20:08
%committers{'all'}++ && say $bye 20:09
castaway ;) 20:10
Corion_ %committers<all> :) 20:13
Juerd That's @committers>>++
cognominal btw , what is the shortest way to iterate on a 2 dimensional array? 20:20
Corion_ Are there any objections against me using the "-P" command line option to make it the big brother of "-p" ? It would become "while ($_ = =<>) { ...; say }". Or should "-p" use say() ? 20:24
(if -p uses say(), we need chomping on the input. Otherwise, pugs -pe1 is not cat anymore)
theorbtwo I'd say -p should autochomp and say, but you might want to ask p6l. 20:28
I was under the impression that autochomping was the norm.
Corion_ theorbtwo: Ah - I'll go with your impression then :)
Ovid So, in working on the Perl6 Cookbook (examples/pleac), I'm coming across plenty of cases where Pugs isn't quite working, yet. Should I add those to the tests? How is this being managed? 20:33
Corion_ Ovid: If they are hard parsefails, put them below pugsbugs, otherwise write (maybe todo_) tests for the features and put them where appropriate. Also, keep an eye on the roadmap as to when features are supposed to appear :)
Ovid OK. Thanks Corion. 20:35
What about things that aren't causing the parse to fail, but throw an error and halt the program? I don't want to prevent the rests of the tests from running, do I?
Corion_ Ovid: I write my tests into their own (smallish) separate test files 20:36
theorbtwo I think that's a good idea, myself.
Corion_ commits autochomping for -p and -n (and "say" for -p) 20:41
20:47 Corion_ is now known as Corion
Corion brb 20:47
Win32 Pugs segfaults on pugs -e "say NaN**NaN == NaN" - I suspect a memory overflow or something, as it takes about 5 seconds before the program gets terminated 20:52
... it doesn't segfault on pugs -e "my$a= NaN**NaN == NaN"; but does so on pugs -e "my$a= NaN**NaN == NaN; say $a" 20:54
elmex this async { } stuff is a thread? or a coroutine?
Corion elmex: A userspace thread
elmex uhg
Corion ... but can be an OS thread too.
elmex Corion: is that p6 spec? or will that be a coroutine? 20:55
Corion elmex: But relatively safe. Calls to external routines, or system() block all threads.
elmex: We simply stole what Haskell offers. The test is under t/unspecced, because it is.
theorbtwo Corion -- I get a segfault on just pugs -e 'say NaN**NaN' 20:56
elmex well, will async {} always create a thread? or will that be a coroutine in future/
Corion theorbtwo: Yes, me too
elmex ?
Corion elmex: Dunno. Read the specs, if there are any.
theorbtwo Corion: under linux, so it's not win32-specific. make a test?
Corion theorbtwo: Yep, I was about to name it "win32", but now it'll just go, hmm - under Pugsbugs ? Or Haskellbugs ? 20:57
I suspect it's a problem in GHC (but wouldn't know how to check that)
theorbtwo sighs, wonders WTF to do with this hs-plugins problem.
elmex who wrote examples/network/http-server.p6 ? 20:59
Corion elmex: Dunno. Look in the committer log or his journal. Maybe autrijus did 21:00
theorbtwo Hm, from the GHCI prompt, (0/0)**(0/0) works (and quickly).
svn blame shows everything being by autrijus r1431.
elmex where are specs that define what async does?? 21:01
theorbtwo Yep, svn log agrees.
elmex or is async just a hack?
Corion elmex: I consider it a simple yet convenient hack. Something like it will go into Perl6. 21:02
elmex you mean creating threads with async {} ? 21:03
i would more like async {} to be more like Coro ;) 21:04
Corion elmex: I don't know if you will get threads, or some other method of quasi-parallel, asynchronous execution, but I expect something like this will be available. See also Coro.pm.
Ovid OK, I confess that I'm not much of an OS guy, so I have a stupid question: if a Perl6 program begins with #!perl6 and I do ./program, I get a "perl6: bad interpreter: No such file or directory", even though I can run it with "perl6 program". How can I run programs with ./program_name? 21:06
castaway "perl6" not "pugs" ? 21:07
theorbtwo #! needs to be a full path.
Ovid Yeah, there are plenty of programs out there that begin with perl6. I thought it was odd, but I tried to stick with the convention I was seeing.
theorbtwo Yeah, the existing convention is pretty meaningless. 21:08
Ovid theorbtwo: I was trying not to use a full path because I have /usr/local/bin/perl6 and others have /usr/bin/perl6
theorbtwo Try #!/usr/bin/evn perl6
Ovid Hrmph. I suppose I can just make a link.
theorbtwo But most people don't have either.
Ovid Thanks. I'll change the shebang lines in the Cookbook, then. 21:12
theorbtwo Sorry, that's env, not evn.
Corion The offending, segfaulting tests now get skip()ped, and another test has been added under t/pugsbugs that contains the segfault. 21:15
... this is still annoying for Win32 users, but such is life 21:16
Hmmm. Haskell resp. while($_ = =<>) { ... } doesn't handle eof() gracefully: pugs: <stdin>: hGetLine: end of file - no END blocks run no nothing. Should this go under pugsbugs ? 21:29
Ovid Question: I know there's got to be an easier way to find out if elements in one array aren't in another. I have this: 21:31
for @a -> $elem {
@aonly.push $elem if $elem == none(@b);
}
Juerd Ovid: Parens around first $elem are needed 21:34
Ovid: And you probably want ~~ if @a contains both numbers and strings (and regexes)
(etcetera) 21:35
Ovid Juerd: the parens aren't required. The code works. 21:36
Juerd Then that's different from the spec
(IMHO, not requiring parens is saner) 21:37
theorbtwo Mine too, but IIRC there was some potential for ambiguity with no-parens.
Juerd push @aonly, grep { $_ == none(@b) }, @a; # nostalgia 21:38
And if @aonly starts empty:
@aonly = gather { 21:39
for @a -> $elem {
take $elem if $elem == none(@b);
}
}
:)
In fact...
@aonly = gather {
$_ !~ none(@b) and take for @a; 21:40
}
revdiablo ooh, gather. that's sexy.
Juerd eh, s/!~/==/
@aonly = gather { for (@a) { take when $_ == none(@b) } }
Juerd wants some syntax to apply $_ ~~ :) 21:41
As with //, where $_ ~~ is also implicit...
perhaps prefix ~~...
theorbtwo Prefix ~~ is already somewhat taken, though I'm not sure why somebody would want to stringify the stringification of something. 21:42
Juerd theorbtwo: That reasoning leads to not having preinc. 21:43
And since we have preinc, we can also have ~~.
As + is for numbers what ~ is for strings
theorbtwo Point.
Ovid Gotta run! Thanks for the pointers, Juerd. :) 21:45
theorbtwo G'night, all. 22:13
mjh Failed 51/197 test scripts, 74.11% okay. 289/4219 subtests failed, 93.15% okay. 22:14
i guess that's par for the course at the moment, then :)
Corion elmex: Look at &?CALLER_CONTINUATION also, for basic coroutine/continuation handling 22:15
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 r1682 (281/4184) | Win2k r1700 (288/4223) 22:15
Corion A short question - &?CALLER_CONTINUATION gives me the context of the caller. How can I store my current context so I can pick up there again without cooperation of the calling sub? 22:16
... that is, if I do @handlers = &?CALLER_CONTINUATION; ...; for @handlers -> $c { &c->(); xxx }; # how can I get to "xxx" if $c is within a loop and never returns, but calls another subroutine that I know (let's call it get_line()) ? 22:19
... in get_line, I'd like to do &dispatch.goto(); but not to the start, but where I last left my state before switching. 22:20
Anyway - I'll sleep over that :)
stevan alright,.. finally 'make optimized' worked for me (OS X) 22:53
if anyone is having issues with readline.h and readline.c when doing make optimized on OS X,.. install this wxhaskell.sourceforge.net/download/...ine4.3.dmg 22:54