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