Update TODO list.

This commit is contained in:
Gregory Nutt
2018-10-05 11:15:57 -06:00
parent d0254b1c79
commit c9fef44b32
+16 -71
View File
@@ -1,4 +1,4 @@
NuttX TODO List (Last updated September 29, 2018) NuttX TODO List (Last updated October 5, 2018)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This file summarizes known NuttX bugs, limitations, inconsistencies with This file summarizes known NuttX bugs, limitations, inconsistencies with
@@ -22,7 +22,7 @@ nuttx/:
(18) Network (net/, drivers/net) (18) Network (net/, drivers/net)
(4) USB (drivers/usbdev, drivers/usbhost) (4) USB (drivers/usbdev, drivers/usbhost)
(2) Other drivers (drivers/) (2) Other drivers (drivers/)
(12) Libraries (libc/, libm/) (11) Libraries (libs/libc/, libs/libm/)
(11) File system/Generic drivers (fs/, drivers/) (11) File system/Generic drivers (fs/, drivers/)
(10) Graphics Subsystem (graphics/) (10) Graphics Subsystem (graphics/)
(1) Build system / Toolchains (1) Build system / Toolchains
@@ -618,8 +618,8 @@ o Signals (sched/signal, arch/)
TCB of the parent so that the pthread could be bound to the correct TCB of the parent so that the pthread could be bound to the correct
group. group.
There is also some user-space logic in libc/aio/lio_listio.c. That There is also some user-space logic in libs/libc/aio/lio_listio.c.
logic could use the user-space work queue for the callbacks. That logic could use the user-space work queue for the callbacks.
Status: Low, there are alternative designs. However, these features Status: Low, there are alternative designs. However, these features
are required by the POSIX standard. are required by the POSIX standard.
Priority: Low for now Priority: Low for now
@@ -824,8 +824,9 @@ o Kernel/Protected Build
by simply reading this variable. by simply reading this variable.
"This one would be easy: Just a change to include/nuttx/userspace.h, "This one would be easy: Just a change to include/nuttx/userspace.h,
configs/*/kernel/up_userspace.c, libc/, sched/sched_addreadytorun.c, and configs/*/kernel/up_userspace.c, libs/libc/,
sched/sched_removereadytorun.c. That would eliminate 59% of the syscalls." sched/sched_addreadytorun.c, and sched/sched_removereadytorun.c.
That would eliminate 59% of the syscalls."
Update: Update:
This is probably also just a symptom of the OS test that does mostly This is probably also just a symptom of the OS test that does mostly
@@ -1661,8 +1662,8 @@ o USB (drivers/usbdev, drivers/usbhost)
Status: Open Status: Open
Priority: Medium-Low unless you really need host CDC/ACM support. Priority: Medium-Low unless you really need host CDC/ACM support.
o Libraries (libc/, libm/) o Libraries (libs/libc/, libs/libm/)
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Title: SIGNED time_t Title: SIGNED time_t
Description: The NuttX time_t is type uint32_t. I think this is consistent Description: The NuttX time_t is type uint32_t. I think this is consistent
@@ -1684,11 +1685,12 @@ o Libraries (libc/, libm/)
Description: Need some minimal termios support... at a minimum, enough to Description: Need some minimal termios support... at a minimum, enough to
switch between raw and "normal" modes to support behavior like switch between raw and "normal" modes to support behavior like
that needed for readline(). that needed for readline().
UPDATE: There is growing functionality in libc/termios/ and in the UPDATE: There is growing functionality in libs/libc/termios/
ioctl methods of several MCU serial drivers (stm32, lpc43, lpc17, and in the ioctl methods of several MCU serial drivers (stm32,
pic32). However, as phrased, this bug cannot yet be closed since lpc43, lpc17, pic32, and others). However, as phrased, this
this "growing functionality" does not address all termios.h bug cannot yet be closed since this "growing functionality"
functionality and not all serial drivers support termios. does not address all termios.h functionality and not all
serial drivers support termios.
Status: Open Status: Open
Priority: Low Priority: Low
@@ -1739,7 +1741,7 @@ o Libraries (libc/, libm/)
Priority: Priority:
Title: OLD dtoa NEEDS TO BE UPDATED Title: OLD dtoa NEEDS TO BE UPDATED
Description: This implementation of dtoa in libc/stdio is old and will not Description: This implementation of dtoa in libs/libc/stdio is old and will not
work with some newer compilers. See work with some newer compilers. See
http://patrakov.blogspot.com/2009/03/dont-use-old-dtoac.html http://patrakov.blogspot.com/2009/03/dont-use-old-dtoac.html
Status: Open Status: Open
@@ -1815,63 +1817,6 @@ o Libraries (libc/, libm/)
Status: Open Status: Open
Priority: Low Priority: Low
Title: FORMATTING FIXED WIDTH INTEGERS
Description: Formats like this: lib_vsprintf(_, "%6.6u", 0) do not work.
There is no support for the precision/width option with
integer types. The format is simply is ignored and so can
even cause crashes.
For example:
int hello_main(int argc, char *argv[])
{
printf("Hello, World!!\n");
printf("%3.3u %3.3u %3.3u %3.3u %3.3u\n", 9, 99, 999, 9999, 99999);
return 0;
}
Generates this incorrect output:
NuttShell (NSH) NuttX-7.20
nsh> hello
Hello, World!!
9 99 999 9999 99999
nsh>
That output, of course, should have been:
9 99 999 999 999
The period and the precision value were being ignored (if
floating point was disabled). In that case, parsing of the
variable arguments could get out of sync. But a side
effect of the referenced change is that precision value is
now always parsed (but still incorrectly ignored for the
case of integer formats).
The fix would not be too difficult but would involve change
several functions. It would involve clipping the size of the
number string. For example:
/* Get the width of the output */
uwidth = getusize(FMT_CHAR, flags, n);
if (trunc > 0 && uwidth > trunc)
{
uwidth = trunc;
}
Then limiting the length of the output string to uwidth.
This would probably mean passing an additional parameter to
the many *toascii() functions like:
/* Output the number */
utoascii(obj, FMT_CHAR, flags, (unsigned int)n, uwidth);
Status: Open
Priority: Low
o File system / Generic drivers (fs/, drivers/) o File system / Generic drivers (fs/, drivers/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^