nlib
|
gen-sln.ps1
, for creating a Visual Studio solution file from PowerShell using CMake. cmake_cafe_ninja.ps1
and cmake_ctr_ninja.ps1
, for creating a build script for ninja from PowerShell using CMake. nlib_pause()
. NLIB_TLS_INVALID
. nlib_atomic_exchangeptr()
. nlib_tryonce()
is now deprecated. This function will be deleted in a future release. nlib_mkostemps()
, nlib_fd_fileid()
, and nlib_readlink()
. nlib_timer_create()
, nlib_timer_settime()
, nlib_timer_gettime()
, and nlib_timer_delete()
. nlib.natvis
file from the setup
directory to the cmake
directory. It will be automatically included into your project when creating that project with cmake 3.7 and later. heap::CentralHeap
. OSS
libraries to 3.14.1. nlib_bitreverse32()
and nlib_bitreverse64()
. O_EXCL(NLIB_FD_O_EXCL)
in nlib_fd_open()/tt>.
Modified nlib_fd_create()
so that it fails if the file already exists.
nlib_strcplen2()
was renamed nlib_strcplen()
. nlib_strcplen2()
will be provided as a macro for a while and then be deleted.
nlib_popcnt()
was renamed nlib_popcnt32()
. nlib_popcnt()
will be provided as a macro for a while and then be deleted.
nlib_clz()
was renamed nlib_clz32()
. nlib_clz()
will be provided as a macro for a while and then be deleted.
nlib_ctz()
was renamed nlib_ctz32()
. nlib_ctz()
will be provided as a macro for a while and then be deleted.
Deleted deprecated files and functions.
Made other minor changes and fixes.
heap::CentralHeap::FreeWithSize()
, heap::CentralHeap::GetAllocSize()
, and heap::CentralHeap::Realloc()
. NMALLOC_QUERY_SET_COLOR
, NMALLOC_QUERY_GET_COLOR
, NMALLOC_QUERY_SET_NAME
and NMALLOC_QUERY_GET_NAME
to queries for nmalloc_query()
. This function associates a 24-bit integer value or a string with any allocated region of 4096 bytes or more. object_tracking
sample in the heap
library. NMALLOC_DUMP_PAGESUMMARY
to NMallocDumpMode
. nmalloc
, when failing to allocate a TLS index. nmalloc_setmark1()
, nmalloc_setmark2()
, nmalloc_getmark()
and nmalloc_getobjptr()
are now deprecated. They will be deleted in a future release. NMALLOC_HEAPOPTION_CHECK_0
and NMALLOC_HEAPOPTION_CHECK_1
are now deprecated. They will be deleted in a future release.
nlib_memcplen()
, nlib_memutf8_to_utf16()
, nlib_memutf16_to_utf8()
, nlib_memutf8_to_utf32()
, and nlib_memutf32_to_utf8()
. nlib_strcplen2()
. nlib_strcplen()
and nlib_strcplen_ex()
are now deprecated. They will be deleted in future releases. nlib_basename()
and nlib_dirname()
. nlib_strlcpy()
. nlib_memccpy()
. nlib_memspn()
and nlib_memcspn()
. nlib_strcat()
, nlib_strncat()
, nlib_wcscat()
, and nlib_wcsncat()
are now deprecated. They will be deleted in future releases. nn::nlib::StrCat()
and nn::nlib::StrNcat()
are now deprecated. They will be deleted in future releases.
nlib_sleep()
, that have been declared in the misc
library in the global namespace are now moved from that library to the new libn
library. lib/cmake/gcc
to lib/cmake/cygwin
. nlib_isalnum()
, nlib_isalpha()
, nlib_iscntrl()
, nlib_isdigit()
, nlib_isgraph()
, nlib_islower()
, nlib_isprint()
, nlib_ispunct()
, nlib_isspace()
, nlib_isupper()
, nlib_isxdigit()
, nlib_tolower()
, and nlib_toupper()
. IsAlnum()
, implemented as C++ functions. nlib_strto_int32()
, nlib_strto_int64()
, nlib_strto_uint32()
, nlib_strto_int64()
, nlib_strto_double()
, nlib_strto_float()
, nlib_strto_int32_fallback()
, nlib_strto_int64_fallback()
, nlib_strto_uint32_fallback()
, nlib_strto_int64_fallback()
, nlib_strto_double_fallback()
, nlib_strto_float_fallback()
, nlib_strto_int8()
, nlib_strto_int16()
, nlib_strto_uint8()
, and nlib_strto_uint16()
. StrTo()
and StrToFallback()
implemented as C++ functions. nlib_epochtime_timespec()
, nlib_ticktime_timespec()
, nlib_sleep_timespec()
, nlib_mutex_trylock_for_timespec()
, nlib_semaphore_trywait_for_timespec()
, nlib_cond_wait_for_timespec()
, nlib_cond_wait_until_timespec()
, nlib_rwlock_tryrdlock_for_timespec()
, nlib_rwlock_tryrdlock_until_timespec()
, nlib_rwlock_trywrlock_for_timespec()
, nlib_rwlock_trywrlock_until_timespec()
, nlib_condrwlock_wait_for_timespec()
, and nlib_condrwlock_wait_until_timespec()
. nlib_fd_open()
is changed to change the last argument type from void*
to int
and specify access permission. nlib_thread_setname()
is changed to allow you to specify a thread you want to change its name. heap::CentralHeap(nmalloc)
of the heap
library has been further improved.
lib/cmake/gcc
to lib/cmake/cygwin
. nlib_remove()
and nlib_thread_getname()
. heap::CentralHeap(nmalloc)
of the heap
library.
heap::CentralHeap
(nmalloc)
from the heap
library caused fragmentation. oss
libraries. In addition, temporary files can be now automatically deleted. nlib_fd_pwrite()
and nlib_fd_pread()
for the CAFE and CTR versions, corrected the behavior found when an offset larger than the file size is specified. simd::I64
is now deprecated. Crc32
class is now deprecated. Use nlib_crc32()
or nlib_crc32c()
instead.
nlib_compiler_version()
function was added to the misc
library. It returns the compiler version used to compile nlib. nlib_crc32()
and nlib_crc32c()
functions were added to the misc
library. simd
library. simd
library.
oss
library now uses nlib_malloc
instead of nmalloc
in platforms other than CAFE and CTR. NMALLOC_QUERY_UNIFY_FREELIST
can now be specified for the argument of nmalloc_query()
in the heap
library. heap
library's CentralHeap
is reduced. simd::I128::PopCntMask8()
, simd::I128::ClzMask8()
, and simd::I128::CtzMask8()
to the simd
library. nlib_malloc_size()
could not be used in the Windows version of the DLL.
nlib_is_error()
function. It allows errors to be definitely evaluated and described for the return values of errno_t or bool. nlib_getenv()
function now supports CAFE and CTR. IsOk()
and IsError()
functions for each class have been depreciated. Use the nlib_is_error()
or operator bool()
function instead. Init()
member function to Utf16InputStream
, Utf32InputStream
, WcharInputStream
, Base64InputStream
and Base64OutputStream
in the misc
library. TextReader
, TextWriter
, BinaryReader
and BinaryWriter
classes for the misc
library is now split into two stages: one with Init()
and one with Open()
. IsOk()
, IsError()
, Initialize()
and GetErrorValue()
member functions for each class in the exi
library have been depreciated. Initialize()
member function for each class in the heap
library has been depreciated. CsvReader
class for the msgpack
library is now split into two stages: one with Init()
and one with Open()
. nmalloc_aligned()
crashed if memory was assigned with an alignment larger than 4096 bytes. nmalloc_query(NMALLOC_QUERY_MAX_ALLOCATABLE_SIZE, ...)
could return a size larger than the one actually allocated. F128::StoreLoA4()
and F128::StoreHiA4()
of the simd
library may crash during operation on the ARM processor.
Base64Encoder
and Base64Decoder
classes to the misc
library. Various variants of Base64 can be encoded and decoded with those classes. msgpack::JsonStreamGenerator
class to the msgpack
library. JSON or msgpack can be output using the same code. msgpack::JsonWriter
and msgpack::MpWriter
classes in the msgpack
library. Use the msgpack::JsonStreamGenerator
class instead. msgpack::JsonReader
and msgpack::MpReader
classes in the msgpack
library. Use the msgpack::JsonStreamParser
class instead. MpObject
in the msgpack
library now supports the msgpack specifications issued in and after August 2013. Some functions have been added and some other functions have been deprecated. InputStream::Read(ptr, nbytes)
did not correctly write data of a certain large size to the read buffer.
CurlInputStream
class to the misc
library. The class for handling data downloaded using libcurl
in streams. KeyIdxSortN()
and KeyIdxSort()
to the misc
library. You can sort objects quickly by sorting 32-bit keys taken from them. nmalloc_query()
to the heap
library. You can inquire or set various kinds of heap status. Also, several functions that should be replaced with nmalloc_query()
have been depreciated. msgpack::JsonStreamParser
class to the msgpack
library. You can parse JSON or msgpack in a pull manner. oss
libraries to 3.9.0. InputStream
or OutputStream
is closed.
threading::LockFreeThreadPool
class to the misc
library. This thread pool is suitable for fine grain tasks. GroupVarInt32
class to the misc
library. This class allows fast encoding and decoding of 32-bit integers. nlib_malloc_size()
to the misc
library. nmalloc()
to correspond to the alignment of std::max_align_t
.
DynamicAlignedStorage
class to the misc
library. LockFreeUnitHeap
class to the misc
library. LockFreePipe
class to the misc
library. LockFreeStack
class to the misc
library. LockFreeQueue
class to the misc
library. LockFreeInit()
function to the misc
library. LockFreePriorityQueue
class to the misc
library. LockFreeBroadcastQueue
class to the misc
library. nmalloc_aligned()
. NULL
was returned when a too large size was specified in nmalloc()
or nrealloc()
. Crc32
class has been now improved.
nlib_mq_open()
, nlib_mq_send()
, and nlib_mq_receive()
, have been added to support blocking queues, non-blocking queues, and lock-free queues. nlib_condrwlock
type and related functions as conditional variables for read-write locks. They can hold either an unlocked read or write lock. The class for C++ is nn::nlib::threading::CondVarForSharedCriticalSection
. nlib_atomic_compare_exchange32()
, nlib_atomic_compare_exchange64()
, and nlib_atomic_compare_exchangeptr()
. You can specify a memory order on them. nlib_atomic32_xxxxx()
and nlib_atomic64_xxxxx()
. nlib_ns
as an alias in the nn::nlib
namespace.
oss
libraries to 1.7.0. nn::nlib::oss::Lz4InputStream
and nn::nlib::oss::Lz4OutputStream
to the oss
library. lz4_nlib
command-line compression tool that uses LZ4. HandleMaker
class to the misc
library. This class supports implementations that allow a handle (32-bit integer value) to be associated with some objects. nlib_spinlock_init()
, nlib_spinlock_lock()
, nlib_spinlock_trylock()
, and nlib_spinlock_unlock()
functions to the misc
library. nlib_thread_exit()
and nlib_thread_exit_cpp()
functions to the misc
library. nlib_thread_attr_setstack()
and nlib_thread_attr_getstack()
functions to the misc
library. Along with this addition, deleted the NLIB_THREAD_ATTR_KEY_STACKADDR
macro. nlib_error_string()
function to the misc
library. threading::ThreadSettings
class in the misc
library to wrap nlib_thread_attr
. Related code needs to be modified since the source code level compatibility is no longer provided. NLIB_NMALLOC_DISABLE_TLSCACHE
, NLIB_NMALLOC_HEAPSIZE
, and NLIB_NMALLOC_MODE
environment variables. nmalloc_aligned()
might not allocate memory with a specified alignment. nmalloc_heaphash()
. testing
library was not output in the 2015-05-26 version. nlib_strerror()
is now deprecated. threading::CondVar::Init()
is now deprecated.
testing
library: ASSERT_STRCASEEQ
, ASSERT_STRCASENE
, EXPECT_STRCASEEQ
, and EXPECT_STRCASENE
. testing
library now loads several environment variables supported by Google Test. nlib_disk_freespace
function to the misc
library. nlib_fd_readv
and nlib_fd_writev
functions to the misc
library. nlib_fd_preadv
and nlib_fd_pwritev
functions to the misc
library. OutputStream::WriteGather
member function to the OutputStream
class in the misc
library. Nflags::GetBoolFromEnv
, Nflags::GetInt32FromEnv
, Nflags::GetInt64FromEnv
, Nflags::GetDoubleFromEnv
, and Nflags::GetStringFromEnv
member functions to the Nflags
class in the misc
library. StringInputStream
is now deprecated.
gcc
.
oss
library files for each OSS. The reason being that the OSS binaries cannot be excluded during the dead-code stripping process that occurs when linking DLLs and shared libraries (but not static libraries). msvc
directory, instead of in directories created for each version and build setting. nx_misc-vc120.lib
and nx_misc-vc120_d.lib
. RPATH
can be configured. As a result of these changes the LD_LIBRARY_PATH
setting is no longer needed. DateTime
class now supports reads and writes in asctime
format.
clang
). nlib_mlock
and nlib_munlock
. msgpack::MpObject
now supports reading and writing by C++11 standard library array
, unordered_map
, and tuple
objects. NLIB_VIS_HIDDEN
and NLIB_VIS_PUBLIC
macros. /MT
and /MTd
options to /MD
and /MDd
, respectively. -fvisiblity=hidden
and -fvisibility-inlines-hidden
options to the compiler options for gcc
and clang
libraries in non-Cygwin environments. This reduces the number of symbols the library makes public. nn::nlib::threading::CondVarFallback
is now deprecated. It will be deleted in a future release.
LZ4
library for high-speed compression and decompression to the oss
library (https://github.com/Cyan4973/lz4). In most cases, compression is around 20 times as fast as zlib
, and decompression is around five times as fast (around three times as fast on the CAFE platform). nlib_log_print
and nlib_log_vprint
for log output, and the function nlib_log_attr_setint
for configuring the log output settings. You can specify the log priority level and the destination for the log output. VERBOSE
, DEBUG
, INFO
, WARN
, ERROR
, or FATAL
. OutputDebugString
function, syslog (Linux/FreeBSD) or event log (Windows), or a file. char
(UTF-8) when compiled with clang
, and wchar_t
(UTF-16/UTF-32) when compiled with gcc
. nn::nlib::threading::SharedCriticalSection
to use these functions. nn::nlib::threading::Barrier
to use these functions.
nn/nlib/Platform.h
, when the error constant macro is defined independently by nlib
(instead of being defined by errno.h
of the standard C library), its values now are defined the same as the values defined by cerrno.hpp
(http://www.boost.org/doc/libs/1_57_0/boost/cerrno.hpp) of the boost
library (http://www.boost.org/). This improves the behavior of nlib
when used together with the boost
library.
clang
and libc++
. nlib_clz
, nlib_clz64
, nlib_ctz
, and nlib_ctz64
. nlib_popcnt
, nlib_popcnt64
, and nlib_popcnt16
. nn::nlib::simd::I128::AlignR
. nlib_ticktime
to use OSGetSystemTime
instead of OSGetTick
. heap
library (for the case of DLL/shared libraries).
testing
library. - --gtest_filter
, --gtest_shuffle
, --gtest_random_seed
, and --gtest_print_time
. - --help
option. heap
library that caused metadata to become corrupted in some situations.
Readme-ja.html
.
heap
library. nmalloc_get_settings
. nmalloc
, use nmalloc_get_settings
instead of configuring g_NMallocSettings
. nlib_gen_random
. nn::nlib::succinct::AhoCorasickBuilder
. nn::nlib::threading::ThreadPool
. nrealloc
from allocating physical memory appropriately. nlib_strcplen_ex
.
nlib_tls_alloc
. gameheap
sample to the heap
library. heap
library to implement an interface that is typical of heaps used in game development. heap
library's nmalloc
function. nlib_tls_getvalue
returns NULL
when a thread ends. nmalloc_thread
, nmalloc_realloc
, nmalloc_malicious
, and speeddemo
samples were deleted, and their contents were integrated into thenmalloc_simple
sample. exi
library, revised the behavior that caused strings in text nodes to be invalid prior to allocator deletion. XmlStreamEventLogger
from the exi
library.
typedef
for nlib_sock
from SOCKET
type to int
type in Windows. SOCKET
type is 64-bit, but using int
is also safe, so it has been changed to an int
type to standardize the interface. simd
library using the actual cross compiler for the ARM architecture (gcc
4.9). NEONvsSSE_6.h
file distributed by Intel. simd
library. nlib
. nn::nlib::unicode
namespace. These will be deleted in a future release. nn::nlib::unicode::ToUtf32
, nn::nlib::unicode::ToUtf16
, and nn::nlib::unicode::ToUtf8
nn::nlib::unicode::Utf32ToUtf8
, nn::nlib::unicode::Utf16ToUtf8
, and nn::nlib::unicode::WideToUtf8
nn::nlib::unicode::Utf8ToUtf32
, nn::nlib::unicode::Utf8ToUtf16
, and nn::nlib::unicode::Utf8ToWide
nn/nlib/threading/SimpleRingBuffer.h
from the misc
library. nn/nlib/threading/Interlocked.h
from the misc
library. In the future, use a C-linkage function like nlib_atomic32_increment
directly. nn/nlib/threading/CallOnce.h
from the misc
library. nn::nlib::threading::CallOnce
and nn::nlib::threading::TryCallOnce
. In the future, use C-linkage functions like nlib_once
and nlib_tryonce
directly. NLIB_PRINTF
, NLIB_VSNPRINTF
, and NLIB_VSNWPRINTF
macros. NLIB_ATTRIBUTE_ALIGN
macro. In the future, these macros will be integrated into the NLIB_ALIGNAS
macro. nn::nlib::StrEqual
and nn::nlib::StrNEqual
. Use a function like strcmp
or nn::nlib::StrCmp
directly. misc/threading/tls/tls.cpp
sample. SimpleRingBuffer
class from the library itself to the misc/threading/simpleringbuffer/simpleringbuffer.cpp
sample. nmalloc_packet
sample. e misc/threading/safeinit/safeinit.cpp
sample. This sample shows how to methodically and safely perform initialization from multiple threads. NLIB_MEMORY_ORDER_RELEASE
, NLIB_MEMORY_ORDER_ACQUIRE
, and NLIB_MEMORY_ORDER_ACQ_REL
. atomic_thread_fence
is used if C++11 is available. _WriteBarrier
on the Win32 version. This resolves some problems caused by optimization. DataSynchronizationBarrier
and optimization barriers.
simd
library support paired singles on CAFE. Calculations that use single-precision floating-point numbers now use paired singles. simd
library. Frustum
class. nlib_init_ctrsample
allocates the buffer for RomFs
dynamically. exi
library. UNICODE
and _UNICODE
macros are no longer defined. nlib
does not depend on the existence of these macro definitions. WINVER
macro. chocolatey
package-management tool for Windows. Using chocolatey
enables you to implement a degree of automation for the build environment for Windows program development. apt-cyg
package-management tool for Cygwin. Using apt-cyg
enables you to implement a degree of automation for the build environment for Cygwin program development. nlib
with Windows and Cygwin. nlib_strcplen
and nlib_strcplen_ex
SIMD instructions from operating correctly when strings were terminated immediately before page boundaries (4096-byte boundaries).
simd
library. They all support SSE4.1, NEON, and general architectures. Sphere
, AxisAlignedBox
, and OrientedBox
classes. These classes support spheres, AABBs, and OBBs, respectively. switch
statements) code that uses NLIB_ASSUME
(__assume
) and __builtin_unreachable
. __restrict decoration
for several function arguments. simd
library on CAFE/CTR. Vector3::Rotate
and Vector3::InvRotate
.
Added functions to the simd
library. They all support SSE4.1, NEON, and general architectures.
F128::Exp2
and F128::ExpE
. F128::SinH
, F128::CosH
, and F128::TanH
. F128::Tan
. F128::Log2
and F128::LogE
. simd
library (nn::nlib::simd::MergeSortUint32A16
). std::sort
(measured sorting 32 elements in a Visual Studio 2013 release build) searchdata.xml
) for the creation of proprietary search indices by users in the Reference Manual. clang-format
and clang-check
, tools that use LibClang. For more information, see the following. nlib
's coding rules. clang-format
with its conversion settings that conform to the nlib
coding style. compile_commands.json
is now created when a makefile is created using cmake
. That file can be used to use clang-check
(http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html). nlib
API that is notated in user code in the Visual Studio IDE. This is now possible with the following APIs. simd
library APIs /Oi
option to the list of Visual Studio compile options.
simd
library for SSE4.1 and NEON, to support SIMD operations on integers and floating point numbers. nn::nlib::simd
namespace. /bigobj
option has been added for builds of programs in all versions of Visual Studio.
strList
from the Nflags::GetStringCommaList
function in the Windows version would be stored to a pointer in the local stack. AsciiReader
and AsciiWriter
, which had been deprecated as of the 2014-03-24 release.
NativePathMapper
class. nlib_printf
, when standard output was redirected in the Windows (Visual Studio) version. NativePathMapper
to make improvements by setting path strings appropriately for each platform. stingutils
sample code.
nlib_utf16cplen_ex
. nlib_skipws
. nlib_swapendian_16
, nlib_swapendian_32
, and nlib_swapendian_64
. nn::nlib::msgpack::JsonReader
class. nn::nlib::msgpack::MpObject
class. BinaryReader
and BinaryWriter
classes. nn::nlib::msgpack::MpWriter
class. TextReader::ReadUntil
function. TextReader
class can now be inherited. nn/nlib/utility.h
, nn/nlib/time.h
, and nn/nlib/uriparser.h
. AsciiReader
and AsciiWriter
classes have been deprecated. They will be deleted at some point on or after the next release. TextReader
and TextWriter
classes, it was determined that there was no longer any need for classes specific to ASCII strings.
nlib_strlen
and nlib_memcmp
. POPCNT
instruction was used to increase the speed of SmartBitmap
(when the running machine is supporting SSE4.2). Uri
class and of URI generation. AsciiReader
and AsciiWriter
classes. TextReader
and TextWriter
classes. TextReader
class. SizedEnum1
, SizedEnum2
, SizedEnum4
, and SizedEnum.h
.
cmake
, even for CAFE and CTR. samples/cmake/
directory. nn::nlib::move_tag
function is specified as the last argument for some classes and functions, the argument object will be moved (the object's swap
member function will be used). Thread
class. nn::nlib::move_tag
function as the last argument will move the argument object. Thread::StartRef
function was deleted. Platform
API.
nn::nlib::msgpack::JsonWriter
class. nlib_memcpy
and nlib_memmove
. nlib_strlen
and nlib_wcslen
. On some platforms these versions will be faster than the standard versions. nmalloc
was running slower than malloc
. Platform
API.
BinaryReader
attempted to read a floating point number heap
library, and reorganized the classes. HeapBase
, FixedMemoryHeap
, and FixedMemoryHeapSet
. UnitHeap
and FrameHeap
were changed to become single-thread-specific.
heap
library. CentralHeap
. Also made it more difficult to overwrite, even illegally, pointers within the metadata. CachedHeap
. CentralHeap
from overwriting memory after nfree
. NMALLOC_HEAPOPTION_CHECK_1
option to create CentralHeap
and CachedHeap
, it becomes possible to denote two 16-bit added information units to allocated memory. heap
library's object_tracking
sample. speeddemo
sample. nmalloc
. HeapBase::HEAPOPTION_ZEROCLEAR
and HeapBase::DUBUGFILL
functionalities were removed from CentralHeap
and CachedHeap
. nn::nlib::msgpack::JsonReader
class. bsdiff
but only when the nn::nlib::oss::BsDiffZ
or nn::nlib::oss::BsPatchZ
functions are used. nlib_debug_backtrace
and nlib_debug_backtrace_gettext
functions. nlib_getenv
function. nlib_mutex
for the Win32 version. Enabled the use of CRITICAL_SECTION
when its use is possible. nmalloc
in the Win32 version (particularly in the single-thread environment) Platform.h
. SizedEnum1
, SizedEnum2
, and SizedEnum4
. They will be deleted at some point on or after the next release. enum
type for C++11; there are not many benefits to using the deprecated items even in C++03. nn::nlib::heap::FixedMemoryHeapSet
has been deprecated. They will be deleted at some point on or after the next release. HeapBase::AllocV
, HeapBase::FreeV
, and HeapBase::HasPtr
. They will be deleted at some point on or after the next release. heap
library will no longer inherit the nn::nlib::heap::HeapBase
and FixedMemoryHeap
classes: StackHeap
, FrameHeap
, UnitHeap
, and CentralHeap
. nn::nlib::heap::FixedMemoryHeap
class will be deleted. nn::nlib::heap::UnitHeap
and nn::nlib::heap::FrameHeap
will be deleted and will be replaced with a non-class-template single-thread-specific version. This is because the use of nmalloc
, CachedHeap
, and CentralHeap
is more generic and efficient than the use of the thread-safe UnitHeap
and FrameHeap
. nn/nlib/utility.h
, nn/nlib/time.h
, and nn/nlib/uriparser.h
. They will be deleted at some point on or after the next release. __builtin_expect
. Platform
API functions.
oss
library. This library is category I, so make sure that you follow the necessary procedures when using it. bsdiff
(http://www.daemonology.net/bsdiff/). nlib
interface. nlib_malloc
and nlib_free
for memory allocation within nlib
. heap
library's replace_malloc
sample. nlib_malloc
can switch with malloc
, nlib_free
with free
, and so on. gcc
used for Cygwin builds to gcc
4.8.2. UniquePtr
deleter object to have data members. realloc
) used within ReallocVec
. realloc
) used within ReallocOutputStream
. realloc
) used within ZlibInputStream
and ZlibOutputStream
. nn::nlib::heap::nmalloc_size
for the heap
library. nlib_thread_setaffinity
function. nlib_thread_setname
function. nrealloc
where a physical page could not be allocated. Platform.h
and NMalloc.h
header files were not compilable with the C compiler.
--ntest_prefix
to the testing
library's command line arguments. nn::nlib::UriTemplate
class within the uri
sample. Use of the UriTemplate
class enables use of the URI Template (RFC6570). nlib_write_stdout
and nlib_write_stderr
. nlib_vsnprintf
function was added to enable stabler handling than vsnprintf
. nlib_strcpy
were added to be the corresponding of functions like strcpy_s
. nlib_debug_break
function. SimpleCriticalSection
constructor within the msgpack
library might be initialized at the wrong time. testing
library).
nn::nlib::g_FSClient
from the CAFE version. A client will be created internally the first time the file I/O is used. OSMutex
to OSFastMutex
and the conditional variables from OSCond
to OSFastCond
. socket
library. For Win32, Linux, and Cygwin, socket
is wrapped in winsock2 and bsd socket and then defined in Platform.h
. NLIB_PRINTF
in the Win32 version will internally convert from UTF-8 to SJIS before displaying. datetime
sample. It shows off the rich functionality of the nn::nlib::DateTime
class. stringutils
sample. It shows how to use the normalization features for nn::nlib::StringView
and Unicode strings. nflags
sample. The use of nn::nlib::Nflags
enables simple processing of option strings for the command-line tool.
socket
library, can now be used without using Boost. Platform.h
header file. nn::nlib::unicode::Utf8ToUtf32
and nn::nlib::unicode::Utf8ToUtf16
. TextReader
internally. Now converts directly. nn::nlib::unicode::Utf16ToUtf8
and nn::nlib::unicode::Utf32ToUtf8
. TextWriter
internally. Now converts directly. ThreadArg1
, ThreadArg2
, ThreadArg3
, ThreadArg4
, and ThreadArg5
, which had all been deprecated.
char
to wchar_t
.
exi
library. ExiChar
was of type char
, parsing could mistakenly fail if there were characters other than ASCII characters in the element name. Nlist
begin
and end
functions didn't match in cases where there was insufficient memory.
exi
library. XmlStreamReader
and XmlStreamWriter
. ExiAllocatorEx
object and passing it to the Create
functions for XmlStreamReader
and XmlStreamWriter
, you can use an allocator specific to the instance. It is also possible to continue using the share allocators. Improved the heap
library (for functions like nmalloc
and nfree
).
malloc
and free
as long as you are in an environment that supports weak symbols. NLIB_USE_NMALLOC_AS_MALLOC
macro in any one of the user program CPP files, it is possible (in all but MSVC) to replace the implementations of functions like malloc
with those like nmalloc
. VirtualAlloc
and mmap
for environments that support virtual memory. nn::os::MemoryBlock
is used in place of virtual memory in CTR. nmalloc
by setting the LD_PRELOAD
environmental variable such that malloc
functions in existing programs are dynamically replaced with calls to nmalloc
functions. nlib
, replacing executions of malloc
internal to cmake, clang, gcc, make, and so on, with nmalloc
avconv
malloc
heap
library (for functions like nmalloc
and nfree
). nmalloc_init
when the program starts. nmalloc_finalize
when the program ends. nmalloc_finalize_tls
function are no longer needed in Win32, Linux, or CAFE (PPC) (although there is no issue with calling it). Future
. nn::nlib::threading::AsyncFileIo
. The same API is provided regardless of whether asynchronous input and output is in use in internal implementation. socket
, now run without boost. std::vector
and std::string
from the succinct
library. StringView
. std::string
's member functions in a format where copying and dynamic memory allocation does not occur. ReallocVec
, ReallocQueue
, and ReallocCstringVec
. realloc
(or in similar functions). Nqueue
. Nlist
is used internally. wchar_t
to char
. ScopedPtr
and ScopedArray
. socket
library from the CAFE (PPC) version. gcc
4.5.3 to gcc
4.7.3 for Cygwin builds,
__STDC_LIMIT_MACROS
, __STDC_CONSTANT_MACROS
, or __STDC_FORMAT_MACROS
are undefined, made it such that they are defined in Config.h
. INT32_MAX
, PRIu64
, and the like now use the definitions within the standard header, stdint.h
. nn::nlib::threading::SharedMutex
. std::shared_mutex
(http://isocpp.org/files/papers/N3659.html). nn::nlib::threading::CondVarFallback
class. Semaphore
and one of SimpleCriticalSection
. nn::nlib::threading::CondVar
implementation enables their use. nn::nlib::threading::CriticalSection
implementation enables their use. nn::nlib::threading::TimedCriticalSection
and deleted nn::nlib::threading::Mutex
. nn::nlib::threading::TimedCriticalSectionFallback
is used. nn::nlib::threading::Future
was improved. For more information, see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3558.pdf. Then
. Can be used to get multiple return values from multiple, separate, asynchronous threads, in the order they concatenate. WhenFutureComplete
class. This class creates a Future
to configure when values are set for all or some of multiple instances of Future
. It can be used to bind multiple asynchronous processes. GetError
function. Asynchronous process is now able to explicitly return error states. MakeReadyFuture
function. nn::nlib::threading::Thread
and function pointers such as lambdas. nn::nlib::threading::ThreadArg<T1...>
anew, deprecating ThreadArg1
, ThreadArg2
, ThreadArg3
, ThreadArg4
, and ThreadArg5
. They will be deleted in an upcoming release. cmake
script to conform to the boost
library recognition issues in Cmake 2.8.11.
nn::nlib::msgpack::jsonrpc
namespace. AsciiReader
and AsciiWriter
. When working with ASCII text, these functions work more efficiently than using TextReader
and TextWriter
. detached
field to ThreadSettings
. When true
, the thread will be in a detached state upon its start. nn::nlib::threading::Async
in the IOP environment. --gtest_repeat
command-line option. --gtest_break_on_failure
. ThreadSettings
was configured. StringOutputStream
and VectorOutputStream
. ScopedPtr
and ScopedArray
. They will be deleted in an upcoming release. sysPrintf
used in the IOP environment to sysPrintfNoTimeStamp
. nn::nlib::CodePointCount
function.
nullptr
. Moved the definition of nullptr
to the nn::nlib
namespace. Made it such that the macro definition is used when nullptr
is macro-defined.
future
functionality. MpObject
(from 8 bytes or less to 14 bytes or less). StrToFallback
) for the StrTo
function. strtol
internally. SnPrintfFallback
) for the SnPrintf
function. vsnprintf
and vsnwprintf
internally. nn::nlib::threading::this_thread::Sleep
to run in the IOP environment. nn::nlib::threading::Semaphore
to suit IOP's system software, in the IOP environment. Barrier
in the IOP environment through changes. StrTo
function in the IOP environment. It can now use types including floating point. SnPrintf
function in the IOP environment. SnPrintf
function in the IOP environment. VsnPrintfFallback
nn::nlib::DateTime::GetNow
in the IOP environment. new T[0]
to fail every time in the IOP environment. This bug affected the succinct
library. NLIB_HAS_SSCANF
and NLIB_SSCANF
macros. NLIB_HAS_VSNWPRINTF
macro.
nn::nlib::threading::Future
, nn::nlib::threading::Promise
, nn::nlib::threading::PackagedTask
, and nn::nlib::threading::Async
. Respectively, these functions have features akin to future
, promise
, packaged_task
, and async
from the C++ 11 standard library, and enable the safe output and acquisition of thread execution results. nn::nlib::threading::Thread::Start
function. MpObject
. MpObject
. nn::nlib::DateTime::ToRfc2822
function. nn::nlib::DateTime::ToW3cDtf
function. iterator
and const_iterator
for nn::nlib::Nlist
. nn::nlib::DateTime::GetNow
function didn't work correctly in Cafe. nn::nlib::threading::Thread
in Cafe, where memory was illegally (too early) returned to the system when the destructor was called before finalizing the thread after detaching it. MpObject
where there was a risk of a memory leak when assigning a small (8 bytes or less) amount of byte data (such as a string) and there was already data within MpObject
.
ReallocOutputStream
. VectorOutputStream
and StringOutputStream
. Their use now triggers a warning. nn::nlib::threading::UniqueLock
was newly implemented. nn::nlib::threading::ScopedLock
was changed to a very simple implementation. UniquePtr
now supports array data (objects created with new[]
). For example, it can be used like so: UniquePtr<char[]> ptr(new char[1024])
. ScopedPtr
may be deprecated, because all of the functionality is included within UniquePtr
. XmlStreamWriter
closed, when writing binary XML data. (Separated the base stream from XmlStreamWriter
because nn::nlib::exi::XmlStreamWriter
does not possess the base stream). nn::nlib::msgpack::MpWriter
closed. Pos
now returns 0
if it is run after the stream has closed. ScopedLock
, SimpleCriticalSection
, and CriticalSection
. typedef
or a template alias) for the C++11 environment. nn::nlib::UniquePtr
is now std::unique_ptr(template alias)
. nn::nlib::threading::ScopedLock
is now std::lock_guard(template alias)
. nn::nlib::threading::UniqueLock
is now std::unique_lock(template alias)
. nn::nlib::threading::SimpleCriticalSection
is now std::mutex(typedef)
. nn::nlib::threading::CriticalSection
is now std::recursive_mutex(typedef)
. nn::nlib::threading::Mutex
, there is std::recursive_timed_mutex
. Nlist
.
nn::nlib::msgpack::MpWalker
class, which can rapidly access the MessagePack
data read into memory. nn::nlib::msgpack::JsonReader
and nn::nlib::msgpack::JsonWriter
. nn::nlib::Nlist
containers: nn::nlib::msgpack::MpObject
, nn::nlib::msgpack::MpReader
, and nn::nlib::msgpack::MpWriter
. documents/API/
. char16_t
and char32_t
) Cstring.h
such that standard functions like strcpy
, memcpy
, strcat
, and isdigit
can be used more safely.
nn::nlib::Nlist<T>
) that is similar to std::vector<T>
. It can hold classes without copy constructors, and won't crash even if it encounters an out-of-memory error internally. push_back
are equal to or faster than those for std::vector
(because in-place initialization is possible). std::vector
when using an iterator for sequential access in the forward direction. operator[](size_t idx)
operates at \(O(\log idx)\)
time. wchar_t(UTF-16/UTF-32)
or char(UTF-8)
for the internal string type. wchar_t
was available. typedef
, a type called ExiChar
is used for the internal string type. nlib
build. msgpack::JsonReader
double
type now register as errors. msgpack::CsvReader
. double
type now register as errors. UriTemplate
DateTime
StrTo
size_t
are checked.
nn::nlib::Nflags
/ main
function is written. ac
and nexiconv
command-line tools. wf
command-line tool. This tool creates a binary of the nn::nlib::succinct::WordFilter
object from the list of detection terms and exceptions. acmatch
command-line tool. UriTemplate
. Added support for Level 3 of RFC 6570 (https://tools.ietf.org/html/rfc6570). InputConverterStream
and OutputConverterStream
. Utf32InputStream
, Utf16InputStream
, and WcharInputStream
. InputStream
and OutputStream
. InputStream::Pos
function would become invalid after running InputStream::Read(ptr, n)
. InputStream::Skip
function to InputStream
. TextReader
such that you can get the row and column for the current reading position. StrTo
, to safely use the following C standard functions in an integrated way: strtol
, strtoul
, strtoll
, strtoull
, and strtod
.
DateTime
and TimeSpan
. DateTime
can now be configured by parsing date strings in the W3C-DTF and RFC2822 formats. DateTime
. nn::nlib::Base64InputStream
and nn::nlib::Base64OutputStream
. StringInputStream
. This stream class produces output to std::string
. nlib.chm
) of this reference.
unicode
namespace, and added Unicode-related functionality. nn::nlib
namespace to the nn::nlib::unicode
namespace: unicode::WideToUtf8
and unicode::Utf8ToWide
. msgpack::CsvReader
. Complies with RFC 4180 (https://www.ietf.org/rfc/rfc4180.txt). StringOutputStream
. This stream class produces output to std::string
. TextWriter
specifications. typedefs
for UTF-16 characters (utf16_t
) and UTF-32 characters (utf32_t
). typedef
for uint16_t
and uint32_t
, respectively. For C++11, there will be typedef
entries for char16_t
and char32_t
. TextWriter
. utf16_t
and utf32_t
types were added to the argument types for the Write
member functions. It is now possible to pass UTF-16 and UTF-32 characters. SmartBitmap
class to the nn::nlib
namespace, moving it from the succinct
library to the misc
library. exi
library.
testing
library. ASSERT_EQ
) work the same way. new
cannot be used before the main
function and where std::ostream
cannot be used. succinct
library. Trie
using LOUDS. nn::nlib::succinct::WordFilter
and nn::nlib::succinct::WordFilterBuilder
classes. It is now possible to efficiently run large-scale filtering by listing terms and exceptions to be detected. nn::nlib::succinct::Sbv
class. misc
library. ScopedArray
class. This version supports ScopedPtr
arrays. UniquePtr
class. This class is ScopedPtr
with a release
function. std::auto_ptr
(for C++11). exi/multithread
sample. Alarm
class and the misc/alarm
sample from the misc
library.
TextReader
and TextWriter
's error value to errno_t
. BinaryReader
and BinaryWriter
's error value to errno_t
. nn::nlib::Utf8ToUtf32
, nn::nlib::Utf8ToUtf16
, nn::nlib::Utf32ToUtf8
, and nn::nlib::Utf16ToUtf8
. TextWriter
to enable it to write multibyte strings.
EntityRef
entry is now treated not as an error but as a blank string. <e a0 = "b"a1="c"/>
). TaggedTextParser
class (a parser for XML-style tagged text).
ZlibInputStream
and ZlibOutputStream
to add support for zlib
. ThreadLocalData
can be used with nmalloc
for CAFE (PPC). NullInputStream
and NullOutputStream
.
script
, serializer
, simple1
, and xml-rpc
now work in IOP. cachedheap
sample to directly handle heaps that implement nmalloc
in the heap library. nn::nlib::Utf8ToWide
and nn::nlib::WideToUtf8
functions. nn::nlib::Crc32
class to perform Crc32
calculations. FileOutputStream
. Refined the error return values. WriteFormat
) to the TextWriter
class. realloc
for IOP (and it's slow). This implementation is for the heap library's nmalloc_realloc
sample. TextWriter
so that the base stream is flushed by a newline. ConsoleOutputStream
did not result in a flush. readfile
and writefile
samples.
FileInputStream
and FileOutputStream
now work in IOP. misc/readfile
and misc/writefile
samples. succinct/detection
and succinct/ngc
samples now work in IOP.
FileOutputStream
and deprecated PcFileOutputStream
(because it does not yet work in IOP). FileInputStream
and deprecated PcFileInputStream
(because it does not yet work in IOP). OutputStream
error value type to errno_t
. InputStream
's error value to errno_t
. InputStream
and OutputStream
. ScopedPtr
would result in an error for incomplete types. nmalloc_simple
sample to note the method for replacing malloc
. © 2012-2017 Nintendo Co., Ltd. All rights reserved.