Code Monkey home page Code Monkey logo

lua.net's Introduction

trophy

Skills

Certification ReverseEngineering

C# Java C C++ x86_64 Assembly TypeScript SQL Lua Batch Bash

ViteJS ReactJS NestJS ExpressJS Jest OpenGL

Github Gitlab Docker MongoDB Databases

DevOps Scrum Jira Confluence Continuous Integration/Deployment

VSCode MSVS Intellij IDEA


    I'm a good humored, passionate software developer with experience in developing software and web applications. Further, I work with various programming languages, tools, and frameworks. I'm driven by learning and exploring new technologies to improve my skills and knowledge. I'm also an avid Lua lover and Reverse Engineering enthusiast. I love to know how something works internally, or even reviving old, dead games and their servers. I have been programming ever since I was 12 with strong interests in gaming. You can call me a strong advocate for free software and a contributor to the greater good. You may find me also monitoring the README's of projects for clarity and conciseness or even contributing to your project directly. I take my work very seriously.

    I know the importance of good clean and concise code, documentation, deployment, testing before shipping, and creating quality products. You can count on me to find the median point between efficiency and robustness. Write a program too fast and its features are limited and buggy for other usecases. Write a program too slow and you miss deadlines or is overengineered for the client's needs. This is where DevOps shines in an Agile environment.

    Currently, I am embracing AI to achieve tasks in record time that would take me hours to do. AI has opened a new dawn, especially in the right hands with someone knowledgable in prompt engineering. I do have to disclaim that AI is a tool and not a substituion for knowledge. I am a learner, and that won't change. You will find me implementing stacks to simply learn them.

Meerkats are my favorite animal.

My Projects

See my pinned repos below. I am quite proud of them.

lua.net's People

Contributors

mun1z avatar tilkinsc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lua.net's Issues

Adding `using` keyword and implement IDisposable pattern for lua_State

Proposal

lua_State should follow the IDisposable pattern to use the using keyword.

Concerns

Undefined Behavior occurs when lua_close(L) closes a lua_State a second time and can result in application crashes.

Implementation

To mitigate the undefined behavior resulting from lua_close(L)ing a lua_State twice, we can set Handle to 0 in each Lua API's lua_close(L) after the call to native lua_close(L). Further, if lua_close(L) knows how to handle 0 we do not need to do anything further; otherwise we need to also check if the Handle is 0 before calling the native. This ensures that Handle == 0 to detect if the lua_State is closed or not when implementing the IDisposable pattern.

Benefits

Clean integration with C#'s using feature when quickly spinning up a lua_State to process something. Capturing the lua_State variable in a scope to avoid leaking lua_State's. Unfortunately, there's no way to exit from a using statement other than a goto so there is an additional scope; which isn't a problem depending on design.

using (lua_State L = luaL_newstate())
{
    if (L != 0)
    {
        // Do Lua stuff
    }
}

Linux Native Lua Binaries Needed

Its time we support Linux (I will add x86_64 support)!

If you have a Linux on ARM64 cpu, your assistance is needed (Read Below)!

This is how you download and build lua.

curl -L -R -O https://www.lua.org/ftp/lua-all.tar.gz
tar zxf lua-all.tar.gz
cd lua-all
make -j $(nproc) all

Each sub folder in lua-all will have a .so file associated inside of it resulting from the build.

This is how you download and build luajit.

git clone https://luajit.org/git/luajit.git
cd luajit
make -j $(nproc) all

Collect each minor versions highest patch number (5.4.6, 5.3.6, 5.2.4, 5.1.5) and rename the so appropriately (lua546.so, lua536.so, lua524.so lua515.so) For luajit, retain the name of lua51.so.

Move these so's to runtimes/linux-arm64/native. example About RIDs

Change static readonly to const where available

When attempting to do

int status = lua_pcall(L, 0, 0, 0);
switch (status)
{
    case LUA_ERRRUN:
        break;
}

LUA_ERRRUN is required to be a constant. Therefore, this is going to error out. There will be no downsides to converting a lot of variables from static to const.

Website Wanted

If someone wants to take a crack at making a website, go for it.

MacOSX Native Lua Binaries Needed

If you have a Mac and a compiler you can help!

This repo needs Lua built for Mac and M1 Mac.

This is how you download and build lua.

curl -L -R -O https://www.lua.org/ftp/lua-all.tar.gz
tar zxf lua-all.tar.gz
cd lua-all
make -j $(nproc) all

Each sub folder in lua-all will have a .dylib file associated inside of it resulting from the build.

This is how you download and build luajit.

git clone https://luajit.org/git/luajit.git
cd luajit
make -j $(nproc) all

Collect each minor versions highest patch number (5.4.6, 5.3.6, 5.2.4, 5.1.5) and rename the dylib appropriately (lua546.dylib, lua536.dylib, lua524.dylib, lua515.dylib) For luajit, retain the name of lua51.dylib.

Move these dylibs to runtimes/osx-x64/native for non M1 chip. Move these dylibs to runtimes/osx-arm64/native for the M1 chip. example About RIDs

Optional: use your expertise to also bring support for ios-arm64!

lua debbuger

Hello, you know how we can debug lua code step by setp?

Android Native Lua Binaries Needed

This repo needs Lua built for Android.

Download lua-all
Download luajit git clone https://luajit.org/git/luajit.git

I am not sure how to build these for Android.

Collect each minor versions highest patch number (5.4.6, 5.3.6, 5.2.4, 5.1.5) and rename the dynamic library appropriately (lua546, lua536, lua524, lua515) For luajit, retain the name of lua51.

Move these dynamic libraries to runtimes/android-arm64/native. example About RIDs

Lua Debug API

I think the debug API has wrong declarations in which ref is not needed to be used.

lua_getinfo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.