Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design preparation for native semantics #44

Open
wants to merge 33 commits into
base: master
Choose a base branch
from

Conversation

vmatare
Copy link
Collaborator

@vmatare vmatare commented Mar 26, 2023

This is mainly a minor redesign of the Reference<...> template. It adds a template parameter that specifies the argument type (Expression or Value). A Reference<T, ArgsT> with an ArgsT = Value is also known as a Grounding. This, along with some other internal restructuring is preparation for the native semantics, which is still very much WIP. However we need to bring the design changes into master a little sooner so we don't run into conflicts later.

The goal here is also to enable end-to-end testing (i.e. run the ctest-integrated golog++ test programs) in the CI. This should also simplify the manual installation procedure by integrating the ReadyLog interpreter with the semantics (as a git submodule) and by using RPATH to deal with broken eclipse setups (as they usually are).

vmatare and others added 26 commits March 19, 2023 16:58
In preparation for the native semantics, we need more flexibility in
defining generic template instantiations for the Semantics classes. This
brings some minor incompatibilities for semantics implementations that
use partial specializations for things like Reference<T> and
EffectAxiom<T>.
not used or implemented currently
it's very readylog-specific and won't necessarily be useful for other
semantics impls
Same as the ExecutionContext, specific to readylog.
The Reference< > template gained a new parameter for the argument type.
It can be an arbitrary Expression or a Value. There is also a new,
specific event type for use with the exog queue, which makes use of
this new Reference<T, Value> (i.e. Grounding<T>).

This change may cause some minor breakage in downstream code, but it
should be straightforward to fix because the change is making compiler
errors more specific and adds some additional type safety around the
handling of events.
Want to stay compat with clang.
Preparation for moving list operations out of procedural.*
@vmatare vmatare changed the title Vmatare/native semantics native semantics Mar 26, 2023
@vmatare vmatare changed the title native semantics Design preparation for native semantics Mar 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant