Skip to content

1.0.0 Release Candidate 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@gdamore gdamore released this 02 Jun 01:21
· 1371 commits to main since this release

This is a release candidate. At this point we consider ourselves ready for 1.0.0 final release. This does have some changes in it, so we will wait a little bit before the final release:

Changes since beta.2:

  • Honors BUILD_SHARED_LIBS CMake setting (see below)
  • Support for Android added
  • Instructions for building with Xcode for iOS (no code changes were needed)
  • Support for enabling sanitizers (address, thread, memory, undefined) via NNG_SANITIZER
  • Fixes for bugs found with sanitizers (use-after-free, leaks)
  • Simplified synchronization primitives on POSIX (no fallback needed)
  • CMake exported target (easier integration within CMake projects) & demos
  • Shared library symbol visibility is reduced by default
  • Documentation updates (various) found during editing

Essentially this project should be easier to use, provided you have a sane CMake installation. It attempts to be a well-behaved citizen in CMake-land, so should be easier to nest into other projects.

The one very important change is that we use the platform-specific defaults to decide whether to build shared or static libraries, and only build either shared or static -- not both. The determination of which to build is driven by the BUILD_SHARED_LIBS macro, which is user-accessible via CMake. This is more closely aligned with usual CMake practice.

Also, if you were using our library to access private symbols, that is a no-no, and may not work anymore, as the shared library is now more careful to only export the symbols we have intended for external use. (Build and use a static library if you need to work around that, but you really should only be using the public symbols.) This was already the default behavior for Windows.