Skip to content

Ravi Alpha Release 0.6 - Windows and Ubuntu 64-bit

Pre-release
Pre-release
Compare
Choose a tag to compare
@dibyendumajumdar dibyendumajumdar released this 05 Jul 19:55
· 1824 commits to master since this release

This release contains mostly bug fixes and following changes:

  • The Windows build is now against LLVM 3.7 (latest snapshot).
  • The Ubuntu Linux build is now against LLVM 3.6.1.
  • This release contains an experimental feature - array slices. A slice allows a portion of a Ravi array to be treated as if it is an array - this allows efficient access to the underlying array elements. Following new functions are available:
    • table.intarray(num_elements, initial_value) - creates an integer array of specified size, and initializes with initial value. The return type is integer[]

    • table.numarray(num_elements, initial_value) - creates an number array of specified size, and initializes with initial value. The return type is number[]

    • table.slice(array, start_index, num_elements) - creates a slice from an existing array - allowing efficient access to the underlying array elements.

      The functions are currently part of the table module but this may change in future.
      For an example use of these functions please see the matmul1.ravi benchmark program in the repository. Note that this feature is highly experimental and not very well tested.

  • For performance reasons the Ravi array data structure has an extra element at index 0 - this element is not counted by the length operator nor is it visible when using pairs() and ipairs() to iterate over the array. However this element can be accessed directly by using index 0. Note that slices also allow access to the element at index 0 - this can have unexpected results so the recommended usage is to use array indices 1 to n as in Lua.
  • This release also has an alternative JIT implementation using libgccjit, but this is still work in progress, hence binaries are not released yet. Please refer to Ravi documentation for further details and status of this implementation.