Mercurial > pub > dyncall > dyncall
comparison ChangeLog @ 533:71c884e610f0
- integration of patches from Raphael Luba, Thekla, Inc.:
* integration of aggregate-by-value (struct, union) support patch for x64 (win and sysv)
* windows/x64 asm additions to specify how stack unwinds (help for debuggers, exception handling, etc.)
* see Changelog for details
- new calling convention modes for thiscalls (platform agnostic, was specific before)
* new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL)
- dcCallF(), dcVCallF(), dcArgF() and dcVArgF():
* added support for aggregates-by-value (wasn't part of patch)
* change that those functions don't implicitly call dcReset() anymore, which was unflexible (breaking change)
- added macros to feature test implementation for aggregate-by-value and syscall support
- changed libdyncall_s.lib and libdyncallback_s.lib order in callback test makefiles, as some toolchains are picky about order
- doc:
* man page updates to describe aggregate interface
* manual overview changes to highlight platforms with aggregate-by-value support
- test/plain: replaced tests w/ old/stale sctruct interface with new aggregate one
author | Tassilo Philipp |
---|---|
date | Thu, 21 Apr 2022 13:35:47 +0200 |
parents | 02c57a13b839 |
children | 35498b479505 |
comparison
equal
deleted
inserted
replaced
532:d4bf63ab9164 | 533:71c884e610f0 |
---|---|
1 This file lists bigger/noteworthy changes, only... | 1 This file lists bigger/noteworthy changes, only... |
2 | 2 |
3 | 3 |
4 Version 1.4 (upcoming) | 4 Version 1.4 (upcoming) |
5 | 5 |
6 dyncall: | |
7 o aggregate-by-value (struct, union) support for x64 (win and sysv; thanks Raphael Luba!) | |
8 o new aggregate arg interface DCaggr replacing stale DCstruct (latter had shortcomings, was | |
9 mostly unused as it lacked stable implementations, didn't handle unions, ...) | |
10 o new calling convention modes for thiscalls (platform agnostic DC_CALL_C_DEFAULT_THIS, as well as | |
11 DC_CALL_C_X64_{WIN64,SYSV}_THIS (needed to handle C++ ABI rules for returning aggregates by value) | |
12 o new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL) | |
13 o dcCallF(), dcVCallF(), dcArgF() and dcVArgF() don't implicitly call dcReset() | |
14 anymore, which was unflexible (breaking change) | |
15 o added macros to feature test implementation for aggregate-by-value and syscall support | |
16 dyncallback: | |
17 o aggregate-by-value (struct, union) support for x64 (win and sysv; thanks Raphael Luba!) | |
18 o new aggregate arg interface DCaggr | |
6 dynload: | 19 dynload: |
7 o build fix for ReactOS with RosBE/cmake/mingw-make environment | 20 o build fix for ReactOS with RosBE/cmake/mingw-make environment |
21 tests: | |
22 o call_suite: simplified and extended to test also unsigned types, and _Bool | |
23 o callback_suite: refactored to be much more like call_suite test | |
24 o call_suite_aggrs: new test suite for calls with aggregate arguments and | |
25 return types (structs, unions and arrays as aggregate members) | |
26 o callback_suite_aggrs: new test suite, like call_suite_aggrs but for callbacks | |
27 o simplifications and refactoring to share more code (especially signature | |
28 and case generator) across test suites | |
29 doc: | |
30 o callconv section additions about aggregate-by-value passing for all platforms | |
31 o new Linux-Std-Base-specific PPC32/SysV section, as aggregate retval handling differs from | |
32 default SysV for such systems | |
33 o man page changes/additions to document new aggregate interfaces | |
34 o replaced API description in manual with references to the manpages, to | |
35 avoid duplication and keeping things in sync | |
36 o general clarifications and cleanup | |
8 | 37 |
9 | 38 |
10 Version 1.3 (2021/12/17) | 39 Version 1.3 (2021/12/17) |
11 | 40 |
12 o introduced version macro (see dyncall/dyncall_version.h) | 41 o introduced version macro (see dyncall/dyncall_version.h) |
325 o fixed nmake buildfiles and configure.bat (were out of date and wrong) | 354 o fixed nmake buildfiles and configure.bat (were out of date and wrong) |
326 o test suite clean up (GNUmake, BSDmake): | 355 o test suite clean up (GNUmake, BSDmake): |
327 target "config" modified, phony without dependencies to other builds | 356 target "config" modified, phony without dependencies to other builds |
328 o bugfix: GNU fastcall calling convention for float and double arguments was wrong (no skip of register) | 357 o bugfix: GNU fastcall calling convention for float and double arguments was wrong (no skip of register) |
329 o update: x86win32* suite tests are built on cygwin now, added total result output | 358 o update: x86win32* suite tests are built on cygwin now, added total result output |
330 o signature types change: | 359 o signature char (breaking) changes: |
331 C Strings: 'S' -> 'Z' | 360 C Strings: 'S' -> 'Z' |
332 long: 'l' -> 'j' | 361 long: 'l' -> 'j' |
333 long long: 'L' -> 'l' | 362 long long: 'L' -> 'l' |
334 added unsigned integer type signature characters: upper case encoding | 363 added unsigned integer type signature characters: upper case encoding |
335 o added: callbacks component (support only for some platforms ATM) | 364 o added: callbacks component (support only for some platforms ATM) |