nlib
|
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
. © 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.