chromy / ink-proof Goto Github PK
View Code? Open in Web Editor NEWTesting for Ink compilers and runtimes
Home Page: https://chromy.github.io/ink-proof
License: MIT License
Testing for Ink compilers and runtimes
Home Page: https://chromy.github.io/ink-proof
License: MIT License
Hi, thank you for this project,
I'm working on an ink implementation in lua. So far it's very minimal. I find the set of tests / examples in this project very useful.
I have managed to write a driver for my compiler and runtime.
The problem is I use my own datastructure instead of the JSON file so my compiler only works with my runtime and vice versa.
Would you be interested in a PR anyway?
It will fail in the matrix with the other implementations but for me it's useful to test my implementation
Hey there!
First off, thank you so much for this project! I wanted to let you know that we're working on an actual specification for the Ink 1.0.0 runtime, and linked to ink-proof
as the community-standard way of testing! tcannonfodder/ink#8
Let us know if there's anything we can do to help out!
While Blade Ink Rs doesn't currently test itself using Ink Proof, I found an inconsistency between it and other runtimes. bladecoder/blade-ink-rs#4
LIST a = A
LIST b = B
{LIST_ALL(A + B)}
{"inkVersion":21,"root":[["ev",{"VAR?":"A"},{"VAR?":"B"},"+","LIST_ALL","out","/ev","\n",["done",{"#f":5,"#n":"g-0"}],null],"done",{"global decl":["ev",{"list":{},"origins":["a"]},{"VAR=":"a"},{"list":{},"origins":["b"]},{"VAR=":"b"},"/ev","end",null],"#f":1}],"listDefs":{"a":{"A":1},"b":{"B":1}}}
This tests whether LIST_ALL()
on a list containing items from two different origins, returns the sum of all of those origins, or only one of them. I expect A, B
as the output, rather than just A
or just B
.
When running the latest code on master (efdfb70), running proof.py
on Windows results in the following error.
Task exception was never retrieved
future: <Task finished coro=<Job.run() done, defined at proof.py:423> exception=NotImplementedError()>
Traceback (most recent call last):
File "proof.py", line 431, in run
await self.do_work()
File "proof.py", line 445, in do_work
process = await asyncio.create_subprocess_exec(self.command[0], *self.command[1:], stdout=fout, stderr=ferr, stdin=fin)
File "C:\hostedtoolcache\windows\Python\3.7.9\x64\lib\asyncio\subprocess.py", line 217, in create_subprocess_exec
stderr=stderr, **kwds)
File "C:\hostedtoolcache\windows\Python\3.7.9\x64\lib\asyncio\base_events.py", line 1544, in subprocess_exec
bufsize, **kwargs)
File "C:\hostedtoolcache\windows\Python\3.7.9\x64\lib\asyncio\base_events.py", line 462, in _make_subprocess_transport
raise NotImplementedError
NotImplementedError
Task exception was never retrieved
I did a little bit of Googling. Looks like some features of subprocess are not supported on Windows?
https://stackoverflow.com/questions/44633458/why-am-i-getting-notimplementederror-with-async-and-await-on-windows
tiangolo/fastapi#964
It appears there might be some way to use a different back-end implementation or something that will work on Windows, but I don't know enough about python to really say.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.