Changeset 7843 for docs/AES/S22draft.pod

Show
Ignore:
Timestamp:
11/05/05 11:41:57 (3 years ago)
Author:
autrijus
Message:

[Massive backport from svn.perl.org now openfoundry is back]

* theorbtwo notes that FIRST {} blocks did not

desugar into anything that passes PIL compilation,
as it's useing a Stmt in LValue position.
Fixed by desugaring using ternary if.

* Squash an empty import warning for precompiled preludes.

* Support for "./pugs -C PIL2".

Currently, "-C PIL" and "-C PIL1" both maps to PIL1,
but some day "-C PIL" may change to PIL2.

* Repo copy Pugs.CodeGen?.PIL to Pugs.CodeGen?.PIL2
* Also rename CodeGen?.PIL to CodeGen?.PIL1

* Add DrIFT-generated source of PIL2.hs.

* Repo copy PIL1 to PIL2 for the long-much-overdue PIL2

refactoring. The goals are:

  • Compile time object serialization
  • Lexical hoisting
  • Static creation of Code objects with scope (no PSub forms)
  • Full Cxt information
  • PIL2 is *after* type erasure -- *no* static type annotation should be left after that -- it's somewhere between F<: and ANF, so to speak.

* Adds support for "./pugs -BPugs -e ...", which just takes

-CPugs output and feed to the "runghc" executable in PATH.

* pugscc: chase the s/MainCC.mainCC/Main.main/ change

as the now-cabalized Pugs package no longer exports "main".

* Compile-time objects now survives "./pugs -CPugs" compilation.

This means the line below works now:

pugscc -e 'class F {}; my $x ::= F.new; say $x'

Previously, the ::= would prevent compilation because we
did not have a serialization protocol for VObject types.
(This work is going to be carried over to PIL.)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • docs/AES/S22draft.pod

    r7842 r7843  
    99Jos Boumans <kane@cpan.org> 
    1010Autrijus Tang <autrijus@autrijus.org> 
    11 Florian Ragwitz <rafl@debian.org> 
    1211 
    1312=head1 VERSION 
     
    2423 
    2524'package management means several things': 
    26     - metadata collection                           (1) perl6-thingy or maybe debtags? 
     25    - metadata collection                           (1) perl6-thingy 
    2726    - package building                              (2) make dist 
    2827        - intermediate format for transport 
     
    3029            - decomposed to hooks and probes 
    3130        - uploading package to central area         (3) CPAN 
    32         - indexing                                  (4) apt-ftparchive 
    33                     - I don't think apt-ftparchive is enough here. I think we'll need to set up 
    34                           or even wright something like dak, the Debian archive maintaince scripts 
    35                           packages.debian.org/dak 
    36         - understanding/querying index              (5) apt-cache, debtags 
     31        - indexing                                  (4) aptftp-archive 
     32        - understanding/querying index              (5) apt-cache 
    3733        - fetching package 
    3834        - building final package                    (6) dpkg-deb 
     
    116112 
    117113=head3 Repositories 
    118  
    119 My ideas for the repository layout look like this. It's modeled after the 
    120 Debian archive structure. 
    121  
    122  / 
    123  |- dists/                  This directory only contains so called Packages files. 
    124  |  |                       They know some meta-information about the packages (description, ...) 
    125  |  |                       and a path to the real package inside pool/. Using this Packages 
    126  |  |                       files modules can be categorized very well. There are more then the 
    127  |  |                       showed categories possible, of course. It's only an example. 
    128  |  | 
    129  |  |- authors/             The whole archive sorted by authors 
    130  |  |  |- stevan.gz         Stevan's modules 
    131  |  |  |- autrijus.gz       All of autrijus modules 
    132  |  |  |- autrijus/ 
    133  |  |  |  |- Perl6-Pugs.gz  Individual modules 
    134  |  |  |  `- Acme-Hello.gz 
    135  |  |  `- rafl.gz           rafl's modules. 
    136  |  | 
    137  |  |- languages/           The archive sorted by language 
    138  |  |  |- perl.gz           All available perl modules 
    139  |  |  |- perl/ 
    140  |  |  |  |- kane.gz        kane's modules 
    141  |  |  |  `- gbarr.gz       gbarr's modules 
    142  |  |  |- js.gz             All js modules 
    143  |  |  |- js/ 
    144  |  |  |- ruby.gz 
    145  |  |  `- ruby/             Ruby stuff 
    146  |  | 
    147  |  `- modules/             Categorized by modules 
    148  |     |- DBI/ 
    149  |     |  |- timb.gz        Tim's DBI 
    150  |     |  `- rafl.gz        My DBI 
    151  |     |- Net-SMTP/ 
    152  |     `- Net-IMCP/ 
    153  | 
    154  `- pool/                       The real modules are stored here. The Packages files point here. 
    155     |- a/                       Modules startihg with 'a' 
    156     |  |- Acme-Foo/             All Acme-Foo versions 
    157     |  |  |- Acme-Foo-0.1.deb   Packages for specific Acme-Foo versions 
    158     |  |  `- Acme-Foo-0.2.deb 
    159     |  |- Acme-Bar/ 
    160     |  `- Acme-Hello/ 
    161     |- b/ 
    162     |- c/ 
    163     |- ./ 
    164     |- ./ 
    165     |- ./ 
    166     |- y/ 
    167     `- z/ 
    168114 
    169115=head3 Probing 
     
    261207            - without which we can't possibly roll this out 
    262208 
    263 rafl thinks: 
    264 - dpkg seems to be not the optimal choice 
    265     - maybe only adopt the package and metadata format from the .deb format version 2 
    266           and write the tools to manipulate and install it ourself. Preferably in Perl 6. 
    267         - I fear that tools like dpkg/apt/.. aren't portable as we need it because they 
    268           were mainly written for use with a single Linux distribution. 
    269         - The Debian tools can be useful as a provisional solutions until we wrote 
    270           something own or as a reference implementation. 
    271  
    272209=head2 Policy File 
    273210