Skip to content

agathoklisx/ulenv

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
/*
            UNITED LUA LANGUAGE ENVIRONMENT

This is to explore some possibilities and aims to demonstrate the power of diversity
in the Lua Universe.

At this stage is at the prototype level, but already usefull at least as a testing
tool and as a basis to extend Lua on other domains besides embedded environments.

It builds the following targets:

  - PUC Rio Lua
    -  5.1.5
    -  5.2.4
    -  5.3.5
    -  development sources (seems Linux only)

  - Ravi Lua - https://ravilang.github.io/
    -  1.0-beta3
    -  development sources with mir as jit backend (Linux and X86-64 only)

  - Ahead Of Time Lua - https://github.com/hugomg/lua-aot
    -  development sources targeting Lua 5.4

  - MoonJit Lua - https://github.com/moonjit/moonjit
    -  2.2.0
    -  development sources

  - NeLua - https://github.com/edubart/nelua-lang
    - dev-1

  - MoonScript - https://moonscript.org/
   - stable
   - development sources

  - Fennel - https://fennel-lang.org/
   - stable
*/

Usage:

  # by default builds PUC Rio Lua 5.3.5 plus luarocks at the same sys hierarchy
  make

  # same but use clang as a C compiler
  make CC=clang

  # older releases plus current development plus luarocks
  make PRIO_LUA_VERSION=5.2.4 prio-lua
  make PRIO_LUA_VERSION=5.1.5 prio-lua
  make prio-lua-devel

  #  Ravi Lua but without luarocks
  make ravi-lua
  make ravi-lua-devel

  #  Ahead Of Time Lua with luarocks (only development sources)
  make aot-lua-devel

  #  MoonJit with luarocks (recognized as luajit and targets 5.1)
  make moonjit
  make moonjit-devel

  #  NeLua (this builds by default lua-5.3.5 and calls luarocks to install NeLua's
  #  compiler - it doesn't provide a wrapper for now, NeLua does it by itself)
  make nelua

  #  MoonScript (this builds by default lua-5.3.5 and calls luarocks to install
  #  moonscript's compiler - it doesn't provide a wrapper for now, moonscript does
  #  it by itself)
  make moonscript
  make moonscript-devel

  #  Fennel (this builds by default lua-5.3.5 and calls luarocks to install
  #  fennel's compiler - it doesn't provide a wrapper for now, fennel does
  #  it by itself)
  make fennel

  # and this builds all the above targets
  make all

  # those deal with development sources (cloning and updating)
  make prio-lua-clone-repo
  make prio-lua-update-repo

  make ravi-lua-clone-repo
  make ravi-lua-update-repo

  make aot-lua-clone-repo
  make aot-lua-update-repo

  make moonjit-clone-repo
  make moonjit-update-repo

  make nelua-clone-repo
  make nelua-update-repo

  make moonscript-clone-repo
  make moonscript-update-repo

  make fennel-clone-repo
  make fennel-update-repo

  # Hierarchy:

  # ROOTDIR (this directory)

  # sources directory
  # $ROOTDIR/src/{lua,ravi,aot,moonjit,nelua,moonscript,fennel}/{RELEASE,repo}

  # build directory
  # $ROOTDIR/src/build/{lua,ravi,aot,moonjit,...}/{RELEASE,repo}

  # sys directory
  # $ROOTDIR/sys/`uname -s`/`uname -m`/{VERSION,devel}/{bin,lib,include,share}

  # bin directory with wrappers to invoke and without classes the above interpreters
  # $ROOTDIR/sys/bin

  # data dir (internal details: Makefiles, wrappers, patches)
  # $ROOTDIR/.data/{lua,ravi,aot,moonjit}
  # here you develop $ROOTDIR/.data/IMPLEMENTATION/Makefile
  # as at any target this updated automatically, or explicitly by (e.g. for ravi):
  # make ravi-lua-update-makefile

  # Note: the zsh shell offers excellent tab completion for make.
/*

Development under Linux and with GNU make as make utility.
Tested with gcc-9.1.0 and clang-9.0.0

The low revision is implemented with Makefiles.

Development:

Provide a Lua Standard Library (lstl) see at:
http://lua-users.org/lists/lua-l/2020-01/msg00178.html

Make it work under other Operating Systems (needs feedback).

And the supposedly end goal and which is to offer:

  - multiply ways to write and express

  - independable micro-environments
    - their SYSDIR will have to have anything to be fully functional

  - a supervisor environment to provide services to the environment
    - independable, that means can even provide C and C++ compilers (at some point)
      or|and a libc, that means even a minimal C runtime, see for instance:
         https://github.com/lpsantil/rt0

   - basic system commands like: lcp, lrm, lmkdir, ... (though __lcp might be faster
     in tab completions) and ... an init. We really want here to be pid 1 at some
     point

   - applications, like... a really really tiny web browser

  And with Lua in the middle.

And that is and the only ambition, which is to be realized by the community, this
tremendous power that comes from the diversity, and which brings us to a path of
an eternal evolution and at the end to sensible innovations full of conscience.

Licensed with the same License with PUC Rio Lua, that is MIT LICENSE (note:

   There is another view here: as normally no human being should need any kind of an
   enforcement to do the right "loyal" thing: as supposedly those beings that don't
   respect the logic and other human beings here, they are on prisons right now and
   the rest live in full conscience and pride.

   Here is a bit more conscience and the single most important: it had been proved by
   the open source movement (headed and established by the GNU and FSF organizations),
   that is a quite logical and smart choise also, as the code evolution in this case
   is:

     - too much much faster
     - and much more accurate, as the open sourced code is seen by a gigantic pool of
       coders this time on earth, where some (if not most), looks very keen with the
       details

   And the least important which is about "the real economy". It is utterly stupid to
   invest in closed source products, if they have a value: as it is much more clever
   to built a community around it and let the community to do the work for you! How
   does it sound? The most you pay for a couple of experts to make the commits and be
   done with that. And we have to know also that in a court with a Jury with some of
   the people we admire and respect, like Socrates or Jesus or Budha, this is a quite
   of an easy case, as obviously is unethical to pay for a tool, but yet doesn't owe
   this tool to you. The obvious right thing to do here is to give also to the proud
   customer and the source code with every payment. But it is also stupid and because
   the people have the illusion. that without exposing the code to the wild you have
   some kind of safety. What an unbelievable huge fallacy!!! As it has been proved by
   the mere facts of the history, that it is quite the contrary. Anyway, since we can
   not do without licenses for now, there is no other choise than this license. Sorry.
)
*/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published