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

SCM Repository

[diderot] View of /branches/vis15/src/compiler/WISHLIST.md
ViewVC logotype

View of /branches/vis15/src/compiler/WISHLIST.md

Parent Directory Parent Directory | Revision Log Revision Log

Revision 4124 - (download) (annotate)
Thu Jun 30 22:00:48 2016 UTC (3 years, 4 months ago) by jhr
File size: 3772 byte(s)
  Added support for contracting away static if-then-elses.
## Current status as of June 29, 2016

### Major bugs

  * https://github.com/Diderot-Language/examples dvr/dvr.diderot (Feb 14 email from glk subject
    "memory errors, possibly cause of crashing"): memory errors cause crashing.  Error messages
    suggest incorrect use of free().
    - unknown; probably fixed, but I haven't had a change to check it yet
  * bug054.diderot: return from inside a conditional in a function causes uncaught exception
    - still open
  * bug047.diderot: don't know what's wrong; this is a program that used to work in the vis12 branch.
    - fixed
  * bug052.diderot: inside() doesn't work on 1D fields
    - fixed
  * bug053.diderot: differentiation doesn't work on 1D fields
    - still open
  * bug043.diderot: generated broken C code (was: no output ints?)
    - fixed
  * bug045.diderot: missing determinant on tensor[2,2] and tensor[3,3]
    - fixed
  * bug050.diderot: tensor[3,3] output not working
    - fixed
  * bug055.diderot: conditional field assignment causes an uncaught exception
    - fixed (typechecker rejects program)

### Minor bugs

  * bug029.diderot missing code generation for printing matrices and higher-order tensors.
    - fixed
  * bug051.diderot: 10x increase in compile time changing from bspln3 to c4hexic (can use --disable-mid-check)
    - vis15 compiles the c4hexic version in 1.16 seconds without checking and in 29s with --check-all
      So it is faster than vis12, but still slow when internal checking is enabled.
  * bug028.diderot: missing forms of matrix multiplication; Charisee's work will address this issue
    - fixed
  * (JHR says done: bug048.diderot: can't use one int and one real in a conditional expression)
    - fixed
  * (JHR says done: bug049.diderot: bogus types parsed as strand names create uncaught exceptions)
    - fixed, but the error message could be improved
  * bug007.diderot: no codegen support for tensor slices; Charisee's work will address this issue
     - fixed
  * bug038.diderot: (re-opening an older bug) run-time should check on existence of field orientation meta-data before use
     - fixed
  * bug044.diderot: either implement or disallow "output bool"
     - fixed
  * bug040.diderot: "The avoidance of redundant Inside tests is not working."
    - still open

### Wish list (from high to low priority)

  * add clerp, with the following semantics:
clerp(A,B,U,x,V) == clamp(A,B,lerp(A,B,U,x,V))
clerp(A,B,x) == clamp(A,B,lerp(A,B,x))
    - still open
  * allow a "continue" statement within the update method to go to the beginning of
    the next update iteration
    - fixed
  * print(): either implement for --target=pthread, or have compiler warn that it won't work
    - still open; pthread support is not yet complete in vis15
  * print(): should be possible during strand initialization.  Otherwise have to create an iteration
    counter initialized to zero, and print from inside update() only on first iteration
    - fixed
  * remove restriction on .diderot filename extension for Diderot program (or at least allow .ddro)
    - fixed
  * syntax errors from the compiler should just say "syntax error".  The "try" suggestions are
    almost always confusing, sometimes laughable (e.g. printf() not a valid function; should be
    print() but compiler suggests to try inserting "%=".  nope!).  For now, all suggestions should
    be removed, because on average they create more confusion. More carefully crafted suggestions
    can be added on a case by case basis.
    - not possible without major changes to the parser generator tool
  * with "if (true) { foo } else { bar }", prune the dead code (in simplify?)
    - fixed
  * using "kern#N" syntax to assert C^N continuity
    - fixed
  * odd-support kernels
    - still open

ViewVC Help
Powered by ViewVC 1.0.0