aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Rename and fix for custom preset rebuild{->-preset}-doc.shSven Göthel2024-08-083-46/+70
|
* Update CMake Presets incl. build scripts using it nowSven Göthel2024-08-087-261/+116
|
* scripts: Add build-wasm.shSven Göthel2024-08-082-0/+98
|
* Move to llvm clang 18 (better lint + format options), refine format optionsSven Göthel2024-05-131-1/+1
|
* scripts/rebuild-doc.sh: Make it work with new cmake build setupSven Göthel2024-05-121-17/+9
|
* Bump for v1.3.0v1.3.0Sven Göthel2024-05-121-0/+5
|
* IDE Eclipse CDT: Add CDT-LSP (clangd languages server [protocol]) setup ↵Sven Göthel2024-05-031-1/+1
| | | | (recommendation), update .clang* settings, recommend llvm-clang 16+
* scripts: Add -gcc for test-exec scripts; build-clang.sh re-enables clang-tidySven Göthel2024-05-024-8/+8
|
* rebuild-doc.sh: Adopt to default build scriptsSven Göthel2024-04-301-5/+7
|
* math: Migrate linear algebra + float IEEE 754 (IEC 559) functionality from ↵Sven Göthel2024-04-135-17/+172
| | | | | | | | | | | | | gfxbox2 and certain Jogl of mine classes to jau::math::** Chosen CamelCase (PascalCase) for class types, differing from gfxbox2. Status: - Compile clean - Tests -- test_math_float.cpp: Covers epsilon/zero/equal/compare/IEC559 of float_math.hpp -- test_math_vec.cpp: Covers Vec2f + Vec3f (TODO) -- TODO: Mat4f, Quaternion, Frustum, ...
* int_math: Add branchless abs2(), is_power_of_2(); Add high_bit(); Fix ↵Sven Göthel2024-02-251-3/+0
| | | | {add,sub,mul}_overflow(); Add unit tests (test_int_math.cpp)
* Don't enforce CMAKE_CXX_STANDARD, but have user define variable on command ↵v1.0.1Sven Gothel2022-12-312-16/+19
| | | | | | line to have same CXX version being used with parent A parent's project CMAKE_CXX_STANDARD will not be propagated to a add_subdir(jaulib) scope!
* Add Eclipse IDE setup using cmake prepare script and external make builder ↵Sven Gothel2022-12-092-0/+57
| | | | as documented in README
* scripts/build*: Fix 'time' command detectionSven Gothel2022-11-282-12/+16
|
* build script: Have 'time' command be optionalSven Gothel2022-11-272-3/+15
|
* build-cross.sh: Bump my image (comment)Sven Gothel2022-11-271-1/+1
|
* clang-tidy (C++ lint): Enable for vscode, optional @ commandline (see ↵Sven Gothel2022-11-262-3/+4
| | | | scripts/build.sh), simple lint fixes.
* git-push-public.sh: Add backup reposSven Gothel2022-11-131-0/+2
|
* Adding jau::lang::token_fsm A lexical analyzer (tokenizer) using a tabular ↵Sven Gothel2022-10-231-0/+1
| | | | | | finite-state-machine (FSM), aka `endlicher automat` (EA) Salvaged my code from July 1992 ;-)
* darray.hpp: Workaround gcc 12.2.0-3 Debian 12 Bookworm 2022-10-17 false ↵Sven Gothel2022-10-171-0/+1
| | | | positive '-Werror=stringop-overflow=' using ::explicit_bzero(..)
* setup-machine-arch.sh: Search for junit jar file variants junit4.jar and ↵Sven Gothel2022-10-171-9/+11
| | | | | | junit.jar Notable: On Alpine Linux the hamcrest-all.jar had to be manually provided (couldn't find in main + custom repo)
* scripts/setup-machine-arch.sh: Add `Alpine Linux` OpenJDK locationsSven Gothel2022-10-171-1/+9
|
* Add testsudo_fileutils02 test scriptSven Gothel2022-10-172-0/+84
|
* scripts/setup-machine-arch.sh: Support OS name 'Linux', used for non-GNU ↵Sven Gothel2022-10-171-0/+3
| | | | Linux distributions like Alpine/musl
* jau::function: Use optimized Static Polymorphic `delegate_t<R(A...)>` ↵Sven Gothel2022-10-073-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (footprint + performance) Keep orig Runtime Polymorphic as `test/function2.hpp` for comparison and review. delegate_t<R(A...)> allows fast path target function invocation. This static polymorphous object, delegates invocation specific user template-type data and callbacks and allows to: - be maintained within function<R(A...)> instance as a member - avoiding need for dynamic polymorphism, i.e. heap allocated specialization referenced by base type - hence supporting good cache performance - avoid using virtual function table indirection - utilize constexpr inline for function invocation (callbacks) Impact: - Memory footprint reduced (64bit) - lambda, member: 64 -> 48 bytes, i.e. 25.00% less size - capval, capref: 56 -> 48 bytes, i.e. 14.29% less size - Performance (linux-arm64, raspi4, gcc, mean @ 600 samples): - member_jaufunc: 7.34998 -> 5.3406 ms, i.e. 27.34% perf. gain - becoming faster than member_stdbind_unspec - lambda_jaufunc: 6.89633 -> 5.52684 ms, i.e. 19.86% perf. gain - aligning most trivial-types to similar performance - Performance differences on linux-amd64 high-perf machine - Less significant than linux-arm64 - Probably due to better CPU caching, memory access, branch prediction, etc. - member_jaufunc: 1.880 -> 1.848 ms, i.e. ~2% perf. gain (too small) - lambda_jaufunc: 1.871 -> 1.851 ms, i.e. ~1% perf. gain (too small) - Lines of code incl. comments: - From 1287 -> 1674 lines, i.e. 30% added lines of code - Added code used for manual static polymorphism, see above. - Performance methodology - New code test - nice -20 ./test_functional2_perf --benchmark-samples 600 - Old code test - nice -20 ./test_functional1_perf --benchmark-samples 600 +++ Optimization of func::member_target_t<...> using `gcc` Utilizing GCC C++ Extension: Pointer to Member Function (PMF) Conversion to function pointer - Reduces function pointer size, i.e. PMF 16 (total 24) -> function 8 (total 16) - Removes vtable lookup at invocation (performance) - Pass object this pointer to function as 1st argument - See [GCC PMF Conversion](https://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html#Bound-member-functions)
* functional: Add general lambda support, revise API doc, have native target ↵Sven Gothel2022-09-192-1/+2
| | | | | | | | | | function size accessible (and show in toString() Also, to avoid any template type deduction error, have the internally used `function(std::shared_ptr<target_type> _funcPtr) noexcept` made explicit as `explicit function(const void* dummy, std::shared_ptr<target_type> _funcPtr) noexcept` Adopted test_functional01.cpp and test_functional_perf.hpp
* functional: Cleanup API doc; Add fast path target function ↵Sven Gothel2022-09-173-0/+3
| | | | target_t::delegate; Add function ctor for all types incl. simple lambda assignment; Add perf test.
* Bump README.mdv0.16.0Sven Gothel2022-09-161-1/+1
|
* jau::FunctionDef<> -> jau::function<R(A...)> using proper function prototype ↵Sven Gothel2022-09-161-1/+1
| | | | | | | | | | | | | | | template definition and default c++ naming scheme (function_def.hpp -> functional.hpp) Changes - Instead of FunctionDef<R, A1, A2> -> function<R(A1, A2)> - Added support for void return type - C++ naming scheme - Enhance unit tests a little. Examples: - jau::function<bool(int)> func = jau::bind_member(&i1, &MyClass::m_func1); - jau::function<void(int)> func = jau::bind_member(&il, &MyClass::m_func2); - ...
* Variable integer base coding and fixed binary base 64 coding in C++ ↵Sven Gothel2022-09-061-0/+1
| | | | `jau::codec::base` and Java `org.jau.util.BaseCodec`
* Complete full `jau::fs::mount()` and `umount()`Sven Gothel2022-08-311-3/+3
|
* scripts/test*.sh: mkdir $rootdir/doc/test for logfileSven Gothel2022-07-252-1/+3
|
* scripts/test_exe_template.sh: Preserve quoted arguments (for Catch2 test args)Sven Gothel2022-07-252-4/+7
|
* Drop scripts/build-doc.sh, use rebuild-doc.shSven Gothel2022-07-251-56/+0
|
* FreeBSD Support: Build infrastucture, use $os_name-$archabi, ... (1/2)Sven Gothel2022-07-2410-98/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | Build scripts - setup-machine-arch.sh - set os_name { 'linux' or 'freebsd' } - skip syslibdir for non linux - be quite if given arg "-quiet" - Set JAVA_HOME (if not done yet) - Set JUNIT_CP (if not done yet) - adopted all build/test scripts C++ compilation: - drop libatomic on all non Linux OS - Set SYS_INCLUDE_DIRS w/ FreeBSD += /usr/local/include, use it in compilation - FreeBSD: Set CMAKE_SYSTEM_PREFIX_PATH={/usr;/usr/local} - Use find_library() for LIBCURL_LIBNAME and LIBUNWIND_LIBNAME w/ REQUIRED if selected - Test: ownership_fix_tag: Use group 44(video) as defined in FreeBSD, Debian and Ubuntu - use 'chgrp -f' to not complain on errors, continue build OS/C++ file locations: - mini_httpd Java file locations: - openjdk - junit4 + hamcrest - IOUtil.getExeTestShellCode(): FreeBSD uses /bin/test as /bin/true is n/a (for executable temp jar dir, i.e. fat jars)
* mount/umount: Cover `testsudo_fileutils02.cpp` with ↵Sven Gothel2022-07-051-0/+99
| | | | `TestsudoFileUtils02.java`; API-doc: Detail mount/umount capabilities (alt to sudo)
* Add java test `TestByteStream01` covering ByteInStream*, same as native ↵Sven Gothel2022-06-282-12/+59
| | | | | | | | | | | | | `test_bytestream01`; Refine ByteInStream*.java mapping ... - Move ByteInStream.create() -> NioUtils.to_ByteInStream() - Added ByteInStream.closeStream() allowing to close the underlying stream w/o disposing native instance as with close() - ByteInStream.read() returns 'int' for length since all is based on pinned byte arrays anyways - Added NioUtils.read_stream() with StreamConsumer type similar as with C++ helper. - Added JauUtils for basic output support for tests - TestByteStream01 mimicks native code flow 100%
* jau::fs::dir_item::backed_string_view: Adopt to clang's inability to ↵Sven Gothel2022-06-251-1/+1
| | | | std::move() a std::string w/o copy, clang >= 11
* testsudo_fileutils02: Run w/ capsh `cap_sys_admin,cap_setuid,cap_setgid+eip` ↵Sven Gothel2022-06-251-2/+2
| | | | as user or as root via sudo; After setup mount_image() and umount() as well as copy-test can be called as user
* Add jau::fs::mount_image() and umount(), enable testing via ↵Sven Gothel2022-06-232-0/+8
| | | | '-DTEST_WITH_SUDO=ON' as it requires `root` permissions
* scripts/*build.sh: Append archabi to logfileSven Gothel2022-06-192-3/+7
|
* scripts/build.sh: Add spacing between optional CLANG usage and 1st cmake variantSven Gothel2022-06-181-0/+1
|
* Use libcurl optional, enable via cmake option `-DUSE_LIBCURL=ON` and remove ↵Sven Gothel2022-06-181-1/+4
| | | | dependencies w/o using it
* scripts/rebuild-doc.sh: Remove target before rebuilding docSven Gothel2022-05-291-0/+1
|
* Add cross-build scripts (from Direct-BT); Bump v0.8.5v0.8.5Sven Gothel2022-04-244-0/+135
|
* build scripts: Only use OpenJDK 17 if available (Not available on Debian 10)Sven Gothel2022-04-244-4/+20
|
* Build using OpenJDK 17 (min requirement still 11), 'fix' deprecated and ↵Sven Gothel2022-04-234-4/+4
| | | | removal warnings
* *build-doc.sh: Only build documentation and remove tar ball before creating ↵Sven Gothel2022-02-072-1/+46
| | | | (safe)
* build.sh: Reorder most used invocation: Release + DebugSven Gothel2021-12-051-1/+2
|
* scripts/build-doc.sh: Create tar archive of docSven Gothel2021-11-041-1/+1
|