Skip to main content

Lua programming language written in Python

Project description

mehtap

Lua 5.4 programming language implementation in Pure Python

Latest version on PyPI Supported Python versions

Codacy Grade Badge Codacy Coverage Badge checks/master docs

Status

mehtap is in an early alpha stage. Since there is active development, API changes may happen without any special notice. Please pin your dependencies using a specific commit hash.

What does mehtap have?

  • Everything in the Lua 5.4 grammar is supported.

  • There are utility functions to convert values from Python to Lua and from Lua to Python.

  • Most of the standard library is supported. (100% support is planned.)

    Basic Functions (22/25)
    • assert()
    • collectgarbage() — Does nothing.
    • dofile()
    • error()
    • _G
    • getmetatable()
    • ipairs()
    • load()
    • loadfile()
    • next()
    • pairs()
    • pcall()
    • print()
    • rawequal()
    • rawget()
    • rawlen()
    • rawset()
    • select()
    • setmetatable()
    • tonumber()
    • tostring()
    • type()
    • _VERSION
    • warn()
    • xpcall()
    Input and Output Facilities (17/18)
    • io.close()
    • io.flush()
    • io.input()
    • io.lines()
    • io.open()
    • io.output()
    • io.popen()
    • io.read()
    • io.tmpfile()
    • io.type()
    • io.write()
    • file:close()
    • file:flush()
    • file:lines()
    • file:read()
    • file:seek()
    • file:setvbuf() — Does nothing.
    • file:write()
    Operating System Facilities (8/11)
    • os.clock()
    • os.date()
    • os.difftime()
    • os.execute()
    • os.exit()
    • os.getenv()
    • os.remove()
    • os.rename()
    • os.setlocale()
    • os.time()
    • os.tmpname()

What's the catch?

There are some differences with the specification of the reference manual. They are:

  • garbage collection,
  • frame scope.

For the most part, behaviour differences with the reference implementation are only allowed if the reference manual does not specify the behaviour. For example, the exact formatting of error messages is not specified in the reference manual, so it is allowed to be different.

There are some things that are not implemented yet. They are, only listing language features, excluding the standard library:

  • Taking metavalues and metamethods into consideration when doing operations.

Also, since this is a Python implementation, it is SLOW.


Copyright (c) 2024 Emre Özcan

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mehtap-0.0.0.tar.gz (44.5 kB view details)

Uploaded Source

Built Distribution

mehtap-0.0.0-py3-none-any.whl (50.3 kB view details)

Uploaded Python 3

File details

Details for the file mehtap-0.0.0.tar.gz.

File metadata

  • Download URL: mehtap-0.0.0.tar.gz
  • Upload date:
  • Size: 44.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for mehtap-0.0.0.tar.gz
Algorithm Hash digest
SHA256 24558b820135bce279f403d6346799e0158edfe0f170956f306aa814b4f4bcc2
MD5 2ca794b82d040d7b2f335c77a117a2c0
BLAKE2b-256 bb8be5ede5708cd5e79563378c02d8beb9fe1a13da0ef2317b03d2634e9c9c98

See more details on using hashes here.

Provenance

The following attestation bundles were made for mehtap-0.0.0.tar.gz:

Publisher: publish.yml on emreozcan/mehtap

Attestations:

File details

Details for the file mehtap-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: mehtap-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 50.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for mehtap-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 769bbeeed8e43bc70232e202a1d520bd553c3c41b52c24f2c0ae718d02e495c9
MD5 b41d70d514047c4accf5c37a14858406
BLAKE2b-256 cdc6c3353b510596920e7234ef5006a866573be6d428fee2b40c69dc6379383e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mehtap-0.0.0-py3-none-any.whl:

Publisher: publish.yml on emreozcan/mehtap

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page