Go to file
Scott Shawcroft dd71ae10b9
Slim down stack frames
This reduces the stack frame size of mp_builtin___import__ by
limiting the support path length of files from 256 to 96. This
function can be called recursively for nested imports so it adds up.

Also reduce mp_execute_bytecode (vm.c) from 206 a bc call to 124.
This too is recursive and adds up. It is reduced by preventing
some inlining. It may decrease performance slightly when importing
and unpacking.

Adds two new scripts for debugging. One is used from gdb to print
frame sizes in a backtrace. The other prints what pcs use a
particular stack offset. This helps find infrequently used stack
space.

Fixes #8053.
2023-06-06 16:20:47 -07:00
.codespell remove lib from exludes, fix all remaining typos 2023-03-23 13:59:08 +07:00
.devcontainer fixed typo (path) in postCreateCommand 2022-12-16 09:13:34 +01:00
.github apt-get update before apt-get install for mpy-cross 2023-05-20 23:42:30 -04:00
data change hex radio password validation; add password length doc 2023-04-20 09:47:25 -04:00
devices/ble_hci fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
docs document CIRCUITPY_PYSTACK_SIZE 2023-05-09 14:30:25 +02:00
examples fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
extmod Additional cast through void* 2023-05-27 16:53:08 +01:00
frozen synthio: Add adafruit_wave and use it in the manual test 2023-05-11 09:31:07 -05:00
lib Add additional iMX RT support 2023-04-28 11:01:13 -07:00
LICENSES Add an explicit SPDX license file for ter-u12n. 2020-07-06 19:15:41 +01:00
locale Translated using Weblate (German) 2023-06-02 22:48:01 +02:00
logo Add license to some obvious files. 2020-07-06 19:16:25 +01:00
mpy-cross Fix mpy-cross compile error with GCC13. 2023-04-11 19:38:27 +02:00
ports Fix listing 2023-06-01 09:47:30 -07:00
py Slim down stack frames 2023-06-06 16:20:47 -07:00
shared fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
shared-bindings synthio: list filter in the constructor 2023-05-23 19:38:25 -05:00
shared-module synthio: rename synthesizer.lfos to .blocks 2023-05-23 19:38:25 -05:00
supervisor Do not enable web_workflow background callbacks if wifi is not enabled/connected 2023-05-11 17:01:53 -04:00
tests Add some more Note tests 2023-05-24 10:00:12 -05:00
tools Slim down stack frames 2023-06-06 16:20:47 -07:00
.codespellrc fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
.git-blame-ignore-revs top: Update .git-blame-ignore-revs for latest formatting commit. 2021-04-27 23:46:46 +10:00
.gitattributes Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
.gitignore Rename test function, make 'bad' files binary & add another test 2022-12-09 15:23:56 -06:00
.gitmodules synthio: Add adafruit_wave and use it in the manual test 2023-05-11 09:31:07 -05:00
.mailmap Add a .mailmap file to collate together multiple author entries. 2020-07-06 19:15:41 +01:00
.pre-commit-config.yaml Update .pre-commit-config.yaml 2023-03-31 11:50:43 +03:00
.readthedocs.yml update .readthedocs.yml and add it to docs pattern 2023-03-11 11:56:04 +05:30
.rosie.yml Add license to some obvious files. 2020-07-06 19:16:25 +01:00
ACKNOWLEDGEMENTS Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
ACKNOWLEDGEMENTS.license Add license to some obvious files. 2020-07-06 19:16:25 +01:00
BUILDING.md uncrustify 0.75 is not OK 2023-03-11 08:13:30 -06:00
CODE_OF_CONDUCT.md Fix up Contributor Covenant homepage link 2023-04-10 15:33:38 +12:00
conf.py Silabs' new Pull Request for submoduling the ports/silabs/tools/slc_cli_linux/ (#7874) 2023-04-18 12:42:16 -04:00
CONTRIBUTING.md Fix error 2020-10-26 23:36:54 +01:00
LICENSE update formatting of LICENSE and clean-up 2022-08-27 14:47:10 +05:30
LICENSE_MicroPython update formatting of LICENSE and clean-up 2022-08-27 14:47:10 +05:30
main.c Add Pimoroni Inky Frame 5.7 2023-05-11 12:12:34 -07:00
Makefile Updated how stubs are built 2023-05-09 22:01:24 -04:00
MANIFEST.in-stubs refine stubs-building procedure 2021-06-22 08:59:05 -05:00
README.rst don't enter safemode.py on USER safe mode 2023-02-14 11:20:29 -05:00
README.rst-stubs Actually reduce the README text for the stubs package 2021-06-24 13:41:01 -05:00
requirements-ci.txt only install awscli when required 2023-01-16 17:03:39 +05:30
requirements-dev.txt Silabs' new Pull Request for submoduling the ports/silabs/tools/slc_cli_linux/ (#7874) 2023-04-18 12:42:16 -04:00
requirements-doc.txt Updated how stubs are built 2023-05-09 22:01:24 -04:00
runtime.py Conditionalize LTO 2022-05-27 12:59:54 -07:00
setup.py-stubs use --long for describe in setup.py-stubs 2022-02-18 21:22:02 -05:00
WEBUSB_README.md Rename esp32s2 port to espressif 2021-09-13 16:44:55 -07:00

CircuitPython
=============

.. image:: https://s3.amazonaws.com/adafruit-circuit-python/CircuitPython_Repo_header_logo.png

|Build Status| |Doc Status| |License| |Discord| |Weblate|

`circuitpython.org <https://circuitpython.org>`__ \| `Get CircuitPython <#get-circuitpython>`__ \|
`Documentation <#documentation>`__ \| `Contributing <#contributing>`__ \|
`Branding <#branding>`__ \| `Differences from Micropython <#differences-from-micropython>`__ \|
`Project Structure <#project-structure>`__

**CircuitPython** is a *beginner friendly*, open source version of Python for tiny, inexpensive
computers called microcontrollers.

This package contains the "stubs", or type definitions for CircuitPython.  With some advanced
editors and other tools, this information can be identify TypeErrors, AttributeErrors, and other
problems before you deploy your code to a device and can even help autocomplete your code.

.. |Build Status| image:: https://github.com/adafruit/circuitpython/workflows/Build%20CI/badge.svg
   :target: https://github.com/adafruit/circuitpython/actions?query=branch%3Amain
.. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest
   :target: http://circuitpython.readthedocs.io/
.. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg
   :target: https://adafru.it/discord
.. |License| image:: https://img.shields.io/badge/License-MIT-brightgreen.svg
   :target: https://choosealicense.com/licenses/mit/
.. |Weblate| image:: https://hosted.weblate.org/widgets/circuitpython/-/svg-badge.svg
   :target: https://hosted.weblate.org/engage/circuitpython/?utm_source=widget