Perl6-Pugs
view release on metacpan or search on metacpan
docs/Pugs/Doc/Hack.pod view on Meta::CPAN
| |-- Text
| |-- pcre Import of PCRE source
| |-- perl5 Perl 5 bidirectional call support
| |-- perl6 The Perl 6 prelude (definition of builtins)
| |-- pge Import of PGE (Parrot Grammer Engine) source
| `-- syck Import of Syck source
|
|-- t Perl 6 general test suite, for all implementations
| |-- 01-sanity Basic lang features needed to run Test.pm
| |-- 02-test-pm Checks that Test.pm itself works (parts dup ext/Test/t/*)
| |-- Dialects Perl 6 non-standard dialects
| |-- Synopsis Pointers to online AES docs and tests
| |-- Test-Less Test index for test-less utility
| |-- builtins Builtin function tests
| |-- data_types Basic data type tests
| |-- examples Make examples/ tree act as tests
| |-- general Miscellaneous tests
| |-- junction Junction tests
| |-- macros Macro tests
| |-- magicals Magical variable tests
| |-- oo Object Oriented programming tests
| |-- operators Operator tests
| |-- packages Tests for packages
| |-- perl5
| |-- pil
| |-- rules Perl 6 rule and Perl 5 regex tests
| |-- run Tests for pugs command-line arguments
| |-- statements Statement-level construct tests
| |-- subroutines Block/Code/Sub/etc. tests
| |-- syntax Basic syntax tests
| |-- types Tests for types
| |-- unspecced Tests for unspecced extensions to Perl 6
| |-- var Variable declaration tests
| `-- xx-uncategorized Uncategorized tests for known broken behavior
|
|-- third-party Third party dependencies of Pugs, bundled for convenience
| |-- HsJudy
| |-- HsSyck
| |-- TextRegexLazy
| |-- fps
| `-- judy
|
`-- util Utilities for hacking and testing Pugs
|-- catalog_tmpl
|-- livecd Tool to create a minimalistic Pugs Live CD
`-- smokeserv
=head2 Subversion properties
If you add a new text file (e.g. a test, a C<.pm>, etc.) to the repository,
please use C<util/add-svn-props.sh> to add standard Subversion properties to
your new file:
$ ./util/add-svn-props.sh newfile1 newfile2
Ideally, this is done after you add the file, but before you commit it.
It can be run later if for some reason it's run initially.
If you're on Win32 and can't run shell scripts, run C<svn> manually:
$ svn propset svn:eol-style "native" newfile1 newfile2
$ svn propset svn:mime-type "text/plain; charset=UTF-8" newfile1 newfile2
If you create a new subdirectory under C<ext/>, please remember to set the
C<svn:ignore> property to tell Subversion to ignore automatically generated
files like C<Makefile> or C<blib/>.
$ cat > /tmp/props
pm_to_blib
blibdirs
Makefile
Makefile.old
blib
$ svn propset svn:ignore -F /tmp/props ext/Your-New-Module
Except for the files in F<script/> and F<util/>, C<svn:executable> should
always be unset, even for test files.
=head2 Shebang lines
All test files should not use any shebang line, as they specify a single
runtime for the code but Perl 6 code should run under multiple runtimes,
Pugs and the v6 Perl 5 module to name two. Remember to put a C<use v6> in
the beginning of your Perl 6 programs, too, to keep perl5 from accidentally
running Perl 6 code.
=head2 Naming conventions
=over
=item *
"Perl 6" is the name of the programming language and the project, while "perl6"
is the name of the Perl 6 compiler/interpreter.
=item *
"Pugs" is the name of the Pugs project, while "pugs" is the name of the binary
C<pugs>, i.e. the compiler/interpreter.
=item *
"Perl 5" is the name of the programming language and the project, while "perl5"
is the name of the Perl 5 interpreter.
=back
=head2 Editing
There is a F<util/perl6.vim> Vim syntax file. There is an
enhanced F<util/cperl-mode.el> Emacs mode. If you don't use it,
then original perl-mode works better than original cperl-mode.
Where applicable, conventions documented in Damian Conway's "Perl Best
Practices" book (O'Reilly, 2005) should be followed by default. At the very
least, all indenting should be done with spaces (4 per indent level) rather than
tabs, so the code and documentation looks the same to everyone.
If you use Vim, you may want to set the following settings:
set shiftwidth=4 autoindent expandtab smarttab softtabstop=1
This will cause Vim to insert four spaces instead of a real tab upon pressing
C<< <Tab> >>. The equivalent settings for Emacs are:
c-indentation-style: bsd
c-basic-offset: 4
indent-tabs-mode: nil
If you use Emacs with the enhanced F<util/cperl-mode.el>,
you can set these code conventions in your config file with:
(add-hook 'cperl-mode-hook
'(lambda () (cperl-set-style "Pugs")))
( run in 4.070 seconds using v1.01-cache-2.11-cpan-71847e10f99 )