Dual-license your content for inclusion in The Perl 5 Wiki using this HOWTO, or join us for a chat on irc.freenode.net#PerlNet.

User:MitchellNCharity

From PerlNet

Jump to: navigation, search
Update - Working on ruby backends for p6 ended up my "turn of the year" project, rather than continuing with this page. The need still exists, so perhaps I'll get back to it. Though the wiki having ParserFunctions turned off may necessitate doing it elsewhere. But if not for this wiki existing, I may well have not revisited the concept at all. So thank you. MitchellNCharity 13:07, 5 February 2008 (EST)

It seems to have become traditional for me to do a Perl 6 project early in the new year. Another xmas passes, but it's not the awaited one. So thoughts turn to how the process can be nudged along.

This year (2008), the tentative project is a "Perl 6 reference notes for implementers". Basically, even after several years of working with p6, including writing a backend, a partial full-depth implementation, and various other things, I still don't feel I have a good grasp of the language. The synopses are organized in a way I find difficult to use. And there is a lot of information an implementer needs which is not in the synopses, but must instead be recovered from various implementation source, mailinglist threads, asking questions, etc. I'd like to reduce the barrier to doing p6 implementations. That we may finally have a real one.

Why on perl.net.au? It's a mediawiki. Templates and ParserFunctions are very poorly engineered, but at least they exist. Even if perl.net.au isn't running ParserFunctions at the moment. The p5 wiki's socialtext does not appear to have any similar abstraction mechanism, unless you run it yourself and edit source. The abstraction is needed for a project like this. And running a wiki is more than I'd like to commit to.

Tentative plan is to:

  • create a Template to colorfully label text as {spec,speculative,contra-spec,question} with spec links
    No ParserFunctions :(. get by with a minimal hierarchical pools of templates, until enough content exists to plausibly ask the perl.net.au folks about adding support for ParserFunctions.
  • provide an orienting intro to some aspects of p6 (for language design folk)
  • starting with what I fuzzily believe to be the p6 core, multi-methods, types, and namespaces (and thus also captures and signatures), work to create a cross-referenced single-page "reference manual"-style documentation of the language spec, and perhaps of implementation issues.
    or just add enough content to establish "realness" and a style, and ask for contributions? particle's "far more than everything you wanted to know about lexical pads"? oo bootstrap?
    or whatever might be most useful to kp6 to have documented ahead of development?

Contents

P6RN

Perl 6 Reference Notes

Sources

need links to

  • STD
  • alternate presentations of sNN
  • what else?

Names

Name resolution MOP

unspec

brainstorming:

signature:
 multi mumble ( Scope?, $type, $name, *%unused_args --> Container)
based on #CANDO

for mumble of:

  • resolve
  • compile-time resolve
  • compile-time resolve lexically
  • compile-time resolve in package

Runtime resolution

aka Autoloading

multi CANDO ( MyPackage, $type, $name, *%unused_args --> Container)   s10/Autoloading

STD resolution

Symbol tables

Pads

Signature and Capture

Signature

Generalized formal arguments. Aka p6 "parameters". Generalized left-hand side.

Capture

Generalized argument values. Aka p6 "arguments". Generalized right-hand side.

Assignment

Binding

Application

Container

Value

Type

Multi-methods

Multi-method dispatch

Objects

Personal tools