diff options
author | Martin Odersky <odersky@gmail.com> | 2004-01-20 14:01:27 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2004-01-20 14:01:27 +0000 |
commit | f8865bfa8582aeec2a928e29274b37b5e5b57cb7 (patch) | |
tree | d8f4e5b9df4b2be69b670d9997efc82b7c8ebd45 /doc/reference/ImplementationStatus.tex | |
parent | bbadab7e722fd89987f6df1bce6eb3ba9fa93ad0 (diff) | |
download | scala-f8865bfa8582aeec2a928e29274b37b5e5b57cb7.tar.gz scala-f8865bfa8582aeec2a928e29274b37b5e5b57cb7.tar.bz2 scala-f8865bfa8582aeec2a928e29274b37b5e5b57cb7.zip |
*** empty log message ***
Diffstat (limited to 'doc/reference/ImplementationStatus.tex')
-rw-r--r-- | doc/reference/ImplementationStatus.tex | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/doc/reference/ImplementationStatus.tex b/doc/reference/ImplementationStatus.tex new file mode 100644 index 0000000000..f2c74b8695 --- /dev/null +++ b/doc/reference/ImplementationStatus.tex @@ -0,0 +1,50 @@ + +The present Scala compiler does not yet implement all of the Scala +specification. Its currently existing omissions and deviations are +listed below. We are working on a refined implementation that +addresses these issues. +\begin{enumerate} +\item +Unicode support is still limited. At present we only permit Unicode +encodings \verb@\uXXXX@ in strings and backquote-enclosed identifiers. +To define or access a Unicode identifier, you need to put it in +backquotes and use the \verb@\uXXXX@ encoding. +\item +The unicode operator ``$\Rightarrow$'' +(\sref{sec:idents}) is not yet recognized; you need to use the two +character ASCII equivalent ``\code{=>}'' instead. +\item +The current implementation does not yet support run-time types. +All types are erased (\sref{sec:erasure}) during compilation. This means that +the following operations give potentially wrong results. +\begin{itemize} +\item +Type tests and type casts to parameterized types. Here it is only tested +that a value is an instance of the given top-level type constructor. +\item +Type tests and type casts to type parameters and abstract types. Here +it is only tested that a value is an instance of the type parameter's upper bound. +\item +Polymorphic array creation. If \code{t} is a type variable or abstract type, then +\code{new Array[t]} will yield an array of the upper bound of \code{t}. +\end{itemize} +\item +Return expressions are not yet permitted inside an anonymous function +or inside a call-by-name argument (i.e.\ a function argument corresponding to a +\code{def} parameter). +\item +Members of the empty package (\sref{sec:packagings}) cannot yet be +accessed from other source files. Hence, all library classes and +objects have to be in some package. +\item +At present, auxiliary constructors (\sref{sec:constr-defs}) are only permitted +for monomorphic classes. +\item +The \code{Array} class supports as yet only a restricted set of +operations as given in \sref{cls:array}. It is planned to extend that +interface. In particular, arrays will implement the \code{scala.Seq} +trait as well as the methods needed to support for-comprehensions. +\item +At present, all classes used as mixins must be accessible to the Scala +compiler in source form. +\end{enumerate} |