- 21 Sep, 2016 1 commit
-
-
Damien George authored
One can instead lookup __name__ in the modules dict to get the value.
-
- 20 Jul, 2016 1 commit
-
-
Paul Sokolovsky authored
Currently, MicroPython runs GC when it could not allocate a block of memory, which happens when heap is exhausted. However, that policy can't work well with "inifinity" heaps, e.g. backed by a virtual memory - there will be a lot of swap thrashing long before VM will be exhausted. Instead, in such cases "allocation threshold" policy is used: a GC is run after some number of allocations have been made. Details vary, for example, number or total amount of allocations can be used, threshold may be self-adjusting based on GC outcome, etc. This change implements a simple variant of such policy for MicroPython. Amount of allocated memory so far is used for threshold, to make it useful to typical finite-size, and small, heaps as used with MicroPython ports. And such GC policy is indeed useful for such types of heaps too, as it allows to better control fragmentation. For example, if a threshold is set to half size of heap, then for an application which usually makes big number of small allocations, that will (try to) keep half of heap memory in a nice defragmented state for an occasional large allocation. For an application which doesn't exhibit such behavior, there won't be any visible effects, except for GC running more frequently, which however may affect performance. To address this, the GC threshold is configurable, and by default is off so far. It's configured with gc.threshold(amount_in_bytes) call (can be queries without an argument).
-
- 17 Dec, 2015 1 commit
-
-
Damien George authored
-
- 29 Nov, 2015 1 commit
-
-
Damien George authored
-
- 11 Oct, 2015 1 commit
-
-
Paul Sokolovsky authored
-
- 07 Feb, 2015 1 commit
-
-
Damien George authored
Without mp_sys_path and mp_sys_argv in the root pointer section of the state, their memory was being incorrectly collected by GC.
-
- 07 Jan, 2015 1 commit
-
-
Damien George authored
This patch consolidates all global variables in py/ core into one place, in a global structure. Root pointers are all located together to make GC tracing easier and more efficient.
-
- 01 Jan, 2015 1 commit
-
-
Damien George authored
Addresses issue #1022.
-
- 29 Nov, 2014 1 commit
-
-
Damien George authored
This is just a clean-up of the code. Generated code is exactly the same.
-
- 31 Oct, 2014 1 commit
-
-
Damien George authored
gc.enable/disable are now the same as CPython: they just control whether automatic garbage collection is enabled or not. If disabled, you can still allocate heap memory, and initiate a manual collection.
-
- 10 Aug, 2014 1 commit
-
-
Damien George authored
-
- 31 Jul, 2014 1 commit
-
-
Damien George authored
Addresses issue #724.
-
- 03 Jul, 2014 1 commit
-
-
Damien George authored
See discussion in issue #50.
-
- 25 Jun, 2014 1 commit
-
-
Paul Sokolovsky authored
Return free/allocated memory on GC heap.
-
- 21 Jun, 2014 1 commit
-
-
Paul Sokolovsky authored
It defines types used by all other headers. Fixes #691.
-
- 19 Jun, 2014 1 commit
-
-
Emmanuel Blot authored
-
- 06 Jun, 2014 1 commit
-
-
Paul Sokolovsky authored
-
- 05 Jun, 2014 2 commits
-
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
- 24 May, 2014 1 commit
-
-
Damien George authored
Now of the form MICROPY_PY_*. See issue #35.
-
- 08 May, 2014 1 commit
-
-
Damien George authored
-
- 05 May, 2014 1 commit
-
-
Paul Sokolovsky authored
-
- 03 May, 2014 1 commit
-
-
Damien George authored
Blanket wide to all .c and .h files. Some files originating from ST are difficult to deal with (license wise) so it was left out of those. Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
-
- 26 Apr, 2014 2 commits
-
-
Paul Sokolovsky authored
-
Damien George authored
-
- 05 Apr, 2014 1 commit
-
-
Damien George authored
Towards addressing issue #424. Had a small increase to ROM usage (order 60 bytes).
-
- 03 Apr, 2014 1 commit
-
-
Paul Sokolovsky authored
So far just includes "open" function, which should be supplied by a port. TODO: Make the module #ifdef'ed.
-