view interps/cfunge/cfunge-src/doc/API_CHANGES @ 11321:14314c55571e

<FireFly> ` echo "$(cat wisdom/fonts) , FireFly\'s fonts http://xen.firefly.nu/up/fonts/ & https://twitter.com/FireyFly/status/899965577481129984" >/tmp/a && cp /tmp/a wisdom/fonts && cat wisdom/fonts
author HackBot
date Mon, 15 Jan 2018 22:31:52 +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.