view interps/cfunge/cfunge-src/doc/API_CHANGES @ 12518:2d8fe55c6e65 draft default tip

<int-e> learn The password of the month is release incident pilot.
author HackEso <hackeso@esolangs.org>
date Sun, 03 Nov 2024 00:31:02 +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.