Skip to content
This repository
tag: v18
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 77 lines (47 sloc) 2.252 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
Here are a bunch of project ideas, both for me and for anyone else who
wants to help out. Starred items are ones I've already spent time
thinking about; check with me if you want to build on that. Plussed
items are required for yapsi.

EASY

   Add your favorite missing function to the setting, with tests.

   Implement Sub.leave and CallFrame.leave

   Character class expressions like [[a .. A] & [\W]]

   Stuff spectests are blocking on: "closure for", :16(),
   constants in signatures, ::T, ...

MEDIUM

   Implement buffer types and binary I/O.

   Implement a general socket API.

   Design and implement a generic system for multiplexed and non-blocking I/O.

   Jump table optimization for when chains.

  *Find out what readonly subs are supposed to do with lists, etc and implement
   that. Also add return-rw, take-rw, and the is rw trait for subs and attrs.

   Add :rotate - depends on sized numbers.

   Add Buf bitops.

HARD

   Design and implement some sort of NFG thing that allows use codes, graphs,
   etc and handles canonical equivalence in regexes.

   Determine the best way to map Perl6 process-think onto Windows/.NET
   process think. Then implement &run, &runinstead, and &rungather.

   Niecza is probably the ideal platform for prototyping a concurrency
   system which will whirlpool back into the synopses.

  *Parallel hyperops! Read the Cilk papers, they seem to have a data
   parallelism model most similar to what Perl 6 needs.

  *Explicitly imprecise error reporting. In many circumstances niecza
   doesn't actually have an exact line number; it should be able to
   report a range.

  *Finish roles.

   Add a JVM backend.

   Add a Parrot backend.

NASTY

   A multicore job scheduler would be cool. You'll need to talk with
   TimToady on dependency extraction; there are some subtle points with
   modules that export slangs.

   Native type support.

   SIMD hyperoperators.

   Export Perl 6 code into a CLR .dll

Other stuff to do:

  - pm's = hack
  - Stash entries should be smarter, should know the difference between
    types, constants, subs, and variables
  - ideas after v11: prototype S11, native types, optimize stuff using
    native types, eq any<> and other spot rewrites (RULES?)
Something went wrong with that request. Please try again.