<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/mpstate.h, branch v1.9.2</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.2</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.2'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2017-07-31T08:35:40+00:00</updated>
<entry>
<title>all: Use the name MicroPython consistently in comments</title>
<updated>2017-07-31T08:35:40+00:00</updated>
<author>
<name>Alexander Steffen</name>
<email>devel.20.webmeister@spamgourmet.com</email>
</author>
<published>2017-06-30T07:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=55f33240f3d7051d4213629e92437a36f1fac50e'/>
<id>urn:sha1:55f33240f3d7051d4213629e92437a36f1fac50e</id>
<content type='text'>
There were several different spellings of MicroPython present in comments,
when there should be only one.
</content>
</entry>
<entry>
<title>all: Unify header guard usage.</title>
<updated>2017-07-18T01:57:39+00:00</updated>
<author>
<name>Alexander Steffen</name>
<email>devel.20.webmeister@spamgourmet.com</email>
</author>
<published>2017-06-29T21:14:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=299bc625864b9e624ed599c94a5f95870516139a'/>
<id>urn:sha1:299bc625864b9e624ed599c94a5f95870516139a</id>
<content type='text'>
The code conventions suggest using header guards, but do not define how
those should look like and instead point to existing files. However, not
all existing files follow the same scheme, sometimes omitting header guards
altogether, sometimes using non-standard names, making it easy to
accidentally pick a "wrong" example.

This commit ensures that all header files of the MicroPython project (that
were not simply copied from somewhere else) follow the same pattern, that
was already present in the majority of files, especially in the py folder.

The rules are as follows.

Naming convention:
* start with the words MICROPY_INCLUDED
* contain the full path to the file
* replace special characters with _

In addition, there are no empty lines before #ifndef, between #ifndef and
one empty line before #endif. #endif is followed by a comment containing
the name of the guard macro.

py/grammar.h cannot use header guards by design, since it has to be
included multiple times in a single C file. Several other files also do not
need header guards as they are only used internally and guaranteed to be
included only once:
* MICROPY_MPHALPORT_H
* mpconfigboard.h
* mpconfigport.h
* mpthreadport.h
* pin_defs_*.h
* qstrdefs*.h
</content>
</entry>
<entry>
<title>py: Make sure that static emg-exc-buffer is aligned to size of mp_obj_t.</title>
<updated>2017-04-10T06:02:56+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-04-10T06:02:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ee86de1f1a22c45548bc39916fcd2b72dd26ebca'/>
<id>urn:sha1:ee86de1f1a22c45548bc39916fcd2b72dd26ebca</id>
<content type='text'>
This buffer is used to allocate objects temporarily, and such objects
require that their underlying memory be correctly aligned for their data
type.  Aligning for mp_obj_t should be sufficient for emergency exceptions,
but in general the memory buffer should aligned to the maximum alignment of
the machine (eg on a 32-bit machine with mp_obj_t being 4 bytes, a double
may not be correctly aligned).

This patch fixes a bug for certain nan-boxing builds, where mp_obj_t is 8
bytes and must be aligned to 8 bytes (even though the machine is 32 bit).
</content>
</entry>
<entry>
<title>py: Remove MP_STATE_CTX, use MP_STATE_THREAD instead (it's an alias).</title>
<updated>2017-03-24T07:43:28+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-03-24T07:43:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=64a4f11b2d6f880aa6fb1aaa10b2603d3faa1cd0'/>
<id>urn:sha1:64a4f11b2d6f880aa6fb1aaa10b2603d3faa1cd0</id>
<content type='text'>
MP_STATE_CTX was recently aliased to MP_STATE_THREAD and can now be
removed.
</content>
</entry>
<entry>
<title>py: Add micropython.schedule() function and associated runtime code.</title>
<updated>2017-03-20T04:20:26+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-02-16T07:05:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6e74d24f30bca3fb70876b1fb9a6b3a59850b83c'/>
<id>urn:sha1:6e74d24f30bca3fb70876b1fb9a6b3a59850b83c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Move locals/globals dicts to the thread-specific state.</title>
<updated>2017-03-06T06:01:56+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-02-27T12:56:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=05fe66f68a1cf1b7587c55149472ab7bca843631'/>
<id>urn:sha1:05fe66f68a1cf1b7587c55149472ab7bca843631</id>
<content type='text'>
Each threads needs to have its own private references to its current
locals/globals dicts, otherwise functions running within different
contexts (eg imported from different files) can behave very strangely.
</content>
</entry>
<entry>
<title>extmod: Remove MICROPY_FSUSERMOUNT and related files.</title>
<updated>2017-01-30T01:26:07+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-01-29T04:21:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1808b2e8d5c9fff8020628a7849a537ffa9790e3'/>
<id>urn:sha1:1808b2e8d5c9fff8020628a7849a537ffa9790e3</id>
<content type='text'>
Replaced by MICROPY_VFS and the VFS sub-system.
</content>
</entry>
<entry>
<title>extmod/vfs: Expose mp_vfs_mount_t type.</title>
<updated>2017-01-27T12:22:15+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-01-27T11:40:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3f6b4e08e38d3205f7a5a21f7ff81ab9f3c3c497'/>
<id>urn:sha1:3f6b4e08e38d3205f7a5a21f7ff81ab9f3c3c497</id>
<content type='text'>
It should only be used for low-level things and with caution, for example
putting mounted VFS data in ROM or the static data section.
</content>
</entry>
<entry>
<title>extmod: Add generic VFS sub-system.</title>
<updated>2017-01-27T06:19:06+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-01-27T04:10:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=dcb9ea72157f1d9f3b0dc306c2c31cbd647f5ee1'/>
<id>urn:sha1:dcb9ea72157f1d9f3b0dc306c2c31cbd647f5ee1</id>
<content type='text'>
This provides mp_vfs_XXX functions (eg mount, open, listdir) which are
agnostic to the underlying filesystem type, and just require an object with
the relevant filesystem-like methods (eg .mount, .open, .listidr) which can
then be mounted.

These mp_vfs_XXX functions would typically be used by a port to implement
the "uos" module, and mp_vfs_open would be the builtin open function.

This feature is controlled by MICROPY_VFS, disabled by default.
</content>
</entry>
<entry>
<title>py: Add MICROPY_KBD_EXCEPTION config option to provide mp_kbd_exception.</title>
<updated>2016-12-15T02:00:19+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-12-15T02:00:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7f1da0a03b1559080ca4d054bd38f104bde168e6'/>
<id>urn:sha1:7f1da0a03b1559080ca4d054bd38f104bde168e6</id>
<content type='text'>
Defining and initialising mp_kbd_exception is boiler-plate code and so the
core runtime can provide it, instead of each port needing to do it
themselves.

The exception object is placed in the VM state rather than on the heap.
</content>
</entry>
</feed>
