Clone wiki

scopes / Scopes Release 0.13

Scopes Release 0.13

Downloads

Documentation

Documentation is available online.

Changes

  • fixed issue #11: glfwInit: invalid pointer [e73b3fc15f45]
  • fixed issue #14: enum creates wrong comparison operator for unequal (!=) [847a36e846c6]
  • range never unrolls by default; constant loops are now explicitly defined with unroll-range [873717cc6567]
  • unconst folds when the argument is already variable [e4025117e2e6]
  • added loop/repeat construct that ensures loop arguments are always non-constant, thus preventing any loop unrolling [e4025117e2e6]
  • aggregate types can be bitcasted if their storage type is identical [2d2eba57fb1c]
  • references pass-through overloaded call [3351d699444a]
  • support for Captures, a form of compile-time closure similar to C++'s closures [3351d699444a] [35dc2f81be12]
  • added va-each-reversed in addition to va-each [7cb5cc5b9e2d]
  • glm: generator support for vectors and matrices [7cb5cc5b9e2d]
  • glm: matrices support GLSL-style constructor, repr, unpack and equality comparison [7cb5cc5b9e2d]
  • glm: matrices now fully support multiplication with matrices and vectors [fe38ac7a3bcd]
  • SPIR-V: fixed extractvalue being broken for tuple types [48ef022af59e]
  • SPIR-V: implemented support for multiple return values [fe2471531dcb]
  • extended delete to be able to invoked on any type implementing a delete method [f447ff432592] [0379968bc69f]
  • reference implements delete to support types implementing a delete& method [f447ff432592]
  • glsl: sampler supertype is being exported [f635783533c2]
  • SPIR-V: sample builtin accepts typenames [f635783533c2]
  • improved error messages [f635783533c2]
  • added static-alloc for allocation of mutable global/static values [1049114a7b06]
  • added static function analog to new and local to allow construction of mutable values [1049114a7b06] [9b61cd5c4266]
  • glsl: fixed syntax description of xvar macro [1049114a7b06]
  • references only cast to voidstar if they are of single pointer type [4a6c724a466a]
  • removed global in favor of using static [432642e39b27]
  • all dispatch methods now use the format '__name rather than 'name to avoid collision with user named functions in the future [9c7a83979787]
  • added testing module to core that provides a lightweight ad-hoc testing framework for modules [6e7f65d6a2fe] [4da22cdcf876]
  • support for testing for runtime and compile time errors [6e7f65d6a2fe]
  • added fn! function declarator which explicitly marks the function as not memoized (due to impure compile time return values) [9b61cd5c4266]
  • typename and fnchain constructors now always break memoization [ff2cd03e091d]
  • added clear method to fnchain [0f54c0c83b08]
  • moved fnchain to its own module, FunctionChain [0f54c0c83b08]
  • MutableArray elements no longer need to be of supertype immutable [93e66d385920] [4e61f3f1abf2]
  • getattr can no longer be used to query for type attributes [4e61f3f1abf2]
  • typeattr is a way to query type attributes in an overloadable way [4e61f3f1abf2]
  • added type@& and set-type-symbol!& to store attributes accessible through references [4e61f3f1abf2]
  • added typefn& as well as method& to allow defining type methods that take references [4e61f3f1abf2]
  • changed the typename string of pointer and reference types [4e61f3f1abf2]
  • renamed MutableArray to Array [4e61f3f1abf2]
  • removed <: operator, as types can already be compared using < [4e61f3f1abf2]
  • dispatch methods for references no longer use a trailing &, but use the same name as their immutable counterparts, defined via set-type-symbol!&, typefn& and method& [8de97086acb3]
  • turned fnchain into a declarative macro; the type is now FunctionChain [b7f8055743b2]
  • module-name now always holds the name with which the module was imported [cd1c7a7fae30]
  • FunctionChain constructor incorporates module name into typename [cd1c7a7fae30]
  • typename constructor takes supertype and storage type as extra optional arguments [f44fbf0c2569]
  • a type can be used as a macro by setting a __macro attribute [bff4b0494d08]
  • vector type can be indexed with usize type [6e47ba472aa5]
  • referenced glm vectors return accessors that can be assigned to [6e47ba472aa5] [bc9d4ca678ad] [13c4dca00b61]
  • removed @ syntax to deref reference in favor of using global deref [0e1ef365ef43] [df6de402d406]
  • reference type supports overloaded deref in subtypes [6e47ba472aa5]
  • added inplace arithmetic assignment operators (+=, -=, *=, and so on) for mutable values [137efe49ee95]
  • added support for integer literals in base 2 using 0b prefix [0ee47dc04233]
  • export compile time recursion limit as unroll-limit [1709da1edd3d]
  • made builtin argument count checking more strict, no longer permitting accidental overshoots. [b9dfdca90205]
  • added support for 'typeof and casting for Any references [1827d03611e6]
  • added 'parameters iterator for Label [bc2bacca81e4]
  • Label and Parameter types can be queried for names [bc2bacca81e4]
  • added automatically generated documentation for all core modules [54e53527ee4c] [4c06fc447fae] [1495a9c4c086] [de7c15be8125]
  • nested scopes inherit their doc string from their parent [54e53527ee4c]
  • locals inherits the parents docstring [54e53527ee4c]
  • scope docstrings can be set and retrieved with set-scope-docstring! and Scope-docstring [54e53527ee4c] [4e0e6cde9255] [7fa976347046]
  • updated tutorial for new loop structure [47fd16cb8a28]
  • updated doc lexer [d78acdad3320]
  • updated FunctionChain module with example [175eaeddb99a]
  • array and vector constructors coerce size argument to usize [aebd2d00d9db]
  • renamed immutable constructor __apply-type to __typecall [936fef9550e4]
  • new typenames have no default constructor and throw a readable error instead [936fef9550e4]
  • reference no longer frees heap pointers [169e250be3ca]
  • loop form works with no arguments, as well as supporting an infinite form without any arguments [169e250be3ca]
  • fixed breakable-block not properly deleting/replacing return and recur symbols [9ff8a13135c1]
  • fixed capture for new typename syntax [35dc2f81be12]
  • changed the order of fields in Array structs to put the array pointer in first position [0a4cd86c209f]
  • capacity argument for variable array is now optional [8b1ad68ded06]
  • added base class for allocators, Memory, as well as subtypes HeapMemory, FunctionMemory, GlobalMemory [8b1ad68ded06]
  • local, new and static use predefined memory types now [8b1ad68ded06]
  • copy constructor checks argument count [c09538f0df65]
  • copy-construct, construct and destruct permit calling constructors and destructors independent from alloc/free [771d7812d256] [e525fecba256] [e33afa403d2e]
  • renamed reference type to ref [1af1d464db4f]
  • removed reference.from-pointer-type in favor of constructing reference types with ref directly [b84fa07fe58d]
  • ref constructor only constructs instance types [1af1d464db4f]
  • pointer can be cast to ref implicitly [1af1d464db4f]
  • ref assignments do properly invoke destructor, then copy-constructor; and can be overloaded by the element type for a faster implementation. [e525fecba256]
  • Array supports custom allocators [e525fecba256]
  • assignments to pointers in order to alter their contents is no longer permitted [e525fecba256]
  • type-countof allows to query types that do not have elements and returns 0 in that case [e525fecba256]
  • added new supertype for arrays and tuples: aggregate [e525fecba256]
  • typename references do no longer construct, destruct or copy by default [e525fecba256]
  • added supercall function to simplify invoking supertype methods on reference and immutable values [e33afa403d2e]
  • added typeof& function that strips the reference type of a value's type [e33afa403d2e]
  • default = operator implementation for references uses destructor and copy constructor [e33afa403d2e]
  • types can only be dereferenced if reference method __deref is supported [ee9fb46e4e54]
  • implicit casting of references can be overloaded by implementing reference method __imply [ee9fb46e4e54]
  • scope objects now store docstrings with their associated values [4e0e6cde9255]
  • dump no longer prints values with newlines [1410bea38760]
  • fixed variable array growth being broken [4bf110e465aa]
  • fixed memory corruption when handling array of array [172ffabcd864]
  • added move constructor for arrays [f1fd176b9979]
  • added default copy constructor for CStruct [96bd9af77f2a]
  • type-countof returns i32 instead of usize [83f6cf142eb2]
  • immutable arrays no longer accept dynamic indices [83f6cf142eb2]
  • Any can wrap and unwrap non-constant tuple, array and vector values [1c5b9d89f7c9]
  • clang bridge: only print alignment/size mismatch warnings in debug mode [ece1aff350d0]

Updated