- 12 2月, 2019 1 次提交
-
-
由 Damien George 提交于
-
- 17 10月, 2018 2 次提交
-
-
由 Paul Sokolovsky 提交于
1. Return correct error code for non-blocking vs timed out socket (POSIX returns EAGAIN for both, we want ETIMEDOUT in case of timed out socket). To achieve this, blocking/non-blocking flag is added to the mp_obj_socket_t, to avoid issuing fcntl() syscall each time EAGAIN occurs. (mp_obj_socket_t used to be 8 bytes, having some room in a standard 16-byte alloc block.) 2. Handle socket.settimeout(0) properly - in Python, that means non-blocking mode, but SO_RCVTIMEO/SO_SNDTIMEO of 0 is infinite timeout. 3. Overall, make sure that socket.settimeout() call switches blocking state as expected.
-
由 Danielle Madeley 提交于
-
- 20 7月, 2018 1 次提交
-
-
由 Damien George 提交于
This mechanism will scale to to an arbitrary number of pollable objects, so long as they implement the MP_STREAM_GET_FILENO ioctl. Since ussl objects pass through ioctl requests transparently to the underlying socket object, it will allow ussl sockets to be polled. And a user object with uio.IOBase as a base could support polling.
-
- 10 4月, 2018 1 次提交
-
-
由 Damien George 提交于
This patch moves the implementation of stream closure from a dedicated method to the ioctl of the stream protocol, for each type that implements closing. The benefits of this are: 1. Rounds out the stream ioctl function, which already includes flush, seek and poll (among other things). 2. Makes calling mp_stream_close() on an object slightly more efficient because it now no longer needs to lookup the close method and call it, rather it just delegates straight to the ioctl function (if it exists). 3. Reduces code size and allows future types that implement the stream protocol to be smaller because they don't need a dedicated close method. Code size reduction is around 200 bytes smaller for x86 archs and around 30 bytes smaller for the bare-metal archs.
-
- 25 10月, 2017 1 次提交
-
-
由 Paul Sokolovsky 提交于
These defined couple of functions added during initial experimentation, which aren't part of MicroPython API and no longer used or needed.
-
- 23 10月, 2017 1 次提交
-
-
由 Paul Sokolovsky 提交于
Unix naming is historical, before current conventions were established. All other ports however have it as "modusocket.c", so rename for consistency and to avoid confusion.
-
- 04 10月, 2017 1 次提交
-
-
由 Damien George 提交于
Header files that are considered internal to the py core and should not normally be included directly are: py/nlr.h - internal nlr configuration and declarations py/bc0.h - contains bytecode macro definitions py/runtime0.h - contains basic runtime enums Instead, the top-level header files to include are one of: py/obj.h - includes runtime0.h and defines everything to use the mp_obj_t type py/runtime.h - includes mpstate.h and hence nlr.h, obj.h, runtime0.h, and defines everything to use the general runtime support functions Additional, specific headers (eg py/objlist.h) can be included if needed.
-
- 06 9月, 2017 1 次提交
-
-
由 Damien George 提交于
This is to keep the top-level directory clean, to make it clear what is core and what is a port, and to allow the repository to grow with new ports in a sustainable way.
-
- 31 7月, 2017 1 次提交
-
-
由 Alexander Steffen 提交于
There were several different spellings of MicroPython present in comments, when there should be only one.
-
- 12 7月, 2017 1 次提交
-
-
由 Damien George 提交于
These checks are already made, and errors reported, by the uPy runtime.
-
- 29 5月, 2017 1 次提交
-
-
由 Ville Skyttä 提交于
-
- 14 11月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
Its addition was due to an early exploration on how to add CPython-like stream interface. It's clear that it's not needed and just takes up bytes in all ports.
-
- 07 10月, 2016 2 次提交
-
-
由 Damien George 提交于
-
由 Damien George 提交于
-
- 21 9月, 2016 1 次提交
-
-
由 Damien George 提交于
One can instead lookup __name__ in the modules dict to get the value.
-
- 07 8月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
This includes file and socket objects, backed by Unix file descriptor. This improves compatibility with stmhal's uselect (and convenience of use), though not completely: return value from poll.poll() is still raw file descriptor.
-
- 18 6月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
It's now used for more than just stream protocol (e.g. pin protocol), so don't use false names.
-
- 05 4月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
-
- 02 3月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
-
- 28 1月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
-
- 22 1月, 2016 1 次提交
-
-
由 Paul Sokolovsky 提交于
By reserving enough space for peer address.
-
- 11 1月, 2016 4 次提交
-
-
由 Dave Hylands 提交于
-
由 Damien George 提交于
The first argument to the type.make_new method is naturally a uPy type, and all uses of this argument cast it directly to a pointer to a type structure. So it makes sense to just have it a pointer to a type from the very beginning (and a const pointer at that). This patch makes such a change, and removes all unnecessary casting to/from mp_obj_t.
-
由 Damien George 提交于
With this patch the n_args parameter is changed type from mp_uint_t to size_t.
-
由 Damien George 提交于
This patch changes the type signature of .make_new and .call object method slots to use size_t for n_args and n_kw (was mp_uint_t. Makes code more efficient when mp_uint_t is larger than a machine word. Doesn't affect ports when size_t and mp_uint_t have the same size.
-
- 29 11月, 2015 2 次提交
-
-
由 Damien George 提交于
This allows the mp_obj_t type to be configured to something other than a pointer-sized primitive type. This patch also includes additional changes to allow the code to compile when sizeof(mp_uint_t) != sizeof(void*), such as using size_t instead of mp_uint_t, and various casts.
-
由 Damien George 提交于
-
- 21 11月, 2015 3 次提交
-
-
由 Paul Sokolovsky 提交于
-
由 Paul Sokolovsky 提交于
Return tuple of (address_family, net_addr, [port, [extra_data]]). net_addr is still raw network address as bytes object, but suitable for passing to inet_ntop() function. At the very least, sockaddr() will separate address family value from binary socket address (and currently, only AF_INET family is decoded).
-
由 Paul Sokolovsky 提交于
-
- 10 10月, 2015 1 次提交
-
-
由 Anmol Sarma 提交于
-
- 15 7月, 2015 1 次提交
-
-
由 Paul Sokolovsky 提交于
inet_pton supports both ipv4 and ipv6 addresses. Interface is also extensible for other address families, but underlying libc inet_pton() function isn't really extensible (e.g., it doesn't return length of binary address, i.e. it's really hardcoded to AF_INET and AF_INET6). But anyway, on Python side, we could extend it to support other addresses.
-
- 14 7月, 2015 1 次提交
-
-
由 Paul Sokolovsky 提交于
Required to implement UDP servers.
-
- 12 7月, 2015 1 次提交
-
-
由 Paul Sokolovsky 提交于
sendto() turns out to be mandatory function to work with UDP. It may seem that connect(addr) + send() would achieve the same effect, but what connect() appears to do is to set source address filter on a socket to its argument. Then everything falls apart: socket sends to a broad-/multi-cast address, but reply is sent from real peer address, which doesn't match filter set by connect(), so local socket never sees a reply.
-
- 11 7月, 2015 1 次提交
-
-
由 Paul Sokolovsky 提交于
Treating it as signed lead to buffer overflow for ports >= 32768.
-
- 10 7月, 2015 1 次提交
-
-
由 Paul Sokolovsky 提交于
This usually allows to get just a single address entry.
-
- 16 4月, 2015 1 次提交
-
-
由 Damien George 提交于
Previous to this patch the printing mechanism was a bit of a tangled mess. This patch attempts to consolidate printing into one interface. All (non-debug) printing now uses the mp_print* family of functions, mainly mp_printf. All these functions take an mp_print_t structure as their first argument, and this structure defines the printing backend through the "print_strn" function of said structure. Printing from the uPy core can reach the platform-defined print code via two paths: either through mp_sys_stdout_obj (defined pert port) in conjunction with mp_stream_write; or through the mp_plat_print structure which uses the MP_PLAT_PRINT_STRN macro to define how string are printed on the platform. The former is only used when MICROPY_PY_IO is defined. With this new scheme printing is generally more efficient (less layers to go through, less arguments to pass), and, given an mp_print_t* structure, one can call mp_print_str for efficiency instead of mp_printf("%s", ...). Code size is also reduced by around 200 bytes on Thumb2 archs.
-
- 20 1月, 2015 1 次提交
-
-
由 Damien George 提交于
See issue #699.
-
- 02 1月, 2015 1 次提交
-
-
由 Damien George 提交于
-