| Age | Commit message (Collapse) | Author |
|
This is to keep the top-level directory clean, to make it clear what is
core and what is a port, and to allow the repository to grow with new ports
in a sustainable way.
|
|
There were several different spellings of MicroPython present in comments,
when there should be only one.
|
|
|
|
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
|
|
Versions prior to v14.0 have a bug in parsing item functions when used
within a condition: https://github.com/Microsoft/msbuild/issues/368.
Since commit [db9c2e3] this results in an error when building MicroPython
with for example VS2013.
Fix this by creating an intermediate property.
|
|
Make qstr generation depend on modifications in mpconfigport.h, mpconfig.h
and makeqstrdata.py and if any of those change scan all source files for
qstrs again since they might have changed (for example typcially when
enabling new features in mpconfig.h).
This fixes #2982 for msvc builds.
|
|
It is not used anywhere and causes a warning about redefinition because
it is used in modutimeq.c
|
|
Add definitions/source files for features which work on the windows
ports but weren't yet enabled.
UTIME related lines are moved a couple of lines up to make comparision
with unix/mpconfigport.h easier in the future.
|
|
This assures after cleaning all build artefacts (qstr related files,
generated version header) have been removed.
|
|
This fixes unresolved references after [f1ea3bc]
|
|
|
|
Fixes linker errors since [ad229477] and adds the umachine module so tests pass.
|
|
It has more usages than just qstr extraction, for example, embedding (where
people don't care about efficient predefined qstrs).
|
|
This will launch about as many compiler instances as there are logical
processors on a machine, and as such significantly speeds up compilation.
|
|
Builds have been broken since reworking autogeneration in c618f91 and
related, this gets fixed here by applying similar qstr generation logic
for the msvc builds: c files are only preprocessed when changed (or not
yet preprocessed) and the concatenated output is fed into makeqstrdefs.py.
To speed up this process, the concatenated output is already filtered to
contain only lines which makeqstrdefs really needs: this makes the qstr
generation stage about twice as fast (checked on different machines).
|
|
Note this still needs some work: currently all source files are always
preprocessed no matter which one actually changed, moreover that happens
file by file without any parallellism so builds are painstakingly slow.
|
|
|
|
This fixes the build after adding directory iteration in d874702
|
|
|
|
This allows multiple versions (e.g. Debug/Release, x86/x64) of micropython.exe
to co-exist instead and also solves potential problems where msbuild does not
completely rebuild the output and/or pdb files when switching between builds,
which in turn can cause linker errors in dependent projects.
By default exe/map/... files go in windows/build/$(Configuration)$(Platform)
After each build micropython.exe is still copied from the above directory to
the windows directory though, as that is consistent with the other ports and
the test runner by default uses that location as well.
Also rename env.props -> path.props which is a clearer name,
and add ample documentation in the affected build files.
(also see discussion in #1538)
|
|
This defaults to 'python' but can be now overridden if needed
|
|
containing optional features
Fixes issues like #1532
|
|
|
|
- add SEEK_XXX definitions, this fixes missing definition in py/stream.c
- move R_OK from realpath.c and add W_OK/F_OK defintions
- move STDXXX_FILENO definitions from mpconfigport for consistency
|
|
|
|
This allows using (almost) the same code for printing floats everywhere,
removes the dependency on sprintf and uses just snprintf and
applies an msvc-specific fix for snprintf in a single place so
nan/inf are now printed correctly.
|
|
Also rename py-version.h to mpversion.h for consistency with mpconfig.h.
|
|
|
|
Some files are excluded, otherwise a whole lot of files need converting.
|
|
Remove some duplication in the code for generating
qstrdefs.generated.h and py-version.h
|
|
- Use a single file env.props for defining the main directories used when building.
env.props resolves the base directory and defines overridable output directories,
and is used by all other build files.
- Fix the build currently failing, basically because the preprocessing command for generating
qstrdefs uses different include directories than the build itself does.
(specifically, qstrdefs.h uses #include "py/mpconfig.h" since the fixes for #1022
in 51dfcb4, so we need to use the base directory as include directory, not the py dir itself).
So define a single variable containing the include directories instead and use it where needed.
|
|
|
|
|
|
buf, os module
|
|
|
|
The pointers to the bss section are acquired in init.c()
by inspecting the PE header. Works for msvc and mingw.
|
|
This fixes generating the headers casuing complete rebuilds,
even when the headere's content didn't really change.
|
|
|
|
Extend the windows port so it compiles with the toolchain from Visual Studio 2013
|