-
Notifications
You must be signed in to change notification settings - Fork 9
Guide
Welcome to the Ciera User Guide. This guide will give you a comprehensive overview of Ciera, how it works, the features it supports, and how to use them. Ciera is an open source project and depends on the community to move forward.
I started writing Ciera in early 2017 just as a personal project — a sort of playground to experiment with model-based model compiler concepts. At times I envisioned it to be a replacement model compiler for MC-Java to be the architecture on which the BridgePoint project rests (I haven’t completely lost that vision, but it is more blurry than it once was). At times I tried to make it everything to everyone. I had a fascination with making the generated OAL as readable as possible, which sometimes compromised in other areas that should not have been compromised. It has always been a goal to replace MC-3020 as the primary model compiler used for compiling model compilers. Over the years it has morphed and changed and now it stands as a someone complete general purpose Java model compiler with a handful of features useful to model compiler developers and a handful of experimental features. Instead of starting with the xtUML spec and a set of test models, as Ciera is grown, it has implemented just enough of xtUML to support the current project and therefore is somewhat skeletal.
-
A personal project that turned into a semi-feature complete model compiler
-
A generic Java model compiler
-
A tool for building other model compilers
-
A fully self-building, self-supporting model compiler
-
An open source project
-
A commercial project
-
A thoroughly tested/verified architecture
-
An architecture suited to real time or low memory environments
As a Java project, I chose Maven as my preferred build tool for Ciera. As will be explained later, Ciera does not strictly depend on Maven, but it is almost not worth talking about using Ciera without talking about it in the context of Maven build environment.
Ciera adheres to the Maven versioning convention in the following format:
<major>.<minor>.<incremental>[-SNAPSHOT]
<major> is the major version. Major versions are not compatible with one
another.
<minor> is the minor version. Minor version gets incremented with feature
updates that do not break backwards compatibility with prior releases in the
same major version
<incremental> is the incremental version. It is updated any time a new release
is published that does not have a significant new feature set (most if not all
bug fixes)
-SNAPSHOT is appended for unstable development versions. Non-snapshot versions
may not be re-released without incrementing the version, but snapshot versions
may change so use caution.