Commit Graph

808 Commits

Author SHA1 Message Date
Paul Sokolovsky
ad5a6f5917 docs/ure: Add flags arg to ure.compile(), mention that ure.DEBUG is optional. 2017-11-04 00:26:31 +02:00
Scott Shawcroft
7b393bc406 Merge tag 'v1.9.3'
Introduction of ports subdirectory where all ports are moved to

The main change in this release is the introduction of a "ports/"
subdirectory at the top-level of the repository, and all of the ports are
moved here.  In the process the "stmhal" port is renamed to "stm32" to
better reflect the MCU that it targets.  In addition, the STM32 CMSIS and
HAL sources are moved to a new submodule called "stm32lib".

The bytecode has changed in this release, compared to the previous release,
and as a consequence the .mpy version number has increased to version 3.
This means that scripts compiled with the previous mpy-cross must be
recompiled to work with this new version.

There have also been various enhancements and optimisations, such as:
check for valid UTF-8 when creating str objects, support for reverse
special binary operations like __radd__, full domain checking in the math
module, support for floor-division and modulo in the viper emitter,
and addition of stack overflow checking when executing a regex.

The stm32 port sees improved support for F7 MCUs, addition of a new board
B_L475E_IOT01A based on the STM32L475, and support for the Wiznet W5500
chipset along with improved socket behaviour.

A detailed list of changes follows.

py core:
- objstr: startswith, endswith: check arg to be a string
- nlrx86,x64: replace #define of defined() with portable macro usage
- objtype: handle NotImplemented return from binary special methods
- objtype: mp_obj_class_lookup: improve debug logging
- map: remove unused new/free functions
- make m_malloc_fail() have void return type, since it doesn't return
- modstruct: in struct.pack, stop converting if there are no args left
- modstruct: check and prevent buffer-read overflow in struct unpacking
- modstruct: check and prevent buffer-write overflow in struct packing
- nlrthumb: get working again on standard Thumb arch (ie not Thumb2)
- objfloat: fix binary ops with incompatible objects
- obj: fix comparison of float/complex NaN with itself
- objtype: implement fallback for instance inplace special methods
- objtuple: properly implement comparison with incompatible types
- objstr: add check for valid UTF-8 when making a str from bytes
- objlist: properly implement comparison with incompatible types
- runtime0.h: move relational ops to the beginning of mp_binary_op_t
- runtime0.h: move MP_BINARY_OP_DIVMOD to the end of mp_binary_op_t
- objtype: make sure mp_binary_op_method_name has full size again
- runtime0.h: put inplace arith ops in front of normal operations
- builtinhelp: simplify code slightly by extracting object type
- runtime: implement dispatch for "reverse op" special methods
- nlrx86: fix building for Android/x86
- builtinhelp: change signature of help text var from pointer to array
- runtime.h: change empty mp_warning macro so var-args are non empty
- modbuiltins: implement abs() by dispatching to MP_UNARY_OP_ABS
- {objfloat,objcomplex}: optimise MP_UNARY_OP_ABS by reusing variables
- mpconfig.h: add note that using computed gotos in VM is not C99
- objstr: strip: don't strip "\0" by default
- objexcept: prevent infinite recursion when allocating exceptions
- stream: remove unnecessary checks for NULL return from vstr_add_len
- vstr: raise a RuntimeError if fixed vstr buffer overflows
- vm: use lowercase letter at start of exception message
- persistentcode: define mp_raw_code_save_file() for any unix target
- add config option to print warnings/errors to stderr
- objfloat: support raising a negative number to a fractional power
- objset: simplify set and frozenset by separating their locals dicts
- objset: check that RHS of a binary op is a set/frozenset
- objset: include the failed key in a KeyError raised from set.remove
- objtype: change type of enum-to-qstr table to uint16_t to save space
- objstr: make empty bytes object have a null-terminating byte
- mpprint: only check for null string printing when NDEBUG not defined
- objtype: clean up unary- and binary-op enum-to-qstr mapping tables
- persistentcode: bump .mpy version number to version 3
- bc: update opcode_format_table to match the bytecode
- modmath: add full checks for math domain errors
- modmath: convert log2 macro into a function
- formatfloat: don't print the negative sign of a NaN value
- formatfloat: use standard isinf, isnan funcs instead of custom ones
- modbuiltins: use existing utf8_get_char helper in builtin ord func
- emitnative: implement floor-division and modulo for viper emitter
- objtype: use CPython compatible method name for sizeof
- objtype: fit qstrs for special methods in byte type
- objtype: define all special methods if requested
- objtype: introduce MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS

extmod:
- modubinascii: only include uzlib/tinf.h when it's really needed
- modussl_mbedtls: allow to compile with MBEDTLS_DEBUG_C disabled
- machine_pinbase: put PinBase singleton in ROM
- re1.5: upgrade to v0.8.2, adds hook for stack overflow checking
- modure: add stack overflow checking when executing a regex
- uos_dupterm: update uos.dupterm() and helper funcs to have index
- uos_dupterm: swallow any errors from dupterm closing the stream
- vfs: replace VLA in proxy func with small, static sized array
- modussl: add finaliser support for ussl objects
- modussl_mbedtls: allow to compile with unix coverage build

lib:
- add new submodule, stm32lib containing STM32 CMSIS and HAL source
- embed/abort_: use mp_raise_msg helper function
- libm: fix tanhf so that it correctly handles +/- infinity args
- libm: remove implementation of log2f, use MP_NEED_LOG2 instead
- axtls: update, support for SSL_EAGAIN return code
- berkeley-db-1.xx: update, allow to override MINCACHE, DEFPSIZE

drivers:
- memory/spiflash: change from hard-coded soft SPI to generic SPI
- display/ssd1306.py: improve performance of graphics methods
- nrf24l01: make nRF24L01 test script more portable
- display/ssd1306: implement SSD1306_I2C poweron method
- display/ssd1306: make poweron() work the same with SSD1306_SPI
- wiznet5k: improve the performance of socket ops with threading
- wiznet5k: get low-level W5500 driver working

tools:
- upip: upgrade to 1.2.2
- pyboard: use repr() when quoting data in error messages
- pyboard: update docstring for additional device support

tests:
- object_new: better messages, check user __new__() method
- class_new: add checks for __init__ being called and other improvements
- class_new: add another testcase for __new__/__init__ interaction
- class_inplace_op: test for inplace op fallback to normal one
- run-bench-tests: update locations of executables, now in ports/
- class_reverse_op: test for reverse arith ops special methods
- run-tests: skip class_inplace_op for minimal profile
- run-tests: fix copy-paste mistake in var name
- cpydiff: add cases for locals() discrepancies
- extmod: add test for ure regexes leading to infinite recursion
- extmod: add test for '-' in character class in regex
- run-tests: close device under test using "finally"
- net_inet: update tls test to work with CPython and incl new site

unix port:
- rename modsocket.c to modusocket.c
- modusocket: remove #if MICROPY_SOCKET_EXTRA code blocks
- enable MICROPY_PY_REVERSE_SPECIAL_METHODS

stm32 port:
- modmachine: make machine.bootloader() work when MPU is enabled
- modmachine: improve support for sleep/deepsleep on F7 MCUs
- compute PLL freq table during build instead of at run time
- modmachine: for F7 MCU, save power by reducing internal volt reg
- boards/pllvalues.py: make script work with both Python 2 and 3
- Makefile: use lib/stm32lib instead of local cmsis and hal files
- remove cmsis and hal files, they are now a submodule
- Makefile: automatically fetch stm32lib submodule if needed
- update to new STM Cube HAL library
- fix clock initialisation of L4 MCUs
- rename stmhal port directory to stm32
- remove unused usbd_msc.c file
- boards: change remaining stm32f4xx_hal_conf.h to unix line ending
- boards: change linker scripts to use "K" instead of hex byte size
- boards: fix I2C1 pin mapping on NUCLEO_F401RE/F411RE boards
- i2c: when scanning for I2C devices only do 1 probe per address
- modnwwiznet5k: release the GIL on blocking network operations
- boards: add new board B_L475E_IOT01A based on STM32L475
- make-stmconst.py: make sure mpz const data lives in ROM
- timer: make pyb.Timer() instances persistent
- mpconfigport.h: add configuration for max periphs on L4 series
- usbdev: make the USBD callback struct const so it can go in ROM
- usbdev: change static function variable to non-static
- usbdev: put all CDC state in a struct
- usbdev: put all HID state in a struct
- usbdev: simplify CDC tx/rx buffer passing
- usbdev: simplify HID tx/rx buffer passing
- usbdev/core: add state parameter to all callback functions
- usbdev: put all state for the USB device driver in a struct
- usbdev: simplify pointers to MSC state and block dev operations
- usbdev: merge all global USB device state into a single struct
- usbdev: make device descriptor callbacks take a state pointer
- usbdev: move all the USB device descriptor state into its struct
- timer: enable ARPE so that timer freq can be changed smoothly
- modnwwiznet5k: get the IP address of an established socket
- boards: fix typos in stm32f767_af.csv table
- usbd_cdc_interface: don't reset CDC output buf on initialisation
- modnwwiznet5k: implement WIZNET5K.isconnected() method
- modusocket: make getaddrinfo() work when passed an IP address
- modusocket: return OSError(-2) if getaddrinfo fails
- mpconfigport.h: add MICROPY_THREAD_YIELD() macro
- modnwwiznet5k: add support for W5500 Ethernet chip
- modnwwiznet5k: increase SPI bus speed to 42MHz
- modnwwiznet5k: implement stream ioctl for the Wiznet driver
- mphalport: improve efficiency of mp_hal_stdout_tx_strn_cooked
- make uos.dupterm() conform to specs by using extmod version

cc3200 port:
- enable micropython.kbd_intr() method
- use standard implementation of keyboard interrupt

esp8266 port:
- rename axtls_helpers.c to posix_helpers.c
- posix_helpers: set ENOMEM on memory alloc failure
- set DEFPSIZE=1024, MINCACHE=3 for "btree" module
- esp_mphal: send data in chunks to mp_uos_dupterm_tx_strn
- modnetwork: add "bssid" keyword arg to WLAN.connect() method
- modules/webrepl_setup: add info about allowed password length

zephyr port:
- Makefile: revamp "test" target after ports were moved to ports/
- use CONFIG_NET_APP_SETTINGS to setup initial network addresses
- switch to interrupt-driven pull-style console

pic16bit port:
- add definition of SEEK_SET to unistd.h

docs:
- pyboard/tutorial: add "timeout=0" to UART in pass-through example
- more xrefs to "MicroPython port" in glossary
- library/network: fix ref to "socket" module (should be "usocket")
- machine.Signal: improve style/grammar and add usage example
- library: add description of "index" parameter to uos.dupterm()
- library/micropython: fix typo in RST formatting
- library/framebuf.rst: generalise constructor to all colour formats
- btree: describe page caching policy of the underlying implementation
- esp8266/tutorial: update neopixel with example of using 4 bbp
- library/network: clarify usage of "bssid" arg in connect() method
- pyboard/quickref: add info for Switch, RTC, CAN, Accel classes
- pyboard/tutorial: update now that yellow LED also supports PWM
- esp8266/quickref: add quickref info for RTC class
- library: add missing cross-ref links for classes in pyb module
- library/network: update docs to state that W5500 is supported
- uselect: document one-shot polling mode
- usocket: elaborate descriptions
- usocket: document inet_ntop(), inet_pton()
- library/network: add dhcp_hostname parameter
- reference/isr_rules: minor typo correction
- ussl: fix module name refs and use "MicroPython port" term
- esp8266/general: add section on TLS limitations
- usocket: document that settimeout() isn't supported by all ports
- ure: add "|" (alternative) to the list of supported operators
- reference/isr_rules.rst: add tutorial on use of micropython.schedule()

travis:
- use --upgrade when pip is installing cpp-coveralls
- update build command now that stm32 Wiznet config has changed

examples:
- hwconfig_console: add .on()/.off() methods

all:
- convert mp_uint_t to mp_unary_op_t/mp_binary_op_t where appropriate
- convert remaining "mp_uint_t n_args" to "size_t n_args"
- make new ports/ sub-directory and move all ports there
- update Makefiles and others to build with new ports/ dir layout
- remove inclusion of internal py header files
- use NULL instead of "" when calling mp_raise exception helpers

README:
- update "Dependencies" section
- add explicit section on contributing
- add gcc and arm-none-eabi-newlib to list of required components

.gitattributes:
- remove obsolete entries for stmhal/hal, stmhal/cmsis
- add entries for files that will move to ports/ dir
2017-11-02 12:41:50 -07:00
Paul Sokolovsky
1742ab2653 docs/esp8266/general: Minor grammar fixes. 2017-11-02 00:38:58 +02:00
Paul Sokolovsky
58c785632f docs/esp8266/general: TLS limitations: Mention also "ussl" module limitations. 2017-11-01 08:59:42 +02:00
Damien George
fe45d78b1e docs: Bump version to 1.9.3. 2017-11-01 11:19:56 +11:00
Paul Sokolovsky
80e3f07e7f docs/ure: Add "|" (alternative) to the list of supported operators. 2017-10-31 14:46:08 +02:00
Paul Sokolovsky
b81fbf938f docs/usocket: Document that settimeout() isn't supported by all ports.
And describe an alternative of using uselect.poll().
2017-10-31 00:28:28 +02:00
Paul Sokolovsky
4dd523adbb docs/esp8266/general: Add section on TLS limitations. 2017-10-30 19:50:57 +02:00
Paul Sokolovsky
6fb093282b docs/ussl: Fix module name refs and use "MicroPython port" term. 2017-10-30 18:03:54 +02:00
Yuval Langer
05a2bb888f docs/reference/isr_rules: Minor typo correction. 2017-10-30 13:29:00 +11:00
Joar Wandborg
b9923262db docs/library/network: Add dhcp_hostname parameter
I have not actually tested this, going by information available in https://forum.micropython.org/viewtopic.php?t=2584
2017-10-27 11:04:52 +03:00
Paul Sokolovsky
a33fca99a1 docs/usocket: Document inet_ntop(), inet_pton(). 2017-10-27 00:27:27 +03:00
Paul Sokolovsky
d1cd533134 docs/usocket: Elaborate descriptions.
Use the "usocket" module name everywhere. Use "MicroPython port"
terminology. Suggest to avoid using IPPROTO_* constants in socket()
call.
2017-10-26 14:20:37 +03:00
Carter Nelson
db918da5f0 updated I2C example (#371) 2017-10-25 17:32:00 -07:00
Dan Halbert
ca1a9b9a10 Merge pull request #369 from tannewt/nrf2_merge
Nrf52 merge
2017-10-25 20:16:50 -04:00
Paul Sokolovsky
328c1e78be docs/uselect: Document one-shot polling mode. 2017-10-26 00:30:07 +03:00
Limor "Ladyada" Fried
c966976591 update light/lux and eCO2 + TVOC 2017-10-25 12:32:39 -04:00
Scott Shawcroft
73c15dcf8b Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge
This is prep for merging in the NRF5 pull request.
2017-10-24 22:31:16 -07:00
Damien George
d90ade5e3e docs/library/network: Update docs to state that W5500 is supported. 2017-10-16 15:51:56 +11:00
Damien George
65ba481cb0 stm32/modnwwiznet5k: Implement WIZNET5K.isconnected() method. 2017-10-16 13:16:00 +11:00
Mike Causer
b1457db002 docs/library: Add missing cross-ref links for classes in pyb module. 2017-10-11 11:30:16 +11:00
Mike Causer
f599a38059 docs/esp8266/quickref: Add quickref info for RTC class. 2017-10-10 15:22:23 +11:00
Mike Causer
dc92f1c4ee docs/pyboard/tutorial: Update now that yellow LED also supports PWM. 2017-10-10 15:22:11 +11:00
Mike Causer
d236d0c415 docs/pyboard/quickref: Add info for Switch, RTC, CAN, Accel classes. 2017-10-10 15:22:11 +11:00
Damien George
add933feaf docs/library/network: Clarify usage of "bssid" arg in connect() method. 2017-10-09 23:11:25 +11:00
Alex Vasylenko
9a9584aee0 Update pwm.rst
replace reference to non-existent `time.sleep_ms()`
2017-10-08 10:53:25 -06:00
Gabe
9e0cdb22f1 docs/esp8266/tutorial: Update neopixel with example of using 4 bbp. 2017-10-04 10:35:22 +11:00
Scott Shawcroft
6839fff313 Move to ASF4 and introduce SAMD51 support. (#258)
* atmel-samd: Remove ASF3. This will break builds.

* atmel-samd: Add ASF4 for the SAMD21 and SAMD51.

* Introduce the supervisor concept to facilitate porting.

The supervisor is the code which runs individual MicroPython VMs. By
splitting it out we make it more consistent and easier to find.

This also adds very basic SAMD21 and SAMD51 support using the
supervisor. Only the REPL currently works.

This begins the work for #178.
2017-09-22 21:05:51 -04:00
Paul Sokolovsky
72491b3e40 docs/btree: Describe page caching policy of the underlying implementation. 2017-09-17 21:35:33 +03:00
Peter Hinch
d42b89bc3a docs/library/framebuf.rst: Generalise constructor to all colour formats. 2017-09-13 16:36:57 +10:00
Peter Hinch
da1c80d850 docs/reference/isr_rules.rst Add tutorial on use of micropython.schedule(). 2017-09-09 16:05:24 +03:00
mrmcwethy
dd72fe6945 updated the http reference for max7219 to use the readthedocs from the adafruit cirtcuitpython area instead of the micropython area 2017-09-07 22:07:45 -07:00
KurticusMaximus
ca1f3e5fb7 Added DotStar to line 72 2017-09-06 14:53:31 -07:00
Damien George
4a93801c12 all: Update Makefiles and others to build with new ports/ dir layout.
Also renames "stmhal" to "stm32" in documentation and everywhere else.
2017-09-06 14:09:13 +10:00
Carol Willing
1f71851d3a Add a micropython section and edit drivers doc 2017-09-05 16:57:53 -07:00
Scott Shawcroft
7932df02ab Style tweaks based on @willingc's feedback. 2017-09-01 13:54:29 -07:00
Scott Shawcroft
544f5c3fa4 docs: Add beginnings of troubleshooting doc.
Fixes #172. Related to #214.
2017-09-01 13:54:29 -07:00
Damien George
fe6f0354f6 docs/library/micropython: Fix typo in RST formatting. 2017-08-29 16:53:30 +10:00
Damien George
e30ba2f1c7 docs/library: Add description of "index" parameter to uos.dupterm(). 2017-08-29 16:50:28 +10:00
Paul Sokolovsky
d5336ba136 docs/machine.Signal: Improve style/grammar and add usage example. 2017-08-29 00:08:40 +03:00
Paul Sokolovsky
c5c095690f docs/library/network: Fix ref to "socket" module (should be "usocket"). 2017-08-28 14:00:16 +03:00
Paul Sokolovsky
358a7ba014 docs: More xrefs to "MicroPython port" in glossary. 2017-08-28 13:51:05 +03:00
Dan Halbert
ef61b5ecb5 Initial merge of micropython v1.9.2 into circuitpython 2.0.0 (in development) master.
cpx build compiles and loads and works in repl; test suite not run yet
esp8266 not tested yet
2017-08-25 22:17:07 -04:00
Damien George
b84268d49c docs/pyboard/tutorial: Add "timeout=0" to UART in pass-through example.
Without this the pass-through will pause for 1 second at each character.
2017-08-23 17:01:43 +10:00
Damien George
1f78e7a431 docs: Bump version to 1.9.2. 2017-08-23 11:46:35 +10:00
Paul Sokolovsky
64a3c52f66 docs: Consistently link to micropython-lib in glossary. 2017-08-22 09:33:31 +03:00
Paul Sokolovsky
387a8d26f9 docs/glossary: Fix typos in micropython-lib paragraph. 2017-08-20 10:44:02 +03:00
Paul Sokolovsky
46583e9057 docs/glossary: Elaborate on possible MicroPython port differences.
State that this doc describes generic, "core" MicroPython functionality,
any particular port may diverge in both directions, by both omitting
some functionality, and adding more, both cases described outside the
generic documentation.
2017-08-20 10:11:44 +03:00
Paul Sokolovsky
3f91570483 docs/library/usocket: Describe complete information on address formats.
Describe that the only portable way to deal with addresses is by using
getaddrinfo(). Describe that some ports may support tuple addresses using
"socket" module (vs "usocket" of native MicroPython).
2017-08-20 09:49:12 +03:00
Paul Sokolovsky
ccaad53270 docs/library/usocket: Move socket.error to its own section.
It's too minor a point to start the module description with it.
2017-08-20 09:04:48 +03:00
Alex Robbins
0aa1d3f447 docs/library/ubinascii: Update base64 docs.
This clarifies return values and the handling of invalid (e.g. newline)
characters.

Encoding conforms to RFC 3548, but decoding does not, as it ignores invalid
characters in base64 input. Instead, it conforms to MIME handling of base64
(RFC 2045).

Note that CPython doesn't document handling of invalid characters in
a2b_base64() docs:
https://docs.python.org/3/library/binascii.html#binascii.a2b_base64 , so
we specify it more explicitly than it, based on CPython's actual behavior
(with which MicroPython now compliant).
2017-08-17 09:25:51 +03:00
Tony DiCola
c281b44cbd Update docs README to mention requirement for recommonmark dependency. 2017-08-16 15:23:42 -07:00
Javier Candeira
c127ace28a docs/library/machine.RTC.rst: Fix typo. 2017-08-14 15:42:25 +10:00
Scott Shawcroft
37c72adc0f docs: Add link to SD card driver. 2017-08-07 17:55:39 -07:00
Scott Shawcroft
9f6b828924 Update favicon to blinka. 2017-07-28 16:33:07 -07:00
Scott Shawcroft
6446fcd500 docs: Add links to NeoPixel and SimpleIO docs. 2017-07-28 16:32:52 -07:00
Matthew Brener
d003daee06 docs/esp8266/tutorial: Fix typo, "its" to "it's" in powerctrl.rst. 2017-07-24 10:33:03 +10:00
Paul Sokolovsky
205c368fa1 eps8266/general: Fix typo in recent example. 2017-07-21 12:08:18 +03:00
Peter Hinch
6ede921731 eps8266/general: Add known issue of WiFi RX buffers overflow. 2017-07-21 10:19:17 +03:00
Piotr Maliński
8c9e22c127 docs/pyboard/tutorial/amp_skin: Add example for playing large WAV files. 2017-07-21 16:52:16 +10:00
Scott Shawcroft
bd4a975530 docs: Minor updates before 1.0.0 2017-07-19 15:13:23 -04:00
Alexander Steffen
c9a48eb464 docs,teensy: Use the name MicroPython consistently in documentation 2017-07-15 11:44:32 +02:00
Scott Shawcroft
af823e64c4 docs: tweak css so a horizontal scroll bar shows up on the wide pinout tables. Fixes #166 2017-07-14 11:28:39 -07:00
Paul Sokolovsky
503cf3d097 docs/uzlib: Update description of decompress() and mention DecompIO. 2017-07-04 02:32:42 +03:00
Damien George
3c62577ee9 docs/pyboard: Move info about using Windows from topindex to general. 2017-07-03 15:31:41 +10:00
Patrick O'Leary
45b127e7ac docs/esp8266/general.rst: Fix name of NTP module.
The simple NTP client module is named "ntptime.py".
2017-07-02 20:02:19 -05:00
Paul Sokolovsky
ffb13cc633 docs/uerrno: Document "uerrno" module. 2017-07-03 00:55:09 +03:00
Paul Sokolovsky
4f23c5d587 docs/pyboard: Move hardware info into General Info chapter.
This makes top-level ToC of the pyboard docs consistent with other ports
(consisting of 3 chapters: QuickRef, General Info, and Tutorial).

Also, some other minor tweaks applied, like local ToC for General Info and
headings mentioning pyboard.
2017-07-02 19:23:23 +03:00
Paul Sokolovsky
e467949a4a docs/*_index: Drop "Indices and tables" pseudo-section.
This pseudo-section causes artifacts with latexpdf generation (almost
empty page with list containing literal "genindex", "modeindex", "search"
items). For HTML docs, these sections can be accessed from "home" page.
2017-07-02 19:18:51 +03:00
Paul Sokolovsky
90c1d54464 docs/conf.py: Set "version" and "release" to the same value.
We don't use alpha/beta/RC, so for us version and release should be the
same, or it leads to confusion (for example, current, 1.9.1 docs are
marked as 1.9 at places).
2017-07-02 15:50:22 +03:00
Paul Sokolovsky
a6af1a1d9c docs/replace.inc: Add |see_cpython|, to xref individual symbols from CPython.
The idea is to use it for each symbol in builtins.rst.
2017-07-02 15:43:12 +03:00
Paul Sokolovsky
465d84b7e7 docs/library: Add CPython docs xref to each pertinent module.
Cross-reference text/link is implemented as RST substitution, so easy to
consistently.
2017-07-02 15:37:31 +03:00
Paul Sokolovsky
ebce7984c6 docs/conf.py: Add file for global replacements definition.
The idea is to allow to define a kind of "macros" for repeatitive text,
so all occurrances can be updated in one place. Unfortunately, RST doesn't
support replacements with arguments, which limits usefulness of them and
should be taken into account.
2017-07-02 15:15:31 +03:00
Paul Sokolovsky
5f0c56bcf1 docs/conf.py: Switch to "new" format of intersphinx_mapping.
As described at
http://www.sphinx-doc.org/en/stable/ext/intersphinx.html#confval-intersphinx_mapping

This will allow to explicitly refer to CPython docs for cross-references.
2017-07-02 14:35:52 +03:00
Damien George
7e14f99c26 docs/topindex.html: Fix typo in "Glossary" heading. 2017-07-02 21:29:06 +10:00
Paul Sokolovsky
d0797fbc18 docs: Add glossary.
We have enough terms or references throughout the docs which may be not
immediately clear or have some important nuances. Referencing terms in
gloassary is the best way to deal with that.
2017-07-02 13:47:35 +03:00
Paul Sokolovsky
d80ecad03f docs/ure: Elaborate doc, update markup to the latest conventions. 2017-07-02 02:01:47 +03:00
Paul Sokolovsky
d42bb58c33 docs/builtins: Add AssertionError, SyntaxError, ZeroDivisionError.
Also, update heading of 1st sections to "Functions and types".
2017-07-01 22:20:49 +03:00
Paul Sokolovsky
8b7d311595 reference/index: Rewrite introduction paragraph to avoid confusion.
The old intro talked about "differences", but there were hardly any
sections describing differences, mostly MicroPython specific features.
On the other hand, we now have real "differences" chapter, though it's
mostly concerned with stdlib differences.

So, try to avoid confusion by changing wording and linking to the other
chapters and contrasting them with what is described in "MicroPython
language".
2017-07-01 22:09:40 +03:00
Paul Sokolovsky
50eea26145 docs/differences/index_template: Use consistent heading casing.
And in our case, "consistent" is where each word in the heading is *not*
capitalized.
2017-07-01 21:15:43 +03:00
Damien George
f585526c80 docs: Move topindex.html to templates/ subdir.
Later versions of jinja2 need it to be in this subdir, and earlier versions
work with it here as well.
2017-07-01 20:30:35 +03:00
Paul Sokolovsky
ef47dee4bf docs/conf.py: Add .venv dir to exclude_patterns.
It's useful to try different Sphinx versions using virtualenv/venv, so
exclude a common venv dir name from Sphinx processing.
2017-07-01 20:01:05 +03:00
Paul Sokolovsky
e334b6b6d2 docs/constrained: Use markup adhering to the latest docs conventions. 2017-07-01 19:28:55 +03:00
Paul Sokolovsky
871a45dd0c docs/{uselect,ussl,ustruct}: Use markup adhering to latest docs conventions. 2017-06-30 14:50:52 +03:00
Damien George
f2babeaeda docs/topindex.html: Remove link to wipy.io, it's no longer available. 2017-06-30 18:57:26 +10:00
Paul Sokolovsky
1942f0ceef docs/{framebuf,usocket}: Use markup adhering to the latest docs conventions. 2017-06-29 02:22:14 +03:00
Scott Shawcroft
265d5dab05 docs: Typos and rename to CircuitPython. 2017-06-27 17:37:03 -07:00
Scott Shawcroft
778e975936 Split uos module into os and storage.
os is a subset of CPython's os. storage contains additional
file system mounting functionality based on UNIX's mount
management.

Fixes #140
2017-06-27 15:17:30 -07:00
Paul Sokolovsky
f8ac28964d docs/{micropython,sys,uos}: Use markup adhering to the latest docs conventions. 2017-06-28 00:37:47 +03:00
Paul Sokolovsky
fbd252b77c docs/{esp,pyb,ubinascii}: Use markup adhering to the latest docs conventions. 2017-06-27 00:38:05 +03:00
Paul Sokolovsky
748f493f33 docs: Move all ports docs to the single ToC.
Previously, only "selected chapters" were shown in left-pane ToC (of
Read The Docs theme). These chapters were selected out of order. The
rest of chapters were hidden beyond "Documentation Contents" pseudo-
chapter. This arguably led only to confusion, as many people probably
never tried to open that pseudo-chapter, and those who did, were
confused. Such organization is even worse for PDF output, causing
chapters go in mix-mashed order.

So, instead move to single clean ToC. This will allow readers of HTML
to have access to any doc content at their fingertips (and straight
before their eyes), and will allow to finally have clean PDF docs.
2017-06-27 00:34:27 +03:00
Damien George
7a4694fc4e docs/library/gc: Fix grammar and improve readability of gc.threshold(). 2017-06-26 15:25:51 +10:00
Damien George
0a54b6dce9 docs/esp8266/tutorial/intro: Fix some grammatical typos. 2017-06-26 15:12:48 +10:00
Paul Sokolovsky
a926119099 docs/ref/speed_python: Update and make more hardware-neutral.
Move hardware-specific optimizations to the very end of document, and
add visible note that it gives an example for Pyboard. Remove references
to specific hardware technologies, so the doc can be more naturally
used across ports. Various markup updates to adhere to the latest
docs conventions.
2017-06-26 01:11:17 +03:00
Paul Sokolovsky
dd16e21562 docs/network: Use markup adhering to the latest docs conventions. 2017-06-26 00:37:30 +03:00
Paul Sokolovsky
7c0e1f1a08 docs/machine*: Use markup adhering to the latest docs conventions. 2017-06-25 13:30:29 +03:00
Paul Sokolovsky
cfce7d784e docs/lcd160cr: Group related constants together. Use full sentences.
Per the latest docs conventions.
2017-06-25 13:28:23 +03:00
Paul Sokolovsky
ba33c544bb docs/conf.py: Set default_role = 'any'.
This causes `symbol` syntax to be equivalent to :any:`symbol`, which is
in turn the easiest way to cross-reference an arbitrary symbol in the
docs:

http://www.sphinx-doc.org/en/stable/markup/inline.html#role-any

:any: requires at least Sphinx 1.3 (for reference, Ubuntu 16.03 ships
with 1.3.6, the latest 1.6.3).

Any many of our docs, `symbol` is misused to specify arguments to
functions, etc. Refactoring that is in progress. (CODECONVENTIONS
already specify proper syntax for both arguments and xrefs, based
on CPython conventions).
2017-06-25 00:57:44 +03:00
Paul Sokolovsky
6f87b03e3c docs/utime: Use markup adhering to the latest conventions. 2017-06-25 00:54:38 +03:00
Paul Sokolovsky
1e31d4bdf6 docs/lcd160cr: Use markup adhering to the latest conventions. 2017-06-25 00:46:07 +03:00
Paul Sokolovsky
7f2bc83dbc docs/btree: Use markup adhering to the latest conventions. 2017-06-25 00:17:18 +03:00
Paul Sokolovsky
bc790b5145 docs/builtins: List builtin exceptions.
If for nothing else, then at least to cross-reference them.
2017-06-24 23:45:38 +03:00
Paul Sokolovsky
c4e3a03fa5 docs/gc: Document gc.threshold() function. 2017-06-24 13:35:41 +03:00
Paul Sokolovsky
4cdddfed8e docs/gc: Mark mem_alloc()/mem_free() as uPy-specific. 2017-06-24 13:12:09 +03:00
Paul Sokolovsky
b50659e137 docs/conf.py: Include 3 levels of ToC in latexpdf output.
Instead of default 2. 3 are required to access description of individual
library modules.
2017-06-24 00:25:29 +03:00
Paul Sokolovsky
beb94b6efc docs/esp8266/tutorial/intro: Sphinx requires blank lines around literal blocks.
At least, Sphinx 1.3.6.
2017-06-23 22:04:33 +03:00
Paul Sokolovsky
51668dffaa docs/esp8266/tutorial/intro: Discourage use of 512kb firmwares.
This follows similar warnings in other parts of docs.
2017-06-23 22:00:40 +03:00
Paul Sokolovsky
6201e84812 docs/license: Update copyright year. 2017-06-23 21:48:27 +03:00
Scott Shawcroft
30ee7019ca Merge tag 'v1.9.1'
Fixes for stmhal USB mass storage, lwIP bindings and VFS regressions

This release provides an important fix for the USB mass storage device in
the stmhal port by implementing the SCSI SYNCHRONIZE_CACHE command, which
is now require by some Operating Systems.  There are also fixes for the
lwIP bindings to improve non-blocking sockets and error codes.  The VFS has
some regressions fixed including the ability to statvfs the root.

All changes are listed below.

py core:
- modbuiltins: add core-provided version of input() function
- objstr: catch case of negative "maxsplit" arg to str.rsplit()
- persistentcode: allow to compile with complex numbers disabled
- objstr: allow to compile with obj-repr D, and unicode disabled
- modsys: allow to compile with obj-repr D and PY_ATTRTUPLE disabled
- provide mp_decode_uint_skip() to help reduce stack usage
- makeqstrdefs.py: make script run correctly with Python 2.6
- objstringio: if created from immutable object, follow copy on write policy

extmod:
- modlwip: connect: for non-blocking mode, return EINPROGRESS
- modlwip: fix error codes for duplicate calls to connect()
- modlwip: accept: fix error code for non-blocking mode
- vfs: allow to statvfs the root directory
- vfs: allow "buffering" and "encoding" args to VFS's open()
- modframebuf: fix signed/unsigned comparison pendantic warning

lib:
- libm: use isfinite instead of finitef, for C99 compatibility
- utils/interrupt_char: remove support for KBD_EXCEPTION disabled

tests:
- basics/string_rsplit: add tests for negative "maxsplit" argument
- float: convert "sys.exit()" to "raise SystemExit"
- float/builtin_float_minmax: PEP8 fixes
- basics: convert "sys.exit()" to "raise SystemExit"
- convert remaining "sys.exit()" to "raise SystemExit"

unix port:
- convert to use core-provided version of built-in import()
- Makefile: replace references to make with $(MAKE)

windows port:
- convert to use core-provided version of built-in import()

qemu-arm port:
- Makefile: adjust object-file lists to get correct dependencies
- enable micropython.mem_*() functions to allow more tests

stmhal port:
- boards: enable DAC for NUCLEO_F767ZI board
- add support for NUCLEO_F446RE board
- pass USB handler as parameter to allow more than one USB handler
- usb: use local USB handler variable in Start-of-Frame handler
- usb: make state for USB device private to top-level USB driver
- usbdev: for MSC implement SCSI SYNCHRONIZE_CACHE command
- convert from using stmhal's input() to core provided version

cc3200 port:
- convert from using stmhal's input() to core provided version

teensy port:
- convert from using stmhal's input() to core provided version

esp8266 port:
- Makefile: replace references to make with $(MAKE)
- Makefile: add clean-modules target
- convert from using stmhal's input() to core provided version

zephyr port:
- modusocket: getaddrinfo: Fix mp_obj_len() usage
- define MICROPY_PY_SYS_PLATFORM (to "zephyr")
- machine_pin: use native Zephyr types for Zephyr API calls

docs:
- machine.Pin: remove out_value() method
- machine.Pin: add on() and off() methods
- esp8266: consistently replace Pin.high/low methods with .on/off
- esp8266/quickref: polish Pin.on()/off() examples
- network: move confusingly-named cc3200 Server class to its reference
- uos: deconditionalize, remove minor port-specific details
- uos: move cc3200 port legacy VFS mounting functions to its ref doc
- machine: sort machine classes in logical order, not alphabetically
- network: first step to describe standard network class interface

examples:
- embedding: use core-provided KeyboardInterrupt object
2017-06-20 10:56:05 -07:00
Scott Shawcroft
97fcdfbd08 docs: Update design guide for new DigitalInOut API. 2017-06-19 09:06:46 -07:00
Paul Sokolovsky
94696973a0 docs/select: Rename to uselect, to match the actual module name.
Also, add ipoll() documentation and markup changes to comply with CPython
usage.
2017-06-16 11:28:06 +03:00
Damien George
fd860dc552 stmhal: Add .value() method to Switch object, to mirror Pin and Signal. 2017-06-15 17:34:51 +10:00
Paul Sokolovsky
08c73d9734 docs/btree: Typo/wording fixes. 2017-06-11 18:23:13 +03:00
Paul Sokolovsky
6ca086a89a docs/btree: Add hints about opening db file and need to flush db. 2017-06-11 17:44:11 +03:00
Damien George
869cdcfdfc docs: Bump version to 1.9.1. 2017-06-11 23:04:00 +10:00
Scott Shawcroft
9345562cc8 docs: Add note about composition to the design guide. 2017-06-07 14:57:55 -07:00
Scott Shawcroft
714521a4c7 shared-bindings: Update docs to remove with statements from examples but add more detail to the design guide about their use. 2017-06-07 14:39:12 -07:00
Paul Sokolovsky
cd64b3082e docs/network: First step to describe standard network class interface.
This adds description of implied AbstractNIC base class, which should be
"subclasses" and implemented by a particular network device class.

This is just an initial step in that direction, the API and description
will be elabotated further.
2017-06-04 21:25:23 +03:00
Paul Sokolovsky
f245f5d7cc docs/machine: Sort machine classes in logical order, not alphabetically.
The list starts with the simplest functionality - GPIO, proceeds to
communication interfaces (UART, SPI, I2C), the to time(r) related
things, then everything else.
2017-06-03 14:50:54 +03:00
Paul Sokolovsky
e91b1cdae3 docs/uos: Move cc3200 port legacy VFS mounting functions to its ref doc.
This patch also unconditionalizes uos.dupterm(), though exact interface
and semantics is yet to be defined.
2017-06-03 14:19:53 +03:00
Paul Sokolovsky
1ce44f3046 docs/uos: Deconditionalize, remove minor port-specific details.
For a couple of ports, there was information which directory is set
as current after boot. This information doesn't belong to "uos" module,
and is moved to boards' references (which actually already contained
information on which directory is chosen for boot, even if without
explicit mentioning that it becomes current directory, which is now
done).
2017-06-03 13:51:13 +03:00
Paul Sokolovsky
92206a78ae docs/network: Move confusingly-named cc3200 Server class to its reference.
cc3200 port has network.Server class to control behavior of builtin
Telnet/FTP server of that port.
2017-06-03 13:34:28 +03:00
Paul Sokolovsky
22ca5390f7 docs/esp8266/quickref: Polish Pin.on()/off() examples. 2017-06-02 21:08:23 +03:00
Paul Sokolovsky
272a5d95e0 docs/esp8266: Consistently replace Pin.high/low methods with .on/off. 2017-05-30 07:36:25 +03:00
Paul Sokolovsky
d5b8825d5f docs/machine.Pin: Add on() and off() methods. 2017-05-29 20:56:13 +03:00
Paul Sokolovsky
3496d9e4bd docs/machine.Pin: Remove out_value() method.
This method isn't implemented in any port. It seemed to have originated
in cc3200 port, but actually never was implemented there either. In
general case, it's impossible to implement this method (for example, for
a perfect GPO, which has only output latch without any feedback look
into a CPU).
2017-05-29 20:51:30 +03:00
Ville Skyttä
ca16c38210 various: Spelling fixes 2017-05-29 11:36:05 +03:00
Damien George
825460a093 docs: Bump version to 1.9. 2017-05-26 19:07:37 +10:00
Scott Shawcroft
1280e9122b Doc tweaks to clarify external libraries, new boards and add HID library. 2017-05-24 11:44:23 -07:00
Paul Sokolovsky
3ebd67fc09 library/machine.Pin: Remove .id() method and .board class attr.
Both aren't part of generic Hardware API: It's impossible to implement
.id() method in a generic case (e.g., when Pin is instantiated by the
underlying OS/RTOS). .board attribute is an obvious space hog which
instead can be implemented on Python level if needed.
2017-05-21 15:50:16 +03:00
Damien George
436d97b3f9 docs/library/machine.UART: Update and improve uart.any() docs. 2017-05-19 15:48:22 +10:00
Damien George
d007351b33 docs/library/micropython: Document the newer micropython functions. 2017-05-18 00:25:09 +10:00
Damien George
f351c6db5e drivers/display/lcd160cr: Fix get_line method and enhance screen_dump.
The docs are updated and describe the new behaviour of these methods.
2017-05-17 19:53:13 +10:00
Damien George
e4a53570d0 docs: Change single occurrence of "Micropython" to "MicroPython". 2017-05-17 12:38:33 +10:00
Paul Sokolovsky
d5713c8618 docs/library/index: Add important summary of the intro section as warning.
To make them harder to miss.
2017-05-15 00:26:44 +03:00
Paul Sokolovsky
0ba136fbe9 docs/machine.Signal: Add initial draft description of Signal class. 2017-05-14 23:12:06 +03:00
Paul Sokolovsky
c19f07bd52 docs/machine.Pin: There's no toggle() method in MicroPython hardware API.
May be a port-specific method, not portable, not part of the official
specification.
2017-05-14 22:52:16 +03:00
Damien George
6d221fe284 docs/library/uos: Add description of uos.ilistdir() function. 2017-05-10 12:44:21 +10:00
Damien George
29b26f3922 docs/library/machine.SPI: Fix formatting of bullet list to stop warning. 2017-04-18 15:40:04 +10:00
Damien George
850f79e552 docs/library/machine.I2C: Remove WiPy-specific return values.
cc3200 has been updated to conform to the API and now returns None.
2017-04-18 15:39:27 +10:00
Damien George
daa5ba5629 docs/esp8266/quickref: Add links from quickref page to machine classes. 2017-04-18 15:28:18 +10:00
Damien George
d4675e7674 docs/library/machine.*: Add cross-reference label to individual classes. 2017-04-18 15:27:37 +10:00
Damien George
1f1a03d0c3 docs/library/machine.I2C: Deconditionalise all methods.
The cc3200 port is now similar enough to the standard machine.I2C API so
that all conditionals can be removed.
2017-04-18 15:04:51 +10:00
Damien George
c49b265389 docs/wipy/general: Add section about specifics of I2C implementation. 2017-04-18 15:04:30 +10:00
Damien George
27f0862550 docs/wipy/quickref: Update reference for change to I2C API. 2017-04-18 13:20:07 +10:00
Damien George
fabaa61437 docs/library/machine.UART: Remove pyboard-specific section.
stmhal doesn't have a machine.UART class so this section is not needed.
2017-04-18 12:13:51 +10:00
Paul Sokolovsky
a78703f188 docs/library/machine: Typo fix in machine_callbacks section. 2017-04-16 10:14:05 +03:00
Paul Sokolovsky
9ef6bb5480 docs/machine: Move machine.main() misnomer to wipy's known issues. 2017-04-16 10:12:01 +03:00
Paul Sokolovsky
a8ece0358f docs/machine.UART: Deconditionalize normal methods. 2017-04-16 09:54:55 +03:00
Paul Sokolovsky
ac8843ceec docs/library/ussl: Deconditionalize, wipy notes moved to its documentation. 2017-04-16 09:41:32 +03:00
Paul Sokolovsky
a0fb360f1b docs/library/uos: urandom: Generalize description.
Don't give a guarantee of HW RNG, only a possibility of its usage.
2017-04-16 09:22:47 +03:00
Paul Sokolovsky
ae831ec0a8 docs/library/micropython: Deconditionalize. 2017-04-16 09:18:47 +03:00
Paul Sokolovsky
a1c39ffb69 docs/esp8266/tutorial/intro: Reword section on flash size requirement.
Give a clearly dissuading tone on end users trying 512KB version
- it has to many end-usery features lacking.
2017-04-14 01:12:04 +03:00
Scott Shawcroft
f28f8ba568 Split up nativeio.
This was done to allow greatly granularity when deciding what functionality
is built into each board's build. For example, this way pulseio can be
omitted to allow for something else such as touchio.
2017-04-10 13:32:19 -07:00
Paul Sokolovsky
b87432b8fb docs/uhashlib: Deconditionalize.
Notes on WiPy incompatibilities with the standard module API are
moved under "Known issues" to its documentation.
2017-04-09 00:57:54 +03:00
Paul Sokolovsky
2e58474580 docs/usocket: Deconditionalize.
Notes on WiPy incompatibilities with the standard socket module API are
moved under "Known issues" to its documentation.
2017-04-09 00:48:28 +03:00
Paul Sokolovsky
3acace588a docs/utime: Deconditionalize description of sleep(). 2017-04-09 00:42:32 +03:00
Paul Sokolovsky
1d74559b6b docs/library/machine.UART: Remove some conditionals. 2017-04-09 00:25:27 +03:00
Paul Sokolovsky
bcf3c8bf17 docs/library/builtins: int: Add notice on byteorder param for to/from_bytes. 2017-04-09 00:06:54 +03:00
Paul Sokolovsky
e5278b98fe docs/esp8266/general: Start explicit "Known Issues", mentioned RTC inaccuracy. 2017-04-07 10:52:50 +03:00
Paul Sokolovsky
390d5a3bf1 docs/machine.Pin: Move wipy-specific methods to its docs. 2017-04-05 13:05:04 +03:00
Paul Sokolovsky
d46899626e docs/machine.Pin: Move wipy-specific details to its own docs. 2017-04-05 12:09:36 +03:00
Paul Sokolovsky
9a38b7afe0 cc3200/modmachine: Return frequency value directly, like other ports. 2017-04-05 11:58:17 +03:00
Paul Sokolovsky
4333b2fb53 docs/machine.SPI: Remove outdated wipy chunk. 2017-04-05 11:47:15 +03:00
Paul Sokolovsky
906d58f6f2 docs/uos: De-conditionalize statvfs() description.
It's a standard function, and it's already described (in the library
intro) that for any given port, any function may be missing.
2017-04-05 11:44:10 +03:00
Paul Sokolovsky
0a861db91c docs/utime: De-conditionalize description of sleep_ms() and friends.
These are basic MicroPython API, and all ports should implement them.
2017-04-05 11:40:47 +03:00
Peter Hinch
468c6f9da1 extmod/modframebuf: Make monochrome bitmap formats start with MONO_.
MONO_xxx is much easier to read if you're not familiar with the code.
MVLSB is deprecated but kept for backwards compatibility, for the time
being.

This patch also updates the associated docs and tests.
2017-04-04 17:38:33 +10:00
Paul Sokolovsky
bb296482c3 docs/library/btree: Add btree module docs. 2017-04-04 00:29:23 +03:00
transistortim
fb981107eb docs/library/machine.I2C: Fix scan() doc to match implementation.
Since eaef6b5324 writes are used instead of
reads.
2017-03-20 15:30:41 +11:00
Christopher Arndt
9b80a1e3e9 utime module documentation fixes and cleanup:
* Fix mis-spelling of `ticks_add` in code examples.
* Be consistent about parentheses after function names.
* Be consistent about formatting of function, variable and constant names.
* Be consistent about spaces and punctuation.
* Fix some language errors (missing or wrong words, wrong word order).
* Keep line length under 90 chars.

Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2017-03-17 20:45:08 +03:00
Damien George
fcab435607 docs/library/framebuf: Fix typo in bit-width for MVLSB description. 2017-03-15 21:54:56 +11:00
James Ouyang
e73a0b944f docs/esp8266/tutorial: Update since esptool 1.3 added Python 3 support.
esptool 1.3 now supports both Python 2.7 and 3.4+.
Updated github link to now-official espressif repo.
2017-03-07 18:23:24 +11:00
Rami Ali
2646b9e022 docs/library/lcd160cr: Add link to framebuf page. 2017-03-07 18:17:40 +11:00
Rami Ali
f9d18d96b7 docs/library: Add framebuf documentation. 2017-03-07 18:16:46 +11:00
Peter Hinch
1f549a3496 docs/library/lcd160cr: Add note about supported JPEG format/encodings. 2017-02-28 17:45:24 +11:00
Paul Sokolovsky
ed81574fe9 docs/machine: Fix formatting of Constants section.
Render related constants grouped together, with common description.
2017-02-28 00:38:15 +03:00
Krzysztof Blazewicz
ae116c2430 docs/Makefile: define and use PYTHON as the interpreter for CPYDIFF
User can override PYTHON executable before running script,
gen-cpydiff.py works only with Python3 and most systems register
its executable as 'python3'.
2017-02-27 15:39:55 +11:00
Paul Sokolovsky
e2f1a8a7ee docs/uhashlib: Provide port-neutral description.
TODO: Remove WiPy-specific chunks.
2017-02-26 00:55:33 +03:00
Rami Ali
3218ccd70d docs: Modify Makefile and indexes to generate cPy-differences pages. 2017-02-20 17:14:35 +11:00
Rami Ali
b7fa63c7ce tools: Add gen-cpydiff.py to generate docs differences.
This patch introduces the a small framework to track differences between
uPy and CPython.  The framework consists of:

- A set of "tests" which test for an individual feature that differs between
  uPy and CPy.  Each test is like a normal uPy test in the test suite, but
  has a special comment at the start with some meta-data: a category (eg
  syntax, core language), a human-readable description of the difference, a
  cause, and a workaround.  Following the meta-data there is a short code
  snippet which demonstrates the difference.  See tests/cpydiff directory
  for the initial set of tests.

- A program (this patch) which runs all the tests (on uPy and CPy) and
  generates nicely-formated .rst documenting the differences.

- Integration into the docs build so that everything is automatic, and the
  differences appear in a way that is easy for users to read/reference (see
  latter commits).

The idea with using this new framework is:

- When a new difference is found it's easy to write a short test for it,
  along with a description, and add it to the existing ones.  It's also easy
  for contributors to submit tests for differences they find.

- When something is no longer different the tool will give an error and
  difference can be removed (or promoted to a proper feature test).
2017-02-20 17:14:34 +11:00
Damien George
d80df91ef2 docs/library/lcd160cr: Mention the valid values for set_power() method. 2017-02-17 16:57:22 +11:00
Paul Sokolovsky
ee3615d800 docs/uos: Remove mention of uos.sep.
MicroPython guarantees '/' to be a path separator, so extra constant taking
precious ROM space are not needed. MicroPython never had such constant, only
one vendor port had it (now unmaintained).
2017-02-14 13:14:46 +03:00
Damien George
0c821f7def docs/library/machine: Make separate TOC for WiPy vs non-WiPy.
WiPy is the only port with ADC and SD, so they shouldn't be included in
other ports' documentation.
2017-02-13 13:06:51 +11:00
Dave Hylands
2f76c3ca0a docs/library/pyb.Pin: Minor typo fix, B6 should be A0.
On the PYBv1.0, X1 maps to A0, not B6.
2017-02-13 11:52:44 +11:00
Damien George
21f08524ba docs: Add M-logo as favicon. 2017-02-07 20:04:40 +11:00
Damien George
3217bbe491 docs/esp8266/tutorial: Specify the baudrate in picocom example command. 2017-02-07 16:58:43 +11:00
Damien George
9779c99317 stmhal: Add ability to skip booting from SD card via /flash/SKIPSD file. 2017-02-07 12:35:39 +11:00
Damien George
27c149efe0 stmhal: Add pyb.fault_debug() function, to control hard-fault behaviour.
This new function controls what happens on a hard-fault:
- debugging disabled: board will do a reset
- debugging enabled: board will print registers and stack and flash LEDs

The default is disabled, ie to do a reset.  This is different to previous
behaviour which flashed the LEDs and waited indefinitely.
2017-02-06 13:22:17 +11:00
Paul Sokolovsky
d5e9ab6e61 extmod/machine_pulse: Make time_pulse_us() not throw exceptions.
machine.time_pulse_us() is intended to provide very fine timing, including
while working with signal bursts, where each transition is tracked in row.
Throwing and handling an exception may take too much time and "signal loss".
So instead, in case of a timeout, just return negative value. Cases of
timeout while waiting for initial signal stabilization, and during actual
timing, are recognized.

The documentation is updated accordingly, and rewritten somewhat to clarify
the function behavior.
2017-02-05 14:20:17 +03:00
Scott Shawcroft
10fbe06757 Switch design guide to rST so that the table works. Also add details based on more feedback from @deshipu. Thanks! 2017-02-03 14:48:23 -08:00
Scott Shawcroft
f6cdfa9edf Update after feedback from @deshipu. Thanks 2017-02-03 10:16:41 -08:00
Damien George
50a9dd59f5 docs: For LCD160CR driver and tutorial, add link to positioning image. 2017-02-03 12:48:54 +11:00
Scott Shawcroft
7ab7f41b46 Add a draft of a new design guide. This is meant to capture the goals of CircuitPython and the corresponding design decisions. 2017-02-02 15:15:27 -08:00
Damien George
5ec5bfb0d3 docs/pyboard/tutorial/lcd160cr_skin: Fix typo, get_touched->get_touch. 2017-01-30 18:19:29 +11:00
Paul Sokolovsky
0ddeedfc73 docs/uio: Typo fixes/lexical improvements. 2017-01-29 16:18:33 +03:00
Paul Sokolovsky
bdb0d22fe2 docs/conf.py: Add myself as a copyright holder on the docs.
Based on the following statistics:

$ git log docs |grep Author | sort | uniq -c | sort -n -r
    175 Author: Paul Sokolovsky
    135 Author: Damien George
     31 Author: Daniel Campora
     26 Author: danicampora
     14 Author: Peter Hinch

git blame stats script from http://stackoverflow.com/a/13687302/496009:

$ sh git-authors docs
   9977 author Damien George
   2679 author Paul Sokolovsky
   1699 author Daniel Campora
   1580 author danicampora
   1286 author Peter Hinch
    282 author Shuning Bian
    249 author Dave Hylands

Total lines per this script: 18417, my contribution is 14.5%.
2017-01-29 16:12:07 +03:00
Paul Sokolovsky
ef6fb66d23 docs/uio: Describe differences between uPy an CPy stream hierarchy. 2017-01-28 16:35:40 +03:00
Paul Sokolovsky
6947a7f6a9 docs/usocket: Dedent Methods section.
This was apparently of an ::only directive which was later removed.
2017-01-28 15:49:54 +03:00
Paul Sokolovsky
f23c47fea7 docs/usocket: Clarify description of various methods. 2017-01-28 15:39:18 +03:00
Paul Sokolovsky
74fcb122f0 docs/usocket: Elaborate "Constants" section. 2017-01-28 14:46:58 +03:00