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

Remaining impls to combine eval-ast/macroexpand into eval #657

Open
27 of 29 tasks
kanaka opened this issue Aug 5, 2024 · 38 comments · Fixed by #685
Open
27 of 29 tasks

Remaining impls to combine eval-ast/macroexpand into eval #657

kanaka opened this issue Aug 5, 2024 · 38 comments · Fixed by #685

Comments

@kanaka
Copy link
Owner

kanaka commented Aug 5, 2024

Most implementations have been converted via #592. The following are the remaining implementations to convert:

Swift 2 was originally part of the list but has since been removed from the repo: #688

@kanaka kanaka changed the title Implementations to convert to eval model without eval-ast Implementations to combine eval-ast/macroexpand into eval Aug 6, 2024
@kanaka kanaka changed the title Implementations to combine eval-ast/macroexpand into eval Remaining impls to combine eval-ast/macroexpand into eval Aug 6, 2024
@kanaka
Copy link
Owner Author

kanaka commented Aug 7, 2024

Rust complete: #659

@kanaka
Copy link
Owner Author

kanaka commented Aug 8, 2024

wasm completed with #661

@asarhaddon
Copy link
Contributor

What are the remaining issues with awk bbc-basic elixir erlang forth vhdl ? Commit 0338927 was supposed to include them.
Also, I suggest to add a commet in the zig line refering to #591.

@kanaka
Copy link
Owner Author

kanaka commented Aug 21, 2024

@asarhaddon You're right, I did a grep for eval_ast and macroexpand and didn't look closely enough at the code or review your commit again when making this list. I've added a comment to zig.

@kanaka
Copy link
Owner Author

kanaka commented Aug 26, 2024

purs/purescript fixed in #631

@kanaka
Copy link
Owner Author

kanaka commented Aug 26, 2024

Powershell updated in #669

@kanaka
Copy link
Owner Author

kanaka commented Aug 27, 2024

lua was fixed in 9a22e8a

@kanaka
Copy link
Owner Author

kanaka commented Aug 27, 2024

objc updated in #671

@kanaka
Copy link
Owner Author

kanaka commented Sep 19, 2024

zig problem and eval_ast merge completed here: #591

kanaka added a commit that referenced this issue Sep 20, 2024
Original issue describing the change and converting the first set of
implementations: #592

Tracking issue for other implementations: #657
kanaka added a commit that referenced this issue Sep 20, 2024
Original issue describing the change and converting the first set of
implementations: #592

Tracking issue for other implementations: #657
@kanaka
Copy link
Owner Author

kanaka commented Sep 20, 2024

Hy implemented here: #683

@kanaka kanaka closed this as completed Sep 20, 2024
@kanaka kanaka reopened this Sep 20, 2024
asarhaddon added a commit to asarhaddon/mal that referenced this issue Sep 29, 2024
Original issue describing the change and converting the first set of
implementations: kanaka#592

Tracking issue for other implementations: kanaka#657

All normal tests pass, but REGRESS and self-hosting fail.

Steps:
display the results from jq without python
simplify/improve quasiquote
simplify replenv construction

Cosmetic:
Update the interpreter from latest Debian/Ubuntu.
move first core functions from steps4-A to core.jq
simplify interprocess communication between run and utils.jq
merge run and rts.py, simplify it
kanaka pushed a commit that referenced this issue Oct 7, 2024
Original issue describing the change and converting the first set of
implementations: #592

Tracking issue for other implementations: #657

All normal tests pass, but REGRESS and self-hosting fail.

Steps:
display the results from jq without python
simplify/improve quasiquote
simplify replenv construction

Cosmetic:
Update the interpreter from latest Debian/Ubuntu.
move first core functions from steps4-A to core.jq
simplify interprocess communication between run and utils.jq
merge run and rts.py, simplify it
@kanaka
Copy link
Owner Author

kanaka commented Oct 7, 2024

jq completed in #685

@kanaka
Copy link
Owner Author

kanaka commented Oct 9, 2024

rexx completed: #686

@kanaka
Copy link
Owner Author

kanaka commented Oct 9, 2024

I've added a PR to remove Swift 2 ("swift") if the original author doesn't want to get it build/testable in CI: #688

@kanaka
Copy link
Owner Author

kanaka commented Oct 9, 2024

matlab completed: #687

@kanaka
Copy link
Owner Author

kanaka commented Oct 9, 2024

crystal completed: #689

@kanaka
Copy link
Owner Author

kanaka commented Oct 9, 2024

Swift 2 implementation has now been removed: #688

@kanaka
Copy link
Owner Author

kanaka commented Oct 10, 2024

janet completed: #690

@kanaka
Copy link
Owner Author

kanaka commented Oct 10, 2024

scala completed: #691

@asarhaddon
Copy link
Contributor

Hello.
I would like some help with io and livescript. I have implemented the change locally, but cannot polish/test.
Io has produced no binary compiler for ten years, and some dependencies have changed their Shared Object version meanwhile. The only sensible options seem to rebuild the compiler from a source released in 2017, or to drop this implementation. The error messages are poor, so the current CI is not really an option.
Livescript fails with the current Dockerfile because npm breaks when trying to install ffi-napi. I guess that the same issue affects the js implementation, because node_readline.js is similar with the same dependency on ffi-napi. The issue may be trivial with some knowledge of node.
Could you please take a look, and if possible update the Dockerfile so I can reproduce the steps on a local Debian?

@kanaka
Copy link
Owner Author

kanaka commented Oct 12, 2024

@asarhaddon I got livescript updated (Ubuntu 24.04 and node 18) and switched it to use koffi for the readline/FFI. Most of the JS based implementations use the same node_readine.js code so this should be a reasonable reference for updating the other implementations at some point: 1ff0671

I'll take a look at the io target (probably be a couple days though). A quick scan of the repo does seem to show that it's mostly dormant since last year. If I can't get something working easily, then I'll do the same as I did with Swift 2 (create a PR deprecating it and gjive the original author an opportunity to support/fix it if they care).

@asarhaddon
Copy link
Contributor

Thanks. #692 updates livescript

@dubek
Copy link
Collaborator

dubek commented Oct 13, 2024

I can look at io's Dockerfile (and then later maybe at merging eval_ast). I understand the publicly downloaded binaries are not working newer Ubuntu. What should we do in this case:

  1. Clone the C source and build it in our Dockerfile, and then copy the resulting binary interpreter to /usr/bin ?
  2. Build it somewhere else and publish it (say in my own github repo), and modify the Dockerfile to download from there?
  3. Other idea?

@kanaka
Copy link
Owner Author

kanaka commented Oct 13, 2024

livescript completed: #692

@kanaka
Copy link
Owner Author

kanaka commented Oct 13, 2024

@dubek Hi! I wasn't going to bother you until I had given in a quick spike. But since you're listening :-D, I would suggest the first option (which is what some implementations already do). The current CI process will build the image once and then cache it to ghcr.io so builds don't take too long. No need to maintain images yourself . You can point to the image if you want others to have quick access to the compiler. Once it's merged, CI will push the image to ghcr.io/kanaka/mal-test-io.

If the io build process or build deps are bulky (I don't think they are particularly for io though), you can always use a multiple stage Dockerfile to build it and then just copy the binaries to the final stage to keep size down if needed. The wasm Dockerfile does that but that's a pretty complicated one so refer to https://docs.docker.com/build/building/multi-stage/ if you're not already familiar with that. But again, you probably won't need this with io. A quick look at the CMakeLists.txt doesn't seem like it will have a lot of deps or be bulky. So let's only attack this if it turns out to be a really big image.

@asarhaddon
Copy link
Contributor

@dubek
You may want to start from where I have given up.
asarhaddon@37b358a

 Testing test^io^step0; step file: impls/io/step0_repl.io, test file: tests/step0_repl.mal
Running: env STEP=step0_repl MAL_IMPL=js ../../runtest.py  --deferrable --optional --test-timeout 120 --debug-file ../../test-io.debug ../tests/step0_repl.mal -- ../io/run
Exception: OSError(5, 'Input/output error')
Output before exception:
 not respond to 'Regex'
  ---------
  Object Regex                         step0_repl.io 1

@asarhaddon
Copy link
Contributor

latex3 rpython swift5 vbs are missing from the list.

@kanaka
Copy link
Owner Author

kanaka commented Oct 14, 2024

Final latex3 cleanup: #695

@kanaka
Copy link
Owner Author

kanaka commented Oct 15, 2024

rpython finished: #696

@kanaka
Copy link
Owner Author

kanaka commented Oct 16, 2024

More related rpython (with performance optimizations too): #698

@kanaka
Copy link
Owner Author

kanaka commented Oct 16, 2024

swift6 completed: #693 (and reversioned from swift5 to swift6)

@kanaka
Copy link
Owner Author

kanaka commented Oct 16, 2024

vala completed: #697

@kanaka
Copy link
Owner Author

kanaka commented Oct 21, 2024

xslt completed: #701

@kanaka
Copy link
Owner Author

kanaka commented Oct 22, 2024

chuck completed: #702

@kanaka
Copy link
Owner Author

kanaka commented Oct 29, 2024

fantom completed: #704

@kanaka
Copy link
Owner Author

kanaka commented Oct 29, 2024

vbs completed: #703

@kanaka
Copy link
Owner Author

kanaka commented Oct 29, 2024

plpgsql completed: #705

@kanaka
Copy link
Owner Author

kanaka commented Oct 29, 2024

io completed: #699 Caveat that self-hosted mode now has a failure: https://github.com/kanaka/mal/actions/runs/11524734437/job/32085546455?pr=699 This failure has been added to #662

@kanaka
Copy link
Owner Author

kanaka commented Nov 9, 2024

swift3 and swift4 completed: #706

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 a pull request may close this issue.

3 participants