Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 67 lines (41 sloc) 2.078 kb
c04b98d2 »
2010-03-01 push latest to branch, will clean up after
1 =BioPerl 6 (bioperl-experimental)=
2
3 The experimental classes in this directory are test implementations for Perl 6.
4 Most of these are similar to perl5-based BioPerl with simple Perl 6
5 translations. Hear thar be dragoons.
6
7 =Notes on Perl 6=
8
9 Perl 6 is a specification and thus can represent multiple implementations. We
10 recommend strictly following the Perl6 spec, defined in a series of synopses:
11
12 http://feather.perl6.nl/syn/
13
14 Note that much of the specification is still in flux or is unfinished; much of
15 this is due to changes from experimenting with several preliminary Perl 6
16 implementations, such as Pugs or Rakudo (Perl 6 on Parrot), and parsing Perl 6
17 using Larry Wall's STD.pm grammar.
18
19 Once the Perl 6 specification is considered complete, BioPerl 6 would then be
20 expected to run on any Perl 6 implementation passing the official Perl 6 test
21 suite. Until then, we will recommend the latest Parrot build from subversion
22 along with the latest Rakudo checkout (currently packaged with Parrot but soon
23 to be located in a separate repository).
24
25 =Chris's Notes=
26
27 ==Interfaces vs Classes==
28
29 In general, I am defining strict interfaces as roles and interface
30 implementations as classes. This is due to several interfaces actually defining
31 methods that are common to all implementations.
32
33 Defining interfaces as roles has a specific advantage, as roles can be mixed-in
34 per instance at runtime or class-wide at compile time:
35
36 # compile-time
37 class Bio::PrimarySeq is Bio::Root::Root does Bio::RangeI {
38
39 }
40
41 # runtime mixin
42 my $seq = Bio.PrimarySeq.new();
43 my $seq does Bio::AnnotatableI;
44
45 ==Class Methods==
46
47 Multiple dispatch. Named/positional/required/optional/slurpy/invocant
48 parameters. Type checking. Variable return contexts (scalar, list, hash, etc.).
49
50 ==Named parameters==
51
52 Named parameters/arguments are now part of the Perl6 specification and can be
53 passed using comma notation or using Pairs:
54
55 my $seqobj = Bio::PrimarySeq.new(seq => $rawseq, description => $desc, :alphabet<dna>);
56
57 ==Getter/Setters==
58
59 ==Class Methods==
60
61 ==Tests==
62
63 None yet (soon to be added)
64
65
66
Something went wrong with that request. Please try again.