source: doc/rob_thesis/conclusions.tex @ 7493339

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 7493339 was 7493339, checked in by Rob Schluntz <rschlunt@…>, 7 years ago

incorporate Peter's feedback, handle many TODOs

  • Property mode set to 100644
File size: 1.6 KB
Line 
1%======================================================================
2\chapter{Conclusions}
3%======================================================================
4
5Conclusion 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 TracBrowser for help on using the repository browser.