Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-01-03

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 diakopter DebolazX - I saw you mention them the other day - I assumed you would fix it
00:00 TimToady I see my job as making sure things converge as rapidly as possible on an implementable solution that makes the most people happy.
00:00 perlDreamer we'd prefer you hack and code, otherwise Alias will lose his shorts in the future's market
00:01 DebolazX diakopter: I only revert things that are obviously vandalism.
00:01 Alias_ perlDreamer: The one that owns th eCPAN
00:01 [particle] testing requirements should be made well known. use Test.pm for the most basic tests. if a more advanced testing library is required, make diakopter: sure it's a different module
00:01 Alias_ the CPAN
00:01 TimToady I don't see my primary job as hacking and coding either.
00:01 TimToady Perl 5 is the result of my hacking and coding.  :)
00:01 DebolazX diakopter: I just paste links to changes when something is worthy of some attention.
00:01 Juerd I quite like the result of your hacking and coding though :)
00:01 [particle] somebody take away timtoady's commit bit!
00:01 diakopter DebolazX: oh
00:01 Alias_ TimToady: Well, and patch to be fair :)
00:01 TimToady the butter is getting rather thick in here...
00:02 diakopter TimToady: regarding the test suite - do you think it should be moved into its own source control repository eventually?
00:02 diakopter or remain with pugs
00:02 TimToady there has already been some effort toward splitting tests into impl-dependent vs independent
00:03 DebolazX http://en.wikipedia.org/w/index.php?title=Perl_6&amp;diff=97634795&amp;oldid=97401177 <- Take this for instance. It's not really incorrect, but could probably be phrased in a much better way.
00:03 lambdabot http://tinyurl.com/tlvkf
00:03 TimToady I don't think it matters which repo it's in really, as long as it's sufficiently mutable for now and sufficiently stable over the long term.
00:03 [particle] diakopter: for now, the test suite should remain with pugs, as it's a well-known location, there are many folks with commit bits already
00:03 diakopter [particle]: of course.  I was asking about eventually.
00:03 [particle] eventually, the tests should be independent of any implementation, imo
00:04 TimToady I think we still need 3 or 4 times as many tests as we have, and we won't get that with a lot of may-I-patch-this overhead.
00:04 Alias_ indeed
00:04 [particle] the tests should be tied most closely to the spec, in the future
00:04 perlDreamer TimToady: so do you think it would be better just to code tests, rather than begin a reorganization at this stage?
00:05 DebolazX Basically, the perl 6 page on wikipedia now more or less gives the impression that perl 6 is a lost cause and vaporware.
00:05 TimToady not saying that--I good reorg might point out the missing tests better
00:05 TimToady s/I/a/
00:05 [particle] perlDreamer: reorg of impl-dependent vs independent is important, as parrot should start running the pugs test suite soon
00:05 diakopter it seems that many of the tests could be more aptly linked to the apocalypses or even exegeses.
00:05 diakopter smartlinked, I mean
00:05 avar [particle]: What's stopping it at the moment?
00:05 diakopter many of the future/imagined tests, I mean
00:06 perlDreamer probably existing tests as well
00:06 [particle] avar: some functionality, like BEGIN (a prereq for 'use')
00:06 [particle] ...but it's *almost* there
00:07 Alias_ "some Perl users" ?
00:07 Alias_ Shouldn't that read "the popular perception"
00:07 Alias_ or something...
00:09 [particle] nopaste?
00:09 [particle] paste?
00:09 Alias_ Perl 6 has been under development for over six years, prompting some Perl users to suggest that Perl 6 may be vaporware.
00:09 DebolazX That should be referenced imho.
00:09 Alias_ Since pugs came along, most of the suggests only really come from outside "Perl users"
00:10 DebolazX It was originally referenced to an article written in 2000 or so, obviously not relevant to the claim.
00:10 Alias_ It's superfluous specificity that adds unwarranted implications
00:11 Alias_ And pugs is a reference implementation right?
00:11 [particle] well, it's a haskell implementation.
00:11 Alias_ Isn't it taken as the reference implementation
00:11 [particle] there's no blessed implementation
00:11 Juerd Pugs is an *experimental* implementation.
00:12 Juerd To learn from.
00:12 Alias_ So... research implementation?
00:12 Juerd Exactly.
00:12 Juerd -Ofun.
00:12 Alias_ That's not what it is, just the way it's optimised
00:13 TimToady We just need someone whose idea of fun is to make it compile down to assembly...  :)
00:13 Juerd Alias_: Wikipedia doesn't like things like "the popular perception" and prefers phrases like "some people"
00:13 Alias_ that's fine, so make it some people
00:13 Juerd Alias_: If you want to use any superlative, or something that remotely resembles it, be prepared to reference your statistics...
00:13 perlDreamer what about just saying "the first implementation"
00:14 Alias_ The existing one is worse
00:14 diakopter but it's not the first
00:14 diakopter it's the leading in terms of synopsis coverage?
00:14 Juerd I think "research implementation" is a very good description
00:14 avar http://www.encyclopediadramatica.com/index.php/Some_argue
00:14 [particle] me too
00:14 lambdabot Title: Some argue - Encyclopedia Dramatica
00:14 Juerd It started out as research, Audrey's own Haskell learning project :)
00:14 buubot joined perl6
00:14 Alias_ Juerd: So we just need a reference...
00:15 TimToady I'd settle for an implementation. :)
00:15 Juerd Alias_: Reference or official, that's more or less the same. Indeed, that's "all" we need.
00:15 Alias_ Well, implementation implies production
00:15 Juerd implementation doesn't imply production.
00:15 Alias_ read the sentence
00:16 Juerd Though it's hard to convince Java people re that :)
00:16 Juerd Alias_: I just did :)
00:16 [particle] parrot: languages/perl6 test results: http://nopaste.snit.ch:8001/9089
00:16 * tumulus wonders how many people read the Perl 6 article who don't already have an opinion that won't be changed by what the article says
00:16 Juerd tumulus: Keep on wondering, there won't be such statistics :)
00:16 tumulus yeah - I don't actually wonder very much :-)
00:16 Alias_ tumules: It's more about allowing unwarranted character assasination
00:17 Alias_ Natural tendencies to overplay criticism of Your Team aside
00:18 diakopter TimToady: is there a list of what the apocryphal apocalypses are named?
00:19 diakopter synopses, I mean
00:19 * Juerd zz
00:19 Juerd Good night
00:19 TimToady night
00:19 TimToady diakopter: sure, see the chapter titles of the Camel III.
00:19 diakopter ok :/
00:20 diakopter I mean: ok :)
00:20 TimToady someplace I have a list of which RFCs were classified into which ApoApo.
00:20 diakopter are there going to be syn/apo/exg for the remaining ones?
00:20 diakopter or which ones?
00:21 TimToady only if the demand is there.  we already have prototypes or semiblessed synopses for various S2? down in pugs/docs/Spec
00:22 TimToady only they're calling things like Functions
00:22 TimToady I'd like to leave developing synopses where they can be hacked on by multiple people easily.
00:22 TimToady so pugs is a fine place for them.
00:22 diakopter TimToady: ah.
00:23 diakopter sorry if all of this has been covered elsewhere/when.
00:23 TimToady in partcular, which things end up standard functions will depend heavily on the research implementation
00:24 TimToady we'll put in convenience functions where they're desirable, but not go overboard.
00:24 TimToady for instance comb() is a convenience function.
00:25 Alias_ TimToady, any of the docs addressed that concept we discussed at the YAPC::NA about the layering of "core" modules?
00:25 TimToady we might put min and max in that category, but since we have infix min and max, the [min] and [max] reduction ops may be all we want.
00:26 TimToady Alias_: not really
00:26 Alias_ ok, so I should still put it down on electrons at some point?
00:27 Alias_ I've been kind of distracted in the period since the hackathon
00:27 TimToady don't see how it could hurt.
00:27 Alias_ ok
00:27 TimToady well, yeah, most of us get distracted most of the time.  :)
00:27 Alias_ I'm coming to the end of my current round of installer tool hackery, so I should probably look into it
00:27 perlDreamer did you say something?
00:27 diakopter TimToady: what about having a GolfNewbie package that has verbose wrappers/editions of all the shortcut operators/functions.  you know, so people moving from java/.net can transition into golfing?
00:27 lisppaste3 joined perl6
00:27 Alias_ nooooooooooooo!
00:27 Alias_ golfing == bad
00:27 Alias_ obfu == bad
00:28 TimToady use PHP;
00:28 [particle] anything that makes programming fun == good
00:28 Alias_ anything that scares people away == bad
00:28 TimToady loads 3000 functions into *
00:28 Alias_ They should be little geeky games we play in quiet back rooms amoungst ourselves
00:28 diakopter Alias_: I was implying that perl6 *is* golfing...
00:29 TimToady I'm actually kind of happy about how readable golfed Perl 6 is...
00:29 diakopter TimToady: that's why it could be an optional package.
00:29 TimToady anything is possible
00:29 Alias_ TimToady: Thank god...
00:29 [particle] perl 6 has a grammar half the size of the english language. it only slightly resembles perl 5. you think that won't scare folks away?
00:30 Alias_ [particle] reputation is what scares people away
00:30 Alias_ So what if the grammar is complex if it's folded away until you need it
00:30 diakopter heh.  in golf, newbies are ironically called "Hackers"
00:30 Alias_ As for not resembling perl 5...   use v5; :)
00:30 Alias_ or the equivalent
00:30 diakopter real golf, I mean
00:31 Alias_ ah
00:31 [particle] well, i'm not afraid of new languages... i'm writing parrot after all
00:31 Alias_ With Perl 6 we get the curiosity factor
00:31 Alias_ people will most certainly look
00:31 buubot joined perl6
00:32 Alias_ And especially since it's taken so long :)
00:32 [particle] sure, as long as there are straightforward, well documented, useful examples
00:32 Alias_ yes
00:32 TimToady I think we just need to make sure that most of the best mashups are written in Perl 6.
00:32 Alias_ And we ban obfuscated Perl 6 competitions for the first 5 years :)
00:32 diakopter at the publicly traded bank I work for, my job title is "maintain the 250k LOC perl5 codebase while 55 .net and java coders port it to 8m LOC, and help them do so."
00:32 * allbery_b tries to learn a new language every 6 month or so; recent entries are Haskell, Ruby, and Perl6 (and recently I found myself entangled in Python... but I'm strongly tempted to back out again)
00:33 perlDreamer the test suite could be a good source of those code examples
00:33 diakopter sorry, I meant my last message as kind of an introduction to me.
00:33 Alias_ Test suites are boring
00:33 Alias_ And necesarily scrappy
00:33 Alias_ (at times)
00:33 avar diakopter: scary
00:33 [particle] this test suite is a little different, since it's a good learning tool during spec-reading
00:34 [particle] smartlinks++
00:34 perlDreamer karma smartlinks
00:34 jabbot perlDreamer: smartlinks has karma of 3
00:34 Alias_ I can sum up Perl 6 marketing in two points
00:34 [particle] but outside that, test suites aren't much good for examples
00:34 Alias_ 1. Really easy to install and start using
00:34 diakopter does anyone object to smartlinking from the test suite to apocalypses and exegeses, and possibly non-final apocalypses and exegeses?
00:34 Alias_ 2. We need to Clone Why the Lucky  Stiff
00:35 diakopter non-final meaning still in pugs svn.
00:35 perlDreamer everything is in pugs svn ;)
00:35 [particle] diakopter: please smartlink only to the synopses
00:35 Alias_ If I hear "fun is not banging your head against a wall" one more time...
00:35 [particle] apocalypses and exegeces are historical documents
00:35 [particle] synopses are living documents
00:36 perlDreamer that would explain the smartlinks breakage we fixed last week
00:36 diakopter [particle]: okay
00:36 * [particle] needs to finish his moose-ified smartlinks script someday
00:37 diakopter particle: what would it do
00:37 [particle] it's oo, using Moose. the current script is procedural and spaghetti-like
00:37 diakopter oh
00:38 [particle] the initial target for my script is parrot specs, but it has been designed to work for pugs as well
00:38 buubot joined perl6
00:38 [particle] http://svn.perl.org/parrot/trunk/lib/SmartLink.pm
00:39 perlDreamer how much more work is there to get it done?
00:39 diakopter there are some smartlinks that link all over the place
00:39 diakopter web irc logs
00:39 diakopter .e.g.
00:39 [particle] i need to finish up (and clean up) the object model
00:39 TimToady some smartlinks indicate the need for better specs
00:39 [particle] ...including a perldoc spec that allows smartlinks ;)
00:39 TimToady maybe we need a dumblinks for that.  :)
00:40 perlDreamer is there a good way to feed that info back to the spec writers?
00:40 * [particle] feeds that info to TimToady
00:40 Alias_ ew
00:40 Alias_ http://en.wikipedia.org/w/index.php?title=Perl_6&amp;diff=97809476&amp;oldid=97634795
00:40 lambdabot http://tinyurl.com/ybtjox
00:40 Alias_ butchering
00:41 perlDreamer perlDreamer wonders about the chances of email making it into TimToady's inbox
00:41 TimToady when the info is missing from an existing spec, it's easy enough.
00:41 TimToady perlDreamer: and also not getting ignored?  :)
00:41 perlDreamer yeah, that whole communications model thing
00:41 avar Alias_: more accurate imo;)
00:41 diakopter "There is currently a slow, but mostly complete, implementation written in the Haskell..." - how can they say it's slow?  is there a faster one?
00:41 Alias_ planned revision to?
00:41 Alias_ in progress rewrite of
00:42 TimToady well, it *is* kinda slow in spots...
00:42 diakopter compared to perl5, you mean?
00:43 Alias_ compared to Ruby?
00:43 Alias_ Assuming we use Ruby as the widely accepted benchmark of "usably slow"
00:43 perlDreamer 'night all
00:43 TimToady night
00:44 avar my ruby takes 0.010s for hello world, pugs over a second
00:44 Alias_ meh, this is why I avoid wikipedia on topics oft-subject to zealotry
00:44 Alias_ avar: What about on 10,000 iterations
00:44 diakopter wrt the test suite, is anyone controlling the import of tests from the perl5 test suite (the ones that are covered in the specs, I mean)?
00:45 TimToady I didn't know they were classified as a munition...
00:45 [particle] are there tests imported from perl5 in the pugs repo?
00:45 TimToady oh, wait, that's exports..
00:46 [particle] there are p5 regex tests in the parrot repo
00:46 Alias_ TimToady, not at this end
00:46 diakopter heh.  controlling meaning spearheading the effort of.
00:46 TimToady nope
00:46 avar Alias_: dno:)
00:46 diakopter as opposed to regulating/inspecting/threatening
00:46 TimToady was hoping the p5-to-p6 would get aimed at those tests
00:47 Alias_ how is that coming btw
00:47 TimToady Sage is in school.
00:47 TimToady so basically nothing is happening there right now.
00:47 diakopter how much longer will Sage be in school
00:47 Alias_ So he didn't meet the summer of code criteria in time?
00:48 TimToady yes, he did, but it's an open-ended project, and we've change P6 meanwhile
00:48 Alias_ ah
00:48 Alias_ right
00:48 Alias_ (Open Problems)--
00:48 Alias_ (File::HomeDir)-- # Open Problem
00:49 avar ha!:)
00:49 Alias_ In this case someone had to do it, and the less other people get themselves as deps of CPAN.pm the better as far as I'm concerned
00:50 * Alias_ is veyr protective of the Bundle::CPAN dep chain
00:50 Alias_ very
00:51 avar You maintain cpan.pm?
00:53 TimToady Maybe the smartlinkers need a place to aim for apparently missing specs.  It could have generic entries for "Works just like Perl 5" or it should be easy to add speculative paragraphs that get copied over or unified with existing specdom.
00:53 Alias_ No, I maintain File::HomeDir, Module::Install, and apparently I'm one of the few people that actually understand the CPAN toolchain internals end to end
00:53 Alias_ Or so it seems some days
00:54 TimToady well, hey, that's what encapsulation is for--not knowing things... :)
00:54 Alias_ right
00:54 DebolazX That reminds me, will p6 get something better than CPAN to manage modules? Some people seem to be very discouraged by the current status. They don't like to have to watch and answer "yes" to many questions with obvious answers for instance.
00:54 Alias_ Except when people start proposing replacing entire subsystems :)
00:55 Alias_ DebolazX: I have some ideas for that
00:55 Alias_ CPAN.pm is actually fairly close to being 100% automatable
00:55 Alias_ It's really just missing the mirror selector
00:56 diakopter did www.cpan6.org fizzle?  I subscribed to the lists early on, but only got one or two messages.
00:56 Alias_ And one or two other minor but VERY tricky to add without breaking everything things
00:56 DebolazX That's another thing, some CPAN mirrors are horribly outdated and CPAN.pm unlike CPANPLUS.pm doesn't give me an easy way to just use the main repository.
00:56 Alias_ Yep
00:56 Alias_ These things are being fixed as Andreas has the time
00:56 DebolazX And it actually wasn't easy to figure out how to set it to use it manually. I mean, I managed to figure out how to change it, but there were no obvious way to save the settings.
00:56 Alias_ He's the only person that can add features to CPAN.pm safely
00:57 Alias_ I think cpan 6 will fizzle, I find the goals a bit too large
00:58 Alias_ I'm also iffy about the current state of the 6pan proposal too
00:58 Alias_ But we've got time to fix this
00:58 TimToady maybe we should switch to Google+bittorrent.  :)
00:58 Alias_ heh
00:58 Alias_ like the python people? no thanks
00:59 Alias_ Stealing too much from debian is a mistake though I think
00:59 Alias_ We're a source repository, not a binary repository
00:59 DebolazX I appreciate the flexibility of CPAN, but I think it will be best to just keep it very simple. Just make sure it actually works, that the default settings are sane (Which they often aren't now), and that it doesn't kill kittens.
00:59 Alias_ yup
00:59 Alias_ The trouble is that "simple" and "correct functionality" are hard to resolve
00:59 Alias_ I had a stab at it with the JSAN client
01:00 Alias_ But I cheated and used Class::DBI and SQLite
01:00 DebolazX SQLite won't install anymore here. It spends over 30 minutes on a single test. It does not give me any reason why.
01:00 Alias_ weird
01:00 DebolazX I hear other people has this problem too.
01:00 * Alias_ rbr
01:00 Alias_ brb
01:01 DebolazX Over 30 minutes = I timed it to that once, before I just hit ctrl-c.
01:01 TimToady did you try ^D to see if it was waiting for input?
01:02 TimToady that's a common failure mode in test suites...
01:02 DebolazX TimToady: That and enter, no effect.
01:02 TimToady using CPU?
01:02 DebolazX No, just idle.
01:02 Alias__ joined perl6
01:03 TimToady threads?
01:03 Alias__ Will Perl 6 get an alarm on Win32?
01:03 TimToady defining "alarm" how?
01:03 DebolazX TimToady: Didn't look for that.
01:03 TimToady maybe it was thread deadlock of some sort
01:04 allbery_b strace / truss is your friend in such cases
01:04 Alias__ TimToady: In the sense of "In Perl 5, alarm is not safe to use on cross-platform modules"
01:04 TimToady Perl 5's alarm is ill defined.
01:04 allbery_b (granted, it's the kind of friend you'd rather spend a night out in public with :)
01:04 allbery_b *rather not
01:05 Alias__ TimToady: I'm just sick of not having timeouts without either using IPC::Run3 or POE
01:05 TimToady I prefer not to be trussed by my friends.
01:05 Alias__ I'm kind of hoping Perl 6 will fix that mistake
01:05 TimToady well, there seems to be a great deal of feeling that the underlying semantics of everything is async, so hopefully you're right.
01:06 Alias__ goodo
01:06 TimToady but of course everyone has their own idea of what constitutes event processing...
01:06 Alias__ Therever that list of Functions is, please add "[REQUIRED] Some sort of timeouty thing"
01:06 Alias__ Wherever
01:06 Alias__ or hell just "Cross platforms timeouts"
01:07 diakopter TimToady: there are many uses of "language designer" lingo in the synopses - helpful for perl6 implementers, but not as helpful for pre-"language designers".  Do you have any thoughts for how closely the perldocs are going to inherit from the synopses?
01:08 TimToady well, smoothing that out has to be an ongoing process, I expect.
01:08 TimToady I'm not sure the perldocs will derive directly from the syns in any case.
01:09 TimToady each of them is in somewhat random order for historical reasons
01:09 TimToady esp the earlier ones that are mostly derived from lists of here's how it's different from P5
01:10 diakopter dare I ask if O'Reilly has co-opted the mind/timeshare of any writers to write POD for perl6 paperbooks?
01:10 diakopter co-opted meaning reserved.
01:10 TimToady well, we'll certainly be working on that at some point, but nothing's really happened there yet.
01:10 diakopter I mean besides the Essentials one
01:10 Alias_ Didn't Damian mention he was planning 6-8? :)
01:13 diakopter who is writing the pod6 parser
01:14 diakopter or the "Perl 6 -> Perl 5 documentation translator" as S26 puts it
01:14 diakopter I'll take that as a "nobody here"
01:15 DebolazX What's the main motivation behind upgrading the POD format?
01:15 TimToady Damian has been working on a pod6 parser, but I'm not sure what state it's in.  Damian's been rather distracted lately for various reasons.
01:15 TimToady like, half of australia catching fire...
01:16 TimToady and relatives in bad shape.
01:16 diakopter is he writing it in perl6?
01:16 diakopter or some transitional form
01:16 Alias__ The fires haven't seemed so bad here...
01:16 TimToady I think it's currently perl5
01:16 Alias__ half of australia catches fire every year
01:16 Alias__ Might be worse in Melbourne
01:16 TimToady DebolazX: what's the main motivation for any of Perl 6?
01:16 Alias__ But yeah, family stuff as usual
01:17 Alias__ He only had time to show up for the dinner speech and then run back home this year at YAPC::AU
01:18 TimToady DebolazX: basically, there are things we liked and things we didn't, so we try to fix the ones we don't without "fixing" the ones we do.
01:19 TimToady DebolazX: along with the basic Perl 6 assumption that it might be easier to fix a bunch of things at once than piecemeal.
01:19 TimToady see Second System Syndrome.
01:19 TimToady and then fix anyway... :)
01:21 Alias__ And hope to hell downstream can keep up
01:21 jan joined perl6
01:21 * Alias__ is not so happy having to solve this cross-language dependencies problem
01:22 Alias__ I'd hoped to avoid it for at least half a decade
01:22 TimToady what, English, American, and 'Strine?
01:22 Alias__ basically
01:22 Alias__ English Depends on "American: Colour" ---> err...
01:24 TimToady well it's an unfortunate fact that the world doesn't arrange itself in a nice little tree of dependencies that "make" can handle...
01:24 TimToady or smartlinks, for that matter.
01:24 diakopter TimToady: perhaps you could convince Damian to put the pod6 parser/converter in the pugs repository so those with more time (but less skill) could nibble with it?
01:25 Alias__ That's only because we haven't presented the world with an easy way in which to go about doing so
01:25 TimToady where "easy" is defined as "my way or the highway" usually... :/
01:26 Alias__ Well, "a way we can automate for you, or that back road over there, or forge your own path"
01:26 Alias__ People seem to take the path of least resistance and most conformity over time
01:27 Alias__ But yes, way too many people implement these sorts of things without sufficient research
01:27 DebolazX I can see reasons to have a perl 6, but I don't really see any obvious big glaring problems with POD.
01:27 TimToady the basic problem is that you can't define dependencies between things that can't be identified.
01:27 Alias__ hrm...
01:28 TimToady that is why Perl 6 has long names all over the place.
01:28 Alias__ I'd argue only TO things that can't be identified
01:28 Alias__ You get the first one for free
01:28 Alias__ Because you can't dep back to it, no circular problems
01:28 TimToady until you move the todos out of the tests, and then you get the identity problem coming and going.
01:29 diakopter DebolazX: (from S26) "Compared to Perl 5 POD, Perldoc's Pod dialect is much more uniform, somewhat more compact, and considerably more expressive. The Pod dialect also differs in that it is a purely descriptive mark-up notation, with no presentational components."
01:30 Alias__ TimToady: elaborate?
01:31 TimToady as you point out, links rooted in a location are self-identifying, which is how the todos currently work in the tests.
01:31 TimToady but the proposals to keep track of the todos outside the tests require
01:32 upd eany one has port scaner?
01:32 TimToady the creation of test identities apart from the location of the :todo
01:32 Alias__ I think I'm out of touch with your particular situation here
01:32 Alias__ My hands on knowledge is pretty thin
01:32 TimToady I think we're just in violent agreement on the principles.
01:32 Alias__ I have enough to do with Perl 5 and CPAN :)
01:32 TimToady it was just another example
01:32 Alias__ ok
01:34 [particle] please don't bring up that example again, you've beaten me over the head with it enough already :)
01:34 Alias__ :)
01:34 TimToady I'm not saying it's always wrong to come up with an identifier based approach.
01:34 [particle] but seriously, i've come around on the todo markers
01:34 TimToady in database terms, you can't do a join with ids
01:34 TimToady shared across tables
01:35 TimToady I just feel like we haven't exhausted the brute force approach here yet.  :)
01:35 TimToady over the long haul you may well turn out to be right.
01:35 Alias__ There's a solution in graph theory somewhere
01:35 [particle] well, if i live long enough...
01:35 Alias__ I'm hunting down research, but it's thing on the ground
01:35 Alias__ thin
01:35 TimToady there's a solution to *everything* in graph theory somewhere.
01:35 Alias__ :)
01:36 TimToady but the identity thing is crucial, whether implicit or explicit.
01:36 Alias__ Infinite directed minimally cyclic graph, on which we need a set of half a dozen lazily evaluated graph traveral algorithms
01:36 Alias__ yes
01:36 Alias__ I do agree
01:37 [particle] i need to get some notes to damian about the perldoc spec... i tried to implement a pod grammar for parrot, but the spec doesn't make it easy
01:37 TimToady you can't follow an edge to an unspecified location.
01:37 Alias__ You can however resolve it from a potential set
01:37 Alias__ And it has to be done lazily
01:37 Alias__ And ideally ordered
01:38 Alias__ The way CPAN works now is CLOSE to a solution
01:38 Alias__ In algorithmic terms
01:38 Alias__ It's too lazy about a few things
01:38 Alias__ in the not-computationally-lazy sense
01:39 Alias__ I have a fuzzy solution in my head
01:39 Alias__ But it's dependany on two things
01:39 Alias__ 1. Package idenfiers (as you say)
01:39 Alias__ 2. A cross-language dependency grammar
01:39 gugod_ joined perl6
01:40 Alias__ But I'm not aware of any decent standards for building up the identifiers
01:40 TimToady There's also a dependency on having the right checksum after you download it.  :)
01:40 Alias__ minor implementation details :)
01:41 Alias__ Wait, or are you saying you want a checksum in the dep itself?
01:41 TimToady easy to neglect
01:41 bjoern_ joined perl6
01:41 TimToady I wasn't saying that, but maybe I should have...
01:41 Alias__ You don't :)
01:41 TimToady had it, erased it
01:42 Alias__ You just want dependencies to identify interface criteria basically
01:42 TimToady I'm thinking about the security problems of pulling in the wrong dependencies...
01:42 Alias__ As long as it's done in a defined way, I'm not sure it's a problem
01:42 Alias__ Once you hold the repository, you're pretty screwed
01:43 TimToady who tells you your dependencies, other than the package itself?
01:43 TimToady if inside the package, you're okay.
01:43 TimToady if external metadata, can probably be spoofed.
01:43 Alias__ All a dep is really, is the package describing the way it talks to the outside
01:43 TimToady see DNS.
01:43 Alias__ Hence Mac::Files 1.00 instead of Mac-Carbon 0.76
01:44 Alias__ The dependency resolver is what needs to convert that into a package identifier
01:44 bsb joined perl6
01:44 Alias__ in CPAN that's the index basically
01:45 TimToady well, it's just a concern as we scale up that we don't open ourselves up for the *ers to tie us into little security pretzels.
01:46 Alias__ If black controls the high ground (repository) it's a Very Bad Situation
01:46 Alias__ Especially with dns-like variable propogation
01:47 Alias__ Mirros don't even update atomically atm
01:47 TimToady that's not my concern.  my concern is that they're blocking the line-of-sight so that people don't know where the high ground is.
01:47 Alias__ how os?
01:48 Alias__ Well, if we need to we can do a full chaining
01:48 Alias__ But that may mean some trouble with mirrors
01:48 TimToady when you type the url of your bank into the browser, how do you know you're not talking to a site in Russia?
01:48 Alias__ The https cert
01:48 Alias__ unless they have that too
01:48 TimToady there has to be an unbroken chain of trust from the high ground to the user.
01:48 Alias__ dns is suspect
01:49 Alias__ root cert to issuer to https cert
01:49 TimToady or some way of sending secure messages through hostile territory
01:49 TimToady that's what I'm saying might be the 3rd requirement.
01:49 * Alias__ nods
01:49 Alias__ I can see something like that to fetch updated repository urls
01:50 Alias__ But there's only so many cases we can cover
01:50 Alias__ Do any security consultants owe us a favour?
01:50 Alias__ If we get rid of FTP things will be simplified
01:50 Alias__ It's beyond time that happened
01:51 DebolazX FTP--
01:51 TimToady ftp is just the messenger
01:52 DebolazX Hence we shoot it.
01:52 Alias__ It's a horrid transport, it's harder to secure, it's highly variable, it's prone to sessioning issues, it's non-transactional, it can't be proxied easily, etc etc
01:52 Steve_p My my my!
01:52 Alias__ Add to that the fact that CPAN clients are of a highly transactional nature anyway
01:53 Alias__ You never actually need a directory list
01:53 * Steve_p watches the lions and tigers and bears prance by
01:53 TimToady nevertheless, once you've acquired the message, it needs to be verifiable that it is from the high ground
01:53 * Alias__ nods
01:53 Alias__ We need experts really
01:53 Alias__ I'm courting someone from AusCERT to review my solution to spam
01:53 Alias__ I'll see what I can do
01:53 TimToady cool
01:54 Alias__ Plus I believe there's some Perl fanboys at large security vendors
01:54 Alias__ Who owned ActiveState?
01:54 Alias__ Sophos?
01:55 Steve_p Yes, temporarily.  Now they just own Sarathy.
01:56 Alias__ Sarathy stayed behind?
01:56 Alias__ oh dear, that explains a few things
01:58 TimToady well, anyway, thanks for running with that.  We need to make sure CPAN continues to get better too.  After all, "The road to heaven is paved with good extensions."
01:59 Alias__ ya
01:59 luqui joined perl6
01:59 Alias__ It's just the pergatory between the language and the CPAN that's the tricky bit :)
01:59 Alias__ (sp)
01:59 TimToady hi luqui
02:00 luqui hello
02:00 TimToady you on Bangladesh time these days.  :)
02:01 luqui something like that
02:01 TimToady well, then good morning!
02:01 luqui heh
02:02 TimToady don't know if we're any closer to nailing down your numeric semantics yet...
02:02 luqui I was thinking about a quick-and-dirty solution
02:02 luqui which would allow you to specify return types for inference...
02:02 luqui like haskell (foo / bar) :: Rat
02:03 TimToady we can currently specify using -->
02:03 luqui you can do that?  ($foo / $bar --> Rat)
02:03 luqui in code, not sigs?
02:03 TimToady not in code yet
02:04 luqui maybe that's what Rat(foo/bar) does?  ...
02:04 TimToady but how is that differnt from Rat($foo / $bar) ?
02:04 luqui hm
02:04 TimToady nod
02:04 luqui well, the point is to select a multi variant, not to cast the answer
02:04 diakopter TimToady: regarding the Russian phishing site emulating your bank, my employer is rolling out our "keyImage" solution tomorrow morning at 7 a.m. for our site, as mandated by federal law.
02:04 TimToady I was
02:04 TimToady just thinking that
02:05 TimToady ...sorry, distracted...
02:05 Alias__ keyImage
02:05 Alias__ ?
02:05 diakopter TimToady: so you're supposed to type in your password only if the displayed image matches the one you chose from a set of a few thousand.
02:05 diakopter (once you type in your username)
02:05 Alias__ oh! heiroglyphic challenge response passwords?
02:05 diakopter and you only get displayed the image if you answer one of your security questions correctly
02:06 diakopter and nonexistent usernames get fake security questions.
02:06 diakopter etc.
02:06 diakopter I helped implement/debug it.
02:06 luqui no public key?
02:06 Alias__ diakopter: You should see this security system I helped review a couple of years ago
02:06 luqui (is this for online, wherever use, then?)
02:06 diakopter merely online.
02:07 Alias__ diakopter: These guys worked out a way that didn't suck too hard to do random pads
02:07 Alias__ er one-time pads
02:07 TimToady I was just thinking that if you wanted to specify --> Rat one place you probably want it as the default all over your lexical scope, and therefore it's something you'd want a pragma or alias for.
02:08 luqui perhaps
02:08 luqui I'm thinking that usually you want to start going to rats when you first divide integers
02:08 luqui other than that, the multis just carry it through
02:08 TimToady nod
02:08 luqui (assuming infix:</> (Rat, Rat unique--> Rat))
02:09 TimToady unique?
02:09 luqui meaning the only multi variant which takes two Rats is the one that returns a Rat
02:09 luqui oh, my, that is tricky
02:10 luqui we can't have infix:</> (Int, Int --> Int) and infix:</> (Int, Int --> Rat)
02:10 luqui without type inference everywhere
02:10 diakopter still on the reverse authentication - there is a javascript client browser/pc profiler that helps "remember" a particular client machine/username pair.
02:10 luqui (I guess we already knew that)
02:10 diakopter for the user's convenience
02:10 diakopter so they don't have to answer their security question every time they log on.  
02:10 TimToady though type inference could be deferred rather late
02:11 TimToady (my point on p6l)
02:11 luqui yeah, run-time type inferrence
02:11 diakopter it's, interestingly, stored in a Flash Cookie, which are not clearable/controllable by any automated/easy means.
02:11 luqui I would like to make a little language to play with that
02:11 diakopter the fingerprint identifier, I mean
02:11 luqui but my hunch is that there are some hiding demons
02:11 diakopter okay, I'll kill my thread.
02:12 TimToady that's probably a good hunch.  :)
02:12 Alias__ ok, heading off to get some work done
02:12 Alias__ later
02:12 Alias__ left perl6
02:12 TimToady could have partial resolution for known contexts and just die on ambiguous multi otherwise
02:12 TimToady kinda my old tie-breaker notion
02:13 luqui at runtime?
02:13 TimToady basically if want can tell you the context, you can resolve
02:14 TimToady and maybe want gets smarter over time as more inferencing happens
02:14 TimToady and turns exceptions into working code. :)
02:14 TimToady hopefully the reverse process doesn't happen...
02:15 TimToady might be a way to get there eventually without doing it all upfront.
02:16 TimToady but to begin with, it's probably sufficient to be able to pragmatically indicate "when I say / I mean --> Rat"
02:17 luqui what if you don't?
02:17 TimToady Or rahter, when I say "Int / Int" I mean "Int / Int --> Rat"
02:17 luqui okay, better
02:17 TimToady though arguably, all finite types are rationals in the computer
02:17 TimToady on some level or other
02:18 luqui you mean built-in numerics?
02:18 TimToady even floats
02:18 bsb Can users adding new multis turn working code back into exceptions?
02:18 luqui because Nums are just rationals with interesting constraints on the denominator
02:18 luqui (and numerator, I suppose)
02:18 TimToady likewise Int
02:18 luqui bsb, unfortunately so
02:19 luqui it's unavoidable
02:19 luqui but like you said, a Num really represents some sort of range
02:19 luqui whereas a Rat is exact
02:19 Khisanth joined perl6
02:19 TimToady I was thinking that all numeric types guarantee interchange through float semantics, but maybe they should guarantee interchange through rational semantics
02:20 luqui tough to add algebraics to that
02:20 TimToady except where hardwired elsewise
02:20 luqui (but nobody adds those anyway)
02:21 TimToady so if you convert a float to some unrelated numeric type that doesn't know float, it would use "star topology" conversion through rationals maybe.
02:21 TimToady but maybe most numeric types hardwire themselves to floaters anyway...
02:22 greenail_ doesn't float-> Int open a can of worms for different platforms/arch?
02:22 greenail_ or even double-> float on different arch
02:22 TimToady on most architectures integers are always exact under floating point
02:22 TimToady unless you exceed precision
02:23 greenail_ well i guess it depends on how it compiles
02:23 TimToady there will always be lossy conversions
02:23 TimToady question is whether to take the loss in stride or carp
02:23 greenail_ well for example gcc 2.x vs 3.x will not behave the same
02:23 greenail_ on different arch
02:23 perlDreamer joined perl6
02:23 greenail_ the difference is tiny but adds up over time
02:24 greenail_ nice thing about java is you don't have to worry about it
02:24 greenail_ c++ you do
02:24 greenail_ not sure how the perl6 stuff works
02:24 TimToady that's what we're trying to nail down, or sideways, or something.
02:25 greenail_ well i did a bunch of work with a game that was trying to get linux to windows games working
02:25 TimToady we will have the ability to request a particular version's semantics, which will help with version skew at least.
02:25 greenail_ the asm was different for differnt platforms, for example optimizing for SSE2
02:25 TimToady if the implementors are smart enough to track version differences
02:25 TimToady and not just slip in changes accidentally.
02:26 greenail_ ya but if you built your perl6 with gcc and I built mine with VC... youhave issues
02:27 diakopter there's a perl6 source in C?
02:27 TimToady It's in the Haskell dialect of C.  :P
02:27 greenail_ well i have no clue how it works with other things... what are you testing with haskell?
02:28 diakopter designing with haskell
02:28 TimToady parrot's in C though.
02:28 greenail_ anyway, it was a problem with a c++ game i worked on once and it is a real bitch to fix unless your asm is the same for a given function
02:29 greenail_ and if you plan to optimize for different arch then i'm sure the problem gets worse
02:29 luqui TimToady, star topology?
02:29 diakopter seen audreyt
02:29 jabbot diakopter: audreyt was seen 3 days 7 hours 56 minutes 25 seconds ago
02:29 allbery_b perl6 source in C:  ghc -fvia-C -keep-hc-files :)
02:30 TimToady convert through a central type rather than providing a complete crossbar.
02:30 perlDreamer Are the default data types (i.e. Num, Rat, Str, etc.) explictly defined in any Synopsis?
02:30 TimToady bad for efficiency but good for generality.
02:30 TimToady define "defined"
02:30 diakopter audreyt must be .... metamorphosing in a cocoon.
02:30 TimToady they're listed...
02:31 TimToady taiwan has been rather coccooned of late.
02:31 perlDreamer A Num is this....
02:31 perlDreamer A Rat is that.... (and how it is different from a Num)
02:31 perlDreamer things like that
02:31 TimToady that's what luqui was requesting the other day
02:31 TimToady and why we're talking about it here and on p6l.
02:32 perlDreamer okay
02:32 perlDreamer once it is decided, will that be added to S02?
02:32 * diakopter wishes p6l were mirrored/botted to #perl6
02:32 TimToady I expect so
02:33 * diakopter and vice versa? lol.
02:34 * perlDreamer goes out on a limb
02:34 perlDreamer Would it be possible to put in some header placeholders for that info to smartlink existing tests against?
02:34 TimToady saw on the outboard side unless you're a Toon.
02:35 perlDreamer POD patches welcome?
02:36 TimToady I was earlier proposing that there be a pugs/ place for such incipient sections.
02:36 TimToady maybe smartlinks could fallback to that if the section isn't found in the official syn yet.
02:37 TimToady then it's just a matter of copying it over at some point, and the smart links follow automatically.
02:37 diakopter okay, so typos and other such would go to the same place
02:37 TimToady or it's clear to the person doing the copying that if they rename it, some smartlinks are probably wrong.
02:38 perlDreamer but there was resistance earlier (from particle?) about smartlinking to non-spec documents
02:38 TimToady typos work well as patches
02:39 TimToady but typos aren't usually as time-critical
02:39 TimToady and the spec maintainers can't be guaranteed to be online when you want 'em.
02:39 perlDreamer and their email boxes are equally dangerous
02:40 TimToady I would make each proposed syn section into its own file.
02:41 TimToady it would be easy enough for smartlinks to grep through all the S02proposed*.pod for instance.
02:42 TimToady presumably if you want to add a paragraph to an existing section that
02:42 TimToady could also be handled similarly
02:42 TimToady assuming the syn maintainer notices that the proposed section name already exists.
02:42 dmq joined perl6
02:42 diakopter did I see some discussion of putting identifiers on each of the tests in each .t?
02:42 perlDreamer well, for smartlinking a =head? individualDataType would work well
02:42 TimToady or maybe there's some way to maintain the proposals in patch format
02:43 luqui or you could break the synopses up totally into file-format
02:43 luqui and then have a script put them together
02:43 luqui so there is more version control possible...
02:43 TimToady hmm
02:43 diakopter but they are not publicly editable
02:43 diakopter ?
02:44 TimToady diakopter: I've been arguing against test identifiers for some months if we can get away without them.
02:44 diakopter TimToady: oh.
02:45 TimToady but that's mostly from the standpoint of managing todo's
02:45 TimToady not from the standpoint of backlinking docs to tests.
02:45 * diakopter wonders out loud about integrating the tests as code into the specs in pod6
02:46 TimToady problem is that most tests test multiple features simultaneously.
02:46 TimToady so you'd end up with massive duplication.
02:47 perlDreamer and heavy smartlinking
02:47 perlDreamer but that's okay
02:47 diakopter but in the current system each test can be smartlinked to only one place, I thought.
02:47 diakopter so it's no worse?
02:48 perlDreamer and each spec item can be linked to multiple tests
02:48 TimToady and you really do want to test multiple features simultaneously or you don't explore the interactions of the features.
02:48 perlDreamer so now we have 3 sets of tests
02:48 TimToady I don't know what the n-to-m limitations are currently.
02:48 perlDreamer implementation specific tests, spec tests, and un-speced tests
02:49 TimToady I don't see why a particular test can't smartlink to multiple specs.
02:49 diakopter I don't think it's supported now.
02:49 perlDreamer it's just a smartlink.pl limitation now
02:49 diakopter the smartlinks say, "until the next smartlink, put it there"
02:50 avar h/w 14
02:50 TimToady so we need "put it there and there and there"
02:50 diakopter or (nestable andor overlapptin
02:51 diakopter or (nestable and/or overlapping) markup
02:51 diakopter smarttags
02:51 TimToady maybe eventually it mutates into kind of an index structure where you have the main entry and a bunch of "see alsos".
02:51 diakopter oh wait, microsoft trademarked "smarttags"
02:51 perlDreamer we'll call our smartags
02:52 TimToady intelligent horticulturalists...
02:52 perlDreamer but watch those typos
02:52 diakopter smarta.s you mean I'm guessing
02:53 TimToady to the pure all things are pure...
02:54 diakopter but not all things are beneficial to the observers of the pure.
02:55 diakopter anyway, paulistic subjectivism aside...
02:56 perlDreamer seems like we came up with two TODOs
02:56 perlDreamer 1) Find a way to link tests to multiple spec lines
02:56 perlDreamer 2) Figure out a way to handle that which is not spec'ed.
02:57 perlDreamer (1) is smartlinks.pl hackery
02:57 perlDreamer how 'bout (2)?
02:58 TimToady need to decommute; will think about it.  &
03:06 diakopter TimToady: sorry for conflating 1Co8 and Tit1:15
03:16 lambdabot joined perl6
04:11 kanru joined perl6
04:15 justatheory joined perl6
04:17 mako132_ joined perl6
04:21 LeeD joined perl6
04:22 Aankhen`` joined perl6
04:29 lambdabot joined perl6
04:32 lambdabot joined perl6
04:39 lambdabot joined perl6
04:54 svnbot6 r14990 | perlDreamer++ | add deliberately failing smartlinks to begin categorizing tests
04:56 Azure-BOT joined perl6
05:27 nipra joined perl6
05:37 justatheory joined perl6
06:29 Odin-LAP joined perl6
06:48 justatheory joined perl6
06:50 drrho joined perl6
07:38 devogon joined perl6
07:39 Khisanth joined perl6
08:22 mj41 joined perl6
08:23 gaal Moose.
08:23 jan__ joined perl6
08:50 iblechbot joined perl6
09:34 BooK joined perl6
09:41 marmic joined perl6
09:43 andara joined perl6
10:13 chris2 joined perl6
10:14 elmex joined perl6
10:17 marmic joined perl6
10:20 kanru joined perl6
10:21 fglock joined perl6
10:35 ruoso joined perl6
10:36 fglock re mp6-mo and yesterday experiments: plugging object models to mp6 is reasonable easy
10:37 fglock it may be better to have a set of models
10:37 fglock like perl5-native, parrot-native, Moose, MO
10:47 fglock TimToady: re http://colabti.de/irclogger/irclogger_log/perl6?date=2007-01-03,Wed&amp;sel=48#l60 : that's my idea of fun :)
10:47 lambdabot Title: #perl6 2007-01-03,Wed, http://tinyurl.com/y4h7h6
11:05 lambdabot joined perl6
11:08 lambdabot joined perl6
11:24 BooK_ joined perl6
11:33 ruoso joined perl6
12:10 Grrrr joined perl6
12:16 fglock joined perl6
12:17 fglock p6-on-p6 needs a new architecture plan
12:22 integral_ joined perl6
12:23 integral_ is now known as integral
12:39 fglock how is a "modern compiler" different from a non-modern one?
12:40 weinig joined perl6
12:41 fglock is there something like a post-modern compiler?
12:41 wolverian brainfuck?
12:42 wolverian (well, that's a language)
12:52 fglock nice paper: http://portal.acm.org/citation.cfm?id=1140123.1140132
12:53 lambdabot Title: Design and implementation of a modern compiler course
12:53 fglock they even have a "Having Fun" section
12:57 wolverian nice
13:11 avar fglock: why does it need a new plan?
13:15 fglock avar: basically, mp6 can be extended to pass p6 tests
13:15 fglock but mp6 has a very simple architecture
13:16 fglock which can lead to maintainance and extension problems
13:17 fglock so it would be nice to refactor mp6 for "modern-ness"
13:17 upd joined perl6
13:34 buetow joined perl6
13:37 riffraff joined perl6
13:37 riffraff hello
14:05 Khisanth joined perl6
14:06 ofer1 joined perl6
14:19 kanru_ joined perl6
14:33 xinming joined perl6
14:34 TSa joined perl6
14:49 Khisanth joined perl6
14:54 kanru_ is now known as kanru
15:02 fglock joined perl6
15:03 fglock is there some de-facto standard for an attribute-grammar language?
15:03 fglock I'm thinking of implementing this as a macro in mp6
15:07 elmex joined perl6
15:08 fglock something like: grammar Foo {  leaf Bar { ... } root X { ... } }
15:08 fglock where 'leaf' is a macro that expands into a method
15:13 _bernhard joined perl6
15:14 fglock hmm - Language::AttributeGrammar
15:18 fglock and also examples/algorithms/attrgrammar.pl
15:28 weinig is now known as weinig|away
15:48 lumi_ joined perl6
15:54 fglock interesting - I could use L::A as the p5 runtime, and TGE as parrot runtime
15:54 svnbot6 r14991 | wolverian++ | Add 'enum' to the vim syntax file
15:55 fglock so all i need to implement is the AG grammar/macro definition
15:59 wilx` joined perl6
16:01 vel joined perl6
16:03 fglock nothingmuch: is the concept of attribute grammars in MO the same as in Language::AttributeGrammar/TGE ?
16:07 nnunley What is MO?
16:07 nnunley Moose Object?
16:08 [particle] metaobject
16:09 [particle] but, it's a perl module
16:12 fglock [particle]: are you familiar with TGE?
16:12 nothingmuch fglock: no, it's composable
16:12 nothingmuch AGs can inherit one another
16:12 nothingmuch and the runtime semantics are different
16:12 [particle] fglock: yes
16:12 nothingmuch it's not yet done though
16:13 nothingmuch nnunley: http://nothingmuch.woobling.org/MO
16:13 lambdabot Title: Index of /MO
16:13 fglock nothingmuch: I'm considering compiling AGs to classes, like I currently do with grammars
16:13 fglock does it make sense?
16:13 nothingmuch yep.. that's what I did
16:14 nothingmuch the problem is the syntax
16:14 nothingmuch or the semantics
16:14 nothingmuch you need either a very statically typed language for highly integrated AGs
16:14 nothingmuch or it  becomes somewhat of a runtime kludge
16:14 * nothingmuch took an almost imperative approach to handling inherited  attributes
16:15 fglock did you look Language::AttributeGrammar impl?
16:15 nothingmuch yes
16:15 diakopter nothingmuch: http://nothingmuch.woobling.org/pugs_test_status/haddock/ is outdated; can I mark it as such in docs/SEEALSO ?
16:16 nothingmuch diakopter: yes please... that page died when I reinstalled the computer that was generating i
16:16 nothingmuch t
16:17 diakopter please excuse the forthcoming newbie questions as I begin to update the docs/pods.
16:19 fglock nothingmuch: my straightforward approach would be to implement a Language::AttributeGrammar-like syntax as a mp6 macro
16:19 nothingmuch that approach is slightly naive
16:20 nothingmuch since perl is so dynamic declaratively inheriting attributes to child objects is very very tricky
16:20 nothingmuch or alternatively not very useful due to it's over simplification
16:20 fglock I wonder how TGE works
16:21 avar diakopter: omgnooblol!
16:21 avar diakopter: please ask questions:)
16:21 fglock it seems to be based on L::A
16:22 fglock nothingmuch: I mean to make it pluggable, like everything else in p6 seems to be
16:23 fglock so a naive first implementation might not be too bad
16:23 nothingmuch that doesnt' change the fact that devising a syntax for the inherited attrs is difficult
16:23 avar just use xslt! /me ducks the resulting flames (rightful flames)
16:23 nothingmuch i believe it's not really possible, unless you require some sort of static typing of the objects you are writing the grammar over
16:25 nothingmuch if you want to make something that works with the MO style AGs then an AG syntax would be a thin macro layer like a class decl
16:25 nothingmuch and the  syntax should be somewhat similar to an event system
16:26 fglock I'm trying to picture that
16:26 nothingmuch the problem with my system is that it's very ugly
16:27 gaal nothingmuch: moose
16:27 nothingmuch sup moose
16:27 gaal moosely moose.
16:27 nothingmuch synthesized attrs are implemented as just methods
16:27 nothingmuch inherited attributes must be declared at the child class
16:27 gaal this is a nice paper: http://homepages.cwi.nl/~ralf/OOHaskell/paper.pdf
16:28 nothingmuch and bestowed attribiutes (inherited attrs from the perspective of the parent) are defined without talking about the child
16:28 nothingmuch instead control is inverted, and the child is passed as an argument to the bestowed attr body
16:29 nothingmuch the way this body is mapped to the child is that when the child is asking for the value of any inherited attribute, if it's not in the AG instance's value table then it'll look for the child's parent (dynamically, cached lookup), and then asks that parent for the bestowed attr over the child
16:30 nothingmuch a parent may bestow an inherited attr on a child at any time as long as it's available when it's needed, which means that the bestowed attr body might take care of an entire collection of children at once
16:31 nothingmuch this is not nearly as romantic as a compile time available relationship map of parent<->child attrs ;-)
16:32 nothingmuch fglock: does that clarify the issues?
16:32 fglock I'm still reading
16:32 * diakopter is annoyed that the html versions of the pod and haddock files in pugs svn are not also in svn, for convenience.
16:33 nothingmuch diakopter: that would be a very annoying thing to keep up to date
16:33 nothingmuch as a rule only human written documents should be in version control
16:33 nothingmuch machine written documents can be automatically generated using scripts and do not need to pollute the revision control
16:34 nothingmuch because when they break what you have is two version in VCS, both seemingly canonical, but different
16:34 fglock hmm - the problem looks a bit to that of the grammar engine
16:34 nothingmuch can you rephrase that sentance?
16:35 fglock one sec
16:36 diakopter in that case, can someone please set up some some cron jobs (or even svn commit hooks) to publish the html versions of the pod and haddock in pugs svn to somewhere
16:36 nothingmuch i think that's already set up somewhere
16:37 nothingmuch (besides my defunct copy)
16:37 diakopter nothingmuch: any tips on where?
16:37 nothingmuch there's also the smopke script, in util
16:37 nothingmuch which i used to generate that
16:37 nothingmuch http://svn.pugscode.org/pugs/util/smoke_loop.sh
16:37 nothingmuch no, sorry
16:37 nothingmuch i haven't needed the haddock stuff in over a year
16:38 andara joined perl6
16:38 diakopter anyone else know where new versions of these are put?
16:38 diakopter if anywhere?
16:40 diakopter alrighty then, I reiterate my request for automated publishing somewhere, and assert that weekly-updated html versions in svn are better than never-updated versions nowhere.
16:41 TimToady http://spec.pugscode.org
16:41 lambdabot Title: Official Perl 6 Documentation
16:42 kolibrie diakopter: generated files in version control is never a good idea
16:42 fglock nothingmuch: just wondering - an AG sentence operates on a data structure, while a regex operates on a string snippet - I wonder if the concept of match-object applies
16:42 diakopter I didn't say it was a good idea.
16:43 kolibrie "better than never-updated versions"
16:43 diakopter something can be better, but still not good.
16:43 nothingmuch fglock: not really, because rules are top down input, bottom up output
16:44 nothingmuch AGS are top down input, but the output flows bothwards
16:44 diakopter TimToady: I am looking for html versions of http://svn.pugscode.org/pugs/docs/Perl6/
16:44 lambdabot Title: Revision 14991: /docs/Perl6
16:46 TimToady well, S29 is Functions
16:46 TimToady spec.pugscode.org just has them under their S numbers instead
16:47 diakopter the ones under http://svn.pugscode.org/pugs/docs/Perl6/Spec/  only, I think.
16:47 lambdabot Title: Revision 14991: /docs/Perl6/Spec
16:47 diakopter ?
16:47 dmq hi all
16:48 nothingmuch fglock: fwiw i really would like to see rules over data structures as well ;-)
16:49 fglock rules accept parameters, which you can use for top-down flow
16:49 * dmq hopes at some point TimToady expands on his comment in http://perlmonks.org/index.pl?node_id=592358
16:49 lambdabot Title: Re^3: Multiple uses of (?{ code }) do not appear to be called
16:50 pbuetow joined perl6
16:57 nelhage joined perl6
17:00 * TimToady does not have the bandwidth to engage in protracted discussions of the shortcomings of the P5 regex design.  TimToady just wants to point out that interpolation (and the threat of interpolation) makes it very hard to understand how the lexical scopes should work.
17:02 kanru joined perl6
17:02 justatheory joined perl6
17:15 diakopter ? my €foo = "a string"; say €foo;
17:15 trym|work joined perl6
17:17 diakopter ?eval my €foo = "a string"; say €foo;
17:17 evalbot_r14991 Error: ␤Unexpected "\8364"␤expecting formal parameter, context or "("
17:19 fglock nothingmuch: maybe I should not call it AG, but mp6-tge
17:19 nothingmuch what does that change?
17:20 fglock it does not raise expectations too high
17:21 nothingmuch =P
17:22 chris2_ joined perl6
17:22 fglock I wonder what does =P means in this context :)
17:23 nothingmuch i don't understand why you're bothering, to be honest
17:25 kanru joined perl6
17:34 fglock re bothering: because it's a p6 design decision
17:36 TimToady do you mean a future decision or a past one, and do you mean a language decision or an implementation decision?
17:38 TimToady I'm just not sure which "it" you're referring to...
17:38 fglock it's a lazy "it"
17:38 TimToady :)
17:39 TimToady fwiw I kinda like the -tge approach
17:39 TimToady because it makes it sound like convergence is happening.
17:40 TimToady but from a language standpoint I officially don't care what happens to the AST after the parser is done generating it.
17:40 fglock I really care about convergence
17:40 TimToady as long as the parser is powerful enough to change grammars in midstream.
17:40 fglock because that's a possible source of developers
17:41 TimToady me too, just not with my language designer hat.  :)
17:41 fglock mp6 is powerful enough, but it needs to "look" powerful
17:43 TimToady I thought mp6 was just for bootstrapping...
17:43 TimToady don't mind if p6 looks powerful though.  :)
17:43 fglock yes, that's for next step between mp6 and p6
17:44 fglock mp6 is ready enough
17:44 fglock so it's time for architecture improvements
17:45 TimToady still don't know if my language designer hat should be feeling itchy...
17:47 fglock one possible idea would be to provide some form of AG, to make the compiler people happy
17:47 vel joined perl6
17:48 TimToady I'm not sure AGs are actually powerful enough.
17:48 TimToady need to run an errand &
18:04 Odin-LAP joined perl6
18:04 nipra joined perl6
18:14 BooK joined perl6
18:16 tri joined perl6
18:19 buu_ joined perl6
18:26 buubot joined perl6
18:28 gnuvince joined perl6
18:35 weinig|away is now known as weinig
18:36 penk joined perl6
18:40 justatheory joined perl6
18:43 tri left perl6
19:11 justatheory_ joined perl6
19:13 chris2_ is now known as chris2
19:32 polettix joined perl6
20:02 cognominal joined perl6
20:07 buu_ is now known as buu
20:14 devogon joined perl6
20:19 beppu_ joined perl6
20:23 thepler joined perl6
20:32 allbery_b left perl6
20:36 buubot joined perl6
20:43 Aankhen`` joined perl6
21:16 larsen_ joined perl6
21:18 ozo joined perl6
21:22 ashleyb joined perl6
21:25 ashleyb s
21:25 justatheory joined perl6
21:45 iblechbot joined perl6
22:05 Kronuz joined perl6
22:06 Kronuz hey, how's perl6 comming?
22:09 Tene Coming pretty well.
22:09 perlDreamer joined perl6
22:14 Kronuz good :)
22:15 Kronuz is there any release date yet?
22:15 Kronuz will it change too much from previous perl?
22:15 Kronuz (specially in the syntax)
22:15 Kronuz and what's that pugs thing?
22:16 perlDreamer pugs is one implementation of perl6, written in Haskell
22:16 Kronuz oh
22:16 Kronuz I'm confused :P
22:16 mdiep joined perl6
22:16 perlDreamer perl5 is written in C
22:16 Kronuz I heard only about parrot
22:16 kolibrie as far as syntax, the spec is at http://dev.perl.org/perl6/doc/synopsis.html
22:17 lambdabot Title: Synopses - perl6
22:17 perlDreamer parrot is written in C as well, and it will handle perl6
22:17 perlDreamer pugs is farther along, if I understand things correctly, in that it implements more of the spec than the parrot implementation right now
22:17 Kronuz and pugs is the Haskell version or equivalent of parrot?
22:17 perlDreamer Haskell is the underlying language used to write a perl6 compiler and interpreter
22:18 perlDreamer that project is called pugs
22:18 perlDreamer Perl6 Users Golfing System
22:18 perlDreamer PUGS
22:18 Kronuz so what's parrot then?
22:18 Kronuz the same thing but for C
22:18 Kronuz ?
22:18 perlDreamer parrot is a virtual machine written in C that will actually be able to compile and interpret several languages, perl6 included
22:19 kolibrie there is also a perl5 version of perl6 called v6.pm (on CPAN)
22:19 Kronuz this is all too confusing ...
22:19 Kronuz <.<
22:19 Kronuz >.>
22:20 perlDreamer here's an analogy, maybe not a good one
22:20 perlDreamer There's a language called C#
22:20 perlDreamer It was two interpreters
22:20 perlDreamer One written by Microsoft
22:20 mdiep joined perl6
22:20 perlDreamer and another one written by an open source team.
22:20 Kronuz so Perl6 is only a spec?
22:20 perlDreamer Right
22:20 Kronuz oh
22:20 Kronuz I see :)
22:21 mj41 joined perl6
22:21 Kronuz and there are compilers for perl6
22:21 ashleyb joined perl6
22:21 Kronuz (from different groups)
22:21 perlDreamer yes
22:21 Kronuz one of them being pugs
22:21 perlDreamer different but strongly related, yes
22:22 Kronuz so pugs compiles perl6 into what? machine code?
22:22 perlDreamer no.
22:22 Kronuz "virtual" machine code then?
22:22 Kronuz (that it's run with parrot)
22:22 Kronuz <.<
22:22 perlDreamer that's run by pugs
22:23 Tene eventually pugs will be able to compile to parrot code
22:23 Kronuz o_O
22:23 Tene I believe
22:23 Kronuz this is more confusing that it used to be a few months ago
22:23 Kronuz ^_^
22:23 perlDreamer it's been this way for a long time
22:23 kolibrie Kronuz: do you have a commit bit?
22:23 Tene If all you want to do is play around with some perl6 stuff, all you need to use is pugs
22:24 Kronuz a commit bit?
22:24 kolibrie for the pugs repository?
22:24 Kronuz nope
22:24 kolibrie what's your e-mail address?
22:25 Kronuz what language is pugs written?
22:25 perlDreamer Haskell
22:25 lumi_ There's also a Perl5 implementation going on
22:25 kolibrie we give out commit bits to people who want to help out
22:25 Kronuz I have no experience with Haskell
22:25 lumi_ is now known as lumi
22:26 Kronuz I'd much rather like to help with the C version
22:26 kolibrie help is can be writing tests, updating documentation, etc.
22:26 perlDreamer lots of ways to help out
22:26 ashleyb joined perl6
22:26 Kronuz it looks like a major undertake you've got youselves into (with perl6)
22:26 kolibrie parts of pugs are written in perl6 already
22:26 perlDreamer and parrot and pugs will be sharing test suites soon, so writing tests benefits both projects
22:27 Kronuz what about performance?
22:27 Kronuz shouldn't the interpreter be done in C for performance?
22:27 perlDreamer people say pugs is slow, but I've never seen any data for or against that
22:27 Kronuz the interpreter is going to be parrot, right?
22:27 [particle] Kronuz: if you'd like to help out with parrot, join #parrot (irc.perl.org)
22:28 Kronuz that's the VM code interpreter, isn't it?
22:28 perlDreamer "a" VM code interpreter
22:28 [particle] think of it this way... there are three VMs for perl6 now
22:28 Kronuz O_O
22:28 [particle] one is haskell, one is perl 5, and one is c-based
22:29 [particle] parrot is the c-based VM for perl 6
22:29 Kronuz pugs, perl5's and parrot?
22:29 Kronuz (respectively)
22:29 [particle] pugs, v6.pm, and parrot
22:29 Kronuz :)
22:29 Kronuz I think I sort of understand now
22:29 Kronuz that's to interpret the VM code
22:29 [particle] three different back ends implementing perl6, the high level languages
22:30 Kronuz now there are compilers too then
22:30 [particle] *language
22:30 kolibrie and MiniPerl6 is being written in perl 6 with a perl 5 bootstrap - but it's not bootstrapped yet
22:30 perlDreamer each VM is also it's own compiler
22:30 Kronuz oh
22:30 Kronuz but the VM code is the same for all?
22:30 perlDreamer nope
22:30 Kronuz :S
22:30 [particle] currently, there is one compiler per vm
22:31 Kronuz and so will there be a native machine code perl6 compiler?
22:31 [particle] maybe someday
22:32 Kronuz sounds complicated
22:32 [particle] parrot is a virtual machine. perl6 code is compiled to pir (parrot intermediate representation)
22:32 [particle] ...with a compiler written in pir.
22:32 [particle] pir is compiled to native code by parrot
22:33 Kronuz so parrot compiles to native code then? or just interprets as a VM?
22:33 Kronuz (like java)
22:33 [particle] jit is as close as you'll get to native code
22:34 Kronuz "Parrot (the virtual machine on which Perl6 will run) can compile your program to bytecode"
22:34 [particle] parrot won't spit out c, it'll spit out bytecode
22:34 Kronuz I know, C is out of the question, I meant native machine bytecode
22:35 Kronuz i386 or x64 bytecode
22:35 [particle] yes. pugs does the same (since haskell is compiled in c)
22:35 [particle] yes, or ppc
22:35 [particle] wait... actually, the bytecode is platform-independent
22:35 perlDreamer yeah
22:35 [particle] that's the point of a virtual machine
22:35 Kronuz that's what I asked ;)
22:36 [particle] compile on win32, run on linux64
22:36 perlDreamer but not on a different implementation of perl6
22:36 [particle] no
22:36 Kronuz so it never goes as low as real native machine bytecode
22:36 [particle] at leas, not yet
22:36 Kronuz that would be nice to have (for the performance)
22:36 Kronuz tho' it's probably a questionable performance gain you could get
22:37 [particle] it's definitely questionable
22:37 [particle] you can write platform-specific optimized bytecode if you want
22:37 Kronuz I could bet perl6 is pretty complex to even matter going this low in bytecode level
22:37 Kronuz (to really gain performance)
22:37 mdiep joined perl6
22:38 Kronuz unless the compiler is very, and I mean VERY smart
22:38 [particle] it's not c or ada
22:38 Kronuz which could eventually become... but that would take years and years of hard work
22:39 [particle] it's in the class of languages with python, ruby, etc. basically, you should expect similar performance to perl 5.
22:39 [particle] however, we're working to make it faster. parrot can do many things faster than perl 5 can.
22:39 Kronuz so, I've never understood, why was perl6 spawned if it's so different from perl5?
22:40 [particle] languages grow and change. perl 5 is *old*
22:40 perlDreamer the object model is trying
22:40 Kronuz I would have guessed this radical shift would have required a change in the name
22:40 ruoso joined perl6
22:40 [particle] perl 6 is  designed to  be a language for the next 100 years
22:40 Kronuz I suppose you're addressing all the "issues" (if you can call them that) in perl5
22:41 perlDreamer plus there's the idea of having a global VM that could interpret lots of languages
22:41 perlDreamer that's parrot
22:41 Kronuz like the huge memory consumption that everybody complains in certain circles
22:42 dmq people complain about that?
22:42 Kronuz definitely sounds interesting, perl6 and parrot
22:42 dmq really. weird.
22:42 Kronuz I should have said "complain" instead
22:42 Kronuz it's just one of the things they say, you know
22:42 [particle] kronuz: i've got to run. but if you'd like to help on parrot or pugs, we'd appreciate it. join #parrot (irc.perl.org) or subscribe to parrot-porters@perl.org
22:42 Kronuz "perl consumes too much memory"
22:42 Tene Kronuz: they're shipping an extra 512M of ram with every download of parrot.
22:43 Kronuz okay particle, thanks :)
22:43 Kronuz Tene: lol
22:43 Kronuz so I suppose memory is also "wasted" a lot with parrot
22:43 kolibrie and if ever you want a pugs commit bit, just ask here and someone will send you one
22:44 Kronuz thanks kolibrie :)
22:44 Kronuz ... if only I had more time :(
22:44 perlDreamer that's the nice thing helping out
22:44 Kronuz (I wish I was immortal, but I'm just immoral)
22:44 Kronuz j/k
22:44 perlDreamer you can do as little or as much as you have time for
22:45 Kronuz I suppose one can't still use perl6 in production
22:45 Kronuz and it's still a long way till then
22:45 perlDreamer people do
22:45 Kronuz really?
22:45 kolibrie I do
22:45 Kronuz hmm
22:46 Kronuz 'cause I'm rather new even with perl5
22:46 Kronuz but the thing is I'll use mod_perl mostly, not really plain perl5
22:46 * kolibrie wanders home &
22:47 Kronuz I honestly hope perl6 can compete with ruby, python and the new-gen languages (this late in the game)
22:47 Kronuz sounds like a dangerous move, the perl5 to perl6 shift
22:48 perlDreamer http://radar.oreilly.com/archives/2006/12/philosophy_of_n.html
22:48 lambdabot Title: O'Reilly Radar > Philosophy of Non-Competition
22:48 Kronuz :P
22:48 Kronuz still, you know what I mean
22:49 Kronuz there's this thing called "evolution theory"... and many think it also applies to software
22:50 BooK joined perl6
22:52 Kronuz hey, let's start programming Glick!
22:52 Kronuz lol
22:52 Kronuz :P
22:52 Kronuz or Chicha
22:53 elmex joined perl6
22:54 Kronuz hypothetical variables? hyperoperators?
22:58 mdiep joined perl6
23:11 lisppaste3 joined perl6
23:19 Psyche^ joined perl6
23:27 Psyche^ is now known as Patterner
23:29 ashelyb_ joined perl6
23:52 jiing joined perl6
23:58 perlDreamer left perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo