Comments (4)
Some more insights related to JSON output — but not to the tests actually:
We want to (and already do) output reusable traces of programs when compiled with --trace
; we already have a printer for them based on JSON that is used for the French benefits visualisation interface. And these traces do include embedded runtime values, which we already have a printer for in the OCaml / JS backend!
So the question could actually be, do we want to extend this trace printing to the other backends, and do we want to make it more accessible or not (e.g. to print computation results) ?
See also my suggestion of using ATD to have a shared definition of this format across backends.
from catala.
I think it could be quite useful to me to have a normalised output format. However, because I generate input structures as well as output structures, I'm wondering if it would be possible for runtimes to also take input structures as input. Do you think it would be easier for runtimes to take input JSONs or for me to output valid surface language code ?
from catala.
Definitely we don't want to include a parser in the runtime, which would be much more complex, and doesn't fit with the use-cases we target: catala programs are expected to be run natively as libraries, rather than providing APIs.
Of course, for final needs, one can easily build an API server around the core computation done by Catala; but that should be left to the application as it certainly will need to be specialised for the use-case. We might provide tools for that, but it shouldn't be part of the runtime.
We are actually discussing, for the same reasons, the relevance of JSON output (although most of this discussion was offline), and were leaning against it, but the need for traces might affect the decision.
from catala.
I think #585 supersedes this, so closing now.
from catala.
Related Issues (20)
- Continuation-based message module can lead to performance decrease HOT 4
- Missing runtime embedding for tuples HOT 1
- Bug in make website-assets.tar HOT 2
- Improve the output of clerk test HOT 2
- Generate loaders for external modules
- Write a "get started" section of the README.md or a separate GETSTARTED.md file
- Invent Catala writing exercices to complement the tutorial
- Add a list sorting builtin to the language
- Add a list folding surface syntax HOT 1
- Add test case UI aimed at non-programmers
- C backend without heap allocations
- Abstract syntax tree serialization to JSON for IDE plugins HOT 1
- Static analysis for usage of input atoms
- Improve the format of the computation trace
- LSP implementation
- TOML project specification file for Clerk
- Make Catala compatible with Oracle Policy Automation "what-ifs" testing Excel workbooks
- Add a clerk test launch and report UI
- Interactive debugguer for Catala HOT 1
- Trace selectors
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from catala.