Skip to content

Latest commit

 

History

History
81 lines (77 loc) · 5.69 KB

CHANGELOG.md

File metadata and controls

81 lines (77 loc) · 5.69 KB

Arcadia Changelog

Beta 1.0.0

This beta release includes many breaking changes. In particular, scenes and prefabs using Arcadia components saved from previous versions will not work. Subsequent releases will be backwards-compatible with scenes and prefabs saved as of this release.

These changes are relative to 83e0931a.

  • Improved startup times.
  • Removed UDP REPL server and its various clients.
  • Added basic nREPL server listening on port 3277.
  • Changed Socket Server port from 5555 to 37220.
  • Disabled package manager, pending NuGet support.
  • Customizable stacktrace formatting for exceptions in REPL.
  • Added a Code of Conduct.
  • Changed position of key argument of hook functions from last to second position.
  • Changed arcadia.core/hook+ and arcadia.core/role+ to issue a warning whenever non-serializable hooks are used.
  • Updated export policy. Namespaces meant for export must be explicitly listed in configuration file under the :export-namespaces key.
  • Added :arcadia options map entry to project.clj format.
  • Changed :arcadia.compiler/loadpaths to :source-paths in configuration file.
  • No longer supporting fastkeys annotation for optimized state lookup, optimizations are now handled by internal caching mechanism.
  • Documented API.
  • USAGE.md is deprecated. Please use the wiki from now on.
  • Added new state and hook inspector UI.
  • Restructured Arcadia menu:
    • Arcadia / Build / Internal Namespaces and Arcadia / Build / User Namespaces are now Arcadia / AOT Compile
    • Arcadia / Build / Prepare Export is now Arcadia / Prepare for Export
    • Arcadia / Build / Clean Compiled is now Arcadia / Clean / Clean Compiled
    • Arcadia / Clean is now Arcadia / Clean / Clean All
  • Removed IEntityComponent and ISceneGraph protocols, and restricting what were previously their methods to only take GameObjects (not Components and vars). This does not pertain to arcadia.core/gobj, which still takes GameObjects and Components. This change effects the following vars:
    • arcadia.core: child+, child-, children, cmpt, cmpts, cmpt+, cmpt-, ensure-cmpt, with-cmpt, if-cmpt, hook+, hook-, clear-hooks, hook, state, state+, state-, clear-state, update-state, role, role-, role+, role-, roles+, roles-, roles
  • Changed arcadia.core/cmpts to filter out null Components.
  • Changed arcadia.core/children to filter out null GameObjects.
  • Made (arcadia.core/child- x y) only remove parent of y if y is a child of x.
  • Fixed bug in which arcadia.core/children throws if some children are destroyed.
  • Renamed gobj-seq to descendents and restricted to GameObjects.
  • Removed arcadia.core/hook?.
  • Removed arcadia.core/hook-var.
  • Made arcadia.core/hook-types private.
  • Added arcadia.core/available-hooks.
  • Removed 3-ary overload for arcadia.core/hook+.
  • Renamed arcadia.core/clear-hook to arcadia.core/clear-hooks.
  • Renamed arcadia.core/null-obj? to arcadia.core/null?.
  • Renamed arcadia.core/obj-nil to arcadia.core/null->nil.
  • Extended clojure.core.CollReduce protocol to GameObjects.
  • Removed arcadia.introspection/snapshot-data-fn.
  • Removed arcadia.linear/point-pivot.
  • Removed arcadia.core/with-gobj.
  • Made arcadia.core/object-* core functions filter out destroyed UnityEngine.Objects. Affects the following functions: object-typed, objects-typed, object-named, objects-named, object-tagged, objects-tagged.
  • object-named argument may be a Regex.
  • Made arcadia.core/if-cmpt throw for nil or destroyed GameObjects.
  • Made arcadia.core/state+ no longer support 2-ary overload, and made it now return its third argument.
  • Made arcadia.core/state- no longer support 2-ary overload, and made it now return nil.
  • Made arcadia.core/clear-state return nil.
  • Persistent representation of defmutable instances store defmutable type as :arcadia.data/type rather than :arcadia.core/mutable-type.
  • Persistent representation of defmutable instances store all fields on the top level rather than in a separate :arcadia.core/dictionary key.
  • New syntax in defmutable for extending snapshot and mutable.
  • defmutable types partially implement IDictionary interface.
  • if-cmpt no longer uses ensure-cmpt and avoids double-evaluation (PR #273, thx pjago).
  • Moved several namespaces to arcadia.internal:
    • arcadia.config -> arcadia.internal.config
    • arcadia.compiler -> arcadia.internal.compiler
    • arcadia.socket-repl -> arcadia.internal.socket-repl
    • arcadia.packages -> arcadia.internal.packages
    • arcadia.repl -> arcadia.internal.repl
  • Deleted the following namespaces:
    • arcadia.core-examples
    • arcadia.scene
  • Renamed arcadia.literals namespace to arcadia.data.
  • Exceptions encountered while running hooks preserve stack traces.
  • arcadia.core/state returns nil for GameObjects without ArcadiaState attached.
  • In documentation and parameter names, changed references to Unity "messages" to Unity "events".
  • Fixed System.MethodAccessException bug in arcadia.introspection.
  • Removed extraneous logging to Unity console.
  • Fixed #248, resolved Android export issues.
  • Fixed namespace qualification bugs in arcadia.linear Matrix functions.
  • Dropped :compiler/verbose and :compiler/warn-on-reflection configuration options.
  • Renamed :compiler/options to :compiler-options in configuration file.
  • Added arcadia.core/parent.