diff --git a/release-notes.txt b/release-notes.txt index fa20980715..2468d3f69d 100644 --- a/release-notes.txt +++ b/release-notes.txt @@ -1,3 +1,228 @@ +RIOT-2016.04 - Release Notes +============================ +RIOT is a real-time multi-threading operating system that supports a range of +devices that are typically found in the Internet of Things: 8-bit +microcontrollers, 16-bit microcontrollers and light-weight 32-bit processors. + +RIOT is based on the following design principles: energy-efficiency, real-time +capabilities, small memory footprint, modularity, and uniform API access, +independent of the underlying hardware (this API offers partial POSIX +compliance). + +RIOT is developed by an international open source community which is +independent of specific vendors (e.g. similarly to the Linux community) +and is licensed with a non-viral copyleft license (LGPLv2.1), which allows +indirect business models around the free open-source software platform +provided by RIOT. + +About this release: +=================== +This release adds support for two additional network stacks: lwIP and emb6. +A bunch of additional protocols are now available, P2P-RPL in the GNRC +network stack, Ethernet-over-Serial (ethos). Murdock, the new, blazing fast +RIOT CI is now available to significantly speed up code merging procedures. + +This release also adds support for a number of new boards and sensors and a new +tool for automated border router setup is now provided which greatly simplifies +that setup for newbies as well as for old-timers. Last but not least: this +release includes a number of bug fixes, mostly about stabilizing and enhancing +the networking capabilities of RIOT. + +About 470 pull requests with about 1196 commits have been merged since the last +release and 127 additional issues have been solved. 55 people contributed code +in 124 days. 1521 files have been touched with ~91700 insertions and ~42200 +deletions. + +Notations used below: +===================== ++ means new feature/item +* means modified feature/item +- means removed feature/item + +New features and changes +======================== +General +---------- ++ added Makefile support for creating a "binary distribution", making it easier to create closed source applications while still complying to LGPL + +Testing +--- ++ Murdock, the new RIOT CI ++ unified pexpect code ++ added various new unittests and test applications + +Core +---- ++ added thread flags, a new method to signal events in an efficient and thread safe manner ++ messaging is now compile-time optional, shaving off some bytes off each thread's state struct for projects not requiring it ++ new, simpler list implementation increases mutex and msg performance + +Network Stack +--- ++ P2P-RPL (RFC6997) ++ netdev2_test: test framework for users of the netdev2 API + +Packages +--- ++ emb6 network stack ++ jsmn (minimal JSON parser) ++ lwIP network stack ++ unified and streamlined git package source handling ++ added support for caching git repositories + +Platforms +--- ++ reworked existing peripheral drivers and added SPI driver for arduino-mega2560 ++ added support for nRF52dk ++ added support for nucleo-f072 and nucleo-f103 ++ unified LED macros for all boards + +Drivers +--- ++ ethos "ethernet over serial" driver, enabling shared uart + network communication over one serial connection ++ RHOM BH1750FVI ambient light sensor ++ ST LIS3MDL three-axis magnetic sensor ++ Silicon Labs Si70xx low-power temperature + humidity sensor ++ simplified GPIO driver interface ++ AES encryption for xbee radio driver ++ added ADC mapping to SAUL + +Sytem libraries +--- +- vtimer support was dropped completely and removed + +Build System +--- ++ made build system safe for concurrent building of multiple applications ++ desvirt integration into the RIOT build system + +Other +--- +- simplified border router setup tool (single UART and automation script) + +API changes +--- +* at86rf2xx was moved from gnrc_netdev to the netdev2 API +* genrand_* -> random_* +* xtimer_remove() no longer returns whether a timer was actually removed +* disableIRQ(), enableIRQ(), restoreIRQ(), inISR() -> irq_disable(), irq_enable(), irq_restore(), irq_is_in() +* renamed periph/random to periph/hwrng + +Fixed Issues from the last release +================================== +* #3109: periph/random: random_read should return unsigned int +* #3970: RPL: Advertise DODAG only over the assigned interface +* #4462: IPHC/NHC broken between Linux and a RIOT node with a RIOT-based border router in between. +* #4608: tests/xtimer_usleep_until: unstable behaviour + +Known Issues +========== +---------------------- +* #3075: nhdp: unnecessary microsecond precision + NHDP works with timer values of microsecond precision which is not required. Changing + to lower precision would save some memory. +* #3086: Max. packet length for AT86RF2XX + The size of the link-layer header is not dynamically calculated, but instead the maximum + size is always assumed. +* #4048: potential racey memory leak + According to the packet buffer stats, flood-pinging a multicast destination may lead to a + memory leak due to a race condition. However, it seems to be a rare case and a + completely filled up packet buffer was not observed. +* #5005: ndp: router advertisement sent with global address + Under some circumstances a router might send RAs with GUAs. While they are ignored + on receive (as RFC 4861 specifies), RAs should have link-local addresses and not even + be send out this way. +* #5007: gnrc icmpv6: Ping reply goes out the wrong interface +* #5055: cpuid: multiple radios will get same EUI-64 + Nodes with multiple interfaces might get the same EUI-64 for them since they are generated + from the same CPU ID +* #5230: gnrc ipv6: multicast packets are not dispatched to the upper layers +* #5388: gnrc_sixlowpan_iphc_nhc: receiving NHC compressed UDP packets hits assert in IPv6 + Fix already provided in #5281, but did not made it into the release due to its complexity +* #5390: pkg: OpenWSN does not compile + This package still uses deprecated modules and was not tested for a long time + +native related issues +--------------------- +* #495: native not float safe + When the FPU is used when an asynchronous context switch occurs, either the + stack gets corrupted or a floating point exception occurs. +* #534: native debugging on osx fails + Using valgrind or gdb with a nativenet target in OSX leads to "the network" + being stuck (gdb) or the whole process being stuck (valgrind). +* #3341 and #3824: nativenet crashes when hammered + Flood-pinging a native instance from more than one host (either multiple threads on the + host system or multiple other native instances), leads to a SEGFAULT + +other platform related issues +----------------------------- +* #4560: make: clang is more pedantic than gcc + oonf_api is not building with clang. +* #4583: cpp11: clang doesn't allow `mutex_t` to be used with `constexpr` + All cpp11-* tests fail with clang. +* #4866: not all GPIO driver implementations are thread safe + Due to non-atomic operations in the drivers some pin configurations might get lost + +other issues +------------ +* #1263: TLSF implementation contains (a) read-before-write error(s) +* #2761: core: define default flags + If a thread is created without the corresponding flag (CREATE_STACKTEST), + the ps command will yield wrong numbers for the stack usage +* #2927: core: Automatically select the lowest possible LPM mode + Not all available low power modes (LPMs) are implemented for each platform and the + concept of how the LPM is chosen needs some reconsideration +* #2967: Makefile.features: location is not relevant for all features + Provided features for the build system should be split up into a board and cpu specific + part +* #4488: Making the newlib thread-safe + When calling puts/printf after thread_create(), the CPU hangs for DMA enabled uart drivers. +* #4841: xtimer: timer already in the list + Under some conditions an xtimer can end up twice in the internal list of the xtimer module. +* #5338: xtimer: xtimer_now() not ISR safe + For non-32-bit platforms + +Special Thanks +=============== +We like to give our special thanks to all the companies that provided us with +their hardware for porting and testing, namely the people from (in alphabetical +order): Atmel, Freescale, Limifrog, Nordic, OpenMote, Phytec, SiLabs, UDOO, +and Zolertia; and also companies that directly sponsored development time: +Cisco Systems, Eistec, Ell-i, Enigeering Spirit, FreshTemp LLC, and Phytec. + +More information +================ +http://www.riot-os.org + +Mailing lists +------------- +* RIOT OS kernel developers list + * devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel) +* RIOT OS users list + * users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users) + * RIOT commits + * commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits) +* Github notifications + * notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications) + + IRC + ----- +* Join the RIOT IRC channel at: irc.freenode.net, #riot-os + +License +======= +* Most of the code developed by the RIOT community is licensed under the GNU + Lesser General Public License (LGPL) version 2.1 as published by the Free + Software Foundation. +* Some external sources are published under a separate, LGPL compatible license + (e.g. some files developed by SICS). + + All code files contain licensing information. + + + + + RIOT-2015.12 - Release Notes ============================ RIOT is a real-time multi-threading operating system that supports a range of