Up to now I have been trying to decide the best way to name the various modules that comprise MSB. While the original code generally used the first character or two as to what part of the system the ‘C’ module played in the system, it has been a bit hard to always figure out where what in.
I have tried a few combinations on file naming for the modules we have written so far, but in general I have not been happy with the results. I think I have decided to change the module names to the form:
xx_yyyy.c
Where ‘xx’ will indicate the section of the system the module relates to such as:
- nf - Numeric function
- sf - String function
- nv - Numeric variable
- sv - String variable
- io - Generic IO
This is only a partial list. As we go forward we will see what other breakdowns we require to ultimately come up with a complete list of module sections.
Have spent some time designing the internal layouts of a memory file equivalent for MSB. Historically I have implemented these as binary searches on a sorted list of records. While this provides for fast look-ups, WRITE require the list to be shuffled in order to add/remove entries from the list and this can be a fairly large overhead for large memory files.
What I think I’m going to do for MSB is implement the memory files as “symmetric binary trees” using the generic red-black algorithm which should provide for optimum access time while reducing the insertion/removal overhead. I had considered a splay tree algorithm which works well if the data is being recalled often as it sorts the tree based on most recent access — however I think the red-black algorithm will be better.
I also will likely use this for ”string” based array sub-scripting that I am considering adding to MSB. Although in this case a Splay tree might be better.
While we were in the code today adding some new functions, we took the time to increase the number of new extended directives, variables and/or functions we can add. This table was initially set at 360, but we decided to increase the values to provide for easy addition of more extensions.
While this change was easy to accomplish, we felt it better to do it now than have to stumble onto the preexisting limit and something break in the future.
Today was spent updating all the copyright statements in all the modules in preparation to uploading the CVS repositories on our server. We had to create a small program to pull out all the existing copyright notice information, company name, address, and copyright dates from the existing code and insert a GPL compatible notice along with the original information.
Now that the copyrights have been applied we can take an extract of the initial CVS system and create a new one going forward. We did not want to start with the original code as provided to us since it did contain a variety of externally sourced pieces of code.
We also set up the CVS server (cvsd) with it associated security component. The program ViewCV was installed and configured so that the once we have the initial version complete we can upload it and make it available.
Today we started to add the GPL License agreement to the files and clean up the copyright notices to reflect the change in ownership of the code. The original copyrights have been left intact with the inclusion of the new copyright owner BBSysco.
The goal is to complete the addition of the GPL license by the end of the tomorrow.