Wiki:
...GOOGLESEARCH...
Page name: Devtools Wishlist [Logged in view] [RSS]
2005-08-15 09:49:34
Last author: petar
Owner: petar
# of watchers: 2
Fans: 0
D20: 3
Bookmark and Share

WishList for Development tools


This page contains a wishlist for the development tools (RML compiler, extended Modelica compiler, Emacs environment, debugger, etc.

Debugger

* Debug binary working as any C/C++ compiled binary, i.e. possible to execute from a shell without getting a prompt. The debugger should then run in fast mode.

* Debugger should in some way indicate last succeded premiss. It is otherwise very hard to follow the program flow, especially if several relations fail in sequence.

* Debugger should be able to run until a fail is encountered. This is very useful since most relations are written such that a fail is a bug, e.g. an uncovered case, etc.

* Remove bug that updates current line in the emacs rmldb mode. For premisses that cover several lines this does not work.

RML compiler

* Better syntax error message format. Now it is hard to read the syntax errors when e.g. a '&' is forgotten. A suggestion is to skip outputting all the tokens that are removed until the parser restarts with a valid grammar. Then if a second or more syntax error occurs that should be printed similarily.

* Allow for more than one type error at the time. It takes too long time to find all the type errors if only a single type error per compilation is detected.

* Implement more of the builtin math functions, e.g. real_tan, real_acos, real_asin, real_atan, etc. Now they are implemented in System.rml, but it is cleaner if they are implemented in RML.

Extended Modelica Compiler


* Allow pattern matching with named arguments. This would allow us to skip writing a lot of underscores for positions not interesting.

* Design and implement support for generics (i.e. like C++ templates). Design goal: It should be possible to reuse the code for a hashtable implementation. It is unclear whether this works today. PA tried to make a generic Hashtable implementation in RML but failed. If this was due to lack of insights in the RML language or limitation in the RML language is unclear.

* Global variables.

PA: This would remove the referential transparency property of a functional language. I would argue that this is not a good idea to add. It is certainly a point to discuss. With a low level imperative language (C/C++) global variables can both be very useful and very dangerous. The question is if we would have the dicipline to use global variables in a good way. The risk is that developers that need global variables implement them in external functions instead.


Tools

* Change the perl hack that outputs latex from .rml files to produce html, so that we get a nice documentation of the code, similar to doxygen.

* Make a tool that transforms the RML-sourcecode to html so that relation-names in code are generated as links to the definition of the relation.


Username (or number or email):

Password:

Show these comments on your site
News about Modelica Community
Help - How does Modelica Community work?