Jackalope / jlib (public) (License: GPLv3 or later) (since 2019-11-18) (hash sha1)
jlib C++ template library
Used to replace std functionality without exception handling.
- data structures
- filesystem routines
- crossplatform threads interface (currently only pthreads implementation)
- thread pool
- crossplatform dynamic memory functions interface (allocate, reallocate, deallocate) with alignment support
- high percision timer routines based on timespec
List of commits:
Subject Hash Author Date (UTC)
make assert constexpr compatible again 378556f2203439749e7c4003031c3e1de1511f6d Jackalope 2020-05-23 23:24:04
renamed Doxygen options cbda01d11706d12d842d088e917dd3e7866689a2 Jackalope 2020-05-23 23:23:30
Updated license notice 0d013874b3eca0e34ad14cbb4dc4aa7628549a4b Jackalope 2020-05-23 22:52:50
Moved some implementation to library obj target 43b7241f3ded0b0b049d15bf337dac6b25b577e6 Jackalope 2020-05-23 22:44:45
CMake documentation target 8ab15abc55ba97919ffa4b07bdf9389b0ff57a24 Jackalope 2020-05-23 21:19:36
CMake install target with version control 9e7aaf56c9c3cae628cc8dc35ded5fec49d414b2 Jackalope 2020-05-23 21:10:32
added read whole TEXT file func also (only binary was before) d70894b97e0760c85fa03bf802d36a840d331bc9 Jackalope 2020-05-20 19:05:49
Changed cmake library interface 0b4c87b296597ae929dc1038e9eefbf155250fa7 Jackalope 2020-05-12 06:57:42
added byte_array and byte_array_ro typedefs 902916f777983eba78d325e9f9c9c01bd2502ca3 Jackalope 2020-05-11 07:47:33
remove _BIT postfix from file opening flags 1cf92db6ccb85c2ac0ed7f86fbdfeac97745bd45 Jackalope 2020-05-11 07:46:51
added license 16a67712bb2ffd15263a6a146a06d4860f435645 Jackalope 2020-05-09 23:31:00
code refactoring 7cfcdc6b9382cea7227d44746c166747fced61a0 Jackalope 2020-05-09 23:05:21
add check for threads count to prevent bloating ce23263c2c053dd1374d54c618b6850215077880 Jackalope 2020-04-21 22:11:24
pthreads detach function fix 8ac43fe43beca9b55d2ea605e0c3fd821b8b5579 Jackalope 2020-04-15 09:53:11
make asserts constexpr compatible 4c2dfc64c3d9587ee9b749db9355f4e0d6003547 Jackalope 2020-03-29 07:03:08
changed default grow policy size addition to 8 619dc29be4ed4ac049cbee81a92e37f29ffd8b7c Jackalope 2020-03-06 07:05:53
comment fixes 73b30cdb75c18752d55c38d862c2c8e54c7b5b5d TheArtOfGriefing 2020-02-15 19:55:30
comment fixes a10726439280c28a5317db2baf3f2de907ba5595 TheArtOfGriefing 2020-02-15 19:53:25
comments fix c07ffee6225640072ec2b064c73097f73824868e TheArtOfGriefing 2020-02-15 18:44:58
comments 610cb9723e9451e21ee23bfd2748febb1d8d5889 TheArtOfGriefing 2020-02-13 18:26:23
Commit 378556f2203439749e7c4003031c3e1de1511f6d - make assert constexpr compatible again
Author: Jackalope
Author date (UTC): 2020-05-23 23:24
Committer name: Jackalope
Committer date (UTC): 2020-05-23 23:24
Parent(s): cbda01d11706d12d842d088e917dd3e7866689a2
Signing key:
Tree: 15a04384c6665d316e02489c3d34388ba40002be
File Lines added Lines deleted
include/jlib/assert.h 8 7
File include/jlib/assert.h changed (mode: 100644) (index 583753e..7c017b4)
23 23 #include <cstdio> #include <cstdio>
24 24 #include <cstdlib> #include <cstdlib>
25 25 #include <cstring> #include <cstring>
26 #define JFNAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
27 #define JFUNC __PRETTY_FUNCTION__
28 #define JLINE __LINE__
29 26
30 27 #define jassert_release(Expr, Msg) \ #define jassert_release(Expr, Msg) \
31 jl::details::assert(Expr, Msg, #Expr, JFNAME, JLINE, JFUNC)
28 jl::details::assert(Expr, Msg, #Expr, \
29 __FILE__, __LINE__, __PRETTY_FUNCTION__)
32 30 #define jassert_soft_release(Expr, Msg) \ #define jassert_soft_release(Expr, Msg) \
33 jl::details::assert_soft(Expr, Msg, #Expr, JFNAME, JLINE, JFUNC)
31 jl::details::assert_soft(Expr, Msg, #Expr,\
32 __FILE__, __LINE__, __PRETTY_FUNCTION__)
34 33 #define jabort_release(Msg) \ #define jabort_release(Msg) \
35 jl::details::abort("Abort", Msg, nullptr, JFNAME, JLINE, JFUNC)
34 jl::details::abort("Abort", Msg, nullptr, \
35 __FILE__, __LINE__, __PRETTY_FUNCTION__)
36 36
37 37 #ifndef NDEBUG #ifndef NDEBUG
38 38 #define jassert(Expr, Msg) jassert_release(Expr, Msg) #define jassert(Expr, Msg) jassert_release(Expr, Msg)
 
... ... namespace jl::details {
47 47 inline void inline void
48 48 print_err(const char *title, const char *error_descr, const char *expr_str, print_err(const char *title, const char *error_descr, const char *expr_str,
49 49 const char *file, int line, const char *func_name) { const char *file, int line, const char *func_name) {
50 const char *p_path = strrchr(file, '/') ? strrchr(file, '/') + 1 : file;
50 51 fprintf(stderr, "%s: %s\n", title, error_descr); fprintf(stderr, "%s: %s\n", title, error_descr);
51 52 if (expr_str != nullptr) if (expr_str != nullptr)
52 53 fprintf(stderr, "Expected: %s\n", expr_str); fprintf(stderr, "Expected: %s\n", expr_str);
53 54 fprintf(stderr, "Source: \"%s\" at line %i function \"%s\"\n", fprintf(stderr, "Source: \"%s\" at line %i function \"%s\"\n",
54 file, line, func_name);
55 p_path, line, func_name);
55 56 } }
56 57 [[noreturn]] inline void [[noreturn]] inline void
57 58 abort(const char *title, const char *error_descr, const char *expr_str, abort(const char *title, const char *error_descr, const char *expr_str,
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/Jackalope/jlib

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/jlib

Clone this repository using git:
git clone git://git.rocketgit.com/user/Jackalope/jlib

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main