embedded-scripting-languages
embedded-scripting-languages copied to clipboard
Please add ZetScript in your list
Hi dbohdan,
Please add Zetscript programming language (is a quite new).
URL: http://zetscript.org License: MIT GC: Ref. Counting Notes: ZetScript is a programming language and comes with and API that allows bind your C++ code into script side.
Thanks!
Hi! I need to ask you a few questions before I can add ZetScript.
- Do you have a public source code repository?
- What is the history of this programming language? I see that its first public release had version 1.0.0. Was ZetScript used anywhere before this release?
Hi dbohdan,
Sure! I response your answers bellow,
- I have ZetScript in github but as private repository by the moment. The source with latest source can be downloaded from the webpage.
- First version was 1.1.3 and the latest is 1.3.0. These are the changes in each release through the time,
- 2018-04-20 ZetScript 1.3.0: Has been implemented an interactive console (zs.exe), it has improve virtual machine speed and a minor bug fixes. (see HISTORY for more information). Added performance test comparison with Lua script language in this article.
- 2018-02-21 ZetScript 1.2.0: It has some features and a major bug fix so, as far I could test, is stable version. Despite I prefer version 1.1.3 I don't recommend use it because it doesn't work on virtual classes (it has segmentation fault as a hell) and also it doesn't work passing float for functions with 2 or more arguments on x64 builds.
- 2017-12-01 ZetScript 1.1.3: First release
Do you plan on making the repository public? The commit history would help anyone who is interested in the language assess its maturity. You mention segmentation faults. How common are they at this point? Would you use ZetScript in a production application?
Edit: Fixed a typo.
Hi dbohdan, I think I will put in public. The reason I didn't it was to avoid many fixes, updates,etc suggestions from git. I put a forum instead but currently is almost dead... so I think yes. I will change to public.
About the point of segmentation fault... The first version was the first and I found some big problems with tests I did later. I can say that the 1.1.3 version was perfect for me but due functionallity problems I had to change a little bit the way of binding C funcions/variable class members. I can say that the 1.3.0 fixes all problems I discovered until now.
I did a little game engine usign ZetScript and SDL2. I share the link bellow,
https://www.codeproject.com/Articles/1215529/Game-engine-using-SDL-and-ZetScript
About the question "Would you use ZetScript a production application?" I could say yes but I don't say yes in 100%. I adapted ZetScript in a big project and it fits well. Performance is ok not so quick as Lua but acceptable. Lua is 2.2 times faster than ZetScript usign a Fibonacci calculation as test. In other hand, it can bind C functions/varibles in a single line of code.
All right, thanks for clarifying that. It seems that ZetScript is already practically useful, but not yet mature enough for me to recommend it to the list's readers. With that in mind, I'll do what I normally do in such cases. I'll keep the issue open and check on ZetScript again in about six months.
I agree with you dbohdan, and thanks so much for your feedback!! I forgot to mention as a additional information that ZetScript is like Chaiscript more or less but it has a Virtual Machine. In other hand Chaiscript has a high embedding on C++ type whereas ZetScript is limited on some types.
Let's wait for 6 months and let's see how it fits for the developers.
Thanks again.
You're welcome! I wish you the best with your project.
Closing, since I see no commits to ZetScript since 2018. Feel free to resubmit if you resume work on it.
Hi @dbohdan , Currently I doing the commits in the develop branch. I did a restructure of the code and a detailed of documentation and examples. I expect do a merge to master branch on the end of 2023. Thanks to be care about and sorry to haven't give you any news
All right! There is absolutely no need for you to apologize. You are under no pressure from me.
Hi and happy new year @dbohdan , Just to update you that I've released a ZetScript 2.0 this week. Those are the main changes
- Massive update that rewrites a internal architecture, organize and clean code
- VM speed up ~x2.5
- VM save memory stack ~x2
- Optimize size/compile times ~x2
- Implements multiple Return/Assignments
- Implements arguments with options: default, variable arguments and by reference
- Implements setter/getter for member variables
- Implements keywords 'const'
- Implements operators 'in','typeof'
- Implements builtin iterators for String, Vector and Objects
- Implements builtin modules: 'System', 'Math', 'Json' and 'DateTime'
- The use of "function" keyword on class function members are not mandatory
- switch-case eval expressions
- Implements builtin concatenation with vector and object types through operator '+'
- Full documentation and working examples
You can see all changes made in the CHANGELOG.md
Happy New Year, and congratulations on a new release! I have added ZetScript.