Dyn

 view release on metacpan or  search on metacpan

dyncall/ChangeLog  view on Meta::CPAN

This file lists bigger/noteworthy changes, only...


Version 1.4 (2022/12/06)

dyncall:
  o new, portable aggregate-by-value argument interface
  o aggregate-by-value (struct, union) support for x64 (win and sysv; thanks Raphael Luba!)
  o new aggregate description interface DCaggr replacing stale DCstruct (latter had shortcomings, was
    mostly unused as it lacked stable implementations, didn't handle unions, ...)
  o new calling convention modes for thiscalls (platform agnostic DC_CALL_C_DEFAULT_THIS, as well as
    DC_CALL_C_X64_{WIN64,SYSV}_THIS (needed to handle C++ ABI rules for returning aggregates by value)
  o new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL)
  o dcCallF(), dcVCallF(), dcArgF() and dcVArgF() don't implicitly call dcReset()
    anymore, which was unflexible (breaking change)
  o added macros to feature test implementation for aggregate-by-value and syscall support
  o windows/x64/masm directives added to specify how stack unwinds (help for
    debuggers, exception handling, etc.; thanks Raphael Luba!)
  o fixed detection of native thiscall callconv for builds not using MSVC but using (or adhering to)
    the MSVC runtime (e.g. ReactOS' MinGW based RosBE)
  o BSD syscall segfault fix
dyncallback:
  o new, portable aggregate-by-value callback argument interface
  o aggregate-by-value (struct, union) support for x64 (win and sysv; thanks Raphael Luba!)
  o x64/windows masm directives for frame unwinding information (as dbg help; thanks Raphael Luba!)
  o sparc64 callback crash fix
dynload:
  o build fix for ReactOS with RosBE/cmake/mingw-make environment
general:
  o more robust detection of platform endianness (on some platforms inclusion
    of endian.h led to wrong assumptions)
tests:
  o call_suite: simplified and extended to test also unsigned types, and _Bool
  o callback_suite: refactored to be much more like call_suite test
  o call_suite_aggrs: new test suite for calls with aggregate arguments and
    return types (structs, unions and arrays as aggregate members)
  o callback_suite_aggrs: new test suite, like call_suite_aggrs but for callbacks
  o plain: added some aggregate-as-vararg-by-value tests
  o plain_c++: added non-trivial C++ aggregate tests
  o callback_plain_c++: new test, focusing on methods and non-trivial C++ aggregates
  o simplifications and major refactoring to share more code (especially
    signature and case generator) across test suites
  o dynload_plain: simplified build and robustness fixes on some platforms
buildsys:
  o ./configure output for sun make builds: set correct C++ compiler flag var
  o ./configure for SunOS now uses isainfo(1) to deduce native instruction set
  o added explicit arm64 target, and clang tool options to Windows' configure.bat
  o configure.{bat,rc} now writing Makefile.config, for consistency/compatibility (e.g. configure.bat
    can now be used to set up env flags for a non-nmake toolchain)
  o simplified/decluttered Windows and Plan9 configure scripts (removal of unused/stale options, ...)
doc:
  o callconv section additions about aggregate-by-value passing for all platforms
  o new Linux-Std-Base-specific PPC32/SysV section, as aggregate retval handling differs from
    default SysV for such systems
  o man page changes/additions to document new aggregate interfaces
  o added many more usage examples to man pages
  o replaced API description in manual with references to the manpages, to
    avoid duplication and keeping things in sync
  o general clarifications and cleanup, adding missing definitions to man
    pages, ...


Version 1.3 (2021/12/17)

  o introduced version macro (see dyncall/dyncall_version.h)
dyncall:
  o fixed broken return values w/ arm32/thumb mode (only affected some platforms)
  o build fix when using clang's integrated assembler on arm32 hard-float platforms
dyncallback:
  o build fix when using clang's integrated assembler on arm32 hard-float platforms
dynload:
  o Haiku/x86 build fix
  o dynload fix for PE files that do not contain a symbol export directory (thanks Ashok!)
buildsys:
  o windows/nmake based builds: output library name changes to follow conventions of the native
    platform and be in line with cmake based builds
tests:
  o fixed status codes of some tests to actually depend on results (for consistency and automation)


Version 1.2 (2021/01/23)

dyncall:
  o windows arm64 support (thanks Bernhard!)
  o extended signature with more chars for calling convention switching (only for modes
    that coexist on a platform with other conventions)
  o made "formatted" call interface use calling convention signature chars
  o added helper function dcGetModeFromCCSigChar() mapping callconv sig chars to respective mode
  o removed some unnecessary headers (only contained internal used forward declarations)
  o build fix when using clang's integrated assembler on non-Darwin PPC32 platforms
dyncallback:
  o windows arm64 support (thanks Bernhard!)
  o build fix when using clang's integrated assembler on non-Darwin PPC32 platforms
dynload:
  o fix to build with musl libc
  o support for loading macos >= 11.0.1 (Big Sur) dylibs provided by system's "built-in dynamic
    linker cache of all system-provided libraries" (those dylibs are no longer present on the fs)

dyncall/ChangeLog  view on Meta::CPAN

  o fixes for self-resolving symbols on windows
  o removed Dbghelf.lib dependency
  o bug fixes for cygwin/x86
  o fixes for beos/haiku
  o no dependencies to libdyncall sources.
buildsys additions:
  o added zero-config (BSD,GNU,SUN) make files (Makefile.embedded)
  o added in/out-of-source configure2 w/ (BSD,GNU) make files (Makefile.generic)
  o added bootstrap lua script (download/build)
  o Nmakefile: more tests included (resolve_self)
  o improved cross-compilation for iOS (upgrade to 4.3 sdk)
  o darwin 8.0 support
  o added 'install' support for Makefile.embedded
buildsys/gmake updates:
  o added support for msvc/x64 tool-chain
  o default settings for build-dir changed to '.'
  o cleanup: removed top-level Make{Prolog,Epilog,Rules} files and updated all sub-projects and tests
  o added support for DESTDIR staging installation
  o added support for manual page installation
buildsys/cmake updates:
  o updated find module scripts (see cmake/Modules)
  o added support for using dyncall as sub-project (via *Config.cmake files)
    see details in README.CMake
  o fixes for msvc and ml
  o fixes for CPack
  o fixes for universal builds on Mac OS X
  o supports SunPro with *.S files.
  o added experimental 'dynMake' portable make-based build-system (not stable, yet)
doc:
  o added dyncallback documentation
  o updated dyncall documentation
  o minor updates
tests:
  o added flexible test suite for calls (call_suite) based on Lua and C
  o added syscall test
  o updates to resolve-self test (adding additional link flags to export symbols)
  o renamed *.cpp -> *.cc files (OpenBSD/Sun make has no implicit rules for cpp)


Version 0.6 (2010/09/25)

buildsys:
  o new build systems: CMake and Plan9's mk
  o buildsys/gmake tool chain update: pcc and iphone sdk
  o x64 bugfix: added "-fPIC" even for static libs
dynload:
  o enum symbols update: Mach-O and Win64 (thanks Olivier)
  o numerous convenience changes to dynload interface (thanks Olivier)
  o added support for resolving application images itself
dyncall:
  o new platform support: arm/iphone (armv6), x86/Plan9
  o new MIPS calling conventions: o32, n64 (both endian models)
  o cleanup: unexported functions in MASM files, b/c export not needed (thanks Olivier)
  o interface update: added error reporting facility 'dcGetError'
  o bugfix for ppc32/sysv: ellipsis calls were broken
  o interface update: added new abstract mode for ellipsis calls (DC_CALL_C_ELLIPSIS)
docs:
  o comprehensive update
tests:
  o plain: split "plain" test up in C and C++ part
  o callbacksuite: added multiple configuration support for callback_suite


Version 0.5 (2010/02/01)

  o renamed arm9 stuff to arm32
  o added non-EABI ABI for arm32 (before, EABI was the default implementation)
  o added dyncallback support for x64/windows (thanks Olivier), x64/darwin, arm32/arm, arm32/thumb
  o synced documentation again with current state of the source (lots of small changes)
  o updated ruby binding to current state of signature string (still some features missing, though)
  o added a couple of new options to configure scripts (e.g. prefix-bd, new targets, etc.)
  o darwin universal binary support
  o added new tests callback_plain and calback_suite
  o added Haiku/BeOS support


Version 0.4 (2009/07/06)

  o added 'doc' makefile target for coherency and ease of use
  o fixed nmake buildfiles and configure.bat (were out of date and wrong)
  o test suite clean up (GNUmake, BSDmake):
    target "config" modified, phony without dependencies to other builds
  o bugfix: GNU fastcall calling convention for float and double arguments was wrong (no skip of register)
  o update: x86win32* suite tests are built on cygwin now, added total result output
  o signature char (breaking) changes:
    C Strings: 'S' -> 'Z'
    long: 'l' -> 'j'
    long long: 'L' -> 'l'
    added unsigned integer type signature characters: upper case encoding
  o added: callbacks component (support only for some platforms ATM)
  o added: test cases for alloc_wx, thunk
  o updated Documentation


Version 0.3 (2009/01/17)

  o added Linux PPC32 support
  o added ARM THUMB mode support
  o cosmetic changes, documentation updated
  o bugfix: on cygwin exported C symbols in GNU as are prefixed with '_' now.
  o removed scons build support


Version 0.2 (2008/05/18)

  o added scons build support
  o configure variables all prefix CONFIG_* now
  o configure variable INSTALL_DIR changed to INSTALL_PREFIX
  o configure (shell version) option "--prefix" changed to "--prefix=<path>"


Version 0.1 (2008/01/23)

  o initial release



( run in 0.564 second using v1.01-cache-2.11-cpan-39bf76dae61 )