stijn
51af362e31
msvc: Define no-op MP_LIKELY/UNLIKELY since there's no __builtin_expect
2015-01-04 13:29:02 +02:00
Paul Sokolovsky
ed3b20aae8
modbuiltins.c: Fix NULL vs MP_OBJ_NULL usage.
2015-01-04 13:26:43 +02:00
Paul Sokolovsky
ff8e35b42e
objstr: Common subexpression elimination for vstr_str(field_name).
2015-01-04 13:23:44 +02:00
Paul Sokolovsky
c114496641
objstr: Implement kwargs support for str.format().
2015-01-04 00:26:31 +02:00
Paul Sokolovsky
ae58795c44
unix: Enable -fno-crossjumping for fast build.
...
Confirmed that it improves perfomance of simple "for i in range(N): pass"
loop by 15% on Core2.
2015-01-03 21:15:02 +02:00
Damien George
6fd4b36bc5
py: Raise exception if trying to convert inf/nan to int.
2015-01-02 23:04:09 +00:00
David Steinberg
6e0b6d02db
py: Fix float to int conversion for large exponents.
2015-01-02 22:31:41 +00:00
stijn
ffc96a901a
msvc: Use single build target for dealing with generated files
...
Remove some duplication in the code for generating
qstrdefs.generated.h and py-version.h
2015-01-02 16:55:02 +01:00
stijn
fbfd3554fa
msvc: Fix unresolved mp_arg_error_terse_mismatch since 7f23384
...
The compiler treats `if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE)` as
a normal statement and generates assembly for it in degug mode as if MICROPY_ERROR_REPORTING
is an actual symbol instead of a preprocessor definition.
As such linking fails because mp_arg_error_terse_mismatch is not defined when
MICROPY_ERROR_REPORTING_TERSE is detailed or normal.
2015-01-02 16:53:54 +01:00
stijn
8dec62a1a4
msvc: Define main build/include directories in a single location
...
- 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.
2015-01-02 16:52:07 +01:00
Damien George
fd40a9c38e
py: Make GC's STACK_SIZE definition a proper MICROPY_ config variable.
2015-01-01 22:04:46 +00:00
Damien George
872a82970d
py: Fix windows external name error for nlr_top.
2015-01-01 22:03:44 +00:00
Damien George
8a2347723e
py: Move global variable nlr_top to one place, in a .c file.
...
This reduces dependency on assembler, and allows to consolidate global
variables in the future.
2015-01-01 21:47:58 +00:00
Damien George
0b2a60acbe
windows: Prefix includes with py/; remove need for -I../py.
2015-01-01 21:21:46 +00:00
Damien George
fe7d542352
esp8266: Prefix includes with py/; remove need for -I../py.
2015-01-01 21:16:58 +00:00
Damien George
4ef4ffe1c5
qemu-arm: Prefix includes with py/; remove need for -I../py.
2015-01-01 21:15:38 +00:00
Damien George
c2e22d66da
bare-arm: Prefix includes with py/; remove need for -I../py.
2015-01-01 21:14:42 +00:00
Damien George
b68d98d61c
teensy: Prefix includes with py/; remove need for -I../py.
2015-01-01 21:13:30 +00:00
Damien George
2cf6dfa280
stmhal: Prefix includes with py/; remove need for -I../py.
2015-01-01 21:06:20 +00:00
Damien George
b36be5ff51
unix-cpy: Prefix includes with py/; remove need for -I../py.
2015-01-01 20:41:52 +00:00
Damien George
6d7e47087f
unix: Prefix includes with py/; remove need for -I../py.
2015-01-01 20:40:19 +00:00
Damien George
3765ea419a
extmod: Prefix py/ for includes from py core directory.
2015-01-01 20:35:21 +00:00
Damien George
51dfcb4bb7
py: Move to guarded includes, everywhere in py/ core.
...
Addresses issue #1022 .
2015-01-01 20:32:09 +00:00
Paul Sokolovsky
db1ac360c3
emitnative: Disable warning in delete_fast for now (breaks test).
2015-01-01 22:09:18 +02:00
Paul Sokolovsky
8a8c1fc82f
py: Add basic framework for issuing compile/runtime warnings.
2015-01-01 22:09:18 +02:00
Damien George
ebde3c694f
py: Add guarded includes for asm-based headers.
2015-01-01 18:07:43 +00:00
Damien George
ddbcc79550
docs: Add quickref info about Servo; improve Servo docs.
2015-01-01 18:00:45 +00:00
Radomir Dopieralski
ce5b5caf8c
Add a command for converting the WAV files
...
Add a command for converting the WAV files to the amp skin tutorial, so that people can use their own files easily.
2015-01-01 17:56:05 +00:00
Damien George
84e0cf0d21
py: Change namedtuple error messages to reduce code size.
...
We are not word-for-word compatible with CPython exceptions, so we are
free to make them short but informative in order to reduce code size.
Also, try to make messages the same as existing ones where possible.
2015-01-01 15:43:25 +00:00
Damien George
7f23384d49
py: Make terse_arg_mismatch a global function and use it elsewhere.
...
Reduces code size when MICROPY_ERROR_REPORTING_TERSE is selected.
2015-01-01 15:33:50 +00:00
Paul Sokolovsky
276159e5dd
objnamedtuple: Make sure to initialize type structure completely.
2015-01-01 15:31:51 +02:00
stijn
021dc44009
py: Allow keyword arguments for namedtuple
2015-01-01 14:53:23 +02:00
stijn
12340147b0
py: Use sequence of strings for named tuple initialization
...
- remove single string initialization style
- take list of strings instead
- store list in the type for fast lookup
2015-01-01 14:53:23 +02:00
stijn
8422cac088
msvc: Support py/*.h includes per #1022
2015-01-01 13:10:54 +01:00
Damien George
e0ac194f4f
py: Fix rshift and not of zero/one edge cases in mpz.
...
Addresses issue #1027 .
2014-12-31 19:35:01 +00:00
Damien George
816a46a4ab
tests: Disable float/float2int.py on pyboard (needs double prec).
2014-12-31 18:46:18 +00:00
Paul Sokolovsky
2c75665445
objstr: Fix %d-formatting of floats.
2014-12-31 02:21:19 +02:00
Paul Sokolovsky
8a2cc1c7e4
stmhal: Add fake implementation of __aeabi_f2lz().
...
To make mp_obj_new_int_from_float() somehow work.
2014-12-30 00:52:41 +02:00
Paul Sokolovsky
5f68094e10
py: mp_obj_new_int_from_float() supported only for MICROPY_PY_BUILTINS_FLOAT.
2014-12-30 00:34:54 +02:00
Paul Sokolovsky
f79cd6a233
py: Implement mp_obj_new_int_from_float() for MICROPY_LONGINT_IMPL_NONE.
2014-12-30 00:33:32 +02:00
Paul Sokolovsky
12033df511
py: Partially fix float to int conversion.
...
This fixes conversion when float type has more mantissa bits than small int,
and float value has small exponent. This is for example the case of 32-bit
platform using doubles, and converting value of time.time(). Conversion of
floats with larg exponnet is still not handled correctly.
2014-12-30 00:22:50 +02:00
Damien George
e3fa8278b4
tools: Add script to generate a ChangeLog file.
...
We don't have an explicit ChangeLog file, but don't really need one
because we use a good version control system. This script is useful if
you need a pretty-printed ChangeLog for some reason.
2014-12-29 19:03:25 +00:00
Damien George
9ddbe291c4
py: Add include guards to mpconfig,misc,qstr,obj,runtime,parsehelper.
2014-12-29 01:02:19 +00:00
Damien George
f89d659e3b
py: In VM, for selective ip saving, store 1 byte past last opcode.
...
This is for efficiency, so we don't need to subtract 1 from the ip
before storing it to code_state->ip. It saves a lot of ROM bytes on
unix and stmhal.
2014-12-29 00:29:59 +00:00
Paul Sokolovsky
23f1b5ff66
py: Add note about -fno-crossjumping when compiling vm.c.
2014-12-29 00:07:47 +00:00
Damien George
96e22154d7
docs: Bump version to 1.3.8.
...
Should have done it before tagging...
2014-12-29 00:04:59 +00:00
Paul Sokolovsky
361909e3ca
py: Add MP_LIKELY(), MP_UNLIKELY() macros to help branch prediction.
2014-12-29 00:51:24 +02:00
Paul Sokolovsky
1ee1785bed
showbc: Print operation mnemonic in BINARY_OP.
2014-12-28 21:43:44 +02:00
Paul Sokolovsky
df103462dc
showbc: Make code object start pointer semi-public.
...
This allows to pring either absolute addresses or relative offsets in jumps
and code references.
2014-12-28 21:37:17 +02:00
Paul Sokolovsky
749575097f
vm: Record exception ip only for instructions where exceptions may happen.
...
Mirroring ip to a volatile memory variable for each opcode is an expensive
operation. For quite a lot of often executed opcodes like stack manipulation
or jumps, exceptions cannot actually happen. So, record ip only for opcode
where that's possible.
2014-12-28 07:37:04 +02:00