• Stars
    star
    553
  • Rank 80,462 (Top 2 %)
  • Language
    C
  • License
    Other
  • Created over 11 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Neko Virtual Machine

NekoVM

Build Status

Deprecated as of 2021-09-09

Neko is not actively maintained anymore.

We keep it compatible with existing Haxe standard library and Haxe language features. But don't expect any new features in Neko itself and don't expect implementation of any new Haxe standard library API.

Neko Virtual Machine

See https://nekovm.org/

Snapshot Builds

Compiled binaries can be found in the "artifacts" link in the summary section of each Azure Pipelines build.

For macOS, Neko snapshot of the latest master branch can be built using homebrew in a single command: brew install neko --HEAD. It will install required dependencies, build, and install Neko to the system. The binaries can be found at brew --prefix neko. Use brew reinstall neko --HEAD to upgrade in the future.

Ubuntu users can use the Haxe Foundation snapshots PPA to install a Neko package built from the latest master branch. To do so, run the commands as follows:

sudo add-apt-repository ppa:haxe/snapshots -y
sudo apt-get update
sudo apt-get install neko -y

Users of other Linux/FreeBSD distributions should build Neko from source. See below for additional instructions.

Build instruction

Neko can be built using CMake (version 3.x is recommended) and one of the C compilers listed as follows:

  • Windows: Visual Studio 2010 / 2013 / 2015 / 2017
  • Mac: XCode (with its "Command line tools")
  • Linux: gcc (can be obtained by installing the "build-essential" Debian/Ubuntu package)

Neko needs to link with various third-party libraries, which are summarized as follows:

library / tool OS Debian/Ubuntu package
Boehm GC all libgc-dev
OpenSSL all libssl-dev
pcre2 all libpcre2-dev
zlib all zlib1g-dev
Apache 2.2 / 2.4, with apr and apr-util all apache2-dev
MariaDB / MySQL (Connector/C) all libmariadb-client-lgpl-dev-compat (or libmysqlclient-dev)
SQLite all libsqlite3-dev
mbed TLS all libmbedtls-dev
GTK+3 Linux libgtk-3-dev

On Windows, CMake will automatically download and build the libraries in the build folder during the build process. However, you need to install Perl manually because OpenSSL needs it for configuration. On Mac/Linux, you should install the libraries manually to your system before building Neko, or use the STATIC_DEPS CMake option, which will be explained in CMake options.

Building on Mac/Linux

# make a build directory, and change to it
mkdir build
cd build

# run cmake
cmake ..

# let's build, the outputs can be located in the "bin" directory
make

# install it if you want
# default installation prefix is /usr/local
make install

Building on Windows

Below is the instructions of building Neko in a Visual Studio command prompt. You may use the CMake GUI and Visual Studio to build it instead.

# make a build directory, and change to it
mkdir build
cd build

# run cmake specifying the visual studio version you need
# Visual Studio 12 2013, Visual Studio 14 2015, Visual Studio 15 2017
# you can additionally specify platform via -A switch (x86, x64)
cmake -G "Visual Studio 12 2013" ..

# let's build, the outputs can be located in the "bin" directory
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

# install it if you want
# default installation location is C:\HaxeToolkit\neko
msbuild INSTALL.vcxproj /p:Configuration=Release

CMake options

A number of options can be used to customize the build. They can be specified in the CMake GUI, or passed to cmake in command line as follows:

cmake "-Doption=value" ..

NDLLs

Settings that allow to exclude libraries and their dependencies from the build; available on all platforms. By default all are ON:

  • WITH_REGEXP - Build Perl-compatible regex support
  • WITH_UI - Build GTK-3 UI support
  • WITH_SSL - Build SSL support
  • WITH_MYSQL - Build MySQL support
  • WITH_SQLITE - Build Sqlite support
  • WITH_APACHE - Build Apache modules

STATIC_DEPS

Default value: all for Windows, none otherwise

It defines the dependencies that should be linked statically. Can be all, none, or a list of library names (e.g. BoehmGC;Zlib;OpenSSL;MariaDBConnector;pcre2;SQLite3;APR;APRutil;Apache;MbedTLS).

CMake will automatically download and build the specified dependencies into the build folder. If a library is not present in this list, it should be installed manually, and it will be linked dynamically.

All third-party libraries, except GTK+3 (Linux) and BoehmGC on Windows, can be linked statically. We do not support statically linking GTK+3 due to the difficulty of building it and its own dependencies. Additionally, we do not support statically linking the BoehmGC library on Windows systems.

RELOCATABLE

Available on Mac/Linux. Default value: ON

Set RPATH to $ORIGIN (Linux) / @executable_path (Mac). It allows the resulting Neko VM executable to locate libraries (e.g. "libneko" and ndll files) in its local directory, such that the libraries need not be installed to "/usr/lib" or "/usr/local/lib".

NEKO_JIT_DISABLE

Default OFF.

Disable Neko JIT. By default, Neko JIT will be enabled for platforms it supports. Setting this to ON disable JIT for all platforms.

NEKO_JIT_DEBUG

Default OFF.

Debug Neko JIT.

RUN_LDCONFIG

Available on Linux. Default value: ON

Whether to run ldconfig automatically after make install. It is for refreshing the shared library cache such that "libneko" can be located correctly by the Neko VM.

More Repositories

1

haxe

Haxe - The Cross-Platform Toolkit
Haxe
6,166
star
2

hashlink

A virtual machine for Haxe
C
810
star
3

hxcpp

Runtime files for c++ backend for haxe
C++
297
star
4

hscript

Parser and interpreter for Haxe expressions
Haxe
262
star
5

intellij-haxe

Haxe plugin for IntelliJ Platform based IDEs (IDEA, Android-Studio)
Java
220
star
6

HaxeManual

The official Haxe manual
Haxe
218
star
7

as3hx

Convert AS3 sources to their Haxe equivalent
Haxe
174
star
8

haxelib

The Haxe library manager
Haxe
172
star
9

hxnodejs

Haxe externs for working with node.js
Haxe
171
star
10

dox

Haxe documentation generator.
Haxe
146
star
11

format

Various files formats support for Haxe
Haxe
131
star
12

code-cookbook

The Haxe Code Cookbook - A community driven resource website for learning Haxe in practise
Haxe
112
star
13

haxe-evolution

Repository for maintaining proposal for changes to the Haxe programming language
111
star
14

haxe.org

The haxe.org website
HTML
81
star
15

haxe-markdown

A Markdown parser in Haxe.
Haxe
63
star
16

hxcs

Haxe C# support library. Build scripts and support code.
Haxe
57
star
17

record-macros

Macro-based ORM (object-relational mapping)
Haxe
49
star
18

hxcpp-debugger

Cross-platform debugger for hxcpp
Haxe
49
star
19

crypto

Cross platform cryptographic functions for Haxe
Haxe
48
star
20

npm-haxe

Install Haxe using Node Package Manager aka npm
JavaScript
46
star
21

hxjava

Haxe Java support library. Build scripts and support code.
Haxe
46
star
22

tora

NekoVM Application Server
Haxe
30
star
23

docker-library-haxe

Docker official image for Haxe
Dockerfile
28
star
24

ocamllibs

Various OCaml Libraries
OCaml
24
star
25

Project-Management

Project management and communication
20
star
26

haxedevelop.org

Website content and sources
Haxe
19
star
27

try.haxe.org

run Haxe code snippets in your browser
Haxe
18
star
28

hx3compat

Haxe 3 compatibility lib for Haxe 4
Haxe
16
star
29

html-externs

HTML externs for Haxe
IDL
15
star
30

hxnodelibs

Haxe
14
star
31

ocamhaxe

OCaml distribution for Haxe compilation
Haxe
11
star
32

haxe-debian

Debianizing Haxe
Haxe
11
star
33

api.haxe.org

Haxe API documentation
Haxe
10
star
34

hxgithub

Haxe
8
star
35

haxe-terraform

Haxe Foundation infrastructure
HCL
5
star
36

nekovm.org

The website for NekoVM.
Haxe
5
star
37

neko-debian

Debianizing Neko
C
4
star
38

build.haxe.org

Snapshot build storage web UI
Haxe
3
star
39

hx4compat

Haxe 4 compatibility lib for Haxe 5, or maybe the other way aroun?
Haxe
3
star
40

haxe.org-comments

Repository to collect comments of our haxe.org websites
2
star
41

hashlink.haxe.org

HTML
2
star
42

homebrew-haxe

Haxe formulae for the Homebrew package manager
Ruby
1
star
43

summit.haxe.org

Haxe
1
star
44

haxe-deps

A luarocks spec for the dependencies required for the Haxe Lua target
Lua
1
star
45

haxe-choco

Chocolatey Haxe package
Haxe
1
star