Paul Sokolovsky
6ec6f51326
unix: Build libffi in a directory which is gitgnored.
...
To avoid "-dirty" version previous and spurious "modified" output from
git status, etc.
2015-10-18 00:44:45 +03:00
Damien George
556c8a9a4f
unix: Fix coverage build now that mp_plat_print uses write.
2015-10-15 00:23:03 +01:00
Damien George
4300c7dba2
py: Remove dependency on printf/fwrite in mp_plat_print.
...
See issue #1500 .
2015-10-15 00:05:55 +01:00
Paul Sokolovsky
74d0df7324
unix: Allow to build against Android down to 1.5.
...
Bionic libc in Android 1.5 missed log2() and nan() functions.
2015-10-15 00:11:09 +03:00
Paul Sokolovsky
fe29cc192d
unix/modjni: Add iteration support for Java List objects.
...
Using generic iteration-via-subscription support (TODO: factor it out for
reuse).
2015-10-14 00:36:03 +03:00
Paul Sokolovsky
41eb705477
unix/modjni: call_method: Check for Java exception after method return.
2015-10-14 00:25:10 +03:00
Paul Sokolovsky
21f43ba9b0
unix/modtermios: tcsetattr: If 0 passed for "when" param, treat as TCSANOW.
...
As we dn't export constants for TCSANOW, etc., zero makes a good "don't
care" param, and now it will work also under Android Bionic and any other
libc.
2015-10-13 00:37:55 +03:00
Damien George
3aa7dd23c9
unix: Add exit and paste-mode hints to shell startup banner.
...
Thanks to @nyov for the initial patch.
2015-10-12 00:19:00 +01:00
Damien George
0334058fa4
Rename "Micro Python" to "MicroPython" in REPL, help, readme's and misc.
2015-10-12 00:06:25 +01:00
Damien George
46a1102852
repl: Add paste mode to friendly REPL, entered via CTRL-E.
...
Use CTRL-E to enter paste mode. Prompt starts with "===" and accepts
all characters verbatim, echoing them back. Only control characters are
CTRL-C which cancels the input and returns to normal REPL, and CTRL-D
which ends the input and executes it. The input is executed as though
it were a file. The input is not added to the prompt history.
2015-10-11 23:30:22 +01:00
Paul Sokolovsky
1b586f3a73
py: Rename MP_BOOL() to mp_obj_new_bool() for consistency in naming.
2015-10-11 15:18:15 +03:00
Anmol Sarma
95b352064e
unix/modsocket: Fix usage of pointers to locals outside scope
2015-10-10 17:29:26 +05:30
Paul Sokolovsky
7381b7ac71
unix/modjni: py2jvalue: Support bool and None values.
2015-10-10 01:20:48 +03:00
Paul Sokolovsky
02041bf2e0
unix/modjni: jvalue2py() is currently not used.
...
Not remove so far, may be needed later.
2015-10-09 00:27:27 +03:00
Paul Sokolovsky
216b6a494e
unix/modjni: Allow to access fields of objects.
2015-10-08 16:57:02 +03:00
Paul Sokolovsky
fd38799049
unix/modjni: After Call*Method(), Java exception should always be checked.
...
OpenJDK seemed to return NULL in case of exception, but Dalvik returns
arbitrary value, so skip such "optimizations".
2015-10-07 07:40:29 +03:00
Paul Sokolovsky
aaa8867d4a
modussl: SSL socket wrapper module based on axTLS.
2015-10-06 18:10:39 +03:00
Paul Sokolovsky
326ff54649
unix: Add support for building axtls dependency lib.
2015-10-04 02:39:01 +03:00
Paul Sokolovsky
1ea4b77a9a
unix/modjni: jclass.__str__/__repr__: Return Java .toString() value.
2015-10-04 01:57:07 +03:00
Paul Sokolovsky
f22be4ebd9
unix/modjni: jobject.__str__/__repr__: Return Java .toString() value.
2015-10-03 08:58:46 -07:00
Paul Sokolovsky
9e0a3d46b6
unix/modjni: Convert Java's IndexOutOfBoundsException to Python's IndexError.
2015-10-02 00:22:09 -07:00
Damien George
58e0f4ac50
py: Allocate parse nodes in chunks to reduce fragmentation and RAM use.
...
With this patch parse nodes are allocated sequentially in chunks. This
reduces fragmentation of the heap and prevents waste at the end of
individually allocated parse nodes.
Saves roughly 20% of RAM during parse stage.
2015-10-02 00:11:11 +01:00
Damien George
a81539db25
tests: Add further tests for mpz code.
2015-10-01 18:49:37 +01:00
Paul Sokolovsky
c4489a0543
unix/modjni: Propagate Java exceptions on list access.
2015-10-01 01:20:56 -07:00
Paul Sokolovsky
0eba162ab5
unix/modjni: Fix method argument matching.
2015-09-30 00:55:09 -07:00
Paul Sokolovsky
f3ca8623f7
unix/modjni: Implement len() for objects with java.util.List interface.
2015-09-29 10:06:07 -07:00
Paul Sokolovsky
77020281ae
unix/modjni: call_method: Delete done local references in loop.
...
To avoid local ref table overflow.
2015-09-28 08:37:34 -07:00
Paul Sokolovsky
0d28a3edb9
unix/modjni: call_method: Better resource release.
2015-09-27 22:32:54 -07:00
Paul Sokolovsky
81d64ab939
unix/modjni: call_method(): If name doesn't match, cleanup via goto next_method.
2015-09-26 08:51:22 -07:00
Paul Sokolovsky
c0a79cc919
unix/modjni: Need to really use per-rettype Call*Method functions.
2015-09-26 08:49:12 -07:00
Paul Sokolovsky
7e18d3b6ff
unix/modjni: new_jobject(): Handle null reference.
2015-09-24 15:29:57 -07:00
Paul Sokolovsky
e632b1fda7
unix/modjni: Factor out is_object_type().
2015-09-23 07:11:56 -07:00
Vicente Olivert Riera
587914169c
unix/modffi.c: cast first to intptr_t when casting from/to pointer
...
This fixes errors like these ones:
modffi.c: In function 'return_ffi_value':
modffi.c:143:29: error: cast to pointer from integer of different size
[-Werror=int-to-pointer-cast]
const char *s = (const char *)val;
^
modffi.c:162:20: error: cast to pointer from integer of different size
[-Werror=int-to-pointer-cast]
return (mp_obj_t)val;
^
modffi.c: In function 'ffifunc_call':
modffi.c:358:25: error: cast from pointer to integer of different size
[-Werror=pointer-to-int-cast]
values[i] = (ffi_arg)a;
^
modffi.c:373:25: error: cast from pointer to integer of different size
[-Werror=pointer-to-int-cast]
values[i] = (ffi_arg)s;
^
modffi.c:381:25: error: cast from pointer to integer of different size
[-Werror=pointer-to-int-cast]
values[i] = (ffi_arg)bufinfo.buf;
^
modffi.c:384:25: error: cast from pointer to integer of different size
[-Werror=pointer-to-int-cast]
values[i] = (ffi_arg)p->func;
^
These errors can be highlighted when building micropython from MIPS64
n32 because ffi_arg is 64-bit wide and the pointers on MIPS64 n32 are
32-bit wide, so it's trying to case an integer to a pointer (or
vice-versa) of a different size. We should cast first the pointer (or the
integer) to a pointer sized integer (intptr_t) to fix that problem.
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
2015-09-22 18:54:31 -07:00
Paul Sokolovsky
ed22e9ba3e
unix/modjni: Move type analysis logic to new_jobject(), for reuse.
2015-09-22 17:02:17 -07:00
Paul Sokolovsky
b2d880d749
unix/modjni: Support for subscripting of Java lists (r/o so far).
2015-09-21 12:02:54 -07:00
Paul Sokolovsky
6196aa45ed
unix/modjni: jvalue2py: Handle boolean.
2015-09-20 00:36:51 +03:00
Alex March
c0035d1694
unix: Use MICROPY_HAL_H macro for header inclusion.
...
Follow the same format as other ports using the macro to include
the HAL header.
2015-09-19 14:03:57 +01:00
Paul Sokolovsky
1e9d8e110b
unix/modjni: py2jvalue: Pass jobject's down to Java.
...
So far, no signature check is done (TODO).
2015-09-19 01:05:25 +03:00
Paul Sokolovsky
011c7f5718
unix/modjni: py2jvalue: Handle both int and long java types (with TODO for long).
2015-09-18 13:21:21 +03:00
Paul Sokolovsky
1cb5de2cd5
unix/modjni: jvalue2py: Handle class-containing jvalues.
2015-09-17 13:31:40 +03:00
Paul Sokolovsky
cb6cf5e257
unix/modjni: Add env() module function.
...
Useful to load native method libraries not loaded by VM (as happens on
Android).
2015-09-16 01:10:09 +03:00
Tom Soulanille
aeb62f9ae3
py/objslice: Make slice attributes (start/stop/step) readable.
...
Configurable with MICROPY_PY_BUILTINS_SLICE_ATTRS. Disabled by default.
2015-09-15 21:59:20 +01:00
Paul Sokolovsky
b230a86d33
unix/modjni: Return any object type value as a jobject.
2015-09-15 14:07:39 +03:00
Paul Sokolovsky
5167332131
unix/modjni: Return Java null as Python None.
2015-09-14 00:15:35 +03:00
Paul Sokolovsky
7a4b10cc4c
unix/modjni: Support static methods.
2015-09-14 00:12:47 +03:00
Paul Sokolovsky
26a9b4d48e
unix/modjni: Factor out new_jobject(), jvalue2py() functions.
2015-09-13 01:27:47 +03:00
Damien George
3ca84026db
unix: Enable REPL auto-indent.
2015-09-12 22:09:18 +01:00
Paul Sokolovsky
4e7bde8c9e
unix/modjni: Factor out py2jvalue() function.
2015-09-12 00:20:06 +03:00
Paul Sokolovsky
e79c6b6312
unix/modjni: "jni" module to interface to JNI-compliant JavaVM.
...
This includes Android Dalvik VM for example.
Example usage:
import jni
System = jni.cls("java/lang/System")
System.out.println("Hello, Java!")
2015-09-11 21:38:57 +03:00
Damien George
25afc7da0d
tests: Add tests to improve coverage of objstr.c.
2015-09-03 23:06:18 +01:00