[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.