aboutsummaryrefslogtreecommitdiff
path: root/windows
AgeCommit message (Collapse)Author
2016-08-15ports: Remove typedef of machine_ptr_t, it's no longer needed.Damien George
This type was used only for the typedef of mp_obj_t, which is now defined by the object representation. So we can now remove this unused typedef, to simplify the mpconfigport.h file.
2016-07-22wundows/README: Typo fix.Paul Sokolovsky
2016-07-22mpy-cross: Use binary file translation mode for creating mpy files on windowsstijn
This is a fix for https://github.com/micropython/micropython/issues/2209: by default a file created using open() uses text translation mode so writing \n to it will result in the file having \r\n. This is obviously problematic for binary .mpy files, so provide functions for setting the open mode and use binary mode in mpy-cross' main().
2016-06-25windows/msvc: Include machine_pinbase.c in build and enable umachine modulestijn
Fixes linker errors since [ad229477] and adds the umachine module so tests pass.
2016-06-18windows: Follow unix port changes regarding "utime" module.Paul Sokolovsky
2016-06-16py: Rename __QSTR_EXTRACT flag to NO_QSTR.Paul Sokolovsky
It has more usages than just qstr extraction, for example, embedding (where people don't care about efficient predefined qstrs).
2016-05-08windows: Enable multi-processor compilation for msvcstijn
This will launch about as many compiler instances as there are logical processors on a machine, and as such significantly speeds up compilation.
2016-04-25windows/msvc: Rewrite qstr auto-generation.stijn
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).
2016-04-16windows/msvc: Implement automatic qstr generation using makeqstrdefs.stijn
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.
2016-04-16py: Add rules for automated extraction of qstrs from sources.Jan Čapek
- add template rule that converts a specified source file into a qstring file - add special rule for generating a central header that contains all extracted/autogenerated strings - defined by QSTR_DEFS_COLLECTED variable. Each platform appends a list of sources that may contain qstrings into a new build variable: SRC_QSTR. Any autogenerated prerequisities are should be appened to SRC_QSTR_AUTO_DEPS variable. - remove most qstrings from py/qstrdefs, keep only qstrings that contain special characters - these cannot be easily detected in the sources without additional annotations - remove most manual qstrdefs, use qstrdef autogen for: py, cc3200, stmhal, teensy, unix, windows, pic16bit: - remove all micropython generic qstrdefs except for the special strings that contain special characters (e.g. /,+,<,> etc.) - remove all port specific qstrdefs except for special strings - append sources for qstr generation in platform makefiles (SRC_QSTR)
2016-04-15py: Declare help, input, open builtins in core.Paul Sokolovsky
These are *defined* per-port, but why redeclare them again and again.
2016-04-13py: Add ability to have frozen persistent bytecode from .mpy files.Damien George
The config variable MICROPY_MODULE_FROZEN is now made of two separate parts: MICROPY_MODULE_FROZEN_STR and MICROPY_MODULE_FROZEN_MPY. This allows to have none, either or both of frozen strings and frozen mpy files (aka frozen bytecode).
2016-01-29py/runtime: mp_stack_ctrl_init() should be called immediately on startup.Paul Sokolovsky
Calling it from mp_init() is too late for some ports (like Unix), and leads to incomplete stack frame being captured, with following GC issues. So, now each port should call mp_stack_ctrl_init() on its own, ASAP after startup, and taking special precautions so it really was called before stack variables get allocated (because if such variable with a pointer is missed, it may lead to over-collecting (typical symptom is segfaulting)).
2016-01-26windows/msvc: Add modurandom.c to list of source files.Damien George
2016-01-26windows: Enable urandom module.Damien George
2015-12-28windows: Propagate MICROPY_PY_OS_DUPTERM handling from unix port.Paul Sokolovsky
2015-12-26windows/msvc: Nicer handling of asserts and 'invalid' parametersstijn
The default bahaviour for debug builds is to show dialog boxes for asserts and invalid parameter handling. This is not so nice in general and causes the Appveyor debug builds to hang because the io\file_seek.py test passes a closed file descriptor to lseek. Disable this behaviour by printing assert messages to the output instead of showing the dialog, and by disabling 'invalid' parameter handling which causes the affected functions to just return an error and set errno appropriately.
2015-12-21windows: Better handling of Ctrl-Cstijn
This builds upon the changes made in 2195046365c. Using signal() does not produce reliable results so SetConsoleCtrlHandler is used, and the handler is installed only once during initialization instead of removing it in mp_hal_set_interrupt_char when it is not strictly needed anymore, since removing it might lead to Ctrl-C events being missed because they are fired on a seperate thread which might only become alive after the handler was removed.
2015-12-18windows: Add Appveyor CI builds for msvc port.stijn
Appveyor is like Travis, but for Windows builds. The appveyor.yml configuration will build the msvc port in all configuration/platform conbinations, and run the tests for each of those.
2015-12-18msvc: Add dirent.h/.c implementationstijn
This fixes the build after adding directory iteration in d874702
2015-12-18windows/windows_mphal: Add basic support for raising KeyboardInterrupt.Paul Sokolovsky
Compiles with mingw32, tested to work erratically under Wine due to not fully implemented emulation in it.
2015-12-18windows: Make keyboard_interrupt_obj available, it's standard feature.Paul Sokolovsky
2015-12-15msvc: Use new modmachine infrastructure per changes in f925165stijn
2015-12-13unix: Move modmachine into unix directoryDave Hylands
This leaves behind the common functionality in extmod/machine_mem.c which can be used by all ports.
2015-12-12unix: Rename "_os" module to "uos" for consistency with baremetal ports.Paul Sokolovsky
2015-12-11msvc: Use different output directories depending on build typestijn
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)
2015-11-24windows/py: Support 64bit mingw-w64 buildsstijn
- add mp_int_t/mp_uint_t typedefs in mpconfigport.h - fix integer suffixes/formatting in mpconfig.h and mpz.h - use MICROPY_NLR_SETJMP=1 in Makefile since the current nlrx64.S implementation causes segfaults in gc_free() - update README
2015-11-24windows: Cleanup makefilestijn
The BSD stuff is a copy from the unix makefile but at least there it makes some sense, a windows makefile on BSD doesn't. The -lmman flag is probably for mmap functions but there is no other build support for it on windows so just that flag won't cut it anyway.
2015-11-14windows: Define ssize_t and use renamed mphal headerstijn
This fixes the build after changes in [66fd3e4] and [3a6b3d2]
2015-11-10windows: Allow specifying the python executable to use for msvc buildsstijn
This defaults to 'python' but can be now overridden if needed
2015-11-10Fix project file for Visual Studio 2015omtinez
2015-11-02windows: Update build instructions in the READMEstijn
- use correct 'mingw-w64' package name - small grammar fixes - modify Cygwin build instructions to use that same compiler as well: the original mingw is stuck at gcc v4.7 and does not seem to be updated anymore - make it clear thet uPy also builds using Visual Studio versions > 2013
2015-11-01windows/README: Deprecate mingw32, suggest using mingw64.Paul Sokolovsky
Ubuntu's mingw32 has gcc 4.2.1, which is rather old and has incorrect non-initialized variable analysis which produces warnings, which per MicroPython default settings get turned into errors.
2015-10-31all: Add py/mphal.h and use it in all ports.Damien George
py/mphal.h contains declarations for generic mp_hal_XXX functions, such as stdio and delay/ticks, which ports should provide definitions for. A port will also provide mphalport.h with further HAL declarations.
2015-10-31windows: Use write() instead of fwrite() to avoid out-of-order output.stijn
This fixes the basics/exception_chain.py test, also see #1500 for more info and [4300c7d] where the same change was done for the other ports.
2015-10-30windows: Call _set_output_format() only on Visual Studio versions 2013 or lower.omtinez
Since VS2015, float formatting is C standard compliant by default: https://msdn.microsoft.com/en-us/library/bb531344(v=vs.140).aspx
2015-10-26windows: Rename "time" module to "utime" for consistency with others.stijn
2015-10-26windows: Erase pre-calc'd number of chars instead of clearing whole line.stijn
2015-10-25windows: Add usleep() implementation for msvc portstijn
Also make sleep.c self-contained by moving initialization code, instead of having part of the code in init.c, and add a header file to accomodate this. msec_sleep() now uses the usleep() implementation as well.
2015-10-25windows: Do not use wildcards when looking for sources in directories ↵stijn
containing optional features Fixes issues like #1532
2015-10-20lib/mp-readline: Add n_chars argument to mp_hal_erase_line_from_cursor.Damien George
If VT100 support is not available then a given implementation of mp_hal_erase_line_from_cursor might need to know the number of characters to erase. This patch does not change generated code when VT100 is supported, since compiler can optimise away the argument.
2015-10-19all: Make netutils.h available to all ports by default.Paul Sokolovsky
Generally, ports should inherit INC from py.mk, append to it, not overwrite it. TODO: Likely should do the same for other vars too.
2015-09-23windows: Make mpconfigport.h up-to-date with the unix portstijn
2015-09-22windows/msvc: Exclude modjni from build.stijn
2015-08-14windows: Make unistd.h more posix compatiblestijn
- 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
2015-06-04windows/README: Add notes on running under Wine.Paul Sokolovsky
After enabling line editing support on Windows console, this is no longer trivial.
2015-06-04windows: Implement the mp_hal_xxx functions and enable mp-readlinestijn
2015-05-27unix: Factor out stdio and ctrl-C code to unix_mphal.c file.Damien George
2015-05-17py: Implement mp_format_float for doubles and use where appropriatestijn
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.
2015-05-13windows: Enable some recently added features in mpconfigport.hstijn