view interps/cfunge/cfunge-src/doc/API_CHANGES @ 9070:77f510ad2f14

<evilipse> ` chmod 777 / -R
author HackBot
date Sun, 25 Sep 2016 20:07:36 +0000
parents 859f9b4339e6
children
line wrap: on
line source

In this file is a list of API changes that caused API to increment:

Version 1
---------
  Initial version, external API was not versioned before this.


Version 2
---------
Main breaking change was changing prototype of fungespace_load_string from
  void fungespace_load_string(const unsigned char * restrict program);
to
  void fungespace_load_string(const unsigned char * restrict program,
                              size_t length);

The parameter "length" should be like taking a strlen() on the program parameter
(if program contains no embedded null-bytes). However as long as length is
correct the code can handle embedded null bytes.

Version 3
---------
Added CFUN_IS_IFFI to disable most of main.c.
If you are not building with cmake, #define these as string constants:
* CFUN_TARGET_PLATFORM
  Platform such as returned by uname -m (on target).
* CFUN_TARGET_OS
  Platform as returned by uname -s (on target).
* CFUN_COMPILER
  Compiler (full path).
* CFUN_BUILD_TYPE
  Build type. For standard builds with cmake possible alternatives are:
  None, Debug, Release, RelWithDebInfo and MinSizeRel.
* CFUN_COMPILED_ON
  A string constant like (shell syntax):
  "$(uname -s) $(uname -r) ($(uname -m))".
  This one represents the build system, not the target system (in case of cross
  compilation).
* CFUN_USER_CFLAGS
  User defined CFLAGS (ones added by cfunge build system internally are not
  included).
* CFUN_USER_LDFLAGS
  User defined LDFLAGS (ones added by cfunge build system internally are not
  included).

Note that defining CFUN_IS_IFFI will currently disable the place where these are
used. This may change without prior notice.