Ignore:
Timestamp:
Apr 3, 2017, 7:04:30 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
fbd7ad6
Parents:
ae6cc8b
Message:

incorporate Peter's feedback, handle many TODOs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/rob_thesis/conclusions.tex

    rae6cc8b r7493339  
    44
    55Conclusion paragraphs.
     6
     7\section{Future Work}
     8
     9\subsection{Constructors and Destructors}
     10% TODO: discuss move semantics; they haven't been implemented, but could be. Currently looking at alternative models.
     11
     12% TODO: discuss exceptions
     13
     14% TODO: fix return value destruction in full compiler
     15
     16% TODO: once deleted functions are added, unions can have deleted standard functions, like C++11 (may not need to mention this again...)
     17
     18% TODO: better study and fix the ways @= objects interact with the rest of the world (e.g. provide @= equivalent for assignment, or otherwise have @= objects default to using intrinsic/autogen ops?)
     19
     20
     21
     22\subsection{Tuples}
     23
     24% TODO: named return values are not currently implemented in CFA - tie in with named tuples?
     25
     26% TODO: tuples are allowed in expressions, exact meaning is defined by operator overloading (e.g. can add tuples). An important caveat to note is that it is currently impossible to allow adding two triples but prevent adding a pair with a quadruple (single flattening/structuring conversions are implicit, only total number of components matters). May be able to solve this with more nuanced conversion rules
     27
     28\subsection{Variadic Functions}
     29% TODO: look into 'nicer' expansion syntax
     30
     31% TODO: consider more sophisticated argument matching algorithms, e.g. forall(ttype Params) void f(Params, Params); f(1,2); f(1,2,3,4); => f([1], [2]); f([1,2], [3,4]); => okay if Params can be bound to a type that is consistent throughout the expression's type
     32
     33
Note: See TracChangeset for help on using the changeset viewer.