Paul Sokolovsky
f766264582
unix: Implement time.sleep().
2014-02-09 12:52:04 +02:00
Paul Sokolovsky
557c9d5264
unix microsocket: Add dummy makefile() method.
...
Unlike CPython socket, microsocket object already implements stream protocol
(read/write methods), so makefile() just returns object itself. TODO: this
doesn't take care of arguments CPython's makefile() may accept.
2014-02-08 22:00:20 +02:00
Paul Sokolovsky
21c51f0bde
ffi: Fix mp_obj_str_get_data() return type.
2014-02-08 22:00:15 +02:00
Paul Sokolovsky
1e19b24ea0
io.File, socket types: Add fileno() method.
...
Implementation is duplicated, but tolerate this for now, because there's
no clear idea how to de-dup it.
2014-02-08 21:20:32 +02:00
Paul Sokolovsky
9945f33886
Rename "rawsocket" module to "microsocket".
...
It's no longer intended to provide just "raw" socket interface, may include
some convenience methods for compatibility with CPython socket - but anyway
just minimal set required to deal with socket client and servers, not wider
network functionality.
2014-02-08 21:20:32 +02:00
Damien George
698ec21e46
Make mp_obj_str_get_data return char* instead of byte*.
...
Can't decide which is better for string type, char or byte pointer.
Changing to char removes a few casts. Really need to do proper unicode.
2014-02-08 18:17:23 +00:00
Damien George
354d15a964
Implement fixed buffer vstrs; use them for import path.
2014-02-06 21:11:19 +00:00
Damien George
e09ffa1400
Search paths properly on import and execute __init__.py if it exists.
2014-02-05 23:57:48 +00:00
Paul Sokolovsky
9110896063
Remove older import helpers, no longer used.
2014-02-05 02:03:23 +02:00
Paul Sokolovsky
630d85120f
unix: Be sure to add current/base dir of a script to sys.path.
...
This mirrors CPython behavior and makes possible to run scripts which
import other modules not from script's directory.
2014-02-05 01:53:44 +02:00
Paul Sokolovsky
625d08a93e
unix: Initialize sys.path from MICROPYPATH environment variable.
...
If it's not available, "~/.micropython/lib:/usr/lib/micropython" is used
as a fallback.
2014-02-05 01:40:41 +02:00
Paul Sokolovsky
0c59db1973
Use qstr id to create sys module.
2014-02-04 19:36:00 +02:00
Paul Sokolovsky
6964422cf4
unix time.clock(): Actually return float value.
2014-02-02 08:58:16 +02:00
Paul Sokolovsky
a9459bc723
unix: Add basic time module (with time() and clock() functions).
...
Both return int so far (single-precision float doesn't have enough
bits to represent int32 precisely).
2014-02-02 01:34:11 +02:00
Damien George
a908202d60
unix: libffi include path now found using pkg-config.
...
Hopefully this works for other people as well :)
2014-02-01 18:48:19 +00:00
Paul Sokolovsky
ed1239fce6
Add mpconfigport.mk file to configure which modules to include into build.
...
Proof of concept, controls "ffi" module as one which requires external
dependencies.
2014-02-01 20:09:45 +02:00
Damien George
62ad189a65
py: Add compile option to enable/disable source line numbers.
2014-01-29 21:51:51 +00:00
Damien George
4d5b28cd08
Add qstr_info() function and bindings for unix port.
2014-01-29 18:56:46 +00:00
Damien George
8bf91f2a87
unix: Fix compile warnings for ffi module on 64-bit machine.
2014-01-28 23:08:11 +00:00
Paul Sokolovsky
60a9fac8d4
unix: Initial implementation of FFI module.
...
Foreign Function Interface module allows to load native dynamic libraries,
call functions and access variables in them. This makes possible to write
interface modules in pure Python.
This module provides thin wrapper around libffi. ctypes compatibility might
be possible to implement on top of this module (though ctypes allow to call
functions without prototypes, which is not supported by libffi (i.e.
implementation would be inefficient))).
2014-01-29 00:24:00 +02:00
Damien George
56bb636014
Change -Og to -O0 in unix-cpy/Makefile; cast to small int in socket.c.
2014-01-26 17:52:23 +00:00
Damien George
554a75b689
Merge pull request #226 from pfalcon/make-debug
...
unix Makefile: -Og doesn't work (at least) with gcc 4.6 below.
2014-01-26 09:53:31 -08:00
Paul Sokolovsky
a88c30c64a
unix socket: Add setsockopt() method.
2014-01-26 02:03:07 +02:00
Paul Sokolovsky
5d362d3209
unix socket: Add few more socket constants.
2014-01-26 02:03:07 +02:00
Paul Sokolovsky
db0b282d45
unix socket: Store module constants in data structure.
...
-147 bytes on x86.
2014-01-26 02:03:07 +02:00
Paul Sokolovsky
e2febe90e3
unix Makefile: -Og doesn't work (at least) with gcc 4.6 below.
...
Also, don't try to force debug info format, use native.
2014-01-25 19:49:38 +02:00
Damien George
b829b5caec
Implement mp_parse_node_free; print properly repr(string).
2014-01-25 13:51:19 +00:00
Paul Sokolovsky
aee2ba70de
Add parse_node_free_struct() and use it to free parse tree after compilation.
...
TODO: Check lexer/parse/compile error path for leaks too.
2014-01-25 02:11:59 +02:00
Dave Hylands
c89c681a9f
Rework makefiles. Add proper dependency checking.
2014-01-24 08:46:48 -08:00
Paul Sokolovsky
2b2cb7b7f4
unix main: Free input line.
...
Also, readline uses system malloc, so for symmetry, use the same for
non-readline case.
2014-01-24 16:29:49 +02:00
Damien George
5fa93b6755
Second stage of qstr revamp: uPy str object can be qstr or not.
2014-01-22 14:35:10 +00:00
Damien George
12eaccacda
Merge branch 'master' of github.com:micropython/micropython
...
Conflicts:
py/objstr.c
py/py.mk
py/stream.c
unix/main.c
unix/socket.c
2014-01-21 21:54:15 +00:00
Damien George
55baff4c9b
Revamp qstrs: they now include length and hash.
...
Can now have null bytes in strings. Can define ROM qstrs per port using
qstrdefsport.h
2014-01-21 21:40:13 +00:00
Paul Sokolovsky
51ee44a718
unix file: Refactor and add sys.stdout/stdin/stderr.
2014-01-20 23:50:55 +02:00
Paul Sokolovsky
f0cfb8cb45
Don't preimport socket module.
2014-01-20 20:37:01 +02:00
Paul Sokolovsky
fc35aa6828
unix socket: Add send() and recv() methods.
...
CPython _socket actually have only those and doesn't provide stream
interface (higher-level CPython "socket" what adds this).
+516 bytes x86.
2014-01-20 20:37:01 +02:00
Paul Sokolovsky
decd597273
unix io.FileIO: Add iteration support.
...
A file cannot be iterated concurrently, so we make io.FileIO its own
iterator.
2014-01-20 18:42:08 +02:00
Damien George
7d08935458
Rename unix binary to 'micropython'.
2014-01-20 00:02:39 +00:00
Paul Sokolovsky
fe2690da0a
unix: Implement sys.argv.
2014-01-20 01:00:28 +02:00
Damien George
a11ceca807
Change int to uint for n_args in function with variable arguments.
2014-01-19 16:02:09 +00:00
Damien George
136b149e41
py: Add full traceback to exception printing.
2014-01-19 12:38:49 +00:00
Damien George
49f6a99c65
Merge branch 'master' of github.com:micropython/micropython
2014-01-19 11:50:14 +00:00
Damien George
cbd2f7482c
py: Add module/function/class name to exceptions.
...
Exceptions know source file, line and block name.
Also tidy up some debug printing functions and provide a global
flag to enable/disable them.
2014-01-19 11:48:48 +00:00
Paul Sokolovsky
50a2d6ff59
Fix incorrect prototype of mp_builtin_open() after args refactor.
2014-01-19 07:50:45 +02:00
Damien George
a8a6db2a1d
Fix warnings about int/pointer casting.
2014-01-18 23:50:12 +00:00
Damien George
8fce5b42a2
Merge pull request #194 from pfalcon/socket
...
Add lean ("raw") socket module.
2014-01-18 15:34:30 -08:00
Damien George
08335004cf
Add source file name and line number to error messages.
...
Byte code has a map from byte-code offset to source-code line number,
used to give better error messages.
2014-01-18 23:24:36 +00:00
Paul Sokolovsky
fc92608237
Add lean ("raw") socket module.
2014-01-19 00:16:39 +02:00
Damien George
20006dbba9
Make VM stack grow upwards, and so no reversed args arrays.
...
Change state layout in VM so the stack starts at state[0] and grows
upwards. Locals are at the top end of the state and number downwards.
This cleans up a lot of the interface connecting the VM to C: now all
functions that take an array of Micro Python objects are in order (ie no
longer in reverse).
Also clean up C API with keyword arguments (call_n and call_n_kw
replaced with single call method that takes keyword arguments). And now
make_new takes keyword arguments.
emitnative.c has not yet been changed to comply with the new order of
stack layout.
2014-01-18 14:10:48 +00:00
Paul Sokolovsky
966879cf59
Add long int implementation using C long long type, enable for unix port.
2014-01-17 20:05:02 +02:00