Preprocessor:#include

What would you like to see in CSPro?
Post Reply
htuser
Posts: 543
Joined: December 19th, 2011, 6:26 pm
Location: Silver Spring Area, MD, USA

Preprocessor:#include

Post by htuser » September 24th, 2021, 2:06 am

Dear CSPro Developer Team,
Problem overview
For the latest three years i faced the wall of the ordering issue when dealing with external logic files. This avoid me to have more organized CSPro librairies.

Usually, opposite to ODK family or Survey Solutions, it takes so much time to develop a CAPI using CSPro... But, CSPro give application developer great control and allow us doing more advanced and serious applications. As i mentioned it to a Survey Solutions forum, Data Science/engineering require strong programming. And CSPro and Blaise are only the two know CAPI frameworks who give apps developers an environment to develop this strong programming. With the next CSPro <-> JavaScript interface, this will open an univers of freedom to CSProusers.

However, if we can organize CSPro codes into functional libraries this can cut development times and we can be more productive. As Greg already explain me, it's a question of the compilation technology: CSPro use an old fashion one pass compiler... A well know issue of one pass compiler is the lack of the possibility to call complexes functions inside each other when the called function is located after, or in external logic files included after.
The partial solution
Since CSPro already implement preprocessor in logic, i think it would not be so complicated. By adding the #include preprocessor directive keyword we can bypass the ordering issue. (https://en.cppreference.com/w/cpp/preprocessor/include)

If implementing multiple pass compiler and allow us to define user defined object will standardize the CSPro logic in the long run, #include can boost us in the short term.
Thanks in advance for taking my suggestion in consideration.

Post Reply