Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] View of /branches/vis15/src/compiler/TODO
ViewVC logotype

View of /branches/vis15/src/compiler/TODO

Parent Directory Parent Directory | Revision Log Revision Log

Revision 4810 - (download) (annotate)
Sun Oct 30 12:03:39 2016 UTC (3 years ago) by jhr
File size: 2500 byte(s)
update TODO

  unbound variables in the result of normalization (may be
  promotion related)


High-priority things to fix:

code generation for const variables

Parallel target:
  - parallel version of strand_array abstraction in runtime
  - new, die
  - queries
  - start methods
  - parallel reduction

Use of numStable(), etc. in strand methods means that we
need to run in BSP mode!

Medium-priority things to fix:

Name-mangle Diderot identifiers that have non-ASCII
characters in their names (e.g., greek letters)

Support for map-reduce fusion

Support for variance

Direct dynamic sequence initialization from E_Seq

Mechanism to dump basis library for documentation purposes

Improve parallel runtime in various ways:
  1) more efficient barrier sync and spin locks

Apply value numbering to globals to eliminate redundancy (e.g., inside3 test).

Support vector arguments to user functions and strand-creation

Bad propagation of error type leads to an extra error message
Also, when overloading fails, we should print a list of candidates
(see bug008.diderot).

Better naming of meta variables in types when printing error messages.

Code generation improvements:
  complex conditionals
  more use of vector arithmetic
  constant propagation

Allow field definitions at strand scope; to do so means that we need
to prune them away later (since fields don't have a runtime
representation).  We will also need to introduce new shadow
parameters when the field is defined in terms of a parameter.
	strand S (real r) { field#2(3)[] G = r*F; ... }

Fuse run function and update method for non-bsp programs (this optimization
will reduce memory traffic and should allow for better optimization of
the generated C++ code)

Low-priority things to fix:

Typechecker overhaul: use poly-types for basis, but mono-types for
typechecking expressions (e.g., SimpleTypes).  Use matching instead
of unification.  This approach would require passing the expected type
down into expression checking, but would allow a richer notation for
poly types (e.g., min constraints).

ViewVC Help
Powered by ViewVC 1.0.0