Hello!

Since about July of 2018, I've been trying to design an interpreter library
for the CMake language, common for the cmake, cpack, and ctest tools. It
was my idea that I could create an extensible library for the CMake
project, that could make it easier to add commands, generators, and
integration into other scripting languages.

Today, I'm calling it quits. It turns out that, even after retrying several
times with fewer requirements, that it's just too much work for one person
(probably too much for two or three people as well.) I've uploaded all the
repositories of the several attempts I've made at doing this.

https://gitlab.kitware.com/tay10r/cmake-interpretation

The cmake-interpretation is probably the furthest I've taken any of the
projects, and was the first attempt I made at the idea. I believe I posted
this project in the mailing list as cmake-lang when I was first starting it
out. See tag 'last-known-working-state' if you try to build it.

https://gitlab.kitware.com/tay10r/cmEngine

The cmEngine project was written once in C++ and then over again in C. The
version I uploaded is the C version. The cmEngine project is neat because
the interpreter can entirely be sandboxed and the testing for it is very
elaborate (80% test coverage.) I would say this project has the best
foundation. It's also got the most documentation.

https://gitlab.kitware.com/tay10r/cmlang

This is the latest attempt at the redesign. This version has the fastest
lexer+parser by far. Rudimentary testing indicated to me that the
lexer+parser beat the one in original CMake project by a decent margin.
This is probably due to the use of memory mapping the source file and fewer
number of calls to malloc. The diagnostics in this project are probably the
best and most expressive.

Feel free to pick apart these projects anyway you choose to. I'm fine with
any of them being relicensed to Apache 2.0, MIT, or BSD (in that order of
preference) if anyone decides to use them.
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake-developers

Reply via email to