Version 50 (modified by 7 years ago) ( diff ) | ,
---|
Release Notes for HelenOS mainline
Note: This document is a draft describing a future HelenOS release and is subject to change. The software described here has not been released yet. To get these latest and greatest features now, check out our Git master. (But you will also get the latest bugs).
HelenOS version (codename) was released on date.
This document contains a summary of changes made to HelenOS since release previous release.
Special Notes for this Release
Features Introduced in This Release
General
- Integrate support for C-style checker into build system
- Basic build tests executed with each commit via Travis CI
Kernel
- Continued work on capabilities
- IPC calls in userspace are no longer represented by the so-called call ID's or hashes (essentially leaked kernel addresses). Instead they are now managed using task-local call capability handles.
- Improved life-cycle management of kernel objects, especially phones, and capabilities. When allocating a new capability the kernel does no longer attempt to reclaim an unused allocated one. Instead, each kernel object is now deallocated immediately when its reference count drops to zero. For phones, this now newly means that the phone has no active calls.
- Capability handles are now type-safe so that it is no longer possible to confuse eg. a phone capability handle with a call capability handle. Or a capability handle with an integer.
Services and Drivers
- FIXME USB stack overhaul bringing support for USB 3.x and XHCI
- Unify all the different character device interfaces
- Move ADB keyboard and mouse support into separate drivers
- Finish DDF conversions of ski, sun4u and msim console drivers
- NIC driver for virtio-net, enable with
tools/ew.py -net virtio-net
- FIXME Volume management improvements
- Generalized the ns8250 driver to work with more chips
File Systems
- TMPFS is now populated from a TAR archive when used as a root file system.
Networking
Applications
- Fix text editor screen being broken when editing files with long names
Libraries
- Added
libvirtio
to aid writing VIRTIO device drivers. - The async framework API has been streamlined and the the abstraction no longer leaks the internals of the low-level IPC mechanism. The async framework server calls no longer require the call capability handle and the pointer to the IPC call structure serves as an universal identifier of the given IPC call on the server side.
- Improved ISO C comformance
- FIXME C++14 Runtime support
- C++ source files are compiled with
-std=c++17
(which grants most, if not all, C++17 language features)- These files are detected by having
.cpp
,.cxx
or.cc
as their extension
- These files are detected by having
- Runtime:
- RTTI (
type_info
andtypeid
, nodynamic_cast
at the moment) - Thread-safe local static variable initialization
- Global static variable initialization/destruction
- No support for exception at the moment, though
try
/catch
/throw
are redefined and should not break code
- RTTI (
- Standard library:
- All containers except
forward_list
(some algorithms missing, such as sort() onlist
), including adaptors - Most of utilities
<type_traits>
,<ratio>
complete<utility>
,<tuple>
,<memory>
,<function>
,<chrono>
,<bitset>
mostly complete<scoped_allocator>
not implemented
- I/O library is complete, but does not throw and ignores localization
<locale>
is defined, but is a stub (implementing it will add its functionality to I/O types)
- Threading mostly complete, timed try_locks block
- Iterator traits and adaptors complete
- Numerics have only
<numeric>
complete and<random>
partially implemented (missing some distributions and adaptors) - Partial
<algorithm>
implementation <regex>
and<atomic>
not implemented<string>
implemented, but wide strings are untested (missing wide string functions in libc)- C library header wrappers are only partially implemented because features are missing from libc
- Types from diagnostics library (
<exception>
,<stdexcept>
,<system_error>
) are implemented, but exception handling does not work
- All containers except
- C++ source files are compiled with
- FIXME non-negative errno
Miscellaneous
- FIXME ELF loading changes
- Headers with structures and their respective member offsets shared between C code and assembly are no longer generated from a YAML description, but are instead provided in a readily-usable header file and checked for consistency by the build system.
- FIXME User-visible changes to tools/ew.py
- Userspace portions of HelenOS can now be built with undefined behavior sanitizer enabled, making it easier to detect certain kinds of problems.
Regressions in This Release
- For the list of regressions since the previous release, see this report.
- Notable regressions
Fixed Logged Bugs & Enhancements
- For the list of all logged defects fixed in this release, see this report.
- For the list of all logged enhancements integrated in this release, see this report.
Known Bugs
Attachments (2)
-
edit.png
(4.0 KB
) - added by 3 years ago.
Text Editor ported to UI library (with menu bar and dialog window)
-
nav.png
(13.9 KB
) - added by 3 years ago.
Navigator (HelenOS file manager)
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.