Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 64 lines (58 sloc) 2.534 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
"Low Hanging Fruit"
===================

This file contains tasks that should be relatively small and easy. If
you want to start hacking on the 6model implementation on .Net, this
is a great way to jump in! Questions? Try catching jnthn on #perl6
on freenode.

Run optimizer when -O is passed
-------------------------------
DIFFICULTY: Easy
SKILLS: PIR
DETAILS:
At the moment, NQPOptimizer.pm is enabled/disabled by commenting stuff
out in compile.pir. So it's easier to try things with/without it, add
a -O flag that, when passed, runs the optimizer.

Simple Configure System
-----------------------
DIFFICULTY: Easy-Intermediate
SKILLS: Perl, Makefiles
DETAILS:
At the moment, people on non-Windows systems have to manually hack in
some aliases to get a working build. To improve things:
1) Create a build directory with a Makefile.in.
2) Create a Configure.pl that looks for msbuild or xbuild and picks
   the one that exists. It should do similar for csc vs gmcs. (In
   general, msbuild/csc will be available on Windows, and xbuild/
   gmcs will be elsewhere, since those are the Mono variants). It
   should then substitute for these into Makefile.in using some
   placeholder scheme to generate a Makefile that will work.
3) If none of msbuild or xbuild are in the path, warn that no build
   tool is available. Same for csc and gmcs. Try and make the message
   helpful as to what the user might need. :-)

Foundation for .WHO support
---------------------------
DIFFICULTY: Intermediate
SKILLS: NQP, C#
DETAILS:
At the moment, there is no link between a type object and its
underlying package (generally, an NQPStash). This task lays the
foundation for getting that in place. To do this:
1) Add a WHO field to SharedTable (follow how .WHAT and .HOW look).
2) Write get_who and set_who ops that take in a RakudoObject and
   get and set the STable.WHO (the set one takes in a second
   RakudoObject).
3) Edit Actions.pm and make .WHO use the get_who op (see .WHAT and
   .HOW for examples).

Constant Table Dupe Elimination
-------------------------------
DIFFICULTY: Intermediate
SKILLS: NQP
DETAILS:
We have a constant table. This is good. However, in the program:
  say("foo");
  say("foo");
The "foo" ends up in the constants table twice. This is not good.
Take a look in multi sub dnst_for(PAST::Val $val) { ... } and see
about eliminating the duplication. It happens for integer and
numeric constants too. If you use some weird unique string you can
easily look at x.cs to see it only appears once, not once per usage.
Something went wrong with that request. Please try again.