* Start on dynamic TCC definitions
* Add comments on pins used
* Lazy timer init
* Add code for actual dynamic timer alloc on SAMD
* Dynamic timers on STM
* Log timer alloc
* Move things from target.cpp to dmesg.cpp
* Remove unsafePollForChanges
* Harmonize 32 bit and 64 bit serial numbers across platforms
* Move reading serial number back to target
* Remove unused code
* moving block to allow hiding
* bump dependency
* rename
* more renaming
* integrating user thread lock on reset
* return trylock result
* update jacdac
* fix jacdac debugger
* patch update script
* add tabs to console
* setInterval created in ctor
* add api to get 64-bit serial number
* simulate as Buffer not number
* use refbuffer instead
* use buffer methods on RefBuffer
* add getLongSerialNumber to linux builds.
* starting 64 bit cleanup
* 64 bit cleanup of gc
* More work on 64 bit intgers
* Fix compilation; binary compat checkpoint
* Add nan-boxing
* More 64bit fixes
* Compilation fixes
* start on the vm
* More opcodes
* more validation setup
* add call/ret
* Switch to 16 bit opcode encoding
* Re-working sections
* Working on doubles
* Work on callind
* Add fake missing methods
* Add some image loading code
* Basic opcode validation
* Move VM stuff to new vm.h; clean comments
* Add opcode resolution
* rtcall validation
* Add validating startup code for vm
* Fixes for opcode map
* Allow for PXT-genarted shim table
* Bugfixes; logging
* Fix decoding of ret; verifcation fixes
* Add todo
* Starting to remove linux stuff from vm
* Clone files from core---linux
* Bugfix
* Start on the interpreter dispatch loop
* work on the scheduler
* Add todo
* Action handling
* Add vt sect
* remove todo
* Work on iface and method calls
* Switch to all iface calls for vm
* VTable simplification
* ldfld/stfld
* Add newobj opcode
* Show missing symbols
* Expose screen apis to vm
* Validate vtables
* 64bit fix for string alloc
* Move 64 bit gc to 0x20_0000_0000
* Re-allocate strings from image in gc heap
* Add more logging to gc
* 64 bit fixes
* Closure fixes
* VTable fixup
* Add callget/set
* Working on iface name table
* Fix for lookupMapKey and emptyString
* Don't use the bytecode[] array in VM
* add checkinst opcode; cleanup
* isTagged vs isPointer
* Add helper functions for type checks
* Add dynamic map lookups
* Add mapget/set
* Fix VT check
* Start running the program; various fixes
* Various fixes
* Fixes
* Various vm fixes
* high volume logging
* Allow pre-allocation of stuff on non-gc heap
* Add dmesg_flush()
* Bugfixes
* 64k gc block size
* Don't sort string pointers for now
* Threading
* Fix pixel order
* Event support
* Windows fixes
* CLI fix
* Various windows build fixes; add control.setDebugFlags
* Add missing symbol
* Copy pthread dll
* Lower optimization level
* Link Win DLL statically to mingw
* New music APIs
* Add stop playing; work on the TS side
* Codal connection
* Handle activation
* Drop codal from linux build
* Fix build
* queuePlayInstructions works in sim
* Codal fixes
* Hardware fixes; works
* Thread safety for mixer; add ringtone (clicking)
* Default per-melody volume to 100%
* Only use the play loop for sounds over 2s
* Remove codal refs from VM
* Fix includes for codal-less build
* Build the SDL shell
* Fix build rules
* Test program for log queue
* Move log queue tests
* Pipe logs to SDL
* Allow for restart of VM thread
* Add mixer---ext
* Fix memory errors in melody
* Fix memory errors in melody
* Fast adds/subs for VM
* Don't crash if screen accessed too early
* Add support for push_mask
* Verify push bits
* Fix windows SDL build
* Strip VM binaries for smaller size
* Cleanup
* Bugfix
* Change VAR_BLOCK_WORDS to what it was
* Update TODO comments
* remove extra processing for ANY wildcard
* process ANY consistently with CODAL/SIM
* fix syntax errors
* fix errors
* fix infinite looping
* fix for anyButton hack
Also:
* fix CFG_ keys for BTNMX; change encoding there of buttons
* shut down neopixels on pybadge on startup (using SPI)
* try to limit heap fragmentation more (at some runtime cost)
* rework getting bootloader config data (for newer bootloaders)
* use the new codal timers
* `config.ts` now overrides bootloader settings, not the other way around
This replaces codal's implementations of malloc/free with our own, which will generally use our GC heap for allocations, unless we're inside of an interrupt or in the middle of a GC cycle.
There are also changes to limit fragmentation of the GC heap (we generally try to fit allocations within the first half of free memory, and force GC when that is not possible).
Requires codal-core b059fa81208655a8094283a3110810087a5a8fa4
This is in support of PXT GC
Also:
* add `control.dmesgValue()`
* add `control.gc()`
* add `control.profilingEnabled()`
* add `control.dumpPerfCounters()`
* add pseudo-API `control.enablePerfCounter()` (enables profiling for function if present; handled by compiler)
* add `JSON.parse` and `JSON.stringify` (in TS)
* adjust to codal `master`
* synchronous handlers for collisions (this will need to be changed to drop-when-running) CC @riknoll
* frowny face on panic on hardware
* Towards retargetable core
* Split out PwmOnlyPin
* Move general pin defs to platform.h
* Move temp. and light-sensor calibration to platform.h
* Account for namespace differences between codal-mbed and codal-mbedos
* Start on pinouts in TS
* Define pins in TS
* Add BOARD_LAYOUT and friends
* Remove board layout - probably won't be needed
* Converting to const format
* Zero config moved to metro-express/device.d.ts
* Hack in touch; CPX config moved
* Move touch pin config to board package
* Add dal.d.ts config
* Use pin names
* Buttons now allocated dynamically
* Add CFG_PIN_A**
* Align buttons with simulator
* Button simplification
* New syntax for board configs
* Trinket moved out
* Allow getting buttons attached to pin instances
* New codal fixes
* SWD debugging fixes
* Avoid button crash
* Bump to 0.11.0
* 0.11.1
* Great renaming
* More renamings and fixes
* mbed::Pin...
* Fix i2c
* Additional checks on ref-counts
* Disable dbg output
* Fix include file name
* Start split of core into base and core
* Move more stuff over
* Change ref-tags
* Define own buffer and string
* First draft builds
* Add remiaining files
* Move stuff to core/control.cpp
* Rebuild shims
* Rebuild .d.ts again
* Use new Buffer apis
* Fix dep
* List all target functions in one place
* Move AnimationQueue from base to core
* Do not rely on the C++ map<> class in event handlers
* Do not rely on C++ vector
* Fix refmap destroy code
* Simplification
* Limit std C++ includes
* Implement swap()
* Move AnimationQ back to base
* Refactor number read/write methods for buffers so they can be used on other pointers
* Add Buffer.toHex()
* Change sim file paths to reflect the split of files into core and base
* Update the major version
* Depend on the latest pxt-core version
* 0.9.1