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

feat(miniooni): minimal JavaScript-ing capabilities #1437

Merged
merged 10 commits into from
Dec 13, 2023
Merged

Conversation

bassosimone
Copy link
Contributor

@bassosimone bassosimone commented Dec 13, 2023

This diff implements part of my SplinterCon JavaScript demo (#1423). We only include minimal functionality here. The bare minimum to be useful when doing research.

Closes ooni/probe#2647.

Because this is experimental code and there's no commitment to productionize it, I have decided to create a specific subpackage internal/x that should host our in-tree experiments. (I will also mode dslx in there.)

This commit ensures we can parse integer values provided using
OONI Run v2 descriptors into actual integers.

Values are originally parsed as float64, so we need to add a
specific conversion case for that scenario.
Noticed when preparing the SplinterCon demo. We should have the same
name for the engine state directory for miniooni and ooniprobe.

Otherwise, we need to tell people about this difference.
This is a minimal JavaScript interpreter invokable from miniooni,
which seems helpful when doing research in difficult environments where
an ordinary compile, ship, test, edit, compile loop is too slow.

To implement this interpreter, we use a special purpose DSL that is
easier to use from other languages than the current one.

Originally at: https://github.com/bassosimone/2023-12-09-ooni-javascript.
@bassosimone bassosimone requested a review from hellais as a code owner December 13, 2023 16:40
@bassosimone bassosimone merged commit 7a2c9fd into master Dec 13, 2023
9 of 11 checks passed
@bassosimone bassosimone deleted the splintercon3 branch December 13, 2023 17:07
bassosimone added a commit that referenced this pull request Dec 13, 2023
This is a follow-up from merging #1437

Related issue: ooni/probe#2647
bassosimone added a commit that referenced this pull request Dec 13, 2023
This is a follow-up from merging
#1437 to also mark `dslx` as
experimental.

Related issue: ooni/probe#2647
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this pull request Feb 13, 2024
This diff implements part of my SplinterCon JavaScript demo
(ooni#1423). We only include minimal
functionality here. The bare minimum to be useful when doing research.

Closes ooni/probe#2647.

Because this is experimental code and there's no commitment to
productionize it, I have decided to create a specific subpackage
`internal/x` that should host our in-tree experiments. (I will also mode
`dslx` in there.)
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this pull request Feb 13, 2024
This is a follow-up from merging
ooni#1437 to also mark `dslx` as
experimental.

Related issue: ooni/probe#2647
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.

miniooni: add minimal JavaScript-ing capabilities
1 participant