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