Mercurial > flash_v2
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 75:41bf073c0c32 | 76:435cced73e2f |
|---|---|
| 1 TODO List | |
| 2 --------- | |
| 3 | |
| 4 Minor | |
| 5 ----- | |
| 6 | |
| 7 1) savefile support. Add option handling to the remaining savefile | |
| 8 commands, even if no options are currently defined. | |
| 9 | |
| 10 2) remember unrecognised options so that they can be written back | |
| 11 when the savefile is regenerated. Perhaps add option details | |
| 12 to the header? | |
| 13 | |
| 14 3) allow re-parenting below "". Make the orphans container disabled? | |
| 15 | |
| 16 4) get limbo working | |
| 17 | |
| 18 5) make cdl_interfaces into containers? How about cdl_options as well, | |
| 19 to avoid reparenting problems? | |
| 20 | |
| 21 6) allow components and options to be used interchangeably in savefiles. | |
| 22 | |
| 23 7) ecosconfig, create a paths file with details of the source tree | |
| 24 location etc? How about reporting the paths? | |
| 25 | |
| 26 > Huge> How about: put information about the source tree into the savefile BUT you | |
| 27 > Huge> can put | |
| 28 > Huge> ecosconfig --srcdir=/home/hmt/work/ecc/net/ecc/ecc | |
| 29 > Huge> and it'll say "Oi! You've changed the repository! Override [y/n]?" | |
| 30 > Huge> That lets you move them 'round. | |
| 31 > | |
| 32 > That is a possibility, but I am reluctant to add any interactive | |
| 33 > facilities to ecosconfig just yet | |
| 34 | |
| 35 OK, instead: | |
| 36 % ecosconfig --srcdir=/home/hmt/work/ecc/net/ecc/ | |
| 37 ecosconfig: Oi! You've changed the repository! Quitting. | |
| 38 ecosconfig: [Hint: Use --new-srcdir to override.] | |
| 39 % ecosconfig --new-srcdir=/home/hmt/work/ecc/net/ecc/ | |
| 40 ecosconfig: new repository selected: /home/hmt/work/ecc/net/ecc/ | |
| 41 % _ | |
| 42 There's interactive and interactive... ;-) | |
| 43 [*enable anyone? ;-)] | |
| 44 | |
| 45 8) savefiles, if an interface has no implementors then say so. | |
| 46 | |
| 47 9) CDL filenames in the savefile? This might be useful for people | |
| 48 wanting to look at the CDL sources, although all the interesting | |
| 49 information should already be in the savefile. | |
| 50 | |
| 51 10) what happens if a source file is listed for two separate options? | |
| 52 | |
| 53 11) define -format="\\\"%s\\\"" XYZ | |
| 54 This seems to do the wrong thing. Consider: | |
| 55 | |
| 56 cdl_option CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE { | |
| 57 define -format="\\\"%s\\\"" XYZ | |
| 58 ... | |
| 59 } | |
| 60 | |
| 61 The output is: | |
| 62 | |
| 63 #define CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE "16" | |
| 64 #define XYZ_16 | |
| 65 | |
| 66 BLV - may have been fixed on Feb 14th | |
| 67 | |
| 68 12) define -format="\"%s\"" XYZ | |
| 69 | |
| 70 This gives an internal error. Should it? | |
| 71 | |
| 72 13) make-object, check for priorities less than 200. It is not | |
| 73 sensible to build an object after the library has been | |
| 74 constructed. Also check that the target is a .o file. | |
| 75 | |
| 76 14) exported header files. Suppress obvious problems such as | |
| 77 CVS subdirectories and files ending with ~. See pkgconf::locate_files. | |
| 78 | |
| 79 15) diagnostics for inappropriate templates, e.g. the stubs template on simulators. | |
| 80 | |
| 81 16) custom build steps and generating exported header files. | |
| 82 | |
| 83 Priorities of custom build steps that should go before header file | |
| 84 generation? | |
| 85 Use of include_files property. | |
| 86 | |
| 87 17) what happens when several packages specify the same define_header? | |
| 88 | |
| 89 18) evalexception conflicts. What should happen if the node is disabled or inactive? | |
| 90 Especially if it is the default_value expression that is causing the problem. | |
| 91 | |
| 92 Intermediate | |
| 93 ------------ | |
| 94 | |
| 95 1) integrate the makefile generation support into libcdl. | |
| 96 | |
| 97 2) implement the Tcl interface to the CDL data, especially tcl_get | |
| 98 and the appropriate Tcl variables. | |
| 99 | |
| 100 3) full definition of custom build steps and the build procedure | |
| 101 generally, including working out what should happen for | |
| 102 compiler flags. | |
| 103 | |
| 104 Dependency analysis in custom build steps. | |
| 105 | |
| 106 4) get safe interpreters working, and make sure that only safe | |
| 107 file I/O operations are permitted. | |
| 108 | |
| 109 5) diagnostic messages. These need to follow a suitable convention and | |
| 110 made generally more comprehensible. | |
| 111 | |
| 112 Huge> Oh yeah, if the cdl file quoted to a script in a package in ecos.db is | |
| 113 Huge> mis-named, there error message is something about "no package | |
| 114 Huge> versions found" - a simple "file not found: | |
| 115 Huge> /masala/hmt/work/ecc/net/ecc/ecc/net/drivers/eth/ebsa285/*/cdl/ebsa285_eth_drivers.cdl" | |
| 116 Huge> would be far more informative. | |
| 117 | |
| 118 6) extend the inference engine to support more operators. | |
| 119 | |
| 120 7) support disabled conflicts. | |
| 121 | |
| 122 8) full implementation of interfaces, including automatic creation. | |
| 123 | |
| 124 9) text aliases for legal_values lists? | |
| 125 | |
| 126 10) savefiles do not list `implements' properties | |
| 127 | |
| 128 11) ecosconfig verbosity. Add --silent and --verbose modes? | |
| 129 | |
| 130 12) header file dependencies. From Jesper and others: | |
| 131 | |
| 132 One alternative way of handling this is the way it's done in Linux | |
| 133 (which happened around 2.2.?, I think, and made for some | |
| 134 phenomenal build speedups): | |
| 135 | |
| 136 grep each source file foo.c for use of CYGxxx_ macros. Cat this list | |
| 137 into .foo.c.config_deps (or similar) with proper mangling so it | |
| 138 becomes a GCC dependency file (for foo.c) on "option files". | |
| 139 | |
| 140 Each option, opt_name, thus adds a dependency on | |
| 141 $build/config_deps/CYGxxx_opt_name. Whenever changing the config, | |
| 142 touch the relevant config_deps/ files. | |
| 143 | |
| 144 In short: when making general source file dependencies, exclude any | |
| 145 dependencies on $install/include/pkgconf/* and replace with | |
| 146 appropriate $build/config_deps/* dependencies. That makes for one | |
| 147 smoooking fast dependency system. It doesn't get finer-grained than | |
| 148 this. | |
| 149 | |
| 150 Major | |
| 151 ----- | |
| 152 | |
| 153 1) implement and integrate a proper infrastructure. Generally sort out | |
| 154 the host-side build tree, including making libcdl into a Tcl | |
| 155 package. | |
| 156 | |
| 157 2) sort out the test suites. | |
| 158 | |
| 159 3) std::bad_alloc exceptions. These can happen just about anywhere. | |
| 160 Lots of places need to be hardened against this to avoid memory | |
| 161 leaks. A completely robust system is probably not possible | |
| 162 because cancelling a transaction may involve memory allocation. | |
| 163 | |
| 164 4) general code walk through to look for obvious inefficiencies, e.g. | |
| 165 passing things by value rather than by reference. | |
| 166 | |
| 167 5) generalise the build support for other languages such as Java. | |
| 168 | |
| 169 6) implement a proper database and associated admin tool. | |
| 170 | |
| 171 7) improved autoconfiscation support, in particular finding the | |
| 172 appropriate platform-specific library support. | |
| 173 | |
| 174 8) a suitable naming convention for data members and for arguments to | |
| 175 inline functions should be adopted, to prevent collisions with | |
| 176 #define'd symbols in application land. Possibilities include | |
| 177 _X_ and __X. | |
| 178 | |
| 179 9) work out how to extend Tcl to provide line number information. | |
| 180 | |
| 181 10) i18n support. | |
| 182 | |
| 183 11) currently the data type cdl_int is defined to be 64 bits. This should | |
| 184 probably be changed to arbitrary precision, so that e.g. processors | |
| 185 which can perform 128 bit arithmetic can be adequately supported. | |
| 186 | |
| 187 12) extend the CDL expression syntax with e.g. string operators. This | |
| 188 will impact the inference engine. | |
| 189 | |
| 190 13) add an interactive mode to ecosconfig resolve, allowing users to | |
| 191 confirm or cancel solutions? | |
| 192 | |
| 193 //=========================================================================== | |
| 194 //####COPYRIGHTBEGIN#### | |
| 195 // | |
| 196 // ---------------------------------------------------------------------------- | |
| 197 // Copyright (C) 1999, 2000 Red Hat, Inc. | |
| 198 // | |
| 199 // This file is part of the eCos host tools. | |
| 200 // | |
| 201 // This program is free software; you can redistribute it and/or modify it | |
| 202 // under the terms of the GNU General Public License as published by the Free | |
| 203 // Software Foundation; either version 2 of the License, or (at your option) | |
| 204 // any later version. | |
| 205 // | |
| 206 // This program is distributed in the hope that it will be useful, but WITHOUT | |
| 207 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 208 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
| 209 // more details. | |
| 210 // | |
| 211 // You should have received a copy of the GNU General Public License along with | |
| 212 // this program; if not, write to the Free Software Foundation, Inc., | |
| 213 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
| 214 // | |
| 215 // ---------------------------------------------------------------------------- | |
| 216 // | |
| 217 //####COPYRIGHTEND#### | |
| 218 //=========================================================================== | |
| 219 |
