diff --git a/CMakeLists.txt b/CMakeLists.txt index d31de7cb..115cbe69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,19 +95,19 @@ add_subdirectory(xo-ratio) add_subdirectory(xo-unit) add_subdirectory(xo-pyunit) add_subdirectory(xo-callback) -add_subdirectory(xo-printable2) # experiment w/ facet object model +add_subdirectory(xo-printable2) # experiment w/ facet object model add_subdirectory(xo-alloc) -add_subdirectory(xo-alloc2) # experiment w/ facet object model -add_subdirectory(xo-gc) +add_subdirectory(xo-alloc2) # experiment w/ facet object model +add_subdirectory(xo-gc) # experiment w/ facet object model add_subdirectory(xo-object) -add_subdirectory(xo-object2) # experiment w/ facet object model -add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo) +add_subdirectory(xo-object2) # experiment w/ facet object model +add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo) add_subdirectory(xo-ordinaltree) # -add_subdirectory(xo-tokenizer2) # schematika tokenizer (fomo) +add_subdirectory(xo-tokenizer2) # schematika tokenizer (fomo) add_subdirectory(xo-expression2) # schematika expressions (fomo) -add_subdirectory(xo-reader2) # schematika expression parser (fomo) -add_subdirectory(xo-interpreter2) # schematika interpreter (fomo) +add_subdirectory(xo-reader2) # schematika expression parser (fomo) +add_subdirectory(xo-interpreter2) # schematika interpreter (fomo) # add_subdirectory(xo-webutil) add_subdirectory(xo-pywebutil) diff --git a/default.nix b/default.nix index ee43faf2..07182293 100644 --- a/default.nix +++ b/default.nix @@ -141,8 +141,9 @@ let xo-arena = self.callPackage pkgs/xo-arena.nix { buildDocs = true; }; xo-facet = self.callPackage pkgs/xo-facet.nix {}; xo-allocutil = self.callPackage pkgs/xo-allocutil.nix {}; - xo-alloc = self.callPackage pkgs/xo-alloc.nix {}; # buildDocs = true; + xo-alloc = self.callPackage pkgs/xo-alloc.nix { buildDocs = true; }; xo-alloc2 = self.callPackage pkgs/xo-alloc2.nix { buildDocs = true; }; + xo-gc = self.callPackage pkgs/xo-gc.nix { buildDocs = true; }; xo-refcnt = self.callPackage pkgs/xo-refcnt.nix {}; xo-ordinaltree = self.callPackage pkgs/xo-ordinaltree.nix {}; xo-flatstring = self.callPackage pkgs/xo-flatstring.nix { buildDocs = true; buildExamples = true; }; @@ -491,6 +492,7 @@ in allocutil = pkgs.xo-allocutil; alloc = pkgs.xo-alloc; alloc2 = pkgs.xo-alloc2; + gc = pkgs.xo-gc; ordinaltree = pkgs.xo-ordinaltree; flatstring = pkgs.xo-flatstring; pyutil = pkgs.xo-pyutil; diff --git a/index.rst b/index.rst index 3e581fb6..e68572a3 100644 --- a/index.rst +++ b/index.rst @@ -20,6 +20,7 @@ Some features: kalman filters, stochastic processes, complex event processing, s xo-flatstring/docs/index xo-ratio/docs/index xo-unit/docs/index + xo-gc/docs/index xo-tokenizer/docs/index xo-reader/docs/index xo-jit/docs/index diff --git a/pkgs/xo-gc.nix b/pkgs/xo-gc.nix new file mode 100644 index 00000000..61db7249 --- /dev/null +++ b/pkgs/xo-gc.nix @@ -0,0 +1,61 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + doxygen, + + python3Packages, + + sphinx, graphviz, + + # xo dependencies + xo-alloc2, + xo-facet, + xo-randomgen, + xo-subsys, +# xo-reflectutil, +# xo-indentlog, + xo-cmake, + + buildDocs ? false, + doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-gc"; + + src = ../xo-gc; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"] + ++ lib.optionals doCheck ["-DENABLE_TESTING=1"]; + + inherit buildDocs; + inherit doCheck; + + postBuild = lib.optionalString buildDocs '' + cmake --build . -- docs + ''; + + nativeBuildInputs = [ + cmake catch2 + xo-cmake + xo-randomgen + ] ++ lib.optionals buildDocs [ + doxygen + sphinx + graphviz + python3Packages.sphinx-rtd-theme + python3Packages.breathe + python3Packages.sphinxcontrib-ditaa + python3Packages.sphinxcontrib-plantuml + python3Packages.pillow + ]; + propagatedBuildInputs = [ + xo-alloc2 + xo-facet + xo-subsys +# xo-reflectutil +# xo-indentlog + ]; + }) diff --git a/xo-alloc2/cmake/xo_alloc2Config.cmake.in b/xo-alloc2/cmake/xo_alloc2Config.cmake.in index e0b5e0b0..16819c3d 100644 --- a/xo-alloc2/cmake/xo_alloc2Config.cmake.in +++ b/xo-alloc2/cmake/xo_alloc2Config.cmake.in @@ -2,7 +2,7 @@ include(CMakeFindDependencyMacro) #find_dependency(indentlog) -find_depnedency(xo_arena) +find_dependency(xo_arena) find_dependency(xo_facet) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-gc/CMakeLists.txt b/xo-gc/CMakeLists.txt index df57b1e3..4a05fc4a 100644 --- a/xo-gc/CMakeLists.txt +++ b/xo-gc/CMakeLists.txt @@ -41,6 +41,6 @@ xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets # docs targets depend on other library/utest/exec targets above, # --> must come after them. # -#add_subdirectory(docs) +add_subdirectory(docs) # end CMakeLists.txt diff --git a/xo-gc/cmake/xo_gcConfig.cmake.in b/xo-gc/cmake/xo_gcConfig.cmake.in index aebd133c..a7eea6c0 100644 --- a/xo-gc/cmake/xo_gcConfig.cmake.in +++ b/xo-gc/cmake/xo_gcConfig.cmake.in @@ -3,6 +3,7 @@ include(CMakeFindDependencyMacro) find_dependency(xo_alloc2) find_dependency(xo_facet) +find_dependency(subsys) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") diff --git a/xo-gc/docs/_static/README b/xo-gc/docs/_static/README new file mode 100644 index 00000000..7297d046 --- /dev/null +++ b/xo-gc/docs/_static/README @@ -0,0 +1 @@ +add any static {.html, .js, ..} files for sphinx to pickup here diff --git a/xo-gc/docs/_static/img/favicon.ico b/xo-gc/docs/_static/img/favicon.ico new file mode 100644 index 00000000..4163dd69 Binary files /dev/null and b/xo-gc/docs/_static/img/favicon.ico differ diff --git a/xo-gc/docs/conf.py b/xo-gc/docs/conf.py new file mode 100644 index 00000000..3d57cb07 --- /dev/null +++ b/xo-gc/docs/conf.py @@ -0,0 +1,39 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'xo gc documentation' +copyright = '2026, Roland Conybeare' +author = 'Roland Conybeare' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +#extensions = [] +extensions = [ "breathe", + "sphinx.ext.mathjax", # inline math + "sphinx.ext.autodoc", # generate info from docstrings + "sphinxcontrib.ditaa", # diagrams-through-ascii-art + "sphinxcontrib.plantuml" # text -> uml diagrams + ] + +# note: breathe requires doxygen xml output -> must have GENERATE_XML = YES in Doxyfile.in +# match project name in Doxyfile.in +breathe_default_project = "xodoxxml" + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +pygments_style = 'sphinx' + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +#html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] +html_favicon = '_static/img/favicon.ico' diff --git a/xo-gc/src/gc/CMakeLists.txt b/xo-gc/src/gc/CMakeLists.txt index 44cef925..985592b0 100644 --- a/xo-gc/src/gc/CMakeLists.txt +++ b/xo-gc/src/gc/CMakeLists.txt @@ -21,4 +21,5 @@ xo_add_shared_library4(${SELF_LIB} ${PROJECT_NAME}Targets ${PROJECT_VERSION} 1 $ # note: deps here must also appear in cmake/xo_alloc2Config.cmake.in xo_dependency(${SELF_LIB} xo_alloc2) xo_dependency(${SELF_LIB} xo_facet) +xo_dependency(${SELF_LIB} subsys) xo_dependency(${SELF_LIB} indentlog)