Dave Hylands
ca5a241e48
Add proper floating point printing support.
11 years ago
Dave Hylands
0308f964a0
Fix makeqstrdata.py to work in Python 2.7
11 years ago
Damien George
2da9830b92
py: Make objstr support buffer protocol (read only).
11 years ago
Damien George
0ec6bd47cb
py: Fix printing of type name.
11 years ago
Damien George
0c36da0b59
Implement ROMable modules. Add math module.
mp_module_obj_t can now be put in ROM.
Configuration of float type is now similar to longint: can now choose
none, float or double as the implementation.
math module has basic math functions. For STM port, these are not yet
implemented (they are just stub functions).
11 years ago
Damien George
5260810d70
py: Wrap mpz float functions in MICROPY_ENABLE_FLOAT.
11 years ago
Damien George
fdf0da5436
makeqstrdata: print error to stderr.
11 years ago
Damien George
6fc765c928
py: Revert to old gc_realloc for now.
11 years ago
Damien George
f08ddef676
py: Add comments to new gc_realloc, it has some bugs.
11 years ago
Damien George
73d579354b
py: Small cosmetic changes to gc_realloc.
11 years ago
mux
fbaa1479f4
Fix gc_realloc to expand in place
* Issue #322
11 years ago
Damien George
25f5a30e73
py: Fix overriding of default arguments.
Addresses issue #327 .
11 years ago
Damien George
f41fdd05b0
py: Unify syntax error handling in compiler; check defualt arg syntax.
Checks for non-default args following default args, and errors out.
Addresses issue #328 .
11 years ago
Damien George
715101580b
py: Factor and improve issubclass.
11 years ago
Paul Sokolovsky
e74f52b76c
namedtuple: Inherit unary/binary ops from tuple base class.
11 years ago
Paul Sokolovsky
d86d22e1e7
Add mp_obj_is_subclass_fast() - intended for fast argument checking.
I.e. as replacement of MP_OBJ_IS_TYPE(), which takes into account subclassing.
11 years ago
Paul Sokolovsky
d08fd68664
Add basic collections.namedtuple implementation.
11 years ago
Damien George
06201ff3d6
py: Implement bit-shift and not operations for mpz.
Implement not, shl and shr in mpz library. Add function to create mpzs
on the stack, used for memory efficiency when rhs is a small int.
Factor out code to parse base-prefix of number into a dedicated function.
11 years ago
Paul Sokolovsky
9c7e984a05
nlrthumb.S: Comment out ".cpu cortex-m4", it causes problems on Cortex-A.
11 years ago
Paul Sokolovsky
82a165d9be
nlr.h: Do proper arch selection, using the same tests as nlr*.S .
11 years ago
Damien George
ce1162ab15
GC: Fix printf formats for debugging; add gc_dump_alloc_table.
11 years ago
Damien George
41eb6086b7
py: Remove more var arg names fro macros with var args.
11 years ago
Damien George
d5e81826ec
py: Reduce size of mp_obj_fun_native_t struct by packing ints.
11 years ago
Damien George
510477557d
py: Take out bitfield entries from their own structure.
Don't need to wrap bitfields in their own struct. Compiler does the
correct thing without it.
11 years ago
Damien George
1dc76af7bf
py: Remove name of var arg from macros with var args.
11 years ago
Damien George
c5ac2ac590
py: Start to implement shl/shr for mpz. Fix return void.
11 years ago
Damien George
aca141269e
py: Fix mpn_sub, was increasing wrong source pointer.
Also change int -> machine_int_t where appropriate.
11 years ago
Damien George
438c88dd2f
Add arbitrary precision integer support.
Some functionality is still missing (eg and, or, bit shift), and some
things are buggy (eg subtract).
11 years ago
Damien George
2077397118
py: Put number parsing code together in parsenum.c.
11 years ago
Damien George
2613ffde43
py: Rename strtonum to mp_strtonum.
strtonum clashes with BSD function of same name, and our version is
different so warrants a unique name. Addresses Issue #305 .
11 years ago
Damien George
0379b55ab0
py: Fix casting and printing of small int.
11 years ago
Paul Sokolovsky
56e5ef203b
parse: Refactor parse node encoding to support full range of small ints.
Based on suggestion by @dpgeorge at
https://github.com/micropython/micropython/pull/313
11 years ago
Paul Sokolovsky
bbf0e2fe12
parse: Note that fact that parser's small ints are different than VM small int.
Specifically, VM's small ints are 31 bit, while parser's only 28. There's already
MP_OBJ_FITS_SMALL_INT(), so, for clarity, rename MP_FIT_SMALL_INT() to
MP_PARSE_FITS_SMALL_INT().
11 years ago
Paul Sokolovsky
1d30b11685
showbc: Update for recent int varlen storage refactor.
TODO: De-duplicate DECODE_UINT, etc. definitions.
11 years ago
Paul Sokolovsky
feacaa12ac
__import__: Catch relative import attempts and throw NotImplementedError.
11 years ago
Paul Sokolovsky
a8d31b28bc
emitbc: Correct buffer sizes for varlen int encoding.
Assuming we have truncating (floor) division, way to do ceiling division
by N is to use formula (x + (N-1)) / N. Specifically, 63 bits, if stored
7 bits per byte, require exactly 9 bytes. 64 bits overflow that and require
10 bytes.
11 years ago
Paul Sokolovsky
a1aba36feb
compile: Add comments ergarding non-implemented relative imports.
11 years ago
Damien George
4d79d5dd7c
py: Fix type of integer in decoding int.
11 years ago
Paul Sokolovsky
fb7f94392d
import: Implement "from pkg.mod import sym" syntax properly.
http://docs.python.org/3.3/library/functions.html#__import__ :
"When the name variable is of the form package.module, normally, the
top-level package (the name up till the first dot) is returned, not
the module named by name. However, when a non-empty fromlist argument
is given, the module named by name is returned."
11 years ago
Paul Sokolovsky
047cd40313
Bytecode int varlen encoding: support arbitrary values for signed ints too.
11 years ago
Paul Sokolovsky
0f96ec8268
Bytecode uint varlen encoding: support arbitrary values.
11 years ago
Dave Hylands
51dabac096
Add pin mapping code.
This commit also introduces board directories and moves board
specific config into the appropriate board directory.
boards/stm32f4xx-af.csv was extracted from the STM32F4xx datasheet
and hand-tweaked.
make-pins.py takes boards/stm32f4xx-af.csv, boards/stm32f4xx-prefix.c,
and boards/BOARD-NAME/pins.csv as input and generates the file
build/pins_BOARD_NAME.c
The generated pin file for PYBOARD4 looks like this:
https://gist.github.com/dhylands/9063231
The generated pins file includes all of the supported alternate
functions, and includes upsupported alternate functions as comments.
See the commnet block at the top of stm/pin_map.c for details on
how to use the pin mapper.
I also went ahead and modified stm/gpio.c to use the pin mapper.
11 years ago
Paul Sokolovsky
4d0588df56
objint_longlong: Don't assert on invalid syntax, raise SyntaxError instead.
11 years ago
Paul Sokolovsky
4aee119f94
stm: Initialize sys.path with ["0:/", "0:/src", "0:/lib"].
This is compatible with what search path was before sys.path refactor,
with addition of module library path ("0:/lib").
11 years ago
Paul Sokolovsky
ac2e28c654
Support passing positional args as keywords to bytecode functions.
For this, record argument names along with each bytecode function. The code
still includes extensive debug logging support so far.
11 years ago
Paul Sokolovsky
44739e280e
Make DEBUG_printf() a proper function, implementation is port-dependent.
In particular, unix outputs to stderr, to allow to run testsuite against
micropython built with debug output (by redirecting stderr to /dev/null).
11 years ago
Paul Sokolovsky
5fd7bc3264
Propagate scope flags refactor to emitcpy.c.
11 years ago
Paul Sokolovsky
91ba7a54c5
builtinimport: Get the basic (and only basic) package imports work.
11 years ago
Paul Sokolovsky
d3783570a4
builtinimport.c: Recognize "namespace package" and error out as unsupported.
See http://www.python.org/dev/peps/pep-0420/#specification for spec. See
https://github.com/micropython/micropython/issues/298 for the discussion
of the implemented behavior.
11 years ago
Damien George
e5d371b545
py: Pass keyword arguments to byte code.
11 years ago