Permalink
Browse files

push latest to branch, will clean up after

  • Loading branch information...
1 parent 1f9ad36 commit c04b98d2136092de2b35942e65b365a1d828d591 Chris Fields committed Mar 1, 2010
View
@@ -1,20 +1,19 @@
-PERL6=<PERL6>
+PERL6=perl6
RAKUDO_DIR=<RAKUDO_DIR>
PERL6LIB='<PERL6LIB>:$(RAKUDO_DIR)'
-SOURCES=lib/Bio/Root/Root.pm \
- lib/Bio/RangeI.pm \
- lib/Bio/Range.pm
+SOURCES= ./Test.pm \
+lib/Bio/Root/Root.pm
PIRS=$(SOURCES:.pm=.pir)
all: $(PIRS)
%.pir: %.pm
- env PERL6LIB=$(PERL6LIB) $(PERL6) --target=pir --output=$@ $<
+ $(PERL6) --target=pir --output=$@ $<
clean:
rm -f $(PIRS)
test: all
- env PERL6LIB=$(PERL6LIB) prove -e '$(PERL6)' -r --nocolor t/
+ prove -e '$(PERL6)' -r --nocolor t/
View
@@ -0,0 +1,66 @@
+=BioPerl 6 (bioperl-experimental)=
+
+The experimental classes in this directory are test implementations for Perl 6.
+Most of these are similar to perl5-based BioPerl with simple Perl 6
+translations. Hear thar be dragoons.
+
+=Notes on Perl 6=
+
+Perl 6 is a specification and thus can represent multiple implementations. We
+recommend strictly following the Perl6 spec, defined in a series of synopses:
+
+http://feather.perl6.nl/syn/
+
+Note that much of the specification is still in flux or is unfinished; much of
+this is due to changes from experimenting with several preliminary Perl 6
+implementations, such as Pugs or Rakudo (Perl 6 on Parrot), and parsing Perl 6
+using Larry Wall's STD.pm grammar.
+
+Once the Perl 6 specification is considered complete, BioPerl 6 would then be
+expected to run on any Perl 6 implementation passing the official Perl 6 test
+suite. Until then, we will recommend the latest Parrot build from subversion
+along with the latest Rakudo checkout (currently packaged with Parrot but soon
+to be located in a separate repository).
+
+=Chris's Notes=
+
+==Interfaces vs Classes==
+
+In general, I am defining strict interfaces as roles and interface
+implementations as classes. This is due to several interfaces actually defining
+methods that are common to all implementations.
+
+Defining interfaces as roles has a specific advantage, as roles can be mixed-in
+per instance at runtime or class-wide at compile time:
+
+# compile-time
+class Bio::PrimarySeq is Bio::Root::Root does Bio::RangeI {
+
+}
+
+# runtime mixin
+my $seq = Bio.PrimarySeq.new();
+my $seq does Bio::AnnotatableI;
+
+==Class Methods==
+
+Multiple dispatch. Named/positional/required/optional/slurpy/invocant
+parameters. Type checking. Variable return contexts (scalar, list, hash, etc.).
+
+==Named parameters==
+
+Named parameters/arguments are now part of the Perl6 specification and can be
+passed using comma notation or using Pairs:
+
+my $seqobj = Bio::PrimarySeq.new(seq => $rawseq, description => $desc, :alphabet<dna>);
+
+==Getter/Setters==
+
+==Class Methods==
+
+==Tests==
+
+None yet (soon to be added)
+
+
+
Oops, something went wrong.

0 comments on commit c04b98d

Please sign in to comment.