Known issues release 3

Jump to: navigation, search


1. The UNIX release of the source comes in a .tar.bz2 file. In this archive, all directories are missing the +x permission, because the file was composed under Windows.

2. In ringbuffer_get_current_write_element, the argument overwrite is set to 1 or 0. In the source code, it is set to RAISED or LOWERED. RAISED and LOWERED are however only defined in the library internal header file; they are not present in the public header file. The value of RAISED is 1 and LOWERED is 0; the documentation correctly indicates what will occur.

3. freelist_set_user_data_in_element does not permit user data to be NULL.

4. ringbuffer_set_user_data_in_element does not permit user data to be NULL.

5. The entire slist API is missing from liblfds.def, so if you build as a DLL on Windows, the slist API is not present.

6. The test program linux makefile does not correctly clean its bin directory. The object directory is cleared (of both objects and dependency files), but the binary will remain (the makefile matched to "$(BINNAME).*", a legacy of its Windows origin; the period of course means that on Linux, no match occurs). I believe the binary is always being fully over-written in the build, so I think this bug (luckily) is harmless.

7. slist is broken. About 10% of the test program runs for slist will assert on a NULL pointer. (This may be due to the pointer decleration problem, which has been fixed; further testing may result in this known issue being revoked).

8. Every data structure is unreliable when compiled for release. This is due to the incorrect decleration of pointer types, such that once the optimizer is used, the compiler is incorrectly optimizing, which leads to completely unpredictable results! this doesn't show up at all on x86/x64 with MSVC, probably because that platform is in some ways extremely conservative with regard to optimization due to legacy compatibility requirements.


No revocations.


Not recorded for this release.