r6.0.0:Upgrading Guide

From liblfds.org
Revision as of 14:07, 4 January 2015 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

Release moves and only moves release 6 into the new namespace policy, which is to say, prefixes all API names, defines, etc, with a string which is unique on a per release basis. For release 6.0.0, this string is "lfds600_" (or "LFDS600_", where used in uppercase).

Upgrade Paths

The only supported upgrade path is from release 6 to release 6.0.0.

User-Visible Changes

All names are now prefixed with "lfds600_" (where lowercase is used) or "LFDS600_" (where uppercase is used), the top-level directory "liblfds600" now contains the code (previously, the "src", "bin" and so on directories were top-level; the test programme however remains in the top-level directory "test"), the header file name has changed from "liblfds.h" to "liblfds600.h", the library name has changed from "liblfds" to "liblfds600" and on Windows, the solution file has changed name from "liblfds.sln" to "liblfds600.sln".

(For those building with command line tools, the Windows and Linux makefiles have not changed name.)

User-Invisible Changes

None.

Upgrading

Where release 6 does not exist in a namespace but rather simply uses names directly (e.g. "freelist_pop" is called "freelist_pop", not "lfds6_freelist_pop"), upgrading is a straightforward, mechanical but rather tedious task, whereby every liblfds name (function names, structure names, type names, #define names, everything) must be prefixed with "lfds600_" or "LFDS600_", case as appropriate.

Finally, modify your build system to take into account the new directory "liblfds600" which is now in the path to the library code.

Notes

Once code is using a namespaced release, upgrading is much easier, since most of the work is a simple global search and replace on the prefix string.