https://github.com/quasilyte/goism
Not a fan of Emacs Lisp? Hack Emacs in Go!
https://github.com/quasilyte/goism
compiler emacs-lisp emacs-lisp-alternative emacs-lisp-bytecode emacs-packages go golang
Last synced: 7 months ago
JSON representation
Not a fan of Emacs Lisp? Hack Emacs in Go!
- Host: GitHub
- URL: https://github.com/quasilyte/goism
- Owner: quasilyte
- License: mit
- Created: 2017-04-15T21:43:07.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-08-12T19:33:47.000Z (over 8 years ago)
- Last Synced: 2025-04-01T12:54:35.805Z (8 months ago)
- Topics: compiler, emacs-lisp, emacs-lisp-alternative, emacs-lisp-bytecode, emacs-packages, go, golang
- Language: Go
- Size: 862 KB
- Stars: 345
- Watchers: 13
- Forks: 16
- Open Issues: 68
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README

[](https://goreportcard.com/report/github.com/Quasilyte/goism)
[](LICENSE)
# goism
Searching for Emacs Lisp alternative? **Try hacking Emacs in Go!**
## Overview
### Description
`goism` is Emacs package that makes it possible to use
[Go](https://golang.org/) programming language instead
of Emacs Lisp inside Emacs.
It provides Go intrinsics and `emacs` package to make it
possible to control Emacs from your programs.
Generated functions, methods and variables can be accessed from
Emacs Lisp code.
Enjoy the increased type safety and curly braces!
### How it works
Valid Go package is converted into Emacs Lisp bytecode.
Emacs `goism` package implements Go runtime,
so translated code behaves as
close to the [specs](https://golang.org/ref/spec) as possible.
Different optimizations are performed during this translation,
so it is not going to be any slower than "native" Emacs Lisp.
### How to use it
[See quick guide](docs/quick_guide.md).
> TODO: emacs package installation
## Docs
* [Quick guide (getting started)](docs/quick_guide.md)
* [Translation specification](docs/translation_spec.md)
* [Features that are not implemented](docs/unimplemented.md)
* [goism implementation design](docs/design.md)
[PreRelease2](https://github.com/Quasilyte/goism/milestone/1) is
the current milestone.
To see what features are going to be implemented in near future,
check out [milestones](https://github.com/Quasilyte/goism/milestones).
[Projects](https://github.com/Quasilyte/goism/projects) may contain additional
information in "stashed" column.
## Tags
* Compile Golang to Emacs Lisp bytecode
* Golang from Emacs
* Emacs Lisp alternative to extend Emacs
* Emacs Lisp as Golang compilation target
* "Go" emacs package