Skip to content

Commit c0b907b

Browse files
authored
Merge pull request #65 from LexouDuck/dev
many updates and fixes, particularly to math functions (int/fixed/float)
2 parents 94f07db + 51d7880 commit c0b907b

1,478 files changed

Lines changed: 476756 additions & 178718 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cccmk

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,47 +16,47 @@ project_versionfile='VERSION'
1616
project_packagefile='mkfile/lists/packages.txt'
1717
project_track_paths='mkfile'
1818
project_track='
19-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:CONTRIBUTING.md:CONTRIBUTING.md
20-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_select_license/MIT.txt:LICENSE
21-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:.gitignore:.gitignore
22-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:.githooks/_if_ask_autoversion/pre-commit:.githooks/pre-commit
23-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:.githooks/_if_ask_autoversion/pre-push:.githooks/pre-push
24-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:.githooks/_if_ask_commitlinter/commit-msg:.githooks/commit-msg
25-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/Makefile:Makefile
26-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/compare_version.sh:mkfile/utils/compare_version.sh
27-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/ansi.mk:mkfile/utils/ansi.mk
28-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/ext.mk:mkfile/utils/ext.mk
29-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/help.mk:mkfile/utils/help.mk
30-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/help-debug.awk:mkfile/utils/help-debug.awk
31-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/help-makefiles.awk:mkfile/utils/help-makefiles.awk
32-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/help-targets.awk:mkfile/utils/help-targets.awk
33-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/help-variables.awk:mkfile/utils/help-variables.awk
34-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/prereq.mk:mkfile/utils/prereq.mk
35-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/print.mk:mkfile/utils/print.mk
36-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/refactor.mk:mkfile/utils/refactor.mk
37-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/shell.mk:mkfile/utils/shell.mk
38-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/utils/make.mk:mkfile/utils/make.mk
39-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/config/modes.mk:mkfile/config/modes.mk
40-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/config/build.mk:mkfile/config/build.mk
41-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/_if_ask_testsuite/config/build-tests.mk:mkfile/config/build-tests.mk
42-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/config/install.mk:mkfile/config/install.mk
43-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/all.mk:mkfile/rules/all.mk
44-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/build.mk:mkfile/rules/build.mk
45-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/install.mk:mkfile/rules/install.mk
46-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/_if_ask_testsuite/rules/build-tests.mk:mkfile/rules/build-tests.mk
47-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/_if_ask_testsuite/rules/lists-tests.mk:mkfile/rules/lists-tests.mk
48-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/lists.mk:mkfile/rules/lists.mk
49-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/clean.mk:mkfile/rules/clean.mk
50-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/dist.mk:mkfile/rules/dist.mk
51-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/init.mk:mkfile/rules/init.mk
52-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/prereq.mk:mkfile/rules/prereq.mk
53-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/version.mk:mkfile/rules/version.mk
54-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/packages.mk:mkfile/rules/packages.mk
55-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/_if_ask_testsuite/rules/test.mk:mkfile/rules/test.mk
56-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/_if_multiselect/coverage.mk:mkfile/rules/coverage.mk
57-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/_if_multiselect/debugging.mk:mkfile/rules/debugging.mk
58-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/_if_multiselect/lint.mk:mkfile/rules/lint.mk
59-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/_if_multiselect/format.mk:mkfile/rules/format.mk
60-
3ff55b61b715ba7b35b8ef8566766a7118060b0e:_if_ask_mkfile/mkfile/rules/_if_multiselect/doc.mk:mkfile/rules/doc.mk
19+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:CONTRIBUTING.md:CONTRIBUTING.md
20+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_select_license/MIT.txt:LICENSE
21+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:.gitignore:.gitignore
22+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:.githooks/_if_ask_autoversion/pre-commit:.githooks/pre-commit
23+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:.githooks/_if_ask_autoversion/pre-push:.githooks/pre-push
24+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:.githooks/_if_ask_commitlinter/commit-msg:.githooks/commit-msg
25+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/Makefile:Makefile
26+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/compare_version.sh:mkfile/utils/compare_version.sh
27+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/ansi.mk:mkfile/utils/ansi.mk
28+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/ext.mk:mkfile/utils/ext.mk
29+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/help.mk:mkfile/utils/help.mk
30+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/help-debug.awk:mkfile/utils/help-debug.awk
31+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/help-makefiles.awk:mkfile/utils/help-makefiles.awk
32+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/help-targets.awk:mkfile/utils/help-targets.awk
33+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/help-variables.awk:mkfile/utils/help-variables.awk
34+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/prereq.mk:mkfile/utils/prereq.mk
35+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/print.mk:mkfile/utils/print.mk
36+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/refactor.mk:mkfile/utils/refactor.mk
37+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/shell.mk:mkfile/utils/shell.mk
38+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/utils/make.mk:mkfile/utils/make.mk
39+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/config/modes.mk:mkfile/config/modes.mk
40+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/config/build.mk:mkfile/config/build.mk
41+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/_if_ask_testsuite/config/build-tests.mk:mkfile/config/build-tests.mk
42+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/config/install.mk:mkfile/config/install.mk
43+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/all.mk:mkfile/rules/all.mk
44+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/build.mk:mkfile/rules/build.mk
45+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/install.mk:mkfile/rules/install.mk
46+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/_if_ask_testsuite/rules/build-tests.mk:mkfile/rules/build-tests.mk
47+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/_if_ask_testsuite/rules/lists-tests.mk:mkfile/rules/lists-tests.mk
48+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/lists.mk:mkfile/rules/lists.mk
49+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/clean.mk:mkfile/rules/clean.mk
50+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/dist.mk:mkfile/rules/dist.mk
51+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/init.mk:mkfile/rules/init.mk
52+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/prereq.mk:mkfile/rules/prereq.mk
53+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/version.mk:mkfile/rules/version.mk
54+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/packages.mk:mkfile/rules/packages.mk
55+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/_if_ask_testsuite/rules/test.mk:mkfile/rules/test.mk
56+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/_if_multiselect/coverage.mk:mkfile/rules/coverage.mk
57+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/_if_multiselect/debugging.mk:mkfile/rules/debugging.mk
58+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/_if_multiselect/lint.mk:mkfile/rules/lint.mk
59+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/_if_multiselect/format.mk:mkfile/rules/format.mk
60+
bf72e37d7a95d270d2fb1489f3cd20f68e413574:_if_ask_mkfile/mkfile/rules/_if_multiselect/doc.mk:mkfile/rules/doc.mk
6161
9e8f48303812b2dcb54c93cca9f0de19f3742e68:_if_ask_mkfile/mkfile/rules/_if_multiselect/doc-help.mk:mkfile/rules/doc-help.mk
6262
'

.github/workflows/ci.yml

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,20 @@ defaults:
1313
jobs:
1414
ci:
1515
runs-on: ${{ matrix.os }}
16-
timeout-minutes: 10
16+
timeout-minutes: 8
1717
strategy:
1818
fail-fast: false
1919
matrix:
2020
os: [ubuntu-latest, macOS-latest, windows-latest]
21-
compiler: [gcc, clang]
22-
exclude:
23-
- os: windows-latest
24-
compiler: clang
21+
cc: [gcc, g++, clang, clang++]
2522

2623
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
2724
steps:
2825
- uses: actions/checkout@v4
2926

3027

3128

32-
# - name: Check (with ${{matrix.compiler}}, for ${{matrix.os}})
29+
# - name: Check (with ${{matrix.cc}}, for ${{matrix.os}})
3330
# run: |
3431
# printf "OS: $OS\n"
3532
# printf "RUNNER_OS: $RUNNER_OS\n"
@@ -40,48 +37,44 @@ jobs:
4037
# for i in `find log -name "predef_*.c"` ; do cat $i ; done
4138

4239
- name: Setup
43-
if: ${{ (matrix.os != 'windows-latest') || (matrix.compiler != 'gcc') }}
4440
run: |
45-
echo "CC=${{matrix.compiler}}" >> $GITHUB_ENV
41+
echo "CC=${{matrix.cc}}" >> $GITHUB_ENV
42+
echo "LD=${{matrix.cc}}" >> $GITHUB_ENV
4643
47-
- name: Setup (Windows, mingw)
48-
if: ${{ (matrix.os == 'windows-latest') && (matrix.compiler == 'gcc') }}
44+
- name: Setup (Windows, mingw 64-bit)
45+
if: ${{ (matrix.os == 'windows-latest') && (matrix.cc == 'gcc') }}
4946
run: |
5047
echo "CC=x86_64-w64-mingw32-gcc" >> $GITHUB_ENV
51-
48+
# echo "CC=i686-w64-mingw32-gcc" >> $GITHUB_ENV
5249
# echo "PATH=$PATH:C:\msys64\mingw64\bin" >> $GITHUB_ENV
5350

54-
- name: Prerequisite tools install
51+
- name: Install/check prerequisite tools
5552
run: |
5653
make prereq-build
5754
make prereq-tests
5855
make prereq-dist
5956
57+
- name: Build library (with ${{matrix.cc}}, for ${{matrix.os}})
58+
run: make BUILDMODE=release CC=$CC build
6059

60+
- name: Build test suite (with ${{matrix.cc}}, for ${{matrix.os}})
61+
run: make BUILDMODE=release CC=$CC build-tests
6162

62-
- name: Build library (with ${{matrix.compiler}}, for ${{matrix.os}})
63-
run: make BUILDMODE=release build CC=$CC
64-
65-
- name: Build test suite (with ${{matrix.compiler}}, for ${{matrix.os}})
66-
run: make BUILDMODE=release build-tests CC=$CC
67-
68-
69-
70-
- name: Run test suite (with ${{matrix.compiler}}, for ${{matrix.os}})
71-
run: make BUILDMODE=release test ARGS="-a"
63+
- name: Run test suite (with ${{matrix.cc}}, for ${{matrix.os}})
64+
run: make BUILDMODE=release CC=$CC test ARGS="-a"
7265

66+
- name: Create distributable package (for ${{matrix.os}})
67+
run: make BUILDMODE=release CC=$CC dist
7368

7469

75-
- name: Create distributable package (for ${{matrix.os}})
76-
run: make BUILDMODE=release dist
7770

7871
- name: Upload build binary artifacts
7972
uses: actions/upload-artifact@v4
8073
with:
81-
name: libccc-build_${{matrix.os}}_${{matrix.compiler}}
74+
name: libccc-build_${{matrix.os}}_${{matrix.cc}}
8275
path: ./dist/*.zip
8376

84-
# - name: Release (with ${{matrix.compiler}}, for ${{matrix.os}})
85-
# run: make clean ; make build-release CC=${{matrix.compiler}}
77+
# - name: Release (with ${{matrix.cc}}, for ${{matrix.os}})
78+
# run: make clean ; make build-release CC=${{matrix.cc}}
8679

8780
# TODO: automate release tag for github ?

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#! The complete absolute path of the root-level makefile
88
MKFILE_PATH := "$(abspath $(lastword $(MAKEFILE_LIST)))"
99
#! The directory of the root-level makefile
10-
CURRENT_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
10+
CURRENT_DIR := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
1111
#! The sub-directory in which makefile scripts are stored
1212
MKFILES_DIR := ./mkfile/
1313

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
libccc@0.12.0-2024-03-14_48a7a5ec0376e5be1aef83ac3f33f8b96156ba5d
1+
libccc@0.13.0-2025-02-10_8c2d54486805ac119983b03cdb76fdefb3af70a6

doc/doxygen-config.doxygen

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -880,12 +880,13 @@ INPUT = ./README.md \
880880
./docs/hdr/ \
881881
./docs/hdr/libccc/ \
882882
./docs/hdr/libccc/sys/ \
883+
./docs/hdr/libccc/text/ \
883884
./docs/hdr/libccc/math/ \
884885
./docs/hdr/libccc/math/algebra/ \
885-
./docs/hdr/libccc/monad/ \
886-
./docs/hdr/libccc/image/ \
887886
./docs/hdr/libccc/random/ \
887+
./docs/hdr/libccc/generic/ \
888888
./docs/hdr/libccc/encode/ \
889+
./docs/hdr/libccc/image/ \
889890

890891
# This tag can be used to specify the character encoding of the source files
891892
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses

0 commit comments

Comments
 (0)