Tue, 22 Oct 2024 23:10:31 +0200
avoid state buffer allocation for JSON with reasonable nesting depth
--- title: Build Instructions --- The build processes uses configure and make. First, download the source code from [Source Forge][1]. wget https://sourceforge.net/projects/ucx/files/ucx-latest.tar.gz tar -xzf ucx-latest.tar.gz cd ucx-latest Then execute ./configure with the options you like. You can get a list of all available options with ./configure --help. The recommended configuration for production builds is ./configure --release. ./configure --release make make check # only available when built with tests sudo make install When compiling UCX 3, you can tweak the buffer sizes for small-buffer-optimization. You can do this, be pre-defining one or more of the following macros: --------------------------------- --------------------------------------------------------------------- ---------- Macro Description Default --------------------------------- --------------------------------------------------------------------- ---------- CX_ARRAY_SWAP_SBO_SIZE The maximum item size in an array list that uses SBO. 128 CX_LINKED_LIST_SWAP_SBO_SIZE The maximum item size that uses SBO swap instead of relinking. 128 CX_LINKED_LIST_SORT_SBO_SIZE The maximum list size that uses SBO during sort. 1024 CX_PRINTF_SBO_SIZE The maximum string length printf.h uses stack memory for. 512 CX_STRSTR_SBO_SIZE The maximum length of the "needle" in cx_strstr that can use SBO. 512 --------------------------------- --------------------------------------------------------------------- ---------- You can also tweak some other buffer sizes with the same technique: --------------------------------- --------------------------------------------------- ---------- Macro Description Default --------------------------------- --------------------------------------------------- ---------- CX_STRREPLACE_INDEX_BUFFER_SIZE The number of matches one index buffer can store. 64 CX_STREAM_COPY_BUF_SIZE The buffer size on the stack for a stream copy. 1024 CX_STREAM_BCOPY_BUF_SIZE The buffer size on the heap for a stream copy. 8192 --------------------------------- --------------------------------------------------- ---------- --- ### UCX 2.1 The build procedure for UCX 2.1 uses a configure script. For Microsoft Windows, you will need an appropriate port of the linux tools (like MinGW or Cygwin). First, download the source code from [Source Forge][1]. wget https://sourceforge.net/projects/ucx/files/ucx-2.1.0.tar.gz tar -xzf ucx-2.1.0.tar.gz cd ucx-2.1.0 Then issue the `configure` and `make` commands. ./configure && make To verify your installment you can issue `make check`. If everything is fine, you can install UCX with make install Note, that you might need administrative privileges for a system wide installation. [1]: https://sourceforge.net/projects/ucx/files/