[dylan-lang/opendylan] e72c16: dfmc: Add a primitive to limit <method> type punni...
GitHub <[email protected]>
| Newsgroups | gmane.comp.lang.dylan.gwydion.cvs |
|---|---|
| Message-ID | <54eaa6ace1833_3cd73ff04d08929c8426c@hookshot-fe1-cp1-prd.iad.github.net.mail> |
Branch: refs/heads/master
Home: https://github.com/dylan-lang/opendylan
Commit: e72c161cc5308a8de83d4441b58b3b32ae077e27
https://github.com/dylan-lang/opendylan/commit/e72c161cc5308a8de83d4441b58b3b32ae077e27
Author: Peter S. Housel <[email protected]>
Date: 2015-02-22 (Sun, 22 Feb 2015)
Changed paths:
M sources/dfmc/harp-cg/harp-primitives.dylan
M sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
M sources/dfmc/modeling/namespaces.dylan
M sources/dfmc/modeling/primitives.dylan
M sources/lib/run-time/run-time.h
Log Message:
-----------
dfmc: Add a primitive to limit <method> type punning
The method-list construction code in the dylan library sometimes
returns a <method> in place of a <single-method-engine-node> in
situations where the calling conventions are sufficiently
similar. This commit adds a primitive to help determine when this is
the case for the particular back-end.
* sources/dfmc/modeling/primitives.dylan
(primitive primitive-callable-as-engine-node?): New primitive
definition.
* sources/dfmc/modeling/namespaces.dylan
(module dylan-primitives): Export primitive-callable-as-engine-node?.
* sources/dfmc/harp-cg/harp-primitives.dylan
(op--true): Emitter for always-true boolean conditions.
(primitive primitive-callable-as-engine-node?): New HARP primitive
implementation, always returns #t.
* sources/lib/run-time/run-time.h
(primitive_callable_as_engine_nodeQ): New C primitive implementation,
always returns #t.
* sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
(primitive-callable-as-engine-node?): New LLVM primitive
implementation, returning #t for methods that are instances of
<keyword-method> and #f otherwise.
Commit: 961944c7d89c0e9813a86332e84aeeaf7583a059
https://github.com/dylan-lang/opendylan/commit/961944c7d89c0e9813a86332e84aeeaf7583a059
Author: Peter S. Housel <[email protected]>
Date: 2015-02-22 (Sun, 22 Feb 2015)
Changed paths:
M sources/dylan/discrimination.dylan
Log Message:
-----------
dylan: Limit dispatch <method> type punning
* sources/dylan/discrimination.dylan
(transmogrify-method-list-grounded): Prevent treating <method> objects
as <engine-node> objects when primitive-callable-as-engine-node?
returns false.
Compare: https://github.com/dylan-lang/opendylan/compare/d78835e60fc3...961944c7d89c
_______________________________________________
chatter mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/chatter