bakpakin / Fennel

Lua Lisp Language
https://fennel-lang.org
MIT License
2.48k stars 126 forks source link

A Windows standalone compilation issue #487

Closed noncom closed 2 months ago

noncom commented 2 months ago

Hello!

I tried to compile Fennel standalone, and on the latest commit 222e14c447977c23af6dc39a11e94f95b7bfa62c I'm getting:

D:\programming>make fennel.exe
FENNEL_PATH=src/?.fnl lua bootstrap/aot.lua src/launcher.fnl --require-as-include >> fennel
Compile error in 'macrodebug' src/fennel\binary.fnl:208: src/fennel/macros.fnl:338: attempt to call a boolean value (global 'view')
make: *** [Makefile:52: fennel] Error 1

I tried debugging this for a bit, but the error is super obscure, at least for me, so no luck.

I switched to the Release 1.5.1 commit ae60a38029a570b8d37fe3d7cc6b2476646e10f5, and that one compiled successfuly.

It would be great if the latest commit compilation would also work :)

noncom commented 2 months ago

Hmm, I tried again now, on a fresh clone, but with the makefile modified for my environment, and it worked. I'm not sure why.. the only thing I was modifying before was sligtly tuning the makefile. I don't think that should have caused an error like that a few times in a row.

But now with a fully working makefile it just built Fennel 1.5.2-dev without problems, and it works. This is strange, but probably there's no issue then. I'll keep experimenting.

technomancy commented 2 months ago

I wonder if you had some failed compilation artifacts left around somehow. I expect make clean would have solved the problem; did you give that a try?

noncom commented 2 months ago

Haven't tried that, but I did a full git reset back then, which I think was effectively the same.

Today I tried repeating the process on another fresh Windows machine with the fixed makefile, and the result was an immediate success on the latest commit. So I guess yeah, that was a broken artifact issue.

I was very puzzled by the kind of the error and the fact that it was not easy to see from the message what has actually happened. So I didn't think that a broken artifact might have been an issue. I'm not too experienced with Fennel yet though.

Also it seems that the makefile part about building Fennel for Windows is a tiny bit outdated and wrong? And it's describing a 32bit build which doesn't make any sense for Windows imho. Would you think that a PR with some changes + a small instruction for a Windows user would be ok?

technomancy commented 2 months ago

Also it seems that the makefile part about building Fennel for Windows is a tiny bit outdated and wrong?

That wouldn't surprised me at all; I haven't used Windows, and the stuff in that makefile is just copy/pasted from some old threads I found that seemed relevant. I've only even tested it on Wine. Happy to take improvements from someone who actually knows how to use Windows. =)

noncom commented 2 months ago

Cool! There's actually just a couple of things, but here we go: https://github.com/bakpakin/Fennel/pull/488

It doesn't pass the CI, but the errors are from something else that was already broken in main, and is coming from the recent number formatting change.

The tests also seem to have some lua5.3 vs lua53 error, but I guess that's something specified in the tests.

noncom commented 2 months ago

The issue was fully resolved. There's now a robust way to build Fennel exe on Windows 🙌

technomancy commented 2 months ago

Great, thanks for your help getting this done!