GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - teal-language/tl: The compiler for Teal, a typed dialect of Lua

BranchesTags
Open more actions menu

Latest commit

 

History

1,807 Commits
1,807 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
docs
docs
 
 
extras
extras
 
 
spec
spec
 
 
teal
teal
 
 
tlcli
tlcli
 
 
.busted
.busted
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
argparse.d.tl
argparse.d.tl
 
 
lfs.d.tl
lfs.d.tl
 
 
luarocks.lock
luarocks.lock
 
 
precompiler.lua
precompiler.lua
 
 
precompiler.tl
precompiler.tl
 
 
teal.lua
teal.lua
 
 
tl
tl
 
 
tl-dev-2.rockspec
tl-dev-2.rockspec
 
 
tl.lua
tl.lua
 
 
tl.tl
tl.tl
 
 

Repository files navigation

Teal

Build Status Join the chat at https://gitter.im/teal-language/community

This is the repository of tl, the compiler for Teal, a typed dialect of Lua.

The core compiler has no dependencies and is implemented as a single tl.lua file which you can load into your projects. Running tl.loader() will add Teal support to your package loader, meaning that require() will be able to run .tl files.

Introduction

You can read the tutorial chapter of the Teal documentation to get started with an overview of the language.

Installing

Via LuaRocks

Install Lua and LuaRocks, then run:

luarocks install tl

This should put a tl command in your $PATH (run eval $(luarocks path) if the LuaRocks-installed binaries are not in your $PATH).

Teal works with Lua 5.1-5.4, including LuaJIT.

Binaries

Alternatively, you can find pre-compiled binaries for Linux x86_64 and Windows x86_64 at the releases page. The packages contain a stand-alone executable that can run Teal programs (without the need of a separate Lua installation) and also compile them to Lua.

Try it from your browser

You can give Teal a try directly from your browser with the Teal Playground! It compiles Teal into Lua using Fengari, a Lua VM implemented in JavaScript, so everything runs on the client.

Running

Using the compiler directly

Once tl is in your path, there are a few subcommands:

  • tl run script.tl will run a Teal script.
  • tl check module.tl will type check a Teal module, report any errors and quit.
  • tl gen module.tl will check for syntax errors and generate a module.lua file in plain Lua with all type annotations stripped.
  • tl warnings will list all warnings the compiler can generate.

tl also supports some compiler options. These can either be specified on the command line or inside a tlconfig.lua file at the root of your project.

Building projects with Cyan

To build whole projects, you probably won't want to run tl on each file individually. We recommend using Cyan, the build tool designed for Teal.

Loading Teal code from Lua

You can either pre-compile your .tl files into .lua, or you can add the tl.lua module into your project and activate the Teal package loader:

local tl = require("tl")
tl.loader()

Once the package loader is activated, your require() calls can load and compile .tl files on-the-fly.

Documentation

You can read the rendered documentation online; it can also be generated locally from the files in the docs/ folder of this repository.

Type definitions

tl supports declaration files, which can be used to annotate the types of third-party Lua libraries.

We have a collaborative repository for declaration files at https://github.com/teal-language/teal-types — check it out and make your contribution!

Text editor support

Teal language support is currently available for Vim, Visual Studio Code, lite with linter support and Helix with LSP support.

Community

  • Join the chat on Gitter!
    • You can also join via Matrix at #teal-language_community:gitter.im

Teal is a project started by Hisham Muhammad, developed by a growing number of contributors and is written using Teal itself!

License

License is MIT, the same as Lua.

About

The compiler for Teal, a typed dialect of Lua

teal-language.org

Topics

compilerluatealtype-checking

Resources

Readme
MIT license

Code of conduct

Code of conduct
Activity
Custom properties

Stars

3.0k stars

Watchers

42 watching

Forks

170 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.