Commit a731965e authored by Robert Izzard's avatar Robert Izzard
Browse files

Revert "clean up repo, forward to rob.izzard"

This reverts commit 67cc914b.
parent 67cc914b
Loading
Loading
Loading
Loading

CHANGELOG

0 → 100644
+22 −0
Original line number Diff line number Diff line
24/04/2020 : V1.0 initial commits

27/05/2020 : reworked how string versions of keys are cached, this speeds up searching large hashes by x100 or more. Fixed many small bugs, e.g. the right hashing function is now used, C99 is now checked for properly on C11 mode, Booleans are handled properly (TRUE and FALSE are now case as (bool) types), nested hasher works better, fixed some memory leaks.

30/11/2020 : V1.22 updated to include -Wpedantic in the build flags

24/01/2021 : Fixed bug where some strings had the wrong hash keys generated

22/02/2021 : Wrapped function macros to make sure variable names are unique.

28/05/2021 : Fixed bug where Booleans are uses at as keys and misidentified.

19/06/2021 : V1.26 Added a version of fast_strtod to improve speed.

29/04/2022 : V1.27 Rebranded as libcdict, added some build options,
             released under the GPL.

26/07/2022 : V1.29 Many (mostly small) bug fixes, improved much code, new set of unit tests for the API functions (macro and non-macro calls). Added JOSS paper.

04/08/2022 : V1.30  Add FORTRAN interface and example code (many thanks to Daniel Nemergut).

01/10/2022 : V1.31 Added checks for __VA_OPT__ in meson.build because Clang 11 behaves differently to Clang 12+ and GCC, and set the default C std to gnu18.

INSTALL

0 → 100644
+90 −0
Original line number Diff line number Diff line
libcdict installation instructions

Copyright 2022 Robert Izzard

https://gitlab.com/robizzard/libcdict
https://gitlab.surrey.ac.uk/ri0005/libcdict

------------------------------------------------------------

Requirements
------------

You will need a C compiler, e.g. gcc or clang. Your system should
provide packages for one of these.

You will need meson and ninja. Please install the latest versions
using pip3, e.g.

pip3 install meson
pip3 install ninja

and if you have these already installed

pip3 install --upgrade meson
pip3 install --upgrade ninja

------------------------------------------------------------

While I have made every effort to make sure the libcdict code
works on all platforms, it has only been serious tested on a 
modern Intel i7 processor on Linux, specifically the Ubuntu
20 and 22 distributions.

------------------------------------------------------------

To install a release version in your HOME directory, with the cdict
shared library (libcdict.so) in $HOME/lib, include files in
$HOME/include/cdict and the cdict-config executable in $HOME/bin, run:

~~~bash

meson setup --prefix=$HOME --libdir=lib --buildtype=release builddir
cd builddir
ninja install

~~~

To install a debug version in your HOME directory, run:

~~~bash

meson setup --prefix=$HOME --libdir=lib --buildtype=debug builddir
cd builddir
ninja install

~~~

To install a generic version (e.g. can run on any x86 CPU type)
in your HOME directory, run:

~~~bash

meson setup --prefix=$HOME --libdir=lib --buildtype=release -Dgeneric=true builddir
cd builddir
ninja install

~~~

To build without debugging symbols a version that is as fast as
possible on your PC, and that installs in your HOME directory, run:

~~~bash

meson setup --prefix=$HOME --libdir=lib --buildtype=release -Ddebugging_symbols=false builddir
cd builddir
ninja install

~~~

To build a version suitable for use with valgrind (this disables some gcc features that are incompatible with the current latest valgrind).

~~~bash

meson setup --prefix=$HOME --libdir=lib --buildtype=debug -Dvalgrind=TRUE builddir
cd builddir
ninja install

~~~

Further meson instructions can be found at https://mesonbuild.com/
 No newline at end of file

LICENCE

0 → 100644
+245 −0

File added.

Preview size limit exceeded, changes collapsed.

+7 −2
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@ as hashes or in Python as dictionaries. Native support is
included for output to JSON format or input using jsmn.
Libcdict is designed to be fast.

Please go to this URL to find libcdict
https://gitlab.com/robizzard/libcdict
https://gitlab.surrey.ac.uk/ri0005/libcdict
  
https://gitlab.com/rob.izzard/libcdict
 No newline at end of file
Copyright 2022 Robert Izzard.

Please see the file README.md file for more information.

Please see the file LICENCE for licensing conditions.
+1303 −2

File changed.

Preview size limit exceeded, changes collapsed.

Loading