summaryrefslogtreecommitdiff
path: root/doc/reference/ImplementationStatus.tex
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2004-01-20 14:01:27 +0000
committerMartin Odersky <odersky@gmail.com>2004-01-20 14:01:27 +0000
commitf8865bfa8582aeec2a928e29274b37b5e5b57cb7 (patch)
treed8f4e5b9df4b2be69b670d9997efc82b7c8ebd45 /doc/reference/ImplementationStatus.tex
parentbbadab7e722fd89987f6df1bce6eb3ba9fa93ad0 (diff)
downloadscala-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.tex50
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}