You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{"payload":{"allShortcutsEnabled":false,"path":"mpy-cross","repo":{"id":419029615,"defaultBranch":"main","name":"circuitpython","ownerLogin":"domdfcoding","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-10-19T17:38:21.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8050853?v=4","public":true,"private":false,"isOrgOwned":false},"currentUser":null,"refInfo":{"name":"esp32-rotaryio","listCacheKey":"v0:1705481048.0","canEdit":false,"refType":"branch","currentOid":"f297e872d6f27064803abd793f4c0eedc50c3f4b"},"tree":{"items":[{"name":".gitignore","path":"mpy-cross/.gitignore","contentType":"file"},{"name":"Makefile","path":"mpy-cross/Makefile","contentType":"file"},{"name":"Makefile.fuzz","path":"mpy-cross/Makefile.fuzz","contentType":"file"},{"name":"Makefile.m1","path":"mpy-cross/Makefile.m1","contentType":"file"},{"name":"Makefile.static","path":"mpy-cross/Makefile.static","contentType":"file"},{"name":"Makefile.static-aarch64","path":"mpy-cross/Makefile.static-aarch64","contentType":"file"},{"name":"Makefile.static-mingw","path":"mpy-cross/Makefile.static-mingw","contentType":"file"},{"name":"Makefile.static-raspbian","path":"mpy-cross/Makefile.static-raspbian","contentType":"file"},{"name":"README.md","path":"mpy-cross/README.md","contentType":"file"},{"name":"fmode.c","path":"mpy-cross/fmode.c","contentType":"file"},{"name":"fmode.h","path":"mpy-cross/fmode.h","contentType":"file"},{"name":"gccollect.c","path":"mpy-cross/gccollect.c","contentType":"file"},{"name":"main.c","path":"mpy-cross/main.c","contentType":"file"},{"name":"mpconfigport.h","path":"mpy-cross/mpconfigport.h","contentType":"file"},{"name":"mphalport.h","path":"mpy-cross/mphalport.h","contentType":"file"},{"name":"mpy-cross.mk","path":"mpy-cross/mpy-cross.mk","contentType":"file"},{"name":"mpy-cross.vcxproj","path":"mpy-cross/mpy-cross.vcxproj","contentType":"file"},{"name":"qstrdefsport.h","path":"mpy-cross/qstrdefsport.h","contentType":"file"}],"templateDirectorySuggestionUrl":null,"readme":{"displayName":"README.md","richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eMicroPython cross compiler\u003c/h1\u003e\u003ca id=\"user-content-micropython-cross-compiler\" class=\"anchor\" aria-label=\"Permalink: MicroPython cross compiler\" href=\"#micropython-cross-compiler\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis directory contains the MicroPython cross compiler, which runs under any\nUnix-like system and compiles .py scripts into .mpy files.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eBuild it as usual:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ make\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ make\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe compiler is called \u003ccode\u003empy-cross\u003c/code\u003e. Invoke it as:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ ./mpy-cross foo.py\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ ./mpy-cross foo.py\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis will create a file foo.mpy which can then be copied to a place accessible\nby the target MicroPython runtime (eg onto a pyboard's filesystem), and then\nimported like any other Python module using \u003ccode\u003eimport foo\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eDifferent target runtimes may require a different format of the compiled\nbytecode, and such options can be passed to the cross compiler.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf the Python code contains \u003ccode\u003e@native\u003c/code\u003e or \u003ccode\u003e@viper\u003c/code\u003e annotations, then you must\nspecify \u003ccode\u003e-march\u003c/code\u003e to match the target architecture.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eRun \u003ccode\u003e./mpy-cross -h\u003c/code\u003e to get a full list of options.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThe optimisation level is 0 by default. Optimisation levels are detailed in\n\u003ca href=\"https://docs.micropython.org/en/latest/library/micropython.html#micropython.opt_level\" rel=\"nofollow\"\u003ehttps://docs.micropython.org/en/latest/library/micropython.html#micropython.opt_level\u003c/a\u003e\u003c/p\u003e\n\u003c/article\u003e","errorMessage":null,"headerInfo":{"toc":[{"level":1,"text":"MicroPython cross compiler","anchor":"micropython-cross-compiler","htmlText":"MicroPython cross compiler"}],"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fdomdfcoding%2Fcircuitpython%2Ftree%2Fesp32-rotaryio%2Fmpy-cross"}},"totalCount":18,"showBranchInfobar":true},"fileTree":{"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"LICENSES","path":"LICENSES","contentType":"directory"},{"name":"data","path":"data","contentType":"directory"},{"name":"devices","path":"devices","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"extmod","path":"extmod","contentType":"directory"},{"name":"frozen","path":"frozen","contentType":"directory"},{"name":"lib","path":"lib","contentType":"directory"},{"name":"locale","path":"locale","contentType":"directory"},{"name":"logo","path":"logo","contentType":"directory"},{"name":"mpy-cross","path":"mpy-cross","contentType":"directory"},{"name":"ports","path":"ports","contentType":"directory"},{"name":"py","path":"py","contentType":"directory"},{"name":"shared-bindings","path":"shared-bindings","contentType":"directory"},{"name":"shared-module","path":"shared-module","contentType":"directory"},{"name":"shared","path":"shared","contentType":"directory"},{"name":"supervisor","path":"supervisor","contentType":"directory"},{"name":"tests","path":"tests","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".git-blame-ignore-revs","path":".git-blame-ignore-revs","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".gitmodules","path":".gitmodules","contentType":"file"},{"name":".mailmap","path":".mailmap","contentType":"file"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","contentType":"file"},{"name":".readthedocs.yml","path":".readthedocs.yml","contentType":"file"},{"name":".rosie.yml","path":".rosie.yml","contentType":"file"},{"name":"ACKNOWLEDGEMENTS","path":"ACKNOWLEDGEMENTS","contentType":"file"},{"name":"ACKNOWLEDGEMENTS.license","path":"ACKNOWLEDGEMENTS.license","contentType":"file"},{"name":"BUILDING.md","path":"BUILDING.md","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"MANIFEST.in-stubs","path":"MANIFEST.in-stubs","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.rst","path":"README.rst","contentType":"file"},{"name":"README.rst-stubs","path":"README.rst-stubs","contentType":"file"},{"name":"WEBUSB_README.md","path":"WEBUSB_README.md","contentType":"file"},{"name":"conf.py","path":"conf.py","contentType":"file"},{"name":"license.rst","path":"license.rst","contentType":"file"},{"name":"main.c","path":"main.c","contentType":"file"},{"name":"requirements-ci.txt","path":"requirements-ci.txt","contentType":"file"},{"name":"requirements-dev.txt","path":"requirements-dev.txt","contentType":"file"},{"name":"requirements-doc.txt","path":"requirements-doc.txt","contentType":"file"},{"name":"setup.py-stubs","path":"setup.py-stubs","contentType":"file"}],"totalCount":46}},"fileTreeProcessingTime":3.0970519999999997,"foldersToFetch":[],"treeExpanded":true,"symbolsExpanded":false,"csrf_tokens":{"/domdfcoding/circuitpython/branches":{"post":"ULPZqICLDdCfG_5rgko0NpGns3dR0rIvG2ICABlWDDYDRXblyb4D5bA46wQj9hzwxeN6g1LxeaP_vxIkNWmuyQ"},"/domdfcoding/circuitpython/branches/fetch_and_merge/esp32-rotaryio":{"post":"pbAmMjWGTaemtnpmKBsJvFFlLbu5wx55fpMBr3ubdtXwYo9Rp9vkzfLrn0UqhtVBwhV0fZVHKc_cMfgdW2NhzA"},"/domdfcoding/circuitpython/branches/fetch_and_merge/esp32-rotaryio?discard_changes=true":{"post":"gunItQWdFspR4shFbKiO9WTtyKxnKZ28bzvla9yOKfHXO2HWl8C_oAW_LWZuNVII952RakutqgrNmRzZ_HY-6A"}}},"title":"circuitpython/mpy-cross at esp32-rotaryio · domdfcoding/circuitpython","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-263cab1760dd.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-1b17b3e7786a.js","githubDevUrl":null,"enabled_features":{"code_nav_ui_events":false,"react_blob_overlay":false,"accessible_code_button":true}}}