Giter Site home page Giter Site logo

gaijinentertainment / quirrel Goto Github PK

View Code? Open in Web Editor NEW
144.0 12.0 30.0 3.16 MB

Quirrel - Gaijin Entertainment dynamic script language

Home Page: http://quirrel.io

License: MIT License

CMake 0.21% C 0.82% Squirrel 43.17% C++ 55.42% Batchfile 0.01% Python 0.37%
quirrel squirrel

quirrel's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quirrel's Issues

Get script function from native not working anymore with sq_compile()

With the removal of this part:
fd46233#diff-3ce5ab9909a4ebc05d8c2da9a58ebc7f92713705f952b89b80e8619e9ae8900dL387-L398

the ability to get script functions with sqrat broke for me (Using the latest sqrat with m_rootTable->GetFunction()).
The root table keys before the commit included the "function" lines from scripts, afterwards it seems to be only native. Is there another way to get the functions (for Sqrat::Function)? Couldn't find it in the documentation.

Thanks!

string_view is not enabled under visual studio (__cplusplus is always 199711L)

#if __cplusplus >= 201703L
using string_view = std::basic_string_view;
#else
using string_view = string;
#endif

"The /Zc:__cplusplus compiler option enables the __cplusplus preprocessor macro to report an updated value for recent C++ language standards support. By default, Visual Studio always returns the value 199711L for the __cplusplus preprocessor macro."
https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus

Seems to be the same for sqrat


Even if the __cplusplus is correct the default C++ language standard for VS 2019 is C++14.
cmake has set(CMAKE_CXX_STANDARD 11) but it should probably be 17 now (for string_view)?

Evaluate using Profile-Guided Optimization (PGO) and LLVM BOLT

Hi!

Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects. The results are here. E.g. PGO results for LLVM-related tooling are here. According to the tests, PGO usually helps with the compiler and compiler-like workloads (like static analysis) - e.g. Clang gets +20% compilation speed with PGO, CPython achieves +10% in pybench. So I think optimizing Quirrel tooling (like VM, compiler and the static analyzer) with PGO would be a good idea at least to try.

I can suggest the following action points:

  • Perform PGO benchmarks on the Quirrel tooling. If it shows improvements - add a note about possible improvements in Quirrel's performance with PGO.
  • Providing an easier way (e.g. a build option) to build scripts with PGO can be helpful for the end-users and maintainers since they will be able to optimize the Quirrel tools according to their own workloads.
  • Optimize pre-built binaries with PGO

Testing Post-Link Optimization techniques (like LLVM BOLT) would be interesting too (CPython, Clang, and Rustc already use BOLT as an addition to PGO) but I recommend starting from the usual PGO.

Here are some examples of how PGO optimization is integrated in other projects:

The same issue was created for daScript since these two projects can have different lifecycles, priorities, and PGO can be tested and integrated into them independently.

quirrel failed to compile with MinGW

The problem is unrelated to msys2 as previously thought. Using cmake with ninja generator and a standalone MinGW distro (winlibs.com in my case), it failed to compile. Too many output displayed on the screen, I saw full of warnings but can't find any errors so I don't know what is the errors that caused this. Maybe I just missed it.

sqratLite.h (from sqmodules.h) clashes with sqrat

A lot of xxx already declared messages.

The comment at the top in sqmodules.h also states:
/*
This is not a production code, but a demonstration of concept of modules
*/

is this still the case? :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.