ogma-core
Ogma: Helper tool to interoperate between Copilot and other languages.
| LTS Haskell 24.51: | 1.7.0 |
| Stackage Nightly 2026-07-23: | 1.15.0 |
| Latest on Hackage: | 1.15.0 |
Apache-2.0 licensed by Ivan Perez, Alwyn Goodloe
Maintained by [email protected]
This version can be pinned in stack with:
ogma-core-1.15.0@sha256:e522cfd86fbf5e2ad5f4cc04b3f3161393d3c30c7aa7ceb298c722a95ca6a7e5,7879Module documentation for 1.15.0
- Command
- Data
- Language
Depends on 28 packages(full list with versions):
aeson, base, bytestring, containers, copilot-core, copilot-language, copilot-libraries, copilot-theorem, directory, filepath, graphviz, hint, megaparsec, mtl, ogma-extra, ogma-language-c, ogma-language-copilot, ogma-language-csv, ogma-language-jsonspec, ogma-language-lustre, ogma-language-smv, ogma-language-xlsx, ogma-language-xmlspec, ogma-spec, process, text, vector, yaml
Used by 1 package in nightly-2026-07-23(full list with versions):
Ogma is a tool to facilitate the integration of safe runtime monitors into other systems. Ogma extends Copilot, a high-level runtime verification framework that generates hard real-time C99 code.
This package implements the internal commands of ogma.
Changes
Revision history for ogma-core
[1.15.0] - 2026-07-21
- Version bump (1.15.0) (#508).
- Remove commented code from
Data.Spec.Parser(#430). - Remove redundant
whereblock (#432). - Fix incorrect Haddock comment syntax (#434).
- Remove redundant occurrences of
MultiWayIfpragma (#440). - Fix indentation of record fields in multiple backends (#442).
- Move expressions from
letblock intowhereclause (#444). - Update backends to use state machine module from
copilot-libraries(#446). - Leverage
Data.ExprPair.exprPairinCommand.Diagram.exprPair(#448). - Remove empty Haddock section heading from
Command.Diagram(#450). - Add missing dependency to Cabal file (#458).
- Adjust overview command to accept multiple input files (#456).
- Add Copilot file from F Prime template to data-files in Cabal file (#462).
- Add module defining Ogma projects (#460).
- Introduce search command (#464).
- Remove unnecessary vertical space (#470).
- Allow using file name as requirement ID in JSON or YAML files (#472).
- Allow controlling when monitors are re-evaluated in cFS apps (#474).
- Extend cFS backend with diagram mode (#476).
- Replace mentions of ICAROUS (#482).
- Adjust report command to accept multiple input files (#486).
- Apply multiple style fixes (#492).
- Adjust cFS app template to allow customizing MIDs (#494).
- Allow variable DB topics to carry extra info available to cFS template (#496).
- Make variable field names available to ROS template when present (#499).
- Adjust ROS template to enable injecting dependencies (#500).
- Bump upper version constraints on Copilot packages (#501).
- Update cFS template for cFS 7.0 (#509).
- Update
Dockerfilein ROS 2 template for Space ROSjazzy-2026.04.0(#512).
[1.14.0] - 2026-05-21
- Version bump (1.14.0) (#425).
- Bump upper version constraints on Copilot packages (#377).
- Lower upper version bound on
megaparsec(#380). - Bump upper version constraint on Quickcheck (#382).
- Adjust
Common.Diagrammodule to useCommand.Common.ExprPair(#384). - Add support for reading diagrams to overview command (#386).
- Augment overview command to formally analyze diagrams (#388).
- Move functions related to
Eithertype to dedicated module (#391). - Move function related to JSON objects to dedicated module (#393).
- Move definitions related to
ExprPairtype to dedicated module (#395). - Move functions related to Copilot specs to dedicated modules (#397).
- Rename module to more accurately reflect intent (#399).
- Move auxiliary function into new auxiliary module (#401).
- Split
Command.CommonDiagraminto smaller, more cohesive modules (#403). - Simplify internal definition
showTransitions(#405). - Add diagram query functions to
Data.Diagram(#407). - Factorize translation of diagrams to Copilot into separate module (#409).
- Remove unnecessary arguments in code generated by diagram backend (#411).
- Move functions related to reading specs to dedicated module (#413).
- Make standalone, app backends support working directly with diagrams (#415).
- Add support for reading specs from YAML files (#417).
- Fix order of arguments in calls to internal function (#419).
- Adjust standalone, app backends to support multiple input specs (#421).
- Introduce report command (#423).
[1.13.0] - 2026-03-21
- Version bump (1.13.0) (#373).
- Remove unused functions from diagram template (#351).
- Add dockerfile to cFS template (#353).
- Augment overview command to formally analyze specs (#356).
- Augment overview command to determine consistency of specs (#366).
- Expand extra definitions in Copilot specs in templates (#368).
[1.12.0] - 2026-01-21
- Version bump 1.12.0 (#336).
- Add support for state machine mermaid diagrams (#328).
- Add support for sequence diagrams in Mermaid (#330).
[1.11.0] - 2025-11-21
- Version bump 1.11.0 (#325).
- Make state machine code return the current state (#317).
- Negate condition in state machine monitor (#318).
[1.10.0] - 2025-09-21
- Version bump 1.10.0 (#310).
- Add to ROS 2 template handling methods for triggers with no args (#287).
- Install packages locally in ROS 2 dockerfile (#288).
- Fix handling of message fields in cFS template (#296).
- Avoid unnecessary recompilation of generated cFS app (#299).
- Remove tabs from cFS template code (#294).
- Fix duplicate linkage of Copilot code in generated cFS app (#297).
- Use alternate name for Copilot’s step function in cFS template (#303).
- Replace NOSA license with Apache license (#293).
[1.9.0] - 2025-08-06
- Version bump 1.9.0 (#284).
- Extend ROS backend to generate testing package (#280).
[1.8.0] - 2025-07-13
- Version bump 1.8.0 (#275).
- Introduce overview command (#272).
- Extend code backends to accept expressions to monitor as arguments (#121).
[1.7.0] - 2025-03-21
- Version bump 1.7.0 (#268).
- Import liftIO from Control.Monad.IO.Class (#215).
- Remove references to old design of Ogma from hlint files (#220).
- Bump upper version constraint on aeson, text (#225).
- Remove extraneous EOL character (#224).
- Make structured data available to cFS template (#229).
- Update Copilot struct code generator to use new function names (#231).
- Simplify Copilot struct definitions by using generics (#199).
- Update cFS backend to process a handlers file (#234).
- Update cFS backend to process a template variables file (#106).
- Remove dependency on ICAROUS from generated cFS applications (#237).
- Remove incorrect function declaration from template (#240).
- Re-structure cFS backend to avoid nested conditions (#242).
- Make structured data available to ROS template (#244).
- Make structured data available to FPrime template (#246).
- Equalize backends (#248).
- Update ROS, FPrime, standalone backends to process template vars file (#250).
- Make cFS backend accept spec as input (#252).
- Make cFS, ROS, FPrime backends generate Copilot monitor (#107).
- Standardize variable DB format across backends (#256).
- Make backends accept additional data to be passed to handlers (#219).
- Add support to read properties from CSV files (#261).
- Add support to read properties from XLSX files (#263).
- Add all auxiliary test files to distributable Cabal package (#258).
- Update to support boolean expressions in the Lustre language (#267).
[1.6.0] - 2025-01-21
- Version bump 1.6.0 (#208).
- Replace queueSize with QUEUE_SIZE in FPP file (#186).
- Use template expansion system to generate F’ monitoring component (#185).
- Use template expansion system to generate standalone Copilot monitor (#189).
- Add repository information to cabal package (#148).
- Add version bounds to all dependencies (#119).
- Add command to transform state diagrams into monitors (#194).
- Extend standalone command to use external process to parse properties (#197).
- Enable using user-provided file as format definition spec (#200).
- Add support for XML files to standalone backend (#202).
- Extend support for file, property formats across backends (#204).
- Add java runtime to Dockerfile generated by FPrime backend (#206).
[1.5.0] - 2024-11-21
- Version bump 1.5.0 (#178).
- Fix incorrect path when using Space ROS humble-2024.10.0 (#158).
- Use template expansion system to generate cFS monitoring application (#157).
- Use template expansion system to generate ROS monitoring application (#162).
- Fix comment in generated Copilot spec (#164).
- Add missing notPreviousNot to generated spec (#168).
- Introduce new standalone command (#170).
- Correct name in documentation (#176).
[1.4.1] - 2024-09-21
- Version bump 1.4.1 (#155).
- Remove dependency on IfElse (#150).
- Replace homepage (#147).
[1.4.0] - 2024-05-21
- Version bump 1.4.0 (#145).
- Make ros command generate dockerfile (#136).
- Map float and double to the same types in C++ (#138).
[1.3.0] - 2024-03-21
- Version bump 1.3.0 (#133).
- Fix missing stream name substitution (#120).
- Use generalized JSON parser for DB Spec (#122).
- Fix translation of equivalence boolean operator from SMV (#126).
- Sanitize handler names (#127).
- Use same handler name in FPrime/ROS and Copilot (#130).
[1.2.0] - 2024-01-21
- Version bump 1.2.0 (#117).
- Generalize JSON parser (#115).
[1.1.0] - 2023-11-21
- Version bump 1.1.0 (#112).
- Remove trailing spaces from cFS app template (#108).
- Replace all mentions of the Sample App (#105).
[1.0.11] - 2023-09-21
- Version bump 1.0.11 (#103).
- Support MTL operators with number ranges in SMV (#101).
[1.0.10] - 2023-07-21
- Version bump 1.0.10 (#98).
- Correct test case (#96).
[1.0.9] - 2023-05-21
- Version bump 1.0.9 (#93).
- Allow customizing the names of the C files generated by Copilot (#80).
- Translate ZtoPre and YtoPre to Copilot (#86).
[1.0.8] - 2023-03-21
- Version bump 1.0.8 (#81).
- Support inequality operator in SMV and CoCoSpec (#71).
- Introduce new F’ (FPrime) backend (#77).
- Mark package as uncurated (#74).
[1.0.7] - 2023-01-21
- Version bump 1.0.7 (#69).
- Introduce new ROS2 backend (#56).
[1.0.6] - 2022-11-21
- Version bump 1.0.6 (#64).
- Update license in cabal file to OtherLicense (#62).
[1.0.5] - 2022-09-21
- Version bump 1.0.5 (#60).
- Bump version bounds of Aeson (#55).
- Support floating point numbers in SMV expressions (#58).
[1.0.4] - 2022-07-21
- Version bump 1.0.4 (#53).
- Address all hlint suggestions (#51).
[1.0.3] - 2022-05-21
- Version bump 1.0.3 (#49).
- Conformance with style guide (partial) (#45).
[1.0.2] - 2022-03-21
- Version bump 1.0.2 (#43).
- Fix compilation error in unit tests (#42).
- Remove reduntant parenthesis (#40).
[1.0.1] - 2022-01-21
- Version bump 1.0.1 (#39).
- Align definitions consistently (#35).
- Indent ogma-core:Language.Trans.CStruct2CopilotStruct.buildCField (#36).
- Indent ogma-core:Command.Result module declaration (#37).
[1.0.0] - 2021-11-22
- Initial release.