7 1) savefile support. Add option handling to the remaining savefile
8 commands, even if no options are currently defined.
10 2) remember unrecognised options so that they can be written back
11 when the savefile is regenerated. Perhaps add option details
14 3) allow re-parenting below "". Make the orphans container disabled?
18 5) make cdl_interfaces into containers? How about cdl_options as well,
19 to avoid reparenting problems?
21 cdl_interfaces as containers is actually a problem because interfaces
22 are part of the core, and hence do not know about the existence of
23 options and components.
25 6) allow components and options to be used interchangeably in savefiles.
27 7) ecosconfig, create a paths file with details of the source tree
28 location etc? How about reporting the paths?
30 > Huge> How about: put information about the source tree into the savefile BUT you
32 > Huge> ecosconfig --srcdir=/home/hmt/work/ecc/net/ecc/ecc
33 > Huge> and it'll say "Oi! You've changed the repository! Override [y/n]?"
34 > Huge> That lets you move them 'round.
36 > That is a possibility, but I am reluctant to add any interactive
37 > facilities to ecosconfig just yet
40 % ecosconfig --srcdir=/home/hmt/work/ecc/net/ecc/
41 ecosconfig: Oi! You've changed the repository! Quitting.
42 ecosconfig: [Hint: Use --new-srcdir to override.]
43 % ecosconfig --new-srcdir=/home/hmt/work/ecc/net/ecc/
44 ecosconfig: new repository selected: /home/hmt/work/ecc/net/ecc/
46 There's interactive and interactive... ;-)
49 8) savefiles, if an interface has no implementors then say so.
51 9) CDL filenames in the savefile? This might be useful for people
52 wanting to look at the CDL sources, although all the interesting
53 information should already be in the savefile.
55 10) what happens if a source file is listed for two separate options?
57 11) define -format="\\\"%s\\\"" XYZ
58 This seems to do the wrong thing. Consider:
60 cdl_option CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE {
61 define -format="\\\"%s\\\"" XYZ
67 #define CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE "16"
70 BLV - may have been fixed on Feb 14th
72 12) define -format="\"%s\"" XYZ
74 This gives an internal error. Should it?
76 13) make-object, check for priorities less than 200. It is not
77 sensible to build an object after the library has been
78 constructed. Also check that the target is a .o file.
80 14) exported header files. Suppress obvious problems such as
81 CVS subdirectories and files ending with ~. See pkgconf::locate_files.
83 15) diagnostics for inappropriate templates, e.g. the stubs template on simulators.
85 16) custom build steps and generating exported header files.
87 Priorities of custom build steps that should go before header file
89 Use of include_files property.
91 17) what happens when several packages specify the same define_header?
93 18) evalexception conflicts. What should happen if the node is disabled or inactive?
94 Especially if it is the default_value expression that is causing the problem.
96 19) add diagnostic callback support to the inference engine so that I
97 can figure out what is going on.
99 20) make version comparison completely case insensitive, to avoid
100 problems on some file systems.
102 21) configure magic to cope with Debian TCL organization.
103 See http://sourceware.cygnus.com/ml/ecos-discuss/2000-06/msg00094.html
105 22) add version number #define's to pkgconf/system.h, to allow
106 application code to adapt to different versions of a package.
107 http://sourceware.cygnus.com/ml/ecos-discuss/2000-06/msg00140.html
112 1) integrate the makefile generation support into libcdl.
114 2) implement the Tcl interface to the CDL data, especially tcl_get
115 and the appropriate Tcl variables.
117 3) full definition of custom build steps and the build procedure
118 generally, including working out what should happen for
121 Dependency analysis in custom build steps.
123 4) get safe interpreters working, and make sure that only safe
124 file I/O operations are permitted.
126 5) Improve diagnostic messages, including line numbers.
128 6) extend the inference engine to support more operators.
130 7) support disabled conflicts.
132 8) full implementation of interfaces, including automatic creation.
134 9) text aliases for legal_values lists?
136 10) savefiles do not list `implements' properties
138 11) ecosconfig verbosity. Add --silent and --verbose modes?
140 12) header file dependencies. From Jesper and others:
142 One alternative way of handling this is the way it's done in Linux
143 (which happened around 2.2.?, I think, and made for some
144 phenomenal build speedups):
146 grep each source file foo.c for use of CYGxxx_ macros. Cat this list
147 into .foo.c.config_deps (or similar) with proper mangling so it
148 becomes a GCC dependency file (for foo.c) on "option files".
150 Each option, opt_name, thus adds a dependency on
151 $build/config_deps/CYGxxx_opt_name. Whenever changing the config,
152 touch the relevant config_deps/ files.
154 In short: when making general source file dependencies, exclude any
155 dependencies on $install/include/pkgconf/* and replace with
156 appropriate $build/config_deps/* dependencies. That makes for one
157 smoooking fast dependency system. It doesn't get finer-grained than
160 13) friend packages, allowing one package to see the implementation
161 details of another. Also, handle documentation links between these.
163 14) API clean-up. Eliminate the confusion between "value" and the data part of
169 1) implement and integrate a proper infrastructure. Generally sort out
170 the host-side build tree, including making libcdl into a Tcl
173 2) sort out the test suites.
175 3) std::bad_alloc exceptions. These can happen just about anywhere.
176 Lots of places need to be hardened against this to avoid memory
177 leaks. A completely robust system is probably not possible
178 because cancelling a transaction may involve memory allocation.
180 4) general code walk through to look for obvious inefficiencies, e.g.
181 passing things by value rather than by reference.
183 5) generalise the build support for other languages such as Java.
185 6) implement a proper database and associated admin tool.
187 7) improved autoconfiscation support, in particular finding the
188 appropriate platform-specific library support.
190 8) a suitable naming convention for data members and for arguments to
191 inline functions should be adopted, to prevent collisions with
192 #define'd symbols in application land. Possibilities include
195 9) work out how to extend Tcl to provide line number information.
199 11) currently the data type cdl_int is defined to be 64 bits. This should
200 probably be changed to arbitrary precision, so that e.g. processors
201 which can perform 128 bit arithmetic can be adequately supported.
203 12) extend the CDL expression syntax with e.g. string operators. This
204 will impact the inference engine.
206 13) add an interactive mode to ecosconfig resolve, allowing users to
207 confirm or cancel solutions?
209 //===========================================================================
210 //####COPYRIGHTBEGIN####
212 // ----------------------------------------------------------------------------
213 // Copyright (C) 1999, 2000 Red Hat, Inc.
215 // This file is part of the eCos host tools.
217 // This program is free software; you can redistribute it and/or modify it
218 // under the terms of the GNU General Public License as published by the Free
219 // Software Foundation; either version 2 of the License, or (at your option)
220 // any later version.
222 // This program is distributed in the hope that it will be useful, but WITHOUT
223 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
224 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
227 // You should have received a copy of the GNU General Public License along with
228 // this program; if not, write to the Free Software Foundation, Inc.,
229 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
231 // ----------------------------------------------------------------------------
233 //####COPYRIGHTEND####
234 //===========================================================================