Commit Graph

82 Commits

Author SHA1 Message Date
stijn f45a83d7fc mingw: Fix compilation issues
- use lowercase windows.h
- fix for mingw32 using preprocessor-unfriendly definition of CLOCKS_PER_SEC
2014-05-10 10:42:40 +02:00
stijn 5ed284a15e windows: Add modtime implementation 2014-05-09 13:58:15 +02:00
stijn 01d6be4d51 Windows MSVC port
Extend the windows port so it compiles with the toolchain from Visual Studio 2013
2014-05-08 10:06:43 +02:00
stijn 951335e102 windows: Fix input.c missing in Makefile after changes for #582 2014-05-07 21:15:00 +02:00
stijn 3ce10935f0 windows: Enable math module 2014-05-07 12:39:02 +02:00
Damien George 04b9147e15 Add license header to (almost) all files.
Blanket wide to all .c and .h files.  Some files originating from ST are
difficult to deal with (license wise) so it was left out of those.

Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
2014-05-03 23:27:38 +01:00
Damien George 3a01840390 windows: Argument to () function should be (void). 2014-05-03 22:43:58 +01:00
stijn 72521a1c17 mingw: Fix number of exponent digits in floating point formatting
By default mingw outputs 3 digits instead of the standard 2 so all float
tests using printf fail. Using setenv at the start of the program fixes this.
To accomodate calling platform specific initialization a
MICROPY_MAIN_INIT_FUNC macro is used which is called in mp_init()
2014-05-03 20:15:15 +02:00
stijn 4cd21deebc mingw: Add implementation of realpath()
The mingw port used _fullpath() until now, but the behaviour is not exactly
the same as realpath()'s on unix; major difference being that it doesn't
return an error for non-existing files, which would bypass main's error
checking and bail out without any error message.

Also realpath() will return forward slashes only since main() relies on that.
2014-05-03 17:38:08 +02:00
Paul Sokolovsky 5ee1e0f534 windows: alloca.h: Add comment, fix line endings. 2014-05-03 14:42:39 +03:00
Paul Sokolovsky 7a14022604 Merge pull request #552 from stinos/mingw-alloca
py: Use <alloca.h> for alloca()
2014-05-03 14:39:47 +03:00
stijn 5513194273 mingw: Add 'open' as extra builtin and add define MICROPY_MOD_SYS_STDFILES
This one was probable missed when creating mpconfigport.h, but the underlying
code (file.c) gets compiled and works perfectly so no reason to omit it.
2014-05-03 10:46:21 +02:00
stijn 98e2ee0ec1 py: Use <alloca.h> for alloca()
alloca() is declared in alloca.h which als happens to be included by stdlib.h.
On mingw however it resides in malloc.h only.
So if we include alloca.h directly, and add an alloca.h for mingw in it's port
directory we can get rid of the mingw-specific define to include malloc.h
and the other ports are happy as well.
2014-05-03 10:14:53 +02:00
Paul Sokolovsky 6c94abe347 windows/README: Use CROSS_COMPILE instead of CC to cover other tools too.
Suggested by @lurch.
2014-04-23 20:45:53 +03:00
Paul Sokolovsky 521de04ce2 windows: Add README with basic cross-compile instructions. 2014-04-20 22:35:11 +03:00
Paul Sokolovsky 7f7c7aa76a windows: Unbreak mingw32 build (cross-compiling under Linux). 2014-04-20 22:24:44 +03:00
Damien George d553be5982 build: Simplify build directory layout by putting all headers in genhdr.
Any generated headers go in $(BUILD)/genhdr/, and are #included as
'genhdr/xxx.h'.
2014-04-17 18:03:27 +01:00
Andrew Scheller 70a7d7a943 build directory can now be renamed
The autogenerated header files have been moved about, and an extra
include dir has been added, which means you can give a custom
BUILD=newbuilddir option to make, and everything "just works"

Also tidied up the way the different Makefiles build their include-
directory flags
2014-04-16 22:16:28 +01:00
Damien George 094ebef259 windows: Use most of the source files from unix/ port.
To keep it maintainable, windows port now uses as much as possible from
unix port.  Maybe could even use mpconfigport.h.
2014-04-08 13:25:47 +00:00
Damien George 97790455fe Improve REPL detecting when input needs to continue.
Full CPython compatibility with this requires actually parsing the
input so far collected, and if it fails parsing due to lack of tokens,
then continue collecting input.  It's not worth doing it this way.  Not
having compatibility at this level does not hurt the goals of Micro
Python.
2014-04-08 11:04:29 +00:00
Paul Sokolovsky b8cf948550 unix, windows: There's no "help" builtin. 2014-04-08 04:07:02 +03:00
Damien George 6827f9fc55 Add uPy welcome message to UNIX and Windows ports; update Teensy port.
Partly addresses issue #154.
2014-04-07 13:27:50 +01:00
Damien George 6c6f9d6782 windows: Make it compile with latest changes to py core. 2014-04-07 13:20:06 +01:00
Damien George 15d18069c5 py: Remove old "run time" functions that were 1 liners. 2014-03-31 16:28:13 +01:00
Damien George d17926db71 Rename rt_* to mp_*.
Mostly just a global search and replace.  Except rt_is_true which
becomes mp_obj_is_true.

Still would like to tidy up some of the names, but this will do for now.
2014-03-30 13:35:08 +01:00
Damien George c12b2213c1 Change mp_method_t.name from const char * to qstr.
Addresses issue #377.
2014-03-26 20:15:40 +00:00
Damien George 19438fd30a windows: Change MICROPY_FLOAT config to new scheme. 2014-03-13 00:36:34 +00:00
Damien George c5966128c7 Implement proper exception type hierarchy.
Each built-in exception is now a type, with base type BaseException.
C exceptions are created by passing a pointer to the exception type to
make an instance of.  When raising an exception from the VM, an
instance is created automatically if an exception type is raised (as
opposed to an exception instance).

Exception matching (RT_BINARY_OP_EXCEPTION_MATCH) is now proper.

Handling of parse error changed to match new exceptions.

mp_const_type renamed to mp_type_type for consistency.
2014-02-15 16:10:44 +00:00
Damien George a71c83a1d1 Change mp_obj_type_t.name from const char * to qstr.
Ultimately all static strings should be qstr.  This entry in the type
structure is only used for printing error messages (to tell the type of
the bad argument), and printing objects that don't supply a .print method.
2014-02-15 11:34:50 +00:00
Paul Sokolovsky 0c59db1973 Use qstr id to create sys module. 2014-02-04 19:36:00 +02:00
Markus Siemens 7e0dee0cbf windows: Make windows/main.c independent from unix/main.c
Up to know changes unix/main.c were able to break the windows
build because windows/main.c simply included unix/main.c.

Now windows/main.c stands on it's own and won't break if
unix/main.c changes.
2014-01-30 17:13:16 +01:00
Markus Siemens 19ccc6bdc7 Added Windows port (see #233) 2014-01-28 18:21:05 +01:00