Find file
Fetching contributors…
Cannot retrieve contributors at this time
330 lines (251 sloc) 13.8 KB
History of Win32::API perl extension.
2012-10-20 Win32::API v0.73 bulk88
- Known Issue, IATPatch usually does not work on Cygwin
- Fixed, now works on 32 bit Cygwin Perl
- Fixed, now works on 32 bit Perl with 64 bit IVs
- Fixed, misc POD
- Added, check for cygpath tool on ::API for Cygwin
- Fixed, cygpath fix from Jerry D. Hedden
- Fixed, ::Callback's DLL failed to load in DynaLoader on newer
(Strawberry Perl 5.16.*) Mingws due to newer Mingws starting to always
include Static TLS in DLLs
- Fixed, ::API on newer 32 bit Mingws (Strawberry Perl 5.16.*) crashed on
all cdecl calls due to different optimization defaults in newer Mingws
- Improved, some tests were hardened
- Fixed, should build on ActiveState's PPM system
2012-10-16 Win32::API v0.72 cosimo
- Improved Callback tests by properly detecting native or ithreads
fork capability. Thanks to Steve Hay for the patch.
2012-10-15 Win32::API v0.71 bulk88
- API Change, UseMI64 changed to always return old value, not old on no
setting and new on setting
- Added, "in" for ::API and "out" for ::Callback are automatically
treated as Math::Int64 objects if they are refs, a call to UseMI64 is
recommended but not mandatory now
- Half Fixed, on a fork, the child interp free the parent's Win32::API DLL
HMODULE causing access violation, though a problem with unicode path names
containing characters not in the local CP probably exists
- Added, support for forking to Win32::API/Win32::API::More, not ::Callback
- Added, support for WINAPI, NTAPI, CALLBACK, WINAPIV calling conventions
- Added, Win32::API::Callback::IATPatch
2012-08-16 Win32::API v0.70_02 bulk88
- Added, typedef() in ::Struct now aborts and warns when encoutering an
unknown type rather than creating a garbage struct definition
- Added, new() in ::Struct now aborts and warns when encoutering an
unknown type, rather than silent failure and a 0 byte long struct buffer
being passed to the C func
- Fixed/Added, pointers to other ::Struct types now supported in ::Struct
- Optimized, trim down 32 bit asm code and Call() in ::API, untested 64 bit
IV on 32 bit support in ::API
- Optimized APIPARAM struct
- Fixed, in Call() some of the callbacks trashed the 1st parameter on the PL
stack, which cause no symptoms since it was the ::API object which was read
from the PL stack much earlier in Call()
- Fixed some no symptoms problems with using a stale local SP in Call()
after a callback, which in a million to once chance might have been
reallocated during the callback
- Added 'void' as a type, it is an alias for VOID, which is a 'c'/char
maybe this needs to be revisted one day because a void function does
not return a char, but returns garbage on 32 and 64
- Added, for C proto API objects, struct type is checked against supplied
struct object, dies on failure
- Fixed, bug was can not create an alias to char * from ::Type::typedef,
the alias is to char instead of char *, C function gets a extended char
instead of pointer
- Changed, Carp is used in more placed in ::Struct
- Added, SafeReadWideCString function
- Fixed, a length checking bug in WriteMemory
- Fixed, creating an API object, with ::Callback or ::Struct as return type
now fatally errors in new() instead of silent failure and being a void
- Optimized, removed CRT initialization code on MSVC
- Added, 'V' now works for "in" letter protos, it is equivelent to ""
- Added, strict, warnings, and pod testing globally
2012-08-16 Win32::API v0.70_01 bulk88
- broken CPAN package, useless
2012 never CPAN released Win32::API v0.70 bulk88
- Added, Callback now works on x64
- Added, Quads on API and Callback for 32 bit perl, they are
8 byte strings or Math::Int64 objs on 32 bit perl
- Added, floats and doubles work in Callback
- Callback has been rewritten, much less C and machine code, more Perl
- Fixed RT #55660 and #77677, nonvolatile registers were corrupted on x64,
especially if more than 4 parameters
2012 never CPAN released Win32::API v0.69 bulk88
- Fixed RT #12057, dll leak if func not found
- Fixed RT #77048, shorts and short typedefs crashed since 'S'
was mapped wrong to structs, fix in Win32::API::More, struct now 'T'
in ::More, 'S'/'s' now dies on Win32::API if not Win32::APU::Sturct objs,
not crashes
- Fixed RT #77055, returned numbers are always signed, unsigneds
fixed in Win32::API::More
- Fixed RT #77182, "int* var" works, "int *var" unparsable,
fixed in core and ::More
- Fixed/Added RT #39810, in Win32::API::More for C proto created objs,
pointer to numbers are automatically packed and unpacked, now 1234 or
0x04D2 not "\xD2\x04\x00\x00", feature was implemented but broken
- Fixed, on x64 float "in" params were broken, in 0.68, 4 byte floats were
converted to 8 byte doubles of the same (approx) numeric
value when being prepared for XMM register loading, a C func
that takes floats will read 4 bytes from an XMM register, not 8
- Fixed, on x64, for msvc builds, the callstack was lost during
- for a func with char * as return type, NULL caused crash, and perl
memleak if it didn't crash on 32bit, char * as a return type's handing
is still very flawed, signed/unsigned doesn't work, float * doesn't work,
if the char * is dynamically allocated by its source, it is leaked
- for a func with char as return type, undef was always returned, fixed
- void ** and something ** don't parse, now errors out cleanly on a **
- stability improvements to Win32::API::Callback, -Od, -O1, -O2 and
Incremental Linkings/ILT now ok on MSVC 2003
- on 32 bits, funcs with float return type were silently never called, fixed
- if a buffer overflow for pointers is detected, a die is thrown, unless env
- Added, adding unsigned or signed prefixes to C prototype for char
family (in only, out not implemented) cause numeric treatment for the
scalar parameter, not string
treatment, previously unsigned/signed were unparsable
- Added Win32::API objs from non-DLL function pointers
use as "$function = new Win32::API::More(undef, 123456, 'GetHandle',
'P', 'I');", 123456 is the function pointer
2012-04-10 Win32::API v0.68 Cosimo
- Temporarily skip RT#53914 related Callback test that's crashing
for everyone and CPAN testers too.
2012-02-14 Win32::API v0.67 Cosimo
- Fix a problem in 0.66 that prevented successful build and install
of Win32::API. In other words, v0.66 is unusable! Stay away.
Thanks CPAN testers!
2012-02-13 Win32::API v0.66 Cosimo
- RT#74578 about structs alignment calculation should be fixed.
Thanks to Douglas Wilson (DOUGW) and Reini Urban!
2012-02-12 Win32::API v0.65 Cosimo
- No changes other than passing all files through perltidy
2011-08-28 Win32::API v0.64 Cosimo
- Small improvement to Makefile.PLs to build or not build
the Callback module depending on architecture (64 bit archs
by default don't build Callback, it's known to fail tests).
2011-07-19 Win32::API v0.63 kmx
- Fix for the strawberry perl 5.14.1/x64
the upgraded gcc toolchain (4.4.6) uses different underscoring
2011-03-26 Win32::API v0.62 Cosimo
- Skip Callback/t/03_Jim_Shaw.t test as it's reported failing
on both 32-bit and 64-bit architectures.
2011-03-22 Win32::API v0.61 Cosimo
- Fixed build process that was failing due to missing *.h
and *.asm files in the MANIFEST
2011-03-19 Win32::API v0.60 Cosimo
- Added *preliminary* x64, 64-bit, support.
Now the test dll also ships with a x64 build
and an updated VS solution file with Release and Debug x64 builds.
Many fantastic people helped with 64 bits support:
- Fixed RT #48006
- Added a minimal TODO file, so I can remember where I left off
2009-07-02 Win32::API v0.59 Cosimo
- Fixed compilation with gcc/mingw 4.4.0, thanks to Reini Urban.
2009-01-17 Win32::API v0.58 Cosimo
No significant updates for normal users.
Developers instead please update to v0.58.
Now you can play with the API_test.dll.
- Test DLL MSVC project files updated to MSVC 2008.
Now I will be able to add new tests (__cdecl)
- General cleanup of tests and removed some warnings
2008-10-16 Win32::API v0.57 Cosimo
- Re-added source code for the API_test DLL.
Still needs to be adapted to be built with GCC/MinGW
and different Makes, but it's a start.
2008-10-03 Win32::API v0.56 Cosimo
- RT#39730 (
Now passing a Perl undefined value to an API imported with
a prototype, automatically turns it into a NULL value.
Thanks to Ikegami for his bug report and patch.
Added a new test case.
- Fixed MSVC compiler version detection in Win32::API::Test.
Thanks to Salvador Ortiz Garcia (sog at msg com mx)
- Fixed several compilation warnings on `Callback.xs'
- Started some work to support double*. Halfway through.
2008-03-23 Win32::API v0.55 Cosimo
- Integrated patch from Salvador Ortiz Garcia (sog at msg com mx)
which fixes RT #14660. There was a bug in arguments type packing
unpacking of char* (and other pointer types).
2008-03-04 Win32::API v0.54 Cosimo
- Try to clean up this big OS check mess.
2008-03-02 Win32::API v0.53 Cosimo
- Devel::AssertOS came out unauthorized.
- META.yml was outdated and wrong.
2008-03-01 Win32::API v0.52 Cosimo
- Devel::AssertOS was not properly set up in 0.51.
2008-03-01 Win32::API v0.51 Cosimo
- Cleaned up pod docs and clearly stated Win32::API license
- Fixed $$/pid tests for Cygwin
- Now uses Devel::AssertOS to check that we are on a Win32 or Cygwin
system. This should ease the work of CPAN testers.
2008-02-23 Win32::API v0.50 Cosimo
- Fixed RT #31702 (
Thanks to RUrban for supplying the fix.
2008-02-20 Win32::API v0.49 Cosimo
- Fixed the stack cleanup assembler statements for GCC in API.xs, I hope.
- Fixed a Borland C macro definition in API.xs
- Fixed META.yml (stupid me)
2008-02-20 Win32::API v0.48 Cosimo
- Finally applied the cdecl/stdcall patch available since long time
Now Win32::API *can* work with cdecl DLLs.
Fixes RT #32424 (
and RT #24685 (
Thanks to Willem Jan Hengeveld (itsme at for your great work.
Thanks to JimK for a test case and to BrowserUk and others at PerlMonks
for providing me useful information and complaints. :-)
However, still missing some GCC assembler magic for stack cleanup.
Any help?
- Clarified licensing info. Yes, Win32::API is available with
GPL 2 / Artistic license.
2007-11-12 Win32::API v0.47 Cosimo
- Nothing exciting. Fixed warning on DATA filehandle.
Reported by Dmitri Karasik. Build passed on Windows Vista.
Fixes RT #30674 (
2006-12-23 Win32::API v0.46 Cosimo
- Test suite now passes on MSVC6, MSVC7, GCC/MinGW and Cygwin.
A lot of skips and segfaults on doubles/floats should be examined,
though. But now it's possible to cleanly install from CPAN!
- API_test.dll building phase has been removed. Now there is only
a prebuilt version of it, suitable for all compilers to link and
use, I hope.
Why does Cygwin gcc compile an entirely different API_test.dll?
I checked the tdump of msvc and gcc and the gcc version is
missing all the kernel32 imports. I don't know why this happens.
- Removed README.txt file. Now there's only README.
2006-11-29 Win32::API v0.45 Cosimo
- What a mess! Restored GCC/MinGW compile that broke with that
damned assembler macros...
2006-11-28 Win32::API v0.44 Cosimo
- Fixed compile under MSVC broken with GCC/MinGW last changes.
2006-11-28 Win32::API v0.43 Cosimo
- Now Win32::API should cleanly *compile* on GCC / MinGW
environment. This has been tested only Vanilla Perl and
only with Microsoft nmake.
Test suite does not work with GCC. You can only test that
Win32::API extension works running manually the t\99_GetProcess.t
test script.
This improvement comes thanks to the 0.42 patches I found
and collected from the internet, though I don't know who
is the guy that wrote them first. Anyway, thank you!
- There are problems with current ExtUtils::MakeMaker (6.31 and
also blead, I believe) version and dmake generated Makefiles.
I'm trying to understand what to do here.
- Win32::API::Type now doesn't have a INIT block anymore, that
seems to be the cause of all evils on this module.
Please you out there report your findings on this.
- Last but not least. Current maintainer of Win32::API is now
Cosimo Streppone (me), cosimo at I'm not very
skilled on Win32 development, but I'm trying to to work out the
CPAN bugs queue. Thanks to Aldo for handing me his wonderful
work maintainance.
Previous history had no changes file.