Skip to content

Commit 3fca245

Browse files
authored
Merge pull request #52 from bmwcarit/release-1-4-1
Oss release v1.4.1 created 2023-01-16-14-13
2 parents d7702de + 8f31df3 commit 3fca245

File tree

18 files changed

+102
-15
lines changed

18 files changed

+102
-15
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ jobs:
2727
shell: bash
2828
working-directory: ${{runner.workspace}}/build
2929
run: |
30-
sudo apt-get install libgles2-mesa-dev libx11-dev
30+
sudo apt-get update && sudo apt-get -y --no-install-recommends install \
31+
libgles2-mesa-dev libx11-dev
3132
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
3233
-Dramses-logic_PACKAGE_TYPE=DEB
3334
cmake --build . --target package --config $BUILD_TYPE

.github/workflows/test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ jobs:
3030

3131
- name: Install GL/X11 packages for rendering (Linux only)
3232
run: |
33-
sudo apt-get install libgles2-mesa-dev libx11-dev
33+
sudo apt-get update && sudo apt-get -y --no-install-recommends install \
34+
libgles2-mesa-dev libx11-dev
3435
if: ${{ contains(matrix.os, 'ubuntu') }}
3536

3637
- name: Install clang and clang-tidy

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
# Unreleased
44

5+
# v1.4.1
6+
7+
**CHANGED**
8+
9+
* Upgrade ramses from 27.0.126 to 27.0.128 (patchfix)
10+
11+
**FIXED**
12+
13+
* Fixed ABI break with LogicEngine::createLuaInterface, keeping old (deprecated) version for backcompatibility
14+
* Deprecated version of LogicEngine::createLuaInterface ignores modules declared in Lua script to keep old behavior
15+
516
# v1.4.0
617

718
**ADDED**

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ cmake_minimum_required(VERSION 3.13)
1515

1616
set(RLOGIC_VERSION_MAJOR 1)
1717
set(RLOGIC_VERSION_MINOR 4)
18-
set(RLOGIC_VERSION_PATCH 0)
18+
set(RLOGIC_VERSION_PATCH 1)
1919

2020
set(RLOGIC_VERSION ${RLOGIC_VERSION_MAJOR}.${RLOGIC_VERSION_MINOR}.${RLOGIC_VERSION_PATCH})
2121
set(ramses-logic_VERSION "${RLOGIC_VERSION}" CACHE STRING "Ramses Logic version" FORCE)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ existing files exported with Logic Engine version **W** or newer (Binary file co
4040

4141
|Logic | Included Ramses version | Minimum required Ramses version | Binary file compatibility |
4242
|----------|-------------------------------|------------------------------------|------------------------------|
43+
|v1.4.1 | 27.0.128 | 27.0.102 | >= 1.0.0, F-Levels 01 - 05 |
4344
|v1.4.0 | 27.0.126 | 27.0.102 | >= 1.0.0, F-Levels 01 - 05 |
4445
|v1.3.0 | 27.0.126 | 27.0.102 | >= 1.0.0, F-Levels 01 - 04 |
4546
|v1.2.2 | 27.0.125 | 27.0.102 | >= 1.0.0, F-Levels 01 - 03 |

ci/scripts/code_style_checker/check_all_styles.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def main():
5858
shared_blacklist = binary_files | {
5959
r'\.git',
6060
r'\.gitignore',
61+
r'\.lfsconfig',
6162
r'gitconfig$',
6263
r'xorg.conf',
6364
r'Xwrapper.config',

doc/sphinx/api.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,23 @@ the specific use-case which needs optimizing. Refer to the
691691
`google-benchmark docs <https://github.com/google/benchmark>`_ for hints how to
692692
design good benchmarks, to set the time measurement units, derive O-complexity, etc.
693693

694+
-------------------------
695+
Optimizing file size
696+
-------------------------
697+
698+
It's possible to reduce the file size of the exported LogicEngine data by storing the bytecode of the
699+
Lua scripts and modules, instead of the source code. This might sound very attractive, but it has two
700+
major caveats:
701+
702+
* Lua bytecode is notnriously vulnerable to malicious attacks
703+
* Bytecode is architecture-specific, i.e. you can't run ARM bytecode on a x86 processor
704+
705+
In order to provide a good mix between flexibility and performance, the LogicEngine allows choosing what
706+
to be stored when saving into a binary file: only the source code, only the bytecode, or both. While the first
707+
option is the safest and most robust, it is also the slowest. Storing both source and binary will offer both fast loading
708+
when the architecture matches and a fallback solution when it doesn't, but it results in larger binary files. Choose
709+
an option which suits the needs of your application. Read more in :func:`rlogic::SaveFileConfig::setLuaSavingMode`.
710+
694711
=========================
695712
List of all examples
696713
=========================

external/ramses

Submodule ramses updated 49 files

include/ramses-logic/LogicEngine.h

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,25 @@ namespace rlogic
191191
RLOGIC_API LuaInterface* createLuaInterface(
192192
std::string_view source,
193193
std::string_view interfaceName,
194-
const LuaConfig& config = {});
194+
const LuaConfig& config);
195+
196+
/**
197+
* Deprecated! Use #createLuaInterface(std::string_view, std::string_view, const LuaConfig&) instead.
198+
*
199+
* Same as #createLuaInterface(std::string_view, std::string_view, const LuaConfig&) but without
200+
* support for using #rlogic::LuaModule in the interface, also will ignore any \c modules
201+
* declaration within the provided interface source.
202+
*
203+
* @deprecated
204+
* @param source the Lua source code
205+
* @param interfaceName name to assign to the interface once it's created. This name must be unique!
206+
* @return a pointer to the created object or nullptr if
207+
* something went wrong during creation. In that case, use #getErrors() to obtain errors.
208+
* The interface can be destroyed by calling the #destroy method
209+
*/
210+
RLOGIC_API LuaInterface* createLuaInterface(
211+
std::string_view source,
212+
std::string_view interfaceName);
195213

196214
/**
197215
* Creates a new #rlogic::LuaModule from Lua source code.

lib/impl/LogicEngine.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,13 @@ namespace rlogic
111111

112112
LuaInterface* LogicEngine::createLuaInterface(std::string_view source, std::string_view interfaceName, const LuaConfig& config)
113113
{
114-
return m_impl->createLuaInterface(source, *config.m_impl, interfaceName);
114+
return m_impl->createLuaInterface(source, *config.m_impl, interfaceName, true);
115+
}
116+
117+
LuaInterface* LogicEngine::createLuaInterface(std::string_view source, std::string_view interfaceName)
118+
{
119+
// deprecated version of interface creation does not verify modules declared in script
120+
return m_impl->createLuaInterface(source, {}, interfaceName, false);
115121
}
116122

117123
LuaModule* LogicEngine::createLuaModule(std::string_view source, const LuaConfig& config, std::string_view moduleName)

0 commit comments

Comments
 (0)