edubart / nelua-lang

Minimal, efficient, statically-typed and meta-programmable systems programming language heavily inspired by Lua, which compiles to C and native code.
https://nelua.io
MIT License
2k stars 62 forks source link

Bug or limitation: Lua Busted for Lua 5.4 not supported yet in GNU / Debian testing 64-bit #57

Closed stefanos82 closed 3 years ago

stefanos82 commented 3 years ago

I have installed busted on my GNU / Linux Debian testing 64-bit and it does not support yet Lua 5.4.

$ dpkg -L lua-busted 
/.
/usr
/usr/bin
/usr/bin/busted
/usr/share
/usr/share/doc
/usr/share/doc/lua-busted
/usr/share/doc/lua-busted/changelog.Debian.gz
/usr/share/doc/lua-busted/copyright
/usr/share/lua
/usr/share/lua/5.1
/usr/share/lua/5.1/busted
/usr/share/lua/5.1/busted/block.lua
/usr/share/lua/5.1/busted/compatibility.lua
/usr/share/lua/5.1/busted/context.lua
/usr/share/lua/5.1/busted/core.lua
/usr/share/lua/5.1/busted/done.lua
/usr/share/lua/5.1/busted/environment.lua
/usr/share/lua/5.1/busted/execute.lua
/usr/share/lua/5.1/busted/init.lua
/usr/share/lua/5.1/busted/languages
/usr/share/lua/5.1/busted/languages/ar.lua
/usr/share/lua/5.1/busted/languages/de.lua
/usr/share/lua/5.1/busted/languages/en.lua
/usr/share/lua/5.1/busted/languages/es.lua
/usr/share/lua/5.1/busted/languages/fr.lua
/usr/share/lua/5.1/busted/languages/it.lua
/usr/share/lua/5.1/busted/languages/ja.lua
/usr/share/lua/5.1/busted/languages/nl.lua
/usr/share/lua/5.1/busted/languages/pt-BR.lua
/usr/share/lua/5.1/busted/languages/ru.lua
/usr/share/lua/5.1/busted/languages/th.lua
/usr/share/lua/5.1/busted/languages/ua.lua
/usr/share/lua/5.1/busted/languages/zh.lua
/usr/share/lua/5.1/busted/modules
/usr/share/lua/5.1/busted/modules/cli.lua
/usr/share/lua/5.1/busted/modules/configuration_loader.lua
/usr/share/lua/5.1/busted/modules/files
/usr/share/lua/5.1/busted/modules/files/lua.lua
/usr/share/lua/5.1/busted/modules/files/moonscript.lua
/usr/share/lua/5.1/busted/modules/files/terra.lua
/usr/share/lua/5.1/busted/modules/filter_loader.lua
/usr/share/lua/5.1/busted/modules/helper_loader.lua
/usr/share/lua/5.1/busted/modules/luacov.lua
/usr/share/lua/5.1/busted/modules/output_handler_loader.lua
/usr/share/lua/5.1/busted/modules/standalone_loader.lua
/usr/share/lua/5.1/busted/modules/test_file_loader.lua
/usr/share/lua/5.1/busted/options.lua
/usr/share/lua/5.1/busted/outputHandlers
/usr/share/lua/5.1/busted/outputHandlers/TAP.lua
/usr/share/lua/5.1/busted/outputHandlers/base.lua
/usr/share/lua/5.1/busted/outputHandlers/gtest.lua
/usr/share/lua/5.1/busted/outputHandlers/json.lua
/usr/share/lua/5.1/busted/outputHandlers/junit.lua
/usr/share/lua/5.1/busted/outputHandlers/plainTerminal.lua
/usr/share/lua/5.1/busted/outputHandlers/sound.lua
/usr/share/lua/5.1/busted/outputHandlers/utfTerminal.lua
/usr/share/lua/5.1/busted/runner.lua
/usr/share/lua/5.1/busted/status.lua
/usr/share/lua/5.1/busted/utils.lua
/usr/share/lua/5.1/busted.lua
/usr/share/lua/5.2
/usr/share/lua/5.2/busted
/usr/share/lua/5.2/busted/languages
/usr/share/lua/5.2/busted/modules
/usr/share/lua/5.2/busted/modules/files
/usr/share/lua/5.2/busted/outputHandlers
/usr/share/lua/5.3
/usr/share/lua/5.3/busted
/usr/share/lua/5.3/busted/languages
/usr/share/lua/5.3/busted/modules
/usr/share/lua/5.3/busted/modules/files
/usr/share/lua/5.3/busted/outputHandlers
/usr/share/zsh
/usr/share/zsh/vendor-completions
/usr/share/zsh/vendor-completions/_busted
/usr/share/lua/5.2/busted/block.lua
/usr/share/lua/5.2/busted/compatibility.lua
/usr/share/lua/5.2/busted/context.lua
/usr/share/lua/5.2/busted/core.lua
/usr/share/lua/5.2/busted/done.lua
/usr/share/lua/5.2/busted/environment.lua
/usr/share/lua/5.2/busted/execute.lua
/usr/share/lua/5.2/busted/init.lua
/usr/share/lua/5.2/busted/languages/ar.lua
/usr/share/lua/5.2/busted/languages/de.lua
/usr/share/lua/5.2/busted/languages/en.lua
/usr/share/lua/5.2/busted/languages/es.lua
/usr/share/lua/5.2/busted/languages/fr.lua
/usr/share/lua/5.2/busted/languages/it.lua
/usr/share/lua/5.2/busted/languages/ja.lua
/usr/share/lua/5.2/busted/languages/nl.lua
/usr/share/lua/5.2/busted/languages/pt-BR.lua
/usr/share/lua/5.2/busted/languages/ru.lua
/usr/share/lua/5.2/busted/languages/th.lua
/usr/share/lua/5.2/busted/languages/ua.lua
/usr/share/lua/5.2/busted/languages/zh.lua
/usr/share/lua/5.2/busted/modules/cli.lua
/usr/share/lua/5.2/busted/modules/configuration_loader.lua
/usr/share/lua/5.2/busted/modules/files/lua.lua
/usr/share/lua/5.2/busted/modules/files/moonscript.lua
/usr/share/lua/5.2/busted/modules/files/terra.lua
/usr/share/lua/5.2/busted/modules/filter_loader.lua
/usr/share/lua/5.2/busted/modules/helper_loader.lua
/usr/share/lua/5.2/busted/modules/luacov.lua
/usr/share/lua/5.2/busted/modules/output_handler_loader.lua
/usr/share/lua/5.2/busted/modules/standalone_loader.lua
/usr/share/lua/5.2/busted/modules/test_file_loader.lua
/usr/share/lua/5.2/busted/options.lua
/usr/share/lua/5.2/busted/outputHandlers/TAP.lua
/usr/share/lua/5.2/busted/outputHandlers/base.lua
/usr/share/lua/5.2/busted/outputHandlers/gtest.lua
/usr/share/lua/5.2/busted/outputHandlers/json.lua
/usr/share/lua/5.2/busted/outputHandlers/junit.lua
/usr/share/lua/5.2/busted/outputHandlers/plainTerminal.lua
/usr/share/lua/5.2/busted/outputHandlers/sound.lua
/usr/share/lua/5.2/busted/outputHandlers/utfTerminal.lua
/usr/share/lua/5.2/busted/runner.lua
/usr/share/lua/5.2/busted/status.lua
/usr/share/lua/5.2/busted/utils.lua
/usr/share/lua/5.2/busted.lua
/usr/share/lua/5.3/busted/block.lua
/usr/share/lua/5.3/busted/compatibility.lua
/usr/share/lua/5.3/busted/context.lua
/usr/share/lua/5.3/busted/core.lua
/usr/share/lua/5.3/busted/done.lua
/usr/share/lua/5.3/busted/environment.lua
/usr/share/lua/5.3/busted/execute.lua
/usr/share/lua/5.3/busted/init.lua
/usr/share/lua/5.3/busted/languages/ar.lua
/usr/share/lua/5.3/busted/languages/de.lua
/usr/share/lua/5.3/busted/languages/en.lua
/usr/share/lua/5.3/busted/languages/es.lua
/usr/share/lua/5.3/busted/languages/fr.lua
/usr/share/lua/5.3/busted/languages/it.lua
/usr/share/lua/5.3/busted/languages/ja.lua
/usr/share/lua/5.3/busted/languages/nl.lua
/usr/share/lua/5.3/busted/languages/pt-BR.lua
/usr/share/lua/5.3/busted/languages/ru.lua
/usr/share/lua/5.3/busted/languages/th.lua
/usr/share/lua/5.3/busted/languages/ua.lua
/usr/share/lua/5.3/busted/languages/zh.lua
/usr/share/lua/5.3/busted/modules/cli.lua
/usr/share/lua/5.3/busted/modules/configuration_loader.lua
/usr/share/lua/5.3/busted/modules/files/lua.lua
/usr/share/lua/5.3/busted/modules/files/moonscript.lua
/usr/share/lua/5.3/busted/modules/files/terra.lua
/usr/share/lua/5.3/busted/modules/filter_loader.lua
/usr/share/lua/5.3/busted/modules/helper_loader.lua
/usr/share/lua/5.3/busted/modules/luacov.lua
/usr/share/lua/5.3/busted/modules/output_handler_loader.lua
/usr/share/lua/5.3/busted/modules/standalone_loader.lua
/usr/share/lua/5.3/busted/modules/test_file_loader.lua
/usr/share/lua/5.3/busted/options.lua
/usr/share/lua/5.3/busted/outputHandlers/TAP.lua
/usr/share/lua/5.3/busted/outputHandlers/base.lua
/usr/share/lua/5.3/busted/outputHandlers/gtest.lua
/usr/share/lua/5.3/busted/outputHandlers/json.lua
/usr/share/lua/5.3/busted/outputHandlers/junit.lua
/usr/share/lua/5.3/busted/outputHandlers/plainTerminal.lua
/usr/share/lua/5.3/busted/outputHandlers/sound.lua
/usr/share/lua/5.3/busted/outputHandlers/utfTerminal.lua
/usr/share/lua/5.3/busted/runner.lua
/usr/share/lua/5.3/busted/status.lua
/usr/share/lua/5.3/busted/utils.lua
/usr/share/lua/5.3/busted.lua

Here's the problem:

$ make test-full
make[1]: Nothing to be done for 'default'.
make[1]: Entering directory '/home/stefanos/git_codes/nelua'
rm -f luacov.report.out luacov.stats.out *.gcov *.gcda
make[1]: Leaving directory '/home/stefanos/git_codes/nelua'
busted --lua=src/nelua-lua --coverage
src/nelua-lua: /usr/bin/busted:3: module 'busted.runner' not found:
    no field package.preload['busted.runner']
    no file '/usr/local/share/lua/5.4/busted/runner.lua'
    no file '/usr/local/share/lua/5.4/busted/runner/init.lua'
    no file '/usr/local/lib/lua/5.4/busted/runner.lua'
    no file '/usr/local/lib/lua/5.4/busted/runner/init.lua'
    no file './busted/runner.lua'
    no file './busted/runner/init.lua'
    no file '/usr/local/lib/lua/5.4/busted/runner.so'
    no file '/usr/local/lib/lua/5.4/loadall.so'
    no file './busted/runner.so'
    no file '/usr/local/lib/lua/5.4/busted.so'
    no file '/usr/local/lib/lua/5.4/loadall.so'
    no file './busted.so'
stack traceback:
    [C]: in function 'require'
    /usr/bin/busted:3: in main chunk
    [C]: in ?
make: *** [Makefile:93: coverage-test] Error 1

Any suggestion about this problem?

edubart commented 3 years ago

You have to install busted through luarocks under Lua 5.4. But note that you don't need busted to use Nelua, this is used internally for developing the language.

stefanos82 commented 3 years ago

Ah I see.

Well, I'm pulling the latest changes every day and I would like to test them as often as possible to help the development with QA if I may call it like that.

stefanos82 commented 3 years ago

Now that I have installed it, I get the following:

$ make test-full
make[1]: Nothing to be done for 'default'.
make[1]: Entering directory '/home/stefanos/git_codes/nelua'
rm -f luacov.report.out luacov.stats.out *.gcov *.gcda
make[1]: Leaving directory '/home/stefanos/git_codes/nelua'
busted --lua=src/nelua-lua --coverage
src/nelua-lua: /usr/local/lib/luarocks/rocks/busted/2.0.0-1/bin/busted:3: module 'busted.runner' not found:
    no field package.preload['busted.runner']
    no file '/usr/local/share/lua/5.4/busted/runner.lua'
    no file '/usr/local/share/lua/5.4/busted/runner/init.lua'
    no file '/usr/local/lib/lua/5.4/busted/runner.lua'
    no file '/usr/local/lib/lua/5.4/busted/runner/init.lua'
    no file './busted/runner.lua'
    no file './busted/runner/init.lua'
    no file '/usr/local/lib/lua/5.4/busted/runner.so'
    no file '/usr/local/lib/lua/5.4/loadall.so'
    no file './busted/runner.so'
    no file '/usr/local/lib/lua/5.4/busted.so'
    no file '/usr/local/lib/lua/5.4/loadall.so'
    no file './busted.so'
stack traceback:
    [C]: in function 'require'
    /usr/local/lib/luarocks/rocks/busted/2.0.0-1/bin/busted:3: in main chunk
    [C]: in ?
make: *** [Makefile:93: coverage-test] Error 1
edubart commented 3 years ago

You probably not installed LuaRocks completely, make sure to set variables from luarocks path in your shell environment.

Note also that everytime I make a push, or you make a PR, Github Actions already test everything for us, look the actions tab, https://github.com/edubart/nelua-lang/actions

It does a test matrix testing code coverage, running the test suite, statically checking lua code, etc..

stefanos82 commented 3 years ago

You probably not installed LuaRocks completely, make sure to set variables from luarocks path in your shell environment.

I run sudo luarocks install busted

Note also that everytime I make a push, or you make a PR, Github Actions already test everything for us, look the actions tab, https://github.com/edubart/nelua-lang/actions

Ah cool, I didn't know that!

It does a test matrix testing code coverage, running the test suite, statically checking lua code, etc..

Very cool, it's nice to know.

edubart commented 3 years ago

If you have docker you can also run the test suite with make docker-image then make docker-test-full, it will install ArchLinux inside a docker with all test dependencies and run them.

stefanos82 commented 3 years ago

No, I don't use docker, I don't need it.

about luarocks path, I have only export PATH="$HOME/.luarocks/bin:$PATH".

Let me check by adding the other info in my .bashrc.

stefanos82 commented 3 years ago

Yep, now it works.

I added $(luarocks path) below the aforementioned export PATH and now executes just fine.

You are a life-saver mate :+1: