priorities guidelines - documentation > community > applications > features - mobile > desktop ------------------------------------------------------------------- weeks Jan 4, Jan 11 0.3 goal: start of more public development done: - use travis ci - timeout for tests - docker image: lambdacube3d/lambdacube3d - quake map viewer application works for a sufficiently small map +Csaba - update online editor to use the new compiler - tooltip testing - compiler: ranges in error messages +Andor - subexpression type tooltips in the editor - pretty print Exp's defined in CoreToIR.hs - refactored Builtins.lc - homepage review (what is lambacube, etc.) - documentation: overview - API documentation started - Hello World example on Haskell - show pipeline in editor next: - document Hello World example on Haskell - blog about release: - few sentences about the past events - meeting in december with every team member? - new members? Andor, he added support for travisCI and docker - we have a roadmap for the next 6 months? - links for the documentation - few words what to expect - new release in every 2-3 weeks - stable compiler with type class and frequency support (see TODO) - higher level abstractions in the graphics API - small game in app-store ------------------------------------------------------------------- weeks Jan 18, Jan 25 0.4 goal: usable compiler done: - compiler: fix looping (primes, recursivetexture01) - refactor test system - support simple import lists (hiding + explicit) - support type synonyms next: - ambiguity check (compiler): really check type annotations - ambiguity check (compiler): prohibit constraints like a ~ List a, a ~ a -> a, etc. - compiler: linear time interpretation (type erasure, de bruijn index compatification) - separate types and values (vs. church style lambda) - erease lam var type - separate use of neutral terms - erease univ. pol. arguments of constructors - irrelevance + erasure - cache max. de bruin indices - compiler: bugfixes as needed - compiler: (~) :: forall a b . a -> b -> Type - language feature tests - automated test env. for backends - 100% test coverage - better API documentation - documentation: getting started: hello world on various platforms +Csaba extra: - ambiguity check (compiler): suppress univ. polymorphic ambiguity - compiler: record field name handling - review ShadowMapping.lc test case - better persentation of types in editor tooltips - application type tooltips - pattern variable type tooltips - compiler: refactor pretty printing - compiler: bug: head <-> tail switch: recheck fails (too late) - compiler: review coe usage (missing?) - review DemoUtils.lc test case - minimal quake videos ------------------------------------------------------------------- week Feb 1 refactoring, cleanup, contact with people, etc. - blog: fast reducer? ------------------------------------------------------------------- weeks Feb 8, Feb 15 0.5 goal: improvement - docs: feature teaser, 2 min paper videos - testenv: performance benchmarks - compiler: dependent prelude should work again - compiler: recheck should not fail - coe missing? - compiler: (a ~ b) + (a ~ c) ---> b ~ c (fragment06tailrecursion) - compiler: review type annotation in where blocks - compiler: add more structure to witnesses? - backend: GLSL codegen doesn't support Vector and tuple patterns (not compiler frontend related): fragment02tuple fragment02vectorpattern fragment05uniform - backend: basic pipeline optimization (let-floating) - backend: array support - floating compiler misc: @ patterns guards guards + where pattern guard evalXXX not wired in compiler view patterns pattern synonyms constructor operator fixities (also in patterns) local pattern matching functions dep. pattern matching ------------------------------------------------------------------- weeks Feb 22, Feb 29 0.6 goal: type classes - docs: feature teaser, 2 min paper videos - compiler: type classes - mutual recursion (inference & reduction) - injectivity inference - open functions - Constraint type: uniqueness of witnesses for types with at most one elements - compiler: open type families - community: blog about compiler internals - backend: generated backends - user supplied cpu values like color values and rendering context ------------------------------------------------------------------- week Mar 7 refactoring, cleanup, contact with people, etc. - blog: c++ backend for opengl es 2.0 / generated backends - blog: improved quake renderer, slowly turns into haskell quake engine - blog: dependent type inference - blog: type classes support ------------------------------------------------------------------- weeks Mar 14, Mar 21 0.7 goal: high-level API - libs: high level API (lambdacube library) (application driven) - apps: various prototype experiments (e.g. visual effects, high-level API, FRP) - compiler: better error messages - don't overnormalize (String => [Char]) - ... - compiler (floating): review parser de-brunin index handling - compiler (floating) optimization: better De Bruijn indices handling (compactified) - compiler (floating) optimization: interpreted De Bruijn - docs: feature teaser, 2 min paper video ------------------------------------------------------------------- weeks Mar 28, Apr 4 0.8 goal: frequencies - apps: various prototype experiments (e.g. visual effects, high-level API, FRP) - compiler: frequencies - libs: fequencies in high level API - docs: tutorial (like salesforce) - docs: API documentation ------------------------------------------------------------------- weeks Apr 11, Apr 18 0.9 goal: experiment with FRP - libs: begin experiments with FRP - docs: tutorial (like salesforce) - compiler: better app typing - backend: basic GPGPU support - basic 3d graphics introduction with LambdaCube 3D, something like this: http://petercollingridge.appspot.com/3D-tutorial/generating-objects ------------------------------------------------------------------- week Apr 25 refactoring, cleanup, contact with people, etc. - blog: pattern match compiler - blog: frequency support - blog: higher level abstractions in the graphics API ------------------------------------------------------------------- weeks May 2, May 9 1.0 goal: debug support - editor improvments - backend: basic debug support - testenv: systematic micro tests (with quickcheck?) - community: gamejam - docs: feature teaser, 2 min paper video ------------------------------------------------------------------- weeks May 16, May 23 - backend: Unity plugin - compiler optimization: coe / type class irrelevance switch - docs: feature teaser, 2 min paper video ------------------------------------------------------------------- week May 30 refactoring, cleanup, contact with people, etc. ------------------------------------------------------------------- weeks Jun 6, Jun 13 - apps: demo for a demoscene party - backend: profile-based optimization with machine learning extra: - write docs for the data definition language and also release the lib ------------------------------------------------------------------- weeks Jun 20, Jun 27 - apps: small game to App Store or Google Play - docs: document/teach programming skills with dependent types - community: contact people in industry ------------------------------------------------------------------- end of semester refactoring, cleanup, contact with people, etc. reviews, blogs - plan the route - blog: data definition language with support: Haskell, PureScript, C++ ------------------------------------------------------------------- end of route 2.0 - involving more people - backend: dynamic pipelines - backend: dynamic input grouping/restructure for better performance - Vulkan backend - compiler: reflection (template Haskell) - support nested data parallelism - compiler: self-compilation - domain-free compiler (move all lambacube specific parts into libraries & backend) - compiler: Agda modelling -------------------------------------------------------------------- insert somewhere: - variable name normalization in the generated pipeline so that the same structures have to be equal - tail recursion -> GPU - generate let in shaders - completion in editor - editor socket reconnection - highlight errors in editor - support injective type families - setup texture sampler configuration - setup viewport for render target size (purescript) - generate warning messages for possible typos in names - update lambdacube(engine) page on haskell wiki - warning on missing patterns