Clarification of something I wrote earlier:

http://lists.motion-twin.com/pipermail/neko/2010-January/002710.html

> Point being that conflation of sub-typing-- e.g. implementing a COMPLEX
> type as a PMC in the VM layers instead of as an interface (class) at the
> HLL layer-- fights against nature's ability to form complex diverse
> systems from orthogonal ("simple", "raw", "core") building blocks:

My point above was made in the context of supporting cross-language
interoperability for the Common Lisp COMPLEX data type[1].  In the case
that external HLLs want to interact with Common Lisp COMPLEX data type, I
asserted that a better design is to expose the data type as a class via
some universal simple interface specification (employing Plain Parrot
Semantics for data types) that compliant HLLs agree to understand, rather
than as a custom type (PMC) in the VM.

The point is that proliferation of custom data types in the VM stack
conflates what should be standard libraries (interfaces).  Just because
COMPLEX is a native type in Common Lisp (for what ever reason, i.e.
performance), does not mean that it should be exposed externally at the
same layer as a VM builtin type (i.e. Plain Parrot Semantics types), as
this means Common Lisp is dictating its priorities on the common base that
has to be optimized for all HLLs.  I agree that sub-typing belongs in
classes, i.e. in libraries and interfaces, not in the core common
denominator that has to be maintained for all HLLs.  There are many
reasons that such lack of orthogonality will lead to less than optimal
interoperability, composeability, maintenance, optimization, footprint
granularity, etc..

Parrot may provide some advantages (via its PMC capability) for
implementing the Common Lisp COMPLEX data type, but my point was primarily
about interoperability (but I mention now also composeability,
maintenance, optimization, footprint granularity, etc.).  I assume there
is some other benefit(s) for porting Common Lisp to Parrot other than
cross-language interoperability, e.g. maybe Parrot runs on more platforms
than Common Lisp's VM.

[1]
http://docs.parrot.org/parrot/latest/html/docs/pdds/draft/pdd31_hll_interop.pod.html
 (search for COMPLEX RATIONAL)

--
Neko : One VM to run them all
(http://nekovm.org)

Reply via email to