26 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			26 KiB
		
	
	
	
	
	
	
	
4.3
- Bug fixes
 - Upgrade to 4.3 API
 - Use PCRE v2
 
4.2
- Update MIN_IOS_VERSION
 - Bug fixes
 - Upgrade to 4.2 API
 - Fixed mysql_select_db failing for newer mariadb versions due to extra 0x00 byte after database
 - Fixed mysql_close not sending COM_QUIT before closing socket
 
4.1.15
- Added Arm64 suport on windows
 - Fixed crash with zero-sized alloc and generational GC
 - Fixed crash with generational GC when old objects come back to life
 - Fixed compile error with @:fixed Anons and arrays (socket select)
 - Fixed lastIndexOf
 - Optimized some equality functions
 
4.1.1
- Added functions for haxe 4.1 Api.
 - Added HXCPP_DEBUG_LINK_AND_STRIP to preserve symbolic information when creating android release binaries.
 - Added optional HXCPP_SIGNAL_THROW to convert memory errors to haxe exceptions without needing additional code
 - Added string_hash_map_substr and __hxcpp_parse_substr_float/int to allow some substring processing without extra allocation
 
4.0.64
- Upgrade buildserver to 4.01
 - Better generational collection in high fragmentation case
 - typeinfo include fix for MSVC
 - Fix MySQL connections
 - Fix bugs with HXCPP_GC_GENERATIONAL
 - Add map.clear
 - Better c++11 iOS support
 
4.0.19
- Add Array.keyValueIterator
 - General Utf16 string improvements
 - Limit the amount of recursion in toString function
 - Add float32 support to cppia
 - Fix Gc race condition
 - Throw exceptions according to the spec when casting
 - Introduce hxcpp_smart_strings for unicode text
 
4.0.4
- Compile Cppia against haxe 4.0 preview 4
 
4.0.2
- Default Cppia to 64 bits on windows
 
4.0.1
- More logic for determining the android NDK version
 - Updated various opensource libraries (thanks robocoder)
 - Updated version of zlib
 - Updated version of sljit
 - Updated version of pcre
 - Updated version of sqlit3
 - Updated version of mbedtls
 - Some work on supporting utf16 strings (hx_smart_strings)
 - Added process_kill
 - Change root when calculating haxelib in build.xml files
 - Fix cppia super calls across cpp boundary
 - Add Array.resize
 - Be consistent with mod in cppia
 - Fix Sys.stderr
 - Add 'embedName' file attribute to allow text to cpp conversion
 - Updates for Msvc
 - Updates for Xcode
 
3.4.188
- Fix some threading crashes
 
3.4.185
- Do not ship static libraries
 - Use more lock-free structures in GC processing
 - Added some documentation
 - Added HXCPP_GC_SUMMARY option
 - Added HXCPP_GC_GENERATIONAL option
 - Added HXCPP_GC_DYNAMIC_SIZE option
 - Some MSVC 2017 support
 - Compile Cppia with JIT as an option by default
 
3.4.64
- Fixed cppia native interface implementation
 - Fixed debugger breakpoints
 - More compatibility for inet_pton and inet_ntop
 - Correct the order of thread housekeeping data
 
3.4.49
- Fixed 2d-Arrays and unserialize
 
3.4.43
- Added more options for code-size optimizations on android (thanks madrazo)
 - Added version of stpcpy on android to allow building with platform > 21, and running on older devices
 - Added some initial support for ipv6
 - Experimental support for Cppia JIT
 - Fixed issue with stale objects that use new pch files in cache
 - Rethrowing exception now preserves stack correctly
 
3.4.2
- Align float reads from memory for Arm architecture
 - Removed some virtual functions not needed by newer versions of haxe
 - Reworked the logic for compacting fragmented heaps with HXCPP_GC_MOVING
 - Expose StackContext to allow inlining of allocation routine, and combine with Cppia context
 - Fix some compare-with-dynamic issues
 - Added WatchOs support
 - Fixed for android NDK 13
 - Fix Array closure equality
 - Refactor the Cppia code
 - Fix return codes for atomic decrease
 - Fix some GC zone issues in the standard library
 - Set minimum MacOS deployment target to 10.6
 - Do not use typedefs for 'Int' and 'Bool' for newer api levels
 - Added dll_link to create output dll
 - Improved ObjC support
 - Make Cppia order of operations of '+=' et al consistent with other targets
 - Added NO_RECURSE flag to PCRE
 - Fix bsd_signal undefines on android
 - Add create/free abstract
 
3.3.49
- Fix Dynamic != for haxe 3.2.1
 - Fix Command line parsing on windows for triple quotes
 
3.3.45
- Much better compile cache support
 - Added tags to compiler flags to allow better targeting
 - Added UCP support to regexp
 - Added Array::fromData
 - Added AtomicInt operations
 - Added _hx_imod
 - More improvements for tvos
 - Fix blocking deque issue
 - Improved native testing
 - Added 'hxcpp run hxcpp cache ...' commands for managing cache
 - Added cpp.Variant class for query of field values to avoid boxing
 - Added more efficient version of finalizer
 - Add non allocating version of __hxcpp_print
 - More WinRT fixes
 - Output 'HxcppConfig.h' with defines included for easier external integration
 - Output list of output files if requested
 - Add support functions for StdLib - alloc/free/sizeof
 - Fix crash when marking stack names from GCRoots
 - Add bitcode support for iOS
 - Rename RegisterClass to avoid conflicts with windows
 - Added 'VirtualArray' for arrays of unknown types
 - Split Macros.tpl
 - Added optional ShowParam to process_run
 - Added inline functions for Int64 externs
 - Add error check for allocating from a finalizer
 - Fix null strings on Cffi Prime
 - Use slow path if required for Win64 Tls
 - Expand logic for detecting android toolchain from NDK name
 - Remove the need for hxcpp binaries by compiling source directly into target
 - Adjust the default verbosity level, and add HXCPP_VERBOSE/HXCPP_QUIET/HXCPP_SILENT
 - Added some control options for copyFile directive
 - Fix cppia decrement
 - Add Array.removeRange, which does not require a return value
 - Do not call setbuf(0) on stdin, since it messes with readLine
 - Cppia now throws an error if loading fails
 - Allocate EnumParam data inline to cut down on allocations
 - Allow anonymous object data to be allocated inline to avoid allocations
 - Add SSL library code
 - Add NativeGen framework for interfaces
 - Add macros to allow neater generated code
 - Allow larger memory space with -D HXCPP_GC_BIG_BLOCKS
 - Improve Array.join speed
 
3.2.205
- Initial support for HXCPP_OPTIMIZE_FOR_SIZE
 - Support HXCPP_DEBUG_LINK on more targets
 - Support for cross compiling to windows from linux
 - Added array removeAt
 - Some telemety fixes (thanks Jeff)
 - Check contents when comparing Dynamics with same pointer (Math.Nan!=Math.Nan)
 - Numerous WinRT fixes (thanks madrazo)
 - Fixed bug causing GC to crash marking constant strings (eg, resources)
 - Updated default SDK for Tizen (thanks Joshua)
 - Fixed command line args on linux (thanks Andy)
 
3.2.193
- Some improvements for tvos
 - Start on some GC defragging code
 - Fix android thread access to GC structures
 - Add socket socket_recv_from and socket_send_to
 - Fixed memory leak in GC collection code
 - Allow cross-compile to windows via MINGW
 - Fix overflow error that meant GC would work with a too-small buffer in some cases
 
3.2.180
- Initial support for tvos
 - Change name of ObjectType to hxObjectType to avoid clashes with iOS
 - Try to keep windows.h out of haxe-generated code
 - Fix null access bug in array-of-array
 - Create separate library for msvc 19
 
- Try to get the pdb server working better for MSVS 2015
 - So not export symbols on windows unless HXCPP_DLL_EXPORT is set (-D dll_export) - makes exe smaller
 - Avoid dynamic-cast if possible when converting 2D arrays
 - Some RPi fixes
 - Some CFFI Prime fixes (thanks Joshua)
 - Fix build tool for next version of neko
 - Improve msvc cl.exe version checking for non-English environments
 - Add more control over how much Gc memory is used
 - Add faster(inline) thread local storage for Gc on windows.
 - Add some Gc load balancing when marking large arrays with multiple threads
 - Change the Gc memory layout to be a bit larger, but simpler. This allows most of the allocation to be simplified and inlined.
 - Explicitly scan registers for Gc references because the stack scanning was missing them sometimes
 - Some additions to Undefine.h for windows
 - When static linking using MSVC 2015, compile the libraries directly into the exe to avoid compatibility issues
 - Move standard libraries into their own build.xml files
 - Make it easier to change the generated output filename
 - Allow targets from one build.xml file to be merged into another
 - Some more work on HXCPP_COMPILE_CACHE
 - Allow automatic grouping of obj files into librarys to avoid linking all the symbols in all obj files
 - Add implicit conversion to referenced type from cpp.Reference
 - Allow build.xml files to be imported relative to importing file
 - Allow '-' in command-line defines
 - Fix warnings from Hash class
 - Fix setsockopt for Mac
 - Support to MSVC2015
 - Fix for Blackberry 10.3
 - Fix debug break by linenumber
 - Better objc integration (thanks Caue)
 - Increase number of variables captured in closures to 20
 - Initial support for telemetry (thanks Jeff)
 - Align allocations for better emscripten support
 
- Fix gc_lock error in remove_dir
 - Some cppia bug fixes - enum and resources overrides
 - More android atof fixes
 - Improved haxelib seek logic
 
Haxe 3.2.0
- Improve testing
 - Allow dll_load path to be set programatically and simplified the dll search sequence.
 - Improved cffi_prime, and added String class
 - Fixed static linking of mysql5
 - Moved static link code in general to cpp.link package, not hxcpp package
 - URL decode now does not need to performe reallocs
 - Ensure HXCPP_API_LEVEL is always defined
 - Added __hxcpp_unload_all_libraries to cleanly unload dlls
 - Added some utc date functions
 - Better support for non-console apps in windows XP 64
 - Increased use of HXCPP_DEBUG_LINK for gcc based targets
 - Class 'hasField' is now more consistent with other functions/targets
 - 'haxelib run hxcpp test.cppia' will run Cppia on the specified file
 - Add fast-select option for sockets
 - Allow code to run without HXCPP_VISIT_ALLOCS defined
 - Fix debugger thread deadlocks
 - Allow up to 27 dynamic arguments
 - Fixes for Emscripten - byte align access and disable threads
 - Allow emscripten to generate 'executables' (.js/.html) and add options for specifying memory
 - Allow spaces in exe names again
 - Make cpp::Struct compare via memcmp, and mark correctly
 - Fix catch block in cppia
 - Treat '-debug' as an alias for "-Ddebug"
 - Expose ArrayBase for use with some generic or external code
 - Clarify the role of 'buffer' in cffi
 
- Only put a minimal run.n in source-control, and use this to boot hxcpp.n
 - Added cpp.Struct and cpp.Reference classes, which are handy for extern classes
 - Moved Class to hx namespace
 - Simplified 'main' logic
 - Allow new android compilers to work for old devices (thanks google)
 - Correctly read hxcpp_api_level from Build.xml
 - Verbose logging prints which file is being compiled
 - Handle undefining the INT_ constants differently to allow std::string to still compile
 - Remove entries form Options.txt that do not influence the cpp build
 - Add optional destination= command-line option to allow copying the result to named file
 - Static libraries will be prefixed with 'lib' now
 - val_is_buffer always returns false on neko
 - Add val_iter_field_vals, which is like val_iter_fields but consistent with neko
 - Remove NekoApi binaries
 - Add Cppia binaries
 - Add Windows64 binaries
 - Make compares between Dynamic and numeric types false, unless the Dynamic is actaully numeric
 
- Even more optimizations for hashes
 - Some more optimizations for small hashes
 - Fix for google changing inlining in platform21 headers (atof, rand, srand)
 - Re-tuned Hash for small objects too (improves Anon object perforamce)
 - Reverted change that automatically threw 'BadCast'. Now required HXCPP_STRICT_CASTS
 
- Cached dynamic versions of small ints and 1-char-strings for speed
 - Added support for weak hashes - needs latest haxe version
 - Use internal hash structure for maps - now faster. New version of haxe makes it faster still.
 - Changed the way development versions are bootstrapped to avoid committing binaries
 - Improved mingw support
 - Dont append -debug to dll name
 - Reorder xml includes to allow early parts to correctly influence older parts
 - Fix busy wait in semaphore lock
 - Fixed GC issue when constructing exrernal primitive objects
 - Added armv7s and arm64 targets for ios
 - Some fixes for neko cffi - wstring and warning for neko_init
 - Fix file read (and copy) from thread
 
- Compile fix for blackberry
 - Pass on haxe_api_level
 - Add -nocolor flag
 
- Add support for prelinker
 - Cygwin toolchain fix
 - Add HXCPP_NO_COLOUR and HXCPP_NO_M32
 - Fix windows trace output
 - Add initial support for GCWO compile
 - Fix bug with losing GC references in Array.sort
 - Fix bug with zombie marking
 - Add support for optimised sort routines
 - Add support for haxe.ds.Vector optimisation
 - Add support for cpp.Pointer, cpp.NativeArray, cpp.NativeString
 
- Add BlackBerry and Tizen binaries
 - Fix issues when using names like ANDROID or IPHONE in an enum
 - Added more info in verbose mode (setenv HXCPP_VERBOSE)
 - Refactor build files to allow greater customisation
 - Fix bug with 'lock' where some threads may not get released
 - Add optimised arrays access
 - Add optimised memory operations for arrays and haxe.io.Bytes
 - Avoid blocking in gethostbyname
 - Upgrade run tool output and layout
 - Restore sys_time for windows
 
3.1.1
- Fixed MSVC support for 64-bit targets (vc11, vc12)
 - Initial work on cpp.Pointer (not fully functional)
 - Fixed callstack when throwing from native function
 
3.1.0
- VC 2013 support - used as default now
 - Add winxp compatibility flags
 - Allow cross-compiling from mac to linux
 - Added NSString helper conversion
 - Better auto-detection for android toolchain
 - Allow foreign threads to easily attach and detach from GC system
 - Weak references to closures keep object alive
 - Added HXCPP_API_LEVEL define to allow for future compatibility
 - Fixed clearing finalizers twice
 - Int multiply and minus are performed with integers now
 - Fix comparing +- infinities
 - Use multiple threads in the mark phase of GC
 - IOS now defaults cpp11 binary linkage
 - Added HXCPP_VERBOSE environment var to enable extra output
 - Fixed spin loop in pthread_cond_wait
 - Added ability to link several .a files into a single .a file
 - Removed dependence on STL runtime for supplied modules
 - Renamed some directories to be more standard
 - Moved some extra build files into obj directory
 - Use sys.io.Process instead of Sys.command to avoid threading slowdown writing to console
 - Add hxcpp.Builder to help with building multiple binaries
 - Add android x86 support
 - Drop pre-compiled support for everything excepth windows,mac,linux,ios and android
 - Allow libraries and files to accumulated in the build.xml
 - Supply pre-build lib files for static linking on supported platforms
 - Support for static linking of all modules
 - Support for hxcpp-debugger project
 - Binaries have been removed from repo, and are built using a server
 - Use build.n script to build all appropriate binaries
 - Some initial support for mysql and sqlite databases
 - Add free_abstract for safe releasing of data references
 - Change process lauching to get better thread usage on mac
 - Fix GC error in string resources
 - Give obj files in libraries unique names
 
3.0.2
- Fix Dynamic + Int logic
 - Reverted linux compiler to older version
 - Cast Array at call site if required
 - Tweak Array.map return value
 
3.0.1
- Added nekoapi for linux64
 - Upgrade nekoapi to v2
 - Added haxe vector support
 - Added socket_set_fast_send
 - Fixed android build
 - Expanded native memory access methods
 - Fix exception dump
 - Added initial Emscriptm support
 - Allow specification of ANDROID_HOST
 - Inital work on auto-setup of win64
 - Support call-site casting of Arrays
 
3.0.0
- Support haxe3 syntax
 - Added socket poll function
 - Added some initial support for dll_import/dll_export
 - Allow full path name when loading dynamic libraries
 - Allow dynamic toString function
 - Added initial support for Raspberry Pi
 - Array sort now uses std::stable_sort
 - Fixed Dynamic+null string output
 - Fix splice size calculation
 - Add object ids for use in maps
 - Add map/filter functions to arrays
 - GC will now collect more often when big arrays are used
 - You can specify a number of args > 5 for cffi functions if you want
 - Fix internal hash size variable
 - Class static field list does not report super members now
 - Fix casting of null to any object
 - Do not read input twice in sys_getch
 - Link in PCH generated obj data on msvs 2012
 - Date is now consistent with UTC
 - Hash 'remove' now returns correct value
 - CPP native WeakRef now works, and has a 'set' function
 - Fixed compile error when assigning to a base class
 - Fixed compile error when using != and Dynamic
 - Math/floor/ceil/trunc/min/max now pass unit tests
 - More control over android sdk installation
 - Regexp_match fix
 - Fix val_callN CFFI
 
2.10.3
- Added initial build support for WinRT
 - Android toolchain improvements
 - Minor compile fixes
 - Other minor improvements
 
2.10.2
- Fixes for BlackBerry 10 compatibility
 - Fixes for iOS 6 compatibility
 - CFFI improvements
 - Minor Linux improvements
 - Minor OS X improvements
 
2.10.1
- Fix trace() output
 - Clang options for OS X compiler
 - Small fixes
 
2.10.0
- GC upgrades - moving/defragging/releasing
 - Built-in profiler
 - Build-in debugger
 - Fix mac ndll finding bug
 - Add Int32 member functions
 - Clang options for ios compiler
 - Add a few pre-boxed constants
 - Some general bug fixes
 
2.09.3
- Fix Xml enum usage
 
2.09.2
- Resolve library paths when launching Mac apps from Finder
 - Compile fix for the BlackBerry toolchain
 - Fix interface comparison
 - Fix api_val_array_value for NekoApi
 - Add workaround for optional Strings in interfaces
 - Tweak the timing og the GC run
 - Remove setProperty conditional compiles
 - String charCodeAt only returns positive values
 - Fix modulo for negative numbers
 - Remove extra space from array output
 - Treat '.' and '_' as literals in urlEncode
 - Dynamically generated, 0 param, enum instances match the static version
 
2.09
- Improved precision in random implementations
 - Added some experimental support for float32
 - Added some experimental support for generic getProcAddress
 - String::fromCharCode generates single-byte strings
 - Fix method compares
 - Plug memory leak in finalizers
 - Fix debug link flags
 - Separate get/SetField from get/setProperty
 - Added Null for optional parameters
 
2.08.3
- Actually add blackberry toolchain
 
2.08.2
- Add blackberry support
 - Add armv7 options
 - Support new xcode layout
 - Fix const qualifiers on interface functions
 - Fix webOS obj directory
 
2.08.1
- Fix Math.random returning 1.0 sometimes
 - Std.is( 2.0, Int ) is now true
 - Make static library building more separated - refactor defines to control this
 - Do not use @files for linking on mac
 - toString on Anon objects will now get called
 - Fix fast memory access with --no-inline
 - Android tool host now set to linux-x86
 - Allow use of __compare as operator== overload
 - Add toNativeInt
 - Add weak references
 - Implement some neko/cffi compatibility operations
 - Fix mac deployment using environment variable
 - Fix reentrant mutexes
 - Do not explicitly specify version of g++
 - Speedup some code by avoiding dynamic_cast if possible
 - Some fixes to allow Android multi-threading in normal operation
 
2.08
- Do not create a new class definition for each member function
 - Allow 5 fast and up to 20 slow dynamic function arguments
 - Support utf8 class
 - Added "Fast Memory" API similar to flash
 - Added support for webOS
 - Fix uncompress buffers
 - Added file to undefined pesky processor macros
 - Setup default config in user area
 - Auto-detect msvc and iphone version
 - Force compilation for mac 10.5
 - Some support for cygwin compilers
 - Remove Boehm GC as an option
 - Integrate properly now with Android ndk-r6
 - Make Int32 pass haxe unit tests (shift/modulo)
 - Fix bug in "join"
 - Fix bug with marking the "this" pointer in closures
 - Fix bug with returning NAN from parseFloat
 - Fix linux link flags
 - Fix bug where string of length 0 would be null
 - Made String cca return value consistent
 - Added control over @file syntax
 - Removed need for nekoapi.ndll
 - Allow for neko.so to end in ".0"
 
2.07
- Added initial support for Mac64, Linux64, MinGW and GPH and refactored build tool.
 - Return the count of traced objects
 - Fix interface operator ==
 - Initial work on msvc10 batch file
 - Add bounds check on String.cca
 - Build static libraries, if requrested
 - Added exe stripping
 - Added val_field_name, val_iter_fields
 - Fixed nekoapi string length
 - Fixed Sys.args
 
2.06.1
- Close files if required in GC
 - Added fix for File.write
 - Fixed String UTF8 Encode
 - Nekoapi is now a "ndll", not a "dso".
 - Fix array compile issue on linux
 - Fix stack setting on firced collect
 
2.06.0
- Updates to match haxe 2.06 compiler features
 - Numerous bug fixes
 - Add additional context to GC collection process
 - Swapped from wchar_t* to utf8 char*
 - Added templated iterators
 - Use strftime for Dates
 - Fix socket select and "_s" members
 - Seed Math.random
 - Fixed dynamic integer compare
 - Added __hxcpp_obj_id
 - Added some Android support
 
2.05.1
- Updated windows nekoapi.dll binary
 - Added -m32 compile flags to force 32 bit
 
2.05.0
- Default to IMMIX based internal garbage collection.
 - Reorginised files - split big ones, and moved common ones out of "runtime".
 - Put internal classes in "hx" namespace, or HX_ prefix for macros.
 - Remove multiple-inheritance, and use delegation instead.
 - Write "Options.txt" from compiler so dependency can be determined.
 - Require -D HXCPP_MULTI_THREADED for multi-threaded classes - to avoid overhead if not required.
 - Build thread code into executable for better control.
 - Fix return values of parseINt/parseFloat.
 - Added comprehensive list of reserved member names.
 - Put if/else statements in blocks.
 - Added assert, NULL, LITTLE_ENDIAN, BIG_ENDIAN as keywords.
 - Added control over how fast-cffi routines are created by requiring cpp.rtti.FastIntergerLookup to be "implemented".
 - Construct anonymous object fields in deterministic (as declared) order.
 - Fix code generation for some complex inline cases.
 - Added cpp.zip.Compress
 - Change "Reflect" class to be more standard
 - Use array of dynamics for StringBuf.
 - Fix setting of attributes in XML nodes.
 
Build-tool:
- Allow multiple build threads (via setenv HXCPP_COMPILE_THREADS N) for faster building on multi-code boxes.
 - Added FileGroup dependencies
 - Added pre-compiled headers (windows only, at the moment since gcc seems buggy)
 
1.0.7
Changelog starts.