Mercurial > flash_v2
diff host/libcdl/TODO @ 76:435cced73e2f ecos-v1_3_1-release
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
| author | jlarmour |
|---|---|
| date | Tue, 28 Mar 2000 14:10:45 +0000 |
| parents | |
| children | 6736c52df507 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/host/libcdl/TODO @@ -0,0 +1,219 @@ + TODO List + --------- + +Minor +----- + +1) savefile support. Add option handling to the remaining savefile + commands, even if no options are currently defined. + +2) remember unrecognised options so that they can be written back + when the savefile is regenerated. Perhaps add option details + to the header? + +3) allow re-parenting below "". Make the orphans container disabled? + +4) get limbo working + +5) make cdl_interfaces into containers? How about cdl_options as well, + to avoid reparenting problems? + +6) allow components and options to be used interchangeably in savefiles. + +7) ecosconfig, create a paths file with details of the source tree + location etc? How about reporting the paths? + + > Huge> How about: put information about the source tree into the savefile BUT you + > Huge> can put + > Huge> ecosconfig --srcdir=/home/hmt/work/ecc/net/ecc/ecc + > Huge> and it'll say "Oi! You've changed the repository! Override [y/n]?" + > Huge> That lets you move them 'round. + > + > That is a possibility, but I am reluctant to add any interactive + > facilities to ecosconfig just yet + + OK, instead: + % ecosconfig --srcdir=/home/hmt/work/ecc/net/ecc/ + ecosconfig: Oi! You've changed the repository! Quitting. + ecosconfig: [Hint: Use --new-srcdir to override.] + % ecosconfig --new-srcdir=/home/hmt/work/ecc/net/ecc/ + ecosconfig: new repository selected: /home/hmt/work/ecc/net/ecc/ + % _ + There's interactive and interactive... ;-) + [*enable anyone? ;-)] + +8) savefiles, if an interface has no implementors then say so. + +9) CDL filenames in the savefile? This might be useful for people + wanting to look at the CDL sources, although all the interesting + information should already be in the savefile. + +10) what happens if a source file is listed for two separate options? + +11) define -format="\\\"%s\\\"" XYZ + This seems to do the wrong thing. Consider: + + cdl_option CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE { + define -format="\\\"%s\\\"" XYZ + ... + } + + The output is: + + #define CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE "16" + #define XYZ_16 + + BLV - may have been fixed on Feb 14th + +12) define -format="\"%s\"" XYZ + + This gives an internal error. Should it? + +13) make-object, check for priorities less than 200. It is not + sensible to build an object after the library has been + constructed. Also check that the target is a .o file. + +14) exported header files. Suppress obvious problems such as + CVS subdirectories and files ending with ~. See pkgconf::locate_files. + +15) diagnostics for inappropriate templates, e.g. the stubs template on simulators. + +16) custom build steps and generating exported header files. + + Priorities of custom build steps that should go before header file + generation? + Use of include_files property. + +17) what happens when several packages specify the same define_header? + +18) evalexception conflicts. What should happen if the node is disabled or inactive? + Especially if it is the default_value expression that is causing the problem. + +Intermediate +------------ + +1) integrate the makefile generation support into libcdl. + +2) implement the Tcl interface to the CDL data, especially tcl_get + and the appropriate Tcl variables. + +3) full definition of custom build steps and the build procedure + generally, including working out what should happen for + compiler flags. + + Dependency analysis in custom build steps. + +4) get safe interpreters working, and make sure that only safe + file I/O operations are permitted. + +5) diagnostic messages. These need to follow a suitable convention and + made generally more comprehensible. + + Huge> Oh yeah, if the cdl file quoted to a script in a package in ecos.db is + Huge> mis-named, there error message is something about "no package + Huge> versions found" - a simple "file not found: + Huge> /masala/hmt/work/ecc/net/ecc/ecc/net/drivers/eth/ebsa285/*/cdl/ebsa285_eth_drivers.cdl" + Huge> would be far more informative. + +6) extend the inference engine to support more operators. + +7) support disabled conflicts. + +8) full implementation of interfaces, including automatic creation. + +9) text aliases for legal_values lists? + +10) savefiles do not list `implements' properties + +11) ecosconfig verbosity. Add --silent and --verbose modes? + +12) header file dependencies. From Jesper and others: + + One alternative way of handling this is the way it's done in Linux + (which happened around 2.2.?, I think, and made for some + phenomenal build speedups): + + grep each source file foo.c for use of CYGxxx_ macros. Cat this list + into .foo.c.config_deps (or similar) with proper mangling so it + becomes a GCC dependency file (for foo.c) on "option files". + + Each option, opt_name, thus adds a dependency on + $build/config_deps/CYGxxx_opt_name. Whenever changing the config, + touch the relevant config_deps/ files. + + In short: when making general source file dependencies, exclude any + dependencies on $install/include/pkgconf/* and replace with + appropriate $build/config_deps/* dependencies. That makes for one + smoooking fast dependency system. It doesn't get finer-grained than + this. + +Major +----- + +1) implement and integrate a proper infrastructure. Generally sort out + the host-side build tree, including making libcdl into a Tcl + package. + +2) sort out the test suites. + +3) std::bad_alloc exceptions. These can happen just about anywhere. + Lots of places need to be hardened against this to avoid memory + leaks. A completely robust system is probably not possible + because cancelling a transaction may involve memory allocation. + +4) general code walk through to look for obvious inefficiencies, e.g. + passing things by value rather than by reference. + +5) generalise the build support for other languages such as Java. + +6) implement a proper database and associated admin tool. + +7) improved autoconfiscation support, in particular finding the + appropriate platform-specific library support. + +8) a suitable naming convention for data members and for arguments to + inline functions should be adopted, to prevent collisions with + #define'd symbols in application land. Possibilities include + _X_ and __X. + +9) work out how to extend Tcl to provide line number information. + +10) i18n support. + +11) currently the data type cdl_int is defined to be 64 bits. This should + probably be changed to arbitrary precision, so that e.g. processors + which can perform 128 bit arithmetic can be adequately supported. + +12) extend the CDL expression syntax with e.g. string operators. This + will impact the inference engine. + +13) add an interactive mode to ecosconfig resolve, allowing users to + confirm or cancel solutions? + +//=========================================================================== +//####COPYRIGHTBEGIN#### +// +// ---------------------------------------------------------------------------- +// Copyright (C) 1999, 2000 Red Hat, Inc. +// +// This file is part of the eCos host tools. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along with +// this program; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// ---------------------------------------------------------------------------- +// +//####COPYRIGHTEND#### +//=========================================================================== +
