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+
andarcadia.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 toproject.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
andArcadia / Build / User Namespaces
are nowArcadia / AOT Compile
Arcadia / Build / Prepare Export
is nowArcadia / Prepare for Export
Arcadia / Build / Clean Compiled
is nowArcadia / Clean / Clean Compiled
Arcadia / Clean
is nowArcadia / 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 ofy
ify
is a child ofx
. - Fixed bug in which
arcadia.core/children
throws if some children are destroyed. - Renamed
gobj-seq
todescendents
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
toarcadia.core/clear-hooks
. - Renamed
arcadia.core/null-obj?
toarcadia.core/null?
. - Renamed
arcadia.core/obj-nil
toarcadia.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 fornil
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 returnnil
. - 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
andmutable
. - defmutable types partially implement IDictionary interface.
if-cmpt
no longer usesensure-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 toarcadia.data
. - Exceptions encountered while running hooks preserve stack traces.
arcadia.core/state
returnsnil
for GameObjects without ArcadiaState attached.- In documentation and parameter names, changed references to Unity "messages" to Unity "events".
- Fixed
System.MethodAccessException
bug inarcadia.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
.