OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [host/] [libcdl/] [TODO] - Blame information for rev 790

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
                                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
   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.
24
 
25
6) allow components and options to be used interchangeably in savefiles.
26
 
27
7) ecosconfig, create a paths file with details of the source tree
28
   location etc? How about reporting the paths?
29
 
30
   >     Huge> How about: put information about the source tree into the savefile BUT you
31
   >     Huge> can put
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.
35
   >
36
   > That is a possibility, but I am reluctant to add any interactive
37
   > facilities to ecosconfig just yet
38
 
39
   OK, instead:
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/
45
        % _
46
   There's interactive and interactive... ;-)
47
   [*enable anyone? ;-)]
48
 
49
8) savefiles, if an interface has no implementors then say so.
50
 
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.
54
 
55
10) what happens if a source file is listed for two separate options?
56
 
57
11) define -format="\\\"%s\\\"" XYZ
58
    This seems to do the wrong thing. Consider:
59
 
60
    cdl_option CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE {
61
        define -format="\\\"%s\\\"" XYZ
62
        ...
63
    }
64
 
65
    The output is:
66
 
67
    #define CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE "16"
68
    #define XYZ_16
69
 
70
    BLV - may have been fixed on Feb 14th
71
 
72
12) define -format="\"%s\"" XYZ
73
 
74
    This gives an internal error. Should it?
75
 
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.
79
 
80
14) exported header files. Suppress obvious problems such as
81
    CVS subdirectories and files ending with ~. See pkgconf::locate_files.
82
 
83
15) diagnostics for inappropriate templates, e.g. the stubs template on simulators.
84
 
85
16) custom build steps and generating exported header files.
86
 
87
    Priorities of custom build steps that should go before header file
88
    generation?
89
    Use of include_files property.
90
 
91
17) what happens when several packages specify the same define_header?
92
 
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.
95
 
96
19) add diagnostic callback support to the inference engine so that I
97
    can figure out what is going on.
98
 
99
20) make version comparison completely case insensitive, to avoid
100
    problems on some file systems.
101
 
102
21) configure magic to cope with Debian TCL organization.
103
    See http://sourceware.cygnus.com/ml/ecos-discuss/2000-06/msg00094.html
104
 
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
108
 
109
Intermediate
110
------------
111
 
112
1) integrate the makefile generation support into libcdl.
113
 
114
2) implement the Tcl interface to the CDL data, especially tcl_get
115
   and the appropriate Tcl variables.
116
 
117
3) full definition of custom build steps and the build procedure
118
   generally, including working out what should happen for
119
   compiler flags.
120
 
121
   Dependency analysis in custom build steps.
122
 
123
4) get safe interpreters working, and make sure that only safe
124
   file I/O operations are permitted.
125
 
126
5) Improve diagnostic messages, including line numbers.
127
 
128
6) extend the inference engine to support more operators.
129
 
130
7) support disabled conflicts.
131
 
132
8) full implementation of interfaces, including automatic creation.
133
 
134
9) text aliases for legal_values lists?
135
 
136
10) savefiles do not list `implements' properties
137
 
138
11) ecosconfig verbosity. Add --silent and --verbose modes?
139
 
140
12) header file dependencies. From Jesper and others:
141
 
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):
145
 
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".
149
 
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.
153
 
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
158
     this.
159
 
160
13) friend packages, allowing one package to see the implementation
161
    details of another. Also, handle documentation links between these.
162
 
163
14) API clean-up. Eliminate the confusion between "value" and the data part of
164
    a bool/data pair.
165
 
166
Major
167
-----
168
 
169
1) implement and integrate a proper infrastructure. Generally sort out
170
   the host-side build tree, including making libcdl into a Tcl
171
    package.
172
 
173
2) sort out the test suites.
174
 
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.
179
 
180
4) general code walk through to look for obvious inefficiencies, e.g.
181
   passing things by value rather than by reference.
182
 
183
5) generalise the build support for other languages such as Java.
184
 
185
6) implement a proper database and associated admin tool.
186
 
187
7) improved autoconfiscation support, in particular finding the
188
   appropriate platform-specific library support.
189
 
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
193
   _X_ and __X.
194
 
195
9) work out how to extend Tcl to provide line number information.
196
 
197
10) i18n support.
198
 
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.
202
 
203
12) extend the CDL expression syntax with e.g. string operators. This
204
    will impact the inference engine.
205
 
206
13) add an interactive mode to ecosconfig resolve, allowing users to
207
    confirm or cancel solutions?
208
 
209
//===========================================================================
210
// ####ECOSHOSTGPLCOPYRIGHTBEGIN####
211
// -------------------------------------------
212
// This file is part of the eCos host tools.
213
// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
214
//
215
// This program is free software; you can redistribute it and/or modify
216
// it under the terms of the GNU General Public License as published by
217
// the Free Software Foundation; either version 2 or (at your option) any
218
// later version.
219
//
220
// This program is distributed in the hope that it will be useful, but
221
// WITHOUT ANY WARRANTY; without even the implied warranty of
222
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
223
// General Public License for more details.
224
//
225
// You should have received a copy of the GNU General Public License
226
// along with this program; if not, write to the
227
// Free Software Foundation, Inc., 51 Franklin Street,
228
// Fifth Floor, Boston, MA  02110-1301, USA.
229
// -------------------------------------------
230
// ####ECOSHOSTGPLCOPYRIGHTEND####
231
//===========================================================================
232
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.