[dylan-lang/opendylan] b6bec3: Bug 7458: Fix primitive-function type errors in ru...

GitHub <[email protected]>
Newsgroups gmane.comp.lang.dylan.gwydion.cvs
Message-ID <54f881817e808_24613fd3be16f2c032244@hookshot-fe1-cp1-prd.iad.github.net.mail>
  Branch: refs/heads/master
  Home:   https://github.com/dylan-lang/opendylan
  Commit: b6bec30c2bae4580f11fbdb0f6f5d35900710b61
      https://github.com/dylan-lang/opendylan/commit/b6bec30c2bae4580f11fbdb0f6f5d35900710b61
  Author: Peter S. Housel <[email protected]>
  Date:   2015-03-04 (Wed, 04 Mar 2015)

  Changed paths:
    M sources/common-dylan/byte-vector.dylan
    M sources/common-dylan/darwin-common-extensions.dylan
    M sources/common-dylan/freebsd-common-extensions.dylan
    M sources/common-dylan/timers.dylan
    M sources/common-dylan/unix-common-extensions.dylan
    M sources/io/streams/buffer.dylan
    M sources/io/unix-interface.dylan
    M sources/lib/c-ffi/memory-functions.dylan
    M sources/system/file-system/unix-ffi.dylan
    M sources/system/file-system/unix-interface.dylan
    M sources/system/unix-operating-system.dylan

  Log Message:
  -----------
  Bug 7458: Fix primitive-function type errors in runtime code

The LLVM type system doesn't permit treating integers as pointers, or
pointers as integers, without a cast. This commit adds needed calls to
cast primitives, and removes unneeded ones.

* sources/io/unix-interface.dylan
  (unix-read, unix-write): Remove unneeded cast.

* sources/system/file-system/unix-interface.dylan
  (unix-file-exists?): Remove unneeded cast.

* sources/common-dylan/byte-vector.dylan
  (byte-storage-address): Cast a <raw-pointer> to <raw-address>
   before storing in a <machine-word>.

* sources/common-dylan/darwin-common-extensions.dylan
  (darwin-sysctl): Ensure integer-as-raw is called on a value that is
   known to be an <integer>. Use the proper raw type for passing a
   NULL pointer. Remove some unneeded casts.

* sources/common-dylan/freebsd-common-extensions.dylan
  (get-application-commandline): Ensure integer-as-raw is called on a
   value that is known to be an <integer>.

* sources/common-dylan/unix-common-extensions.dylan
  (write-console): Ensure integer-as-raw is called on a value that is
   known to be an <integer>.
  (default-random-seed): Remove unneeded cast.More primitive-* fixes.

* sources/common-dylan/timers.dylan
  (with-storage): Add declarations to ensure inlining.

* sources/io/streams/buffer.dylan
  (byte-storage-address, byte-storage-offset-address): Add needed casts.

* sources/io/unix-interface.dylan
  (unix-read, unix-write): Remove unneeded cast.

* sources/system/file-system/unix-ffi.dylan
  (dirent-name): Remove unneeded cast.

* sources/system/file-system/unix-interface.dylan
  (unix-file-exists?): Remove unneeded cast.

* sources/system/unix-operating-system.dylan
  (make-pipe, run-application, run-outputter, make-envp, load-library): Fix
   raw type mismatches.

* sources/lib/c-ffi/memory-functions.dylan
  (clear-memory!): Add a missing pointer cast.


  Commit: 24d19c10aa68ee8b2cc1106c6acdbaaeccb42a24
      https://github.com/dylan-lang/opendylan/commit/24d19c10aa68ee8b2cc1106c6acdbaaeccb42a24
  Author: Peter S. Housel <[email protected]>
  Date:   2015-03-04 (Wed, 04 Mar 2015)

  Changed paths:
    M sources/lib/run-time/llvm-nlx.c

  Log Message:
  -----------
  Bug 7458: Fix personality function cleanup handling

* sources/lib/run-time/llvm-nlx.c
  (__opendylan_personality_v0): Handle a call site table action entry
   value of 0 as indicating that a cleanup is available.


  Commit: 6e646583738cdf5a75294c47963cfebefb9ca06e
      https://github.com/dylan-lang/opendylan/commit/6e646583738cdf5a75294c47963cfebefb9ca06e
  Author: Peter S. Housel <[email protected]>
  Date:   2015-03-04 (Wed, 04 Mar 2015)

  Changed paths:
    M sources/dfmc/llvm-back-end/llvm-ops.dylan

  Log Message:
  -----------
  Bug 7458: Add op--{likely,unlikely}

* sources/dfmc/llvm-back-end/llvm-ops.dylan
  (op--likely, op--unlikely): New utility branch optimization hint
   emitter methods.


  Commit: 7878b65acd3bf20dd0b73ea1718c62eb7284a71a
      https://github.com/dylan-lang/opendylan/commit/7878b65acd3bf20dd0b73ea1718c62eb7284a71a
  Author: Peter S. Housel <[email protected]>
  Date:   2015-03-04 (Wed, 04 Mar 2015)

  Changed paths:
    M sources/dfmc/llvm-back-end/llvm-primitives-machine-word.dylan

  Log Message:
  -----------
  Bug 7458: Ensure bit-counting primitives are defined for 0

* sources/dfmc/llvm-back-end/llvm-primitives-machine-word.dylan
  (primitive primitive-machine-word-count-low-zeros,
   primitive primitive-machine-word-count-high-zeros): Mark calls to the
   llvm.cttz and llvm.ctlz intrinsics as requiring that they be defined
   for 0.


  Commit: 9e9ede2969949aa52b987ea1799089c2b8416eda
      https://github.com/dylan-lang/opendylan/commit/9e9ede2969949aa52b987ea1799089c2b8416eda
  Author: Peter S. Housel <[email protected]>
  Date:   2015-03-04 (Wed, 04 Mar 2015)

  Changed paths:
    M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
    M sources/dfmc/llvm-back-end/llvm-primitives-thread.dylan
    M sources/lib/run-time/llvm-posix-threads.c
    M sources/lib/run-time/llvm-runtime-init.c

  Log Message:
  -----------
  Bug 7458: Improve thread-local storage GC root handling

* sources/dfmc/llvm-back-end/llvm-primitives-thread.dylan
  (%tlv-initializations, %tlv-initializations-cursor): Put in proper
   sections.
  (%tlv-initializations-local-cursor): New variable for recording
   which TLV initializations have been performed in the current
   thread.
  (primitive primitive-initialize-thread-variables): New auxiliary
   primitive declaration.
  (op--initialize-thread-variables): New auxiliary function to ensure
   that initializations have been performed.

* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
  (emit-computation on <variable-reference>): Ensure that thread-local
   variables are initialized and registered as GC roots before reading.
  (emit-computation on <assignment>): Ensure that thread-local
   variables are initialized and registered as GC roots before writing.
  (emit-computation on <definition>): Rely on
   primitive-allocate-thread-variable to perform the assignent.
  (emit-binding-initializer-function): Change initializer functions
   to return the address of the global instead of receiving the
   initialization value as an argument.

* sources/lib/run-time/llvm-posix-threads.c
  (primitive_register_thread_variable_initializer): Utilize
   primitive_initialize_thread_variables() to register TLV storage as
   a GC root and perform the initialization assignment.
  (primitive_initialize_thread_variables): New function to initialize all
   TLVs (beyond the current %tlv-initializations-local-cursor watermark)
   found in the %tlv-initializations vector, and register their addresses
   in the current thhread as GC roots.
  (deinitialize_thread_variables): New function to deregister as GC roots
   the addresses in the current thread of all TLVs found in the
   %tlv-initializations vector.
  (trampoline): Call primitive_initialize_thread_variables and
   deinitialize_thread_variables.
  (primitive_initialize_current_thread): Remove TLV initialization code.

* sources/lib/run-time/llvm-runtime-init.c
  (_Init_Run_Time): Remove Darwin-specific code for registering
   TLV memory areas as GC roots, and call
   primitive_initialize_thread_variables instead.


  Commit: 7506b7f9d9892cb5fe19afb2eeacee62232ca75e
      https://github.com/dylan-lang/opendylan/commit/7506b7f9d9892cb5fe19afb2eeacee62232ca75e
  Author: Peter S. Housel <[email protected]>
  Date:   2015-03-05 (Thu, 05 Mar 2015)

  Changed paths:
    M sources/dfmc/llvm-back-end/llvm-primitives-alloc.dylan
    M sources/lib/run-time/collector.c

  Log Message:
  -----------
  Bug 7458: Implement allocation tracking primitives

* sources/dfmc/llvm-back-end/llvm-primitives-alloc.dylan
  (runtime-variable %allocation-count): New thread-local runtime variable.
  (primitive primitive-allocation-count,
   primitive primitive-initialize-allocation-count): Fill in implementation.

* sources/lib/run-time/collector.c
  (update_allocation_counter): Declare and update %allocation-count.


Compare: https://github.com/dylan-lang/opendylan/compare/f597d967b087...7506b7f9d989

_______________________________________________
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.