Comments (1)
The node readline module has a bit of an issue properly detecting and responding to non-interactive use. In order to get it to pass the tests, you need to call createInterface using the terminal: false
option. Note that you may want to add a command line option for this because for interactive use you will want the readline features (history, line editing, etc).
There are actually a few other implementations that have the same issue: C#, F#, VB.net, and Tcl. The way this is handled in the toplevel Makefile is by setting the RAW environment variable to 1 when calling the implementation run
script during testing:
$ grep RAW Makefile
get_runtest_cmd = $(call get_run_prefix,$(1),$(2),$(if $(filter cs fsharp tcl vb,$(1)),RAW=1,)) ...
You can see how the --raw
option is added in the run script:
$ grep "raw" */run
cs/run:exec mono $(dirname $0)/${STEP:-stepA_mal}.exe ${RAW:+--raw} "${@}"
fsharp/run:exec mono $(dirname $0)/${STEP:-stepA_mal}.exe ${RAW:+--raw} "${@}"
tcl/run:exec tclsh $(dirname $0)/${STEP:-stepA_mal}.tcl ${RAW:+--raw} "${@}"
vb/run:exec mono $(dirname $0)/${STEP:-stepA_mal}.exe ${RAW:+--raw} "${@}"
In case you are curious (and for others who may stumble onto this issue), here is what is happening. The runtest.py script launches the implementation using an interactive pty. Most readline/lineedit implementation detect this properly and will print readline prompt so that the test driver can determine when the implementation is ready for the next test line. However, the implementations I listed above and the readline module in node, do some non-standard way of detecting interactive and come to the conclusion that they are being used in non-interactive mode and so the readline prompt is never actually display and the runtest.py script times out waiting for it.
Hope that helps.
from mal.
Related Issues (20)
- VHDL: defmacro! doesn't modify existing functions HOT 1
- make "test^js^step0" fails -- Fatal error in , line 0 -- Check failed: result.second. HOT 1
- PDFs?
- Somebody should solve Rosetta Code challenges with mal
- Mal in Coq? HOT 2
- Apparently in step 3 'env' is a class or structure type, not an object HOT 2
- Questions on different design from lisp: Mal symbol do not use property lists? HOT 1
- Lots of unanswered merge requests HOT 1
- Why is quasiquote so complicated? HOT 3
- What with `` gensym '' HOT 2
- lexicial versus dynamic HOT 1
- Floats don't work in the python implementation. HOT 2
- Is #mal IRC channel still active? people seems tends to use discord now XD HOT 1
- Should `eval` use the top-level environment? HOT 1
- How is `cond` supposed to work? HOT 2
- Remaining impls to combine eval-ast/macroexpand into eval HOT 10
- common-lisp fails to build HOT 1
- Fix self-hosted test failures HOT 30
- Vala in self-hosted mode (i.e. running mal) has rare memory corruption (probably in throw/try/catch) HOT 1
- Fix powershell and elisp predicate/equality issues revealed by #665 HOT 1
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 mal.