Comments (10)
Good catch! That's definitely a bug. I've pushed a soft test for step8 to get travis to do the coverage to determine which ones are broken:: https://travis-ci.org/kanaka/mal/builds/103705447
Not all of them are broken, for example awk and haskell and correct. The problem is that in EVAL after the call to macroexpand, we should call eval_ast if the macro result is not a list rather than just returning the ast.
from mal.
I assume the following paragraph in guide.md
should be corrected:
* In the evaluator (`EVAL`) before the special forms switch (apply
section), perform macro expansion by calling the `macroexpand`
function with the current value of `ast` and `env`. Set `ast` to the
result of that call. If the new value of `ast` is no longer a list
after macro expansion, then return `ast`, otherwise continue with
the rest of the apply section (special forms switch).
And the process/*.txt files:
EVAL(ast,env):
while true:
if not list?(ast): return eval_ast(ast, env)
ast = macroexpand(ast, env)
if not list?(ast): return ast
switch ast[0]:
'def!: return env.set(ast[1], EVAL(ast[2], env))
...
from mal.
Yep, exactly.
from mal.
I'm not sure why kotlin is marked as having a fix. The test is soft failing on my end. I'll have a fix shortly.
Edit Ok, I guess kotlin works actually. Never mind. What's failing is running the MAL tests using kotlin as the implementation. Is this a bug with MAL-in-MAL then?
from mal.
@ivern yep, the mal-in-mal implementation is one of the ones that needs fixing.
from mal.
I updated the list to reflect what's been done rather than what's been merged.
from mal.
I just merged the PR and pushed updates for the remaining ones. I also made the test mandatory. I'll close this once travis checks out: https://travis-ci.org/kanaka/mal/builds/104991412
from mal.
Before you close it, the process/step{8,9,A}_*.txt
and process/guide.md
should be fixed as discussed above in this issue.
from mal.
Yep, thanks for the reminder.
from mal.
Okay, travis passed and I pushed those minor updates.
from mal.
Related Issues (20)
- Does there exist implementation of emacs written in mal? HOT 1
- Consider merging eval, eval-ast and macroexpand
- Problem Running Tests with Readline Library in C HOT 4
- Newline Escaping HOT 1
- What was used to make the MAL diagram? HOT 1
- what is the minimum requirement for the base language? HOT 1
- Verilog: is there a good reason mal has not been implemented? HOT 1
- 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 1
- Apparently in step 3 'env' is a class or structure type, not an object
- Questions on different design from lisp: Mal symbol do not use property lists?
- Lots of unanswered merge requests
- Why is quasiquote so complicated? HOT 3
- What with `` gensym ''
- lexicial versus dynamic
- Floats don't work in the python implementation.
- Is #mal IRC channel still active? people seems tends to use discord now XD
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.