PyFunge TODO
milestones
2009–04–15: 0.5-rc1
- 2009–04–30: 0.5.0
- 2009–05: 0.5.1
internal restructuring
(0.5-rc1) move funge.semantics.base to funge.semantics.
(0.5-rc1) move other modules of funge.semantics package to funge.languages package.
- (0.5-rc2) make all modules truly orthogonal; only exception (for core PyFunge modules) is
funge.program, which should have classes for all available combinations.
- (0.5-rc2) API finalization. even after 0.5-rc1 some changes are introduced (the complete list follows), so we may have to release 0.5-rc2 for changed API…
Semantics.execute is gone, Semantic.walk is bumped to the public API (rev 9a3cd23eb584, b9d2fd67b5bc)
IP.add_command and IP.remove_command is available. (rev 055abaaf34e3)
IP.th_id and IP.th_team are renamed to IP.id and IP.team, respectively. (rev 9e5a82d05c6f)
IP.parentid is available. (rev 9e5a82d05c6f)
IP.boundmin and IP.boundmax are available. original IP.rectmin, IP.rectmax and IP.updaterect are combined into IP.getrect method. (rev d997aab5da92)
- (0.6) implement command hints. fingerprint API will remain unchanged, with sane default. for example,
idempotent=True for k iterate.
unsafe=True for fingerprints.
pure=True for non-I/O commands. (maybe useful for TRDS? or not?)
fingerprints
(0.5-rc2) 3DSP
(0.5-rc2) ICAL
(0.5.1 -> 0.5-rc2) IIPC
(0.5.1 -> 0.5-rc2) IMAP
(0.5-rc2) IMTH
(0.5-rc2) LONG
(0.5.1 -> 0.5-rc2) NCRS
(0.5-rc2) PERL
- (0.5-rc2) RAND
(0.5-rc2) SCKE
(0.5-rc2) SETS
(0.5-rc2) SOCK
(0.5-rc2) SUBR
(0.5.1 -> 0.5-rc2) TERM
- (0.5-rc2) TURT
- (0.5.1) ARRY
- (0.5.1) FING — direct manipulation of command stack
- (0.5-rc2 -> 0.5.1) REXP
- (0.5-rc2 -> 0.5.1) STCK
- (0.5.x) PYTH “Python interface for Funge”
- (0.5.x) UNIC “Unicode character support”
- (0.5.x) MULT “Multi-dimensional support”
- (0.5.x) CGI “CGI programming made easy”
- (0.5.x) PyF? fingerprints for internal testing and so on (notably, PyF98 exposes the interpreter internal)
- (0.6) dynamic fingerprint support
- (0.6) FOBJ — implementation along with minifunge
- (0.6) MACR — implementation along with minifunge
- (0.6) MVRS — after API is enough stablized
- (0.6) TRGR — after API is enough stablized
- (0.6 or 0.7) TRDS — too intrusive to implement
- current status: entire Mycology suite takes 2.1s in my laptop (MacBook Pro, Mac OS X 10.5, Python 2.6 and Psyco 1.6, Intel Core 2 Duo 2.16GHz with 2G RAM). at first it took more than 30s even it didn’t implement any fingerprints.
- without Psyco it took 6.5s on average; Psyco gives 3x improvement.
- (0.5.x) my goal is below 1.5s with Psyco and 4.0s without Psyco.
frontend
- (0.5.1) implement
--statistics option.
- (0.5.x) implement true debugger.
- (0.6) implement editor (pyfunged).