Giter Club home page Giter Club logo

neko's Introduction

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.

neko's People

Contributors

andyli avatar aurel300 avatar bendmorris avatar constnw avatar frabbit avatar herschel avatar jgranick avatar jonasmalacofilho avatar kevinresol avatar kuesa avatar kulick avatar lucyllewy avatar makoconstruct avatar markknol avatar maxime2 avatar mitchblank avatar nadako avatar ncannasse avatar pleaseking avatar ppenzin avatar pperidont avatar rblsb avatar realyuniquename avatar ryandesign avatar sharow avatar simn avatar tecteun avatar thomasuster avatar tobil4sk avatar waneck 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  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  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  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

neko's Issues

Makefile portable_install target, header files uninstall

The following is an append at line 131 in Makefile. It would be useful to have this in the repo (as well as the archiving that generates a distribution archive) so it doesn't have to be merged on every change.

    rm -rf ${INSTALL_PREFIX}/include/neko*.h

portable_install:
    mkdir -p ${INSTALL_PREFIX} ${INSTALL_PREFIX}/include
    cp bin/neko bin/nekoc bin/nekotools bin/nekoml bin/nekoml.std bin/${LIBNEKO_NAME} bin/*.ndll ${INSTALL_PREFIX}
    cp vm/neko*.h ${INSTALL_PREFIX}/include

portable_uninstall_incl_dir:
    rm -rf ${INSTALL_PREFIX}

portable_uninstall:
    rm -rf ${INSTALL_PREFIX}/neko* ${INSTALL_PREFIX}/${LIBNEKO_NAME} ${INSTALL_PREFIX}/*.ndll ${INSTALL_PREFIX}/include/neko*.h

Lib.load MUST be able to load the first match found on OS X, or application will crash

I forget if this was reported before. This has been a (somewhat) long-standing issue, which blocks functionality on OS X.

On other platforms, Lib.load can try multiple binaries before it finds one that's a match. You can also use try/catch blocks to use different paths. On OS X, it does not appear that try/catch can be used -- the application crashes regardless -- and it does not move onto trying the next path. If the first fails, tough.

An example of this comes from 32- and 64-bit on Mac. On 32-bit Neko, you MUST find the 32-bit binary first, otherwise you will crash. On 64-bit, it is the other way around. Since you cannot determine if Neko is running 32- or 64-bit until after the loader array has been initialized, this means we have to pick one or the other.

Finding why it does not respect the try/catch would probably solve everything. Thanks!

[Feature request] a FreeBSD port

As discussed, I would like to add Neko to a FreeBSD's Ports Collection. I can find some traces of a Neko port and it also seems like it was
taken down.

I apologize in advance if that is too straightforward to someone, I want to explain what I am trying to do to those not very familiar with the process. Also, feedback is welcome and appreciated!

Information on how Ports Collection works can be found in Porter's
Handbook
. There is a straight-forward walkthrough of a simple port at the
beginning.

A binary install package is created automatically for every port (not right away though).

Port files

To do get a port we need four files:

Makefile
distinfo
pkg-descr
pkg-plist

pkg-plist and distinfo can be (and should be) autogenerated, more on that below.

pkg-descr:

The Neko Programming Language

Neko is a high-level dynamically typed programming language which can
also be used as an embedded scripting language. It has been designed to
provide a common runtime for several different languages.

WWW: http://nekovm.org/

Makefile (with my comments):

# $FreeBSD$

# Port identification information. Version is made up, since the port is not
# pointing to any release yet.

PORTNAME=       neko
PORTVERSION=    2.0p
CATEGORIES=     lang

# This can be me, though can put any other email address instead

MAINTAINER=     [email protected]

# A short version of what this port is about

COMMENT=        Neko programming languages and virtual machine

# Self explanatory: license and GC library

LICENSE=        MIT
LIB_DEPENDS=    libgc-threaded.so:${PORTSDIR}/devel/boehm-gc-threaded

# Disable make -j

MAKE_JOBS_UNSAFE=yes

# Where to get the code from. This points to my own github repo, since I
# needed to make some changes to the code. Will need to use
# official Neko repository. Also, GH_TAGNAME can be a release name.

USE_GITHUB=     yes
GH_ACCOUNT=     ppenzin
# GH_PROJECT is the same as port name
GH_TAGNAME=     6138f0808895e54cf998cb644d1f4b255dbf83f4

# Build and install setting. Pointing INSTALL_PREFIX to where FreeBSD expects,
# setting a target that would produce stripped binaries.

USES=           gmake
MAKE_ARGS=      os=freebsd INSTALL_PREFIX=${STAGEDIR}${PREFIX}
# Use default build and install targets ("all" and "install" respectively)

# Run a smoke test after installing

post-install:
        cd ${WRKSRC} && ${MAKE_CMD} ${MAKE_ARGS} test


.include <bsd.port.mk>

I would really appreciate any feedback on this. Also, if you are curious or
want to test my work read below for instructions.

Port generation and testing

For the curious, to generate the rest of the port on a FreeBSD machine first
generate checksum (as root, connected to the internet):

# make makesum

This will download a tarball into distfile directory and create distinfo with a
checksum. Then get a list of files to add to pkg-plist (root not required):

$ make makeplist
...
/you/have/to/check/what/makeplist/gives/you
bin/neko
bin/nekoc
bin/nekoml
bin/nekoml.std
bin/nekotools
include/neko.h
include/neko_mod.h
include/neko_vm.h
lib/libneko.so
lib/neko/mysql5.ndll
lib/neko/regexp.ndll
lib/neko/sqlite.ndll
lib/neko/std.ndll
lib/neko/zlib.ndll

Copy the list of paths at the end of the output to pkg-plist file in the same directory. After that you can proceed to test it as described in Porter's Handbook.

Makefile issue with local Apache

I ran into this dependency mismatch problem: http://stackoverflow.com/questions/12699896 (not my question)

As described, the likely solution is to simply add -I./libs/include to CFLAGS. (I sidestepped this by removing my local installation of Apache, since it was superfluous.) This might also prevent picking up local versions of other libraries, such as MySQL.

OpenFL + Nape, codesize too big?

Since this seems like a Neko issue I thought I would fill an issue properly.
See openfl/openfl#158 and deltaluca/nape#77

class Main extends openfl.display.Sprite {

 public function new () { 
 super();

 var tf = new openfl.text.TextField();
 tf.text = "Hi There";
 addChild(tf);


 var space = new nape.space.Space();
 }

}

With the 2.0.0 code this crash with a

Uncaught exception - std@module_read

Building the latest Neko from source fix this, however in my game it still output the same error, probably from the added codesize of my game?

Also on a probably related note, on another project I get invalid call on functions, putting them as inline will fix it but then it is another function that will have invalid call, and this seems to go in a logical order, is there a limit on the number of functions a program can have? Where could I bump this number.

Request for Unicode support

On non-ASCII platforms, Neko will perform poorly because of the encoding problem. SQLite, for example, will store and return badly encoded Chinese/Japanese/Korean/....

One way to workaround this is to support utf-8. This is really important for non-ASCII systems.

[GC] How to prevent value from being GC'd

I am currently writing an extension using FFI (with hxcpp) and have some problems with objects/string etc. being garbage collected to early.

In Haxe:

c.setOption(CurlOpt.WRITEDATA, "Hello World"); // no reference to string

In C:

/* extern */ typedef struct S_EDATA {
    ...
    value write;
} EDATA;

ecurl->data->write = optval; // optval is the string from Haxe code

The "Hello World" string is garbage collected. I thought this will not happen since I store its address somewhere else, so the 'ref counter'? should not be zero.

What's the correct way to solve this? Thanks.

Stripping issue with nekotools

Something discussed with Todd Kulick, he said that neko was uber BUT there was a "big fracking" issue for neko to get much more leverage and it was that some tools and neko binaries had an incorrect Elf markup.

This is dued to the concatenation of binaries, it seems they are not modifying the elf table and then the packet managers and scanners from various unix flavors are stripping the not declared elf binary section from any nekotools made binary.

Thus rendering nekotools produced tools and binaries totally bogus...
So i guess nekotools should append executable section in a more careful way...

I know the theory about that but I think @ncannasse would go much faster taking action for this and this should go in a roadmap as very prioritized.

@ncannasse feel free to pester Todd as he promised me, he should file an issue :-D

Correct System Endianness

I'm on Windows 7 64 Bit and the Endianness is incorrect for the at least the following Neko function:

double_bytes()

Looking at the code it looks like the system Endianness is being incorrectly determined at compile time. I downloaded the binary for Neko 2.0.0.

Here is some quick sample code that produces the problem:

var output = new BytesOutput();
output.bigEndian = true;
output.writeDouble(1234.0);
var b = output.getBytes();
trace(b.toHex()); //Outputs '4093480000000000' on Neko and '0000000000489340' on other platforms

make fails on os x 10.8

make os=osx
mkdir bin 2>/dev/null
make: [createbin] Error 1 (ignored)
cc -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/opt/local/lib -I/opt/local/include -o vm/alloc.o -c vm/alloc.c
clang: warning: argument unused during compilation: '-L/usr/local/lib'
clang: warning: argument unused during compilation: '-L/opt/local/lib'
vm/alloc.c:45:10: fatal error: 'gc/gc.h' file not found

include "gc/gc.h"

     ^

1 error generated.
make: *** [vm/alloc.o] Error 1

Std.parseInt() wrong result for Neko

var badString:String = "2147483656";
var intFromBadString:Int = Std.parseInt(badString);
trace("BAD STRING         >>>>>>>  " + badString);
trace("BAD STRING PARSING >>>>>>>  " + intFromBadString);

Result

Main.hx:108: BAD STRING         >>>>>>>  2147483656
Main.hx:109: BAD STRING PARSING >>>>>>>  2147483647

There is only calls to neko in parseInt(), so I made the issue here.

Unable to load the mod_neko2 module on apache 2.4 (windows)

Windows 7
Apache 2.4.10 (with mpm_winnt.c)
Neko latest build from AppVeyor

When tried to start apache using the httpd command:

httpd: Syntax error on line 180 of D:/xampp/apache/conf/httpd.conf: Cannot load
D:/HaxeToolkit/neko/mod_neko2.ndll into server: The specified procedure could not be found.

Dynamically link against libz.dylib on OS X?

Hi Nicolas,

I'm trying to create a homebrew package for Neko and Haxe. Homebrew is a light weight package manager written in Ruby that tries to be a "good citizen" on OS X. Part of that is avoiding installing libraries that already exist on OS X.

Unfortunately OS X does not provide a statically linkable zlib, only a dylib. I have a package working that installs libz as a dependency, but the project owners have asked if it would be possible to link dynamically against libz.dylib.

Thought it was worth asking if it was possible before I tried to do it myself :)
You can see the thread here: Homebrew/legacy-homebrew#20329

(note I'm building against a fork as I needed to add some library paths, currently the make file assumes macports is being used)

Best,
David

[Feature Request] More control over Handling termination signal

Hi,
[Feature Request]
As far as I know It is not possible to catch the command line termination signal in Neko VM to do some further clean up.
It would be nice if the Neko VM when handling it, call the currently running user Neko binary.
It is really import for us in our build build tool https://github.com/gameduell/duell , because duell libraries can have plugins that launches separate processes so we need a Watcher for the termination signal to notify all plugins to perform some clean up. And the tool is fully written in Haxe.

Best,
Khaled

Sqlite3 static lib

I just noticed that in df3f12c @nadako didn't made a static library for sqlite3.lib, so it now complains about missing sqlite3.dll. For NekoVM I prefer that all 3rd party libraries are statically linked. We have to fix this before release.

@nadako could you take care of it ?

make fails with zlib.ndll not found

The Makefile seems to be missing a step to build most of the ndll files:

../bin/neko nekoml -nostd neko/Main.nml nekoml/Main.nml core/Args.nml core/Array.nml core/Buffer.nml core/Core.nml core/Hashtbl.nml core/IO.nml core/LexEngine.nml core/Lexer.nml core/List.nml core/Map.nml core/Math.nml core/Net.nml core/Reflect.nml core/Regexp.nml core/Set.nml core/Stack.nml core/String.nml core/Sys.nml core/Xml.nml core/Zip.nml -pack ../bin/nekoml.std
Called from nekoml/Main.nml line 138
Called from core/Zip.nml line 42
Exception : Neko_error(load.c(237) : Failed to load library : zlib.ndll (zlib.ndll: cannot open shared object file: No such file or directory))
Called from tools/install.neko line 416
Uncaught exception - Error 255 : aborted
make: *** [libs] Error 1

nekotools server hangs on start (osx mavericks)

I'm running osx 10.9.1
I've tried the osx binaries and building neko from source. Same result. When I run nekotools server (on any port) it hangs with just this output:

Starting Neko Server on localhost:2000

And it never gets past this point. The server does not respond to requests.

Standalone neko app on Linux

A standalone neko app created with nekotools boot doesn't find the necessary libneko.so even when it's in the same folder. This works without problems in Windows (don't know about OSX). By default Linux searches shared libraries only in standard lib-paths or in the LD_LIBRARY_PATH env var. The easiest fix for this seems to be adding some rpath info to the linker when compiling as described here: http://blog.lxgcc.net/?tag=dt_runpath.
I tried it and it worked in my tests. Shall I create a PR?

process_run argument "quotation" broken on Windows

Yes that's quotation with sarcasm quotes, it adds quotes around an argument but does not escape " inside of the arg.

for(i=0;i<val_array_size(vargs);i++) {

Found this the hard way trying to call haxe compiler from a neko script with a --macro argument (works fine on unix oses)

From: http://www.daviddeley.com/autohotkey/parameters/parameters.htm#CPP

replace literal  "  with   \" 
        literal \"  with  \\\" 
        literal \\" with \\\\\"
enclose the whole parameter in double quotes

Fixing this will make tool makers happier everywhere, Thank you ;-)

Fix "-version" command - missed line-break.

Currently after call neko -version we have response:

fzzr:samples ak$ neko -version
2.0.0fzzr:samples ak$ 

After "2.0.0" we need to get missed line-break.
It's not beauty.

"nekotools boot" = option to generate 32 bit binary executable,even while sitting on 64 bit OS

I am using 64 bit ubuntu.
when i compile a C program using "gcc hello1.c -o hello1.bin" then the hello1.bin executable is 64 bit ELF executable.
BUT when i compile a C program using "gcc -m32 hello1.c -o hello2.bin", then the hello2.bin executable is 32 bit ELF executable, even though i am still using 64 bit OS

(also, for generating 64 bit binary on 32 bit OS, we pass "-m64" flag to gcc)

(assuming the requisite multilib installed)

BUT
NOW, in case of "nekotools boot' option i can currently ONLY get 64 bit executable binary on a 64 bit OS.
There should be a way to GENERATE 32 bit executable using "nekotools boot" , while sitting on 64 bit OS

Also the viceversa should be also possible using commandline switch. That is, generating 64 bit executable using "nekotools boot" while sitting on 32 bit OS.
(assuming the requisite multilib installed)

Neko jit on Debian jessie

I have got JIT-related errors on new debian release (x86).

Called from Array::__get line 291
Uncaught exception - Invalid array access

On turning off jit (-interp) everything works fine.

After some research found that Array::__get called with a wrong scope.

Neko crashes on forked lime TextRendering example

I updated TextRendering example to support smarter Rectangular packing algorithm and found that updated example doesn't work on neko, even though it works on cpp and node.js.

https://github.com/vroad/lime/tree/4e5e03ef9e48bace21f6c8eba160bc49bdeef589
https://github.com/vroad/lime-samples/tree/7c8c263d8d3f56ca5c1b606fa18b14b114dafd21/TextRendering

TextRendering example built for windows: https://www.dropbox.com/s/b5on6onacnqx4dq/lime-TextRendering-neko.zip?dl=0

CallStack:

neko.dll!otable_find(_objtable * t, int id) Line 42 C
neko.dll!neko_val_field(_value * _o, int id) Line 459   C
lime.ndll!`anonymous namespace'::api_val_string(`anonymous-namespace'::_neko_value * arg1) Line 221 C++
lime.ndll!`anonymous namespace'::api_val_to_buffer(`anonymous-namespace'::_neko_value * arg1) Line 241  C++
lime.ndll!IMPL_val_to_buffer(_value * a1) Line 68   C++
lime.ndll!lime::ByteArray::Bytes() Line 122 C++
lime.ndll!lime::lime_gl_tex_sub_image_2d(_value * * arg, int argCount) Line 1324    C++
neko.dll!neko_val_callEx(_value * vthis, _value * f, _value * * args, int nargs, _value * * exc) Line 94    C
neko.dll!neko_val_callN(_value * f, _value * * args, int nargs) Line 138    C
neko.dll!builtin_call(_value * f, _value * ctx, _value * args) Line 784 C

Math.round( Math.NaN ) = -2147483648

Since neko 2.0 Math.round(Math.NaN) returns -2147483648

Neko 2 results :
Math.round(1/0) = -2147483648
Math.round( Math.POSITIVE_INFINITY ) = -2147483648
Math.round( Math.NEGATIVE_INFINITY ) = -2147483648
Math.round( Math.NaN ) = -2147483648

Neko 1 results :
Math.round(1/0) = 0
Math.round( Math.POSITIVE_INFINITY ) = 0
Math.round( Math.NEGATIVE_INFINITY ) = 0
Math.round( Math.NaN ) = 0

Nightly build needed

I would like to have the fix from #21 which seems not being included in the 2.0.0 release. Where can I find the nightly build?

FreeBSD support?

This question might have been asked before. At first glance (though I might be wrong, of course) there is nothing that should prevent porting to FreeBSD. Are there any plans to support this? Any tips in case I try to port it myself?

OSX Mavericks Support

install.neko contains a header line for FlatCarbon that prevents neko from building on OSX 10.9 (Mavericks). Removing the line allows the system to build.

I came across this when trying to install haxe via homebrew, which has a dependency on neko. Homebrew/legacy-homebrew#26059

+--- a/src/tools/install.neko
++++ b/src/tools/install.neko
+@@ -158,7 +158,6 @@ search_includes = function(isap2) {
+       "/opt/local/include",
+       "/opt/local/include/mysql",
+       "/opt/local/include/mysql5/mysql",
+-      "/Developer/Headers/FlatCarbon",
+       "/System/Library/Frameworks/Carbon.framework/Versions/A/Headers/",
+   );
+   var inc2;

Time for a new release?

It seems that there are many useful fixes and improvements in current master branch, some of which I believe are required by newer Haxe (e.g. buffer_get_length and UDP socket stuff), so why there are no new Neko release? Is it still unstable?

New release for haxe 3.2?

As title. IIRC there are some haxe features introduced between 3.1.3 and 3.2.0 require a new version of neko.

Neko will not find files in the local directory

Neko will not find files (such as std.dll) in its local directory. As a result, Neko is not really suitable for distributing applications, unfortunately. This is also what blocks us from being able to do cross-desktop builds using Neko.

Statically linking Neko (in the case of xcross) could resolve this problem, except that we still need to load binaries dynamically for NME or native extensions. In xcross, Lib.load is hard-coded to assume the symbols are already embedded, so it does not support dynamic linking of other libraries.

http://nekovm.org/ is down

Hi there,

it seems nekovm.org is down. I tried to install OpenFL from scratch using the Linux installer since I will be teaching a course on videogame development on Friday and didn't work. I have a previous version in my computer, but I'm afraid my students don't.

Thanks a lot for your time, - David.

FFI: How to know the function value/name being called?

Hi,

I'm trying to add neko support for some library I'm developing. Basically I need to know from a neko function what function is being called given that my library has dynamic functions that are only known at runtime.

Like:

value attr_set(value *args, int nargs)
{
  // Here I need to know the function name/value
}

main()
{
  value setter;
  value o;
  char *setter_name;
  const char *attr = mylib_get_attr();

  asprintf(&setter_name, "set_%s", attr);
  o = alloc_object(NULL);
  setter = alloc_function(attr_set, VAR_ARGS,  setter_name);
  alloc_field(o, val_id(setter_name), setter_name);
}

If I use neko_call_stack(); It only gives me an array of one value, which is the main .neko file.
Also, is it possible to add a private data to a function value? If I'm able to retrieve the function value on the c function it would be great!

What is the current state of Neko?

Hello! The last "News" on website is from September 10 2011, so it's more than 2 years ago already. I can see however that you achieved version 2.0.0 since then. Is Neko still developed as something independent, or exists only as much as it is useful for HaXe now? Is there any roadmap for future developement?

parameter incorrectly initialized to 0

this prints 20,20 on OSX, and Flash builds, but 20,0 when run with neko. halp.

package;


import openfl.display.Sprite;


class Main extends Sprite {

    var px:Int = Math.floor(20);

    public function new () {        
        super ();
        trace(Math.floor(20));
        trace(px);          

    }

}

appeared on haxe compiler 3.1.3, OSX 10.10.3

edit: oops, forgot to link to repro project

http://ded.increpare.com/~locus/nekobug.zip

make libs failed on linux

Compiling zlib...
Include file zlib.h not found, skipping LibZ library compilation
Compiling sqlite...
Include file sqlite3.h not found, skipping Sqlite 3 library compilation
Compiling mod_neko...
Include file httpd.h not found, skipping Apache 1.3.x library compilation
Compiling mod_tora...
Include file httpd.h not found, skipping Apache 1.3.x library compilation
Compiling mod_tora2...
Include file apr.h not found, skipping Apache 2.2.x library compilation
Compiling mod_neko2...
Include file apr.h not found, skipping Apache 2.2.x library compilation
Compiling ui...
Include file gtk/gtk.h not found, skipping GTK+2.0 library compilation
Compiling regexp...
Include file pcre.h not found, skipping PCRE library compilation

Bytes setInt32 crash

The follow code crashes with error $sset

package;

import haxe.io.Bytes;

class Main 
{
    static function main() 
    {
        var b = Bytes.alloc(128 * 145 * 4);
        b.fill(0, 128 * 145 * 4, 0);
        b.setInt32(73660, 0x70ffffff);
    }
}

Doesn't compile

When I try what is written on haxe.org about installing from source, except clonig from github instead from googlecode, I cant compile:

$ make clean all
make -C libs/extlib clean
make: *** libs/extlib: No such file or directory.  Stop.
make: *** [clean_libs] Error 2

@:generic issue

It appears @:generic causes strife in some situations. Er, I guess I can't attach the code which demos the problem here in this issue directly? See the tar.gz attached in the mailing list thread: https://groups.google.com/d/msg/haxelang/SB4aj5S9WIo/TPijsw6ZhikJ

(Also... this demo code was boiled down from my own app code. I saw that in my app code, if I remove @:generic, but try to use Type.typeof(this) inside XY2.toString() then neko goes into an infinite loop.)

HEAD dead on Yosemite

Title explains really. The current Github repository does not compile on OS X 10.10.

==> Checking out revision 6ab8f48a8dc62e4d917b599b3d8c8e10f764f839
git checkout-index -a -f --prefix=/private/tmp/neko-S80agF/
==> make os=osx LIB_PREFIX=/usr/local INSTALL_FLAGS=
mkdir bin 2>/dev/null
make: [createbin] Error 1 (ignored)
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/alloc.o -c vm/alloc.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/builtins.o -c vm/builtins.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/callback.o -c vm/callback.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/interp.o -c vm/interp.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/load.o -c vm/load.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/objtable.o -c vm/objtable.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/others.o -c vm/others.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/hash.o -c vm/hash.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/module.o -c vm/module.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/jit_x86.o -c vm/jit_x86.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/threads.o -c vm/threads.c
clang  -o bin/libneko.dylib vm/alloc.o vm/builtins.o vm/callback.o vm/interp.o vm/load.o vm/objtable.o vm/others.o vm/hash.o vm/module.o vm/jit_x86.o vm/threads.o -ldl /usr/local/lib/libgc.a -lm -dynamiclib -single_module -install_name @executable_path/libneko.dylib
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/stats.o -c vm/stats.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o vm/main.o -c vm/main.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o bin/neko vm/stats.o vm/main.o -L/private/tmp/neko-S80agF/bin -lneko
strip bin/neko
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/buffer.o -c libs/std/buffer.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/date.o -c libs/std/date.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/file.o -c libs/std/file.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/init.o -c libs/std/init.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/int32.o -c libs/std/int32.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/math.o -c libs/std/math.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/string.o -c libs/std/string.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/random.o -c libs/std/random.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/serialize.o -c libs/std/serialize.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/socket.o -c libs/std/socket.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/sys.o -c libs/std/sys.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/xml.o -c libs/std/xml.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/module.o -c libs/std/module.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/common/sha1.o -c libs/common/sha1.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/md5.o -c libs/std/md5.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/unicode.o -c libs/std/unicode.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/utf8.o -c libs/std/utf8.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/memory.o -c libs/std/memory.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/misc.o -c libs/std/misc.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/thread.o -c libs/std/thread.c
clang -Wall -O3 -fPIC -fomit-frame-pointer -I vm -D_GNU_SOURCE -I libs/common -L/usr/local/lib -L/usr/local/lib -I/usr/local/include  -o libs/std/process.o -c libs/std/process.c
clang -o bin/std.ndll libs/std/buffer.o libs/std/date.o libs/std/file.o libs/std/init.o libs/std/int32.o libs/std/math.o libs/std/string.o libs/std/random.o libs/std/serialize.o libs/std/socket.o libs/std/sys.o libs/std/xml.o libs/std/module.o libs/common/sha1.o libs/std/md5.o libs/std/unicode.o libs/std/utf8.o libs/std/memory.o libs/std/misc.o libs/std/thread.o libs/std/process.o -bundle -undefined dynamic_lookup -L/private/tmp/neko-S80agF/bin -lneko
(cd src; LD_LIBRARY_PATH=../bin: NEKOPATH=../boot:../bin ../bin/neko nekoml -nostd neko/Main.nml nekoml/Main.nml)
(cd src; LD_LIBRARY_PATH=../bin: NEKOPATH=../boot:../bin ../bin/neko nekoc -link ../boot/nekoc.n neko/Main)
neko/Main
IO
String
List
Array
Core
Buffer
neko/Printer
neko/Ast
Lexer
LexEngine
Hashtbl
neko/Binast
neko/Compile
Map
neko/Bytecode
neko/Xml
Xml
neko/Console
neko/Parser
neko/Lexer
Reflect
Stack
neko/Linker
neko/Doc
Sys
Args
(cd src; LD_LIBRARY_PATH=../bin: NEKOPATH=../boot:../bin ../bin/neko nekoc -link ../boot/nekoml.n nekoml/Main)
nekoml/Main
IO
String
List
Array
Core
Buffer
neko/Printer
neko/Ast
Lexer
LexEngine
Hashtbl
nekoml/Type
neko/Compile
Map
neko/Bytecode
Reflect
nekoml/Neko
nekoml/Typer
nekoml/Ast
nekoml/Match
Set
nekoml/Parser
nekoml/Lexer
neko/Lexer
neko/Parser
neko/Binast
neko/Xml
Xml
Sys
Zip
Stack
Args
(cd src; LD_LIBRARY_PATH=../bin: NEKOPATH=../boot:../bin ../bin/neko nekoc tools/install.neko)
(cd src; LD_LIBRARY_PATH=../bin: NEKOPATH=../boot:../bin ../bin/neko tools/install -silent )
cp ../boot/nekoc.n ../bin
cp ../boot/nekoml.n ../bin
../bin/neko nekoc tools/test.neko
cp tools/test.n ../bin
../bin/neko nekoc tools/nekoboot.neko
../bin/neko nekoml -nostd -p tools Tools.nml
../bin/neko nekoc -link tools/nekotools.n Tools
Tools
tools/nekoboot
Sys
List
Array
Core
String
Buffer
IO
WebServer
Hashtbl
Lexer
LexEngine
Stack
Reflect
Args
Net
cp tools/nekotools.n ../bin
../bin/neko tools/nekoboot ../bin/nekoc.n
../bin/neko tools/nekoboot ../bin/nekoml.n
../bin/neko tools/nekoboot ../bin/nekotools.n
Compiling zlib...
clang -O3 -fPIC  -c -I../../vm -I/usr/include zlib.c
clang -L/private/tmp/neko-S80agF/src -L/usr/lib -L/usr/lib/mysql -L/usr/local/lib -L/usr/local/lib/mysql -L/opt/local/lib -L/opt/local/lib/mysql -L/opt/local/lib/mysql5/mysql  -o ../../bin/zlib.ndll zlib.o -lz   -bundle -undefined dynamic_lookup -L../../bin -lneko
Compiling sqlite...
clang -O3 -fPIC  -c -I../../vm -I/usr/include sqlite.c
clang -L/private/tmp/neko-S80agF/src -L/usr/lib -L/usr/lib/mysql -L/usr/local/lib -L/usr/local/lib/mysql -L/opt/local/lib -L/opt/local/lib/mysql -L/opt/local/lib/mysql5/mysql  -o ../../bin/sqlite.ndll sqlite.o -lsqlite3   -bundle -undefined dynamic_lookup -L../../bin -lneko
Compiling mod_neko...
Include file httpd.h not found, skipping Apache 1.3.x library compilation
Compiling mod_tora...
Include file httpd.h not found, skipping Apache 1.3.x library compilation
Compiling mod_tora2...
clang -O3 -fPIC -D_LARGEFILE64_SOURCE -I../common -c -I../../vm -I/usr/include/apache2 -I/usr/include/apr-1 ../common/socket.c
clang -O3 -fPIC -D_LARGEFILE64_SOURCE -I../common -c -I../../vm -I/usr/include/apache2 -I/usr/include/apr-1 protocol.c
clang -O3 -fPIC -D_LARGEFILE64_SOURCE -I../common -c -I../../vm -I/usr/include/apache2 -I/usr/include/apr-1 mod_tora.c
clang -L/private/tmp/neko-S80agF/src -L/usr/lib -L/usr/lib/mysql -L/usr/local/lib -L/usr/local/lib/mysql -L/opt/local/lib -L/opt/local/lib/mysql -L/opt/local/lib/mysql5/mysql  -o ../../bin/mod_tora2.ndll socket.o protocol.o mod_tora.o   -bundle -undefined dynamic_lookup -L../../bin
Compiling mod_neko2...
clang -O3 -fPIC -D_LARGEFILE64_SOURCE -c -I../../vm -I/usr/include/apache2 -I/usr/include/apr-1 ../../vm/stats.c
clang -O3 -fPIC -D_LARGEFILE64_SOURCE -c -I../../vm -I/usr/include/apache2 -I/usr/include/apr-1 mod_neko.c
clang -O3 -fPIC -D_LARGEFILE64_SOURCE -c -I../../vm -I/usr/include/apache2 -I/usr/include/apr-1 cgi.c
clang -L/private/tmp/neko-S80agF/src -L/usr/lib -L/usr/lib/mysql -L/usr/local/lib -L/usr/local/lib/mysql -L/opt/local/lib -L/opt/local/lib/mysql -L/opt/local/lib/mysql5/mysql  -o ../../bin/mod_neko2.ndll stats.o mod_neko.o cgi.o   -bundle -undefined dynamic_lookup -L../../bin -lneko
Compiling ui...
clang -O3 -fPIC  -c -I../../vm -I/System/Library/Frameworks/Carbon.framework/Versions/A/Headers/ ui.c
In file included from ui.c:31:
In file included from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:24:
In file included from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35:
In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:43:
In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:9:
In file included from /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceAPI.h:13:
In file included from /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceBase.h:30:
In file included from /usr/include/xpc/xpc.h:330:
In file included from /usr/include/launch.h:29:
In file included from /usr/include/mach/mach.h:67:
In file included from /usr/include/mach/mach_interface.h:45:
/usr/include/mach/lock_set.h:51:15: error: conflicting types for 'neko_lock_acquire'
kern_return_t lock_acquire
              ^
../../vm/neko.h:370:23: note: expanded from macro 'lock_acquire'
#define lock_acquire            neko_lock_acquire
                                ^
../../vm/neko.h:443:14: note: previous declaration is here
        EXTERN void lock_acquire( mt_lock *l );
                    ^
../../vm/neko.h:370:23: note: expanded from macro 'lock_acquire'
#define lock_acquire            neko_lock_acquire
                                ^
In file included from ui.c:31:
In file included from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:24:
In file included from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35:
In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:43:
In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:9:
In file included from /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceAPI.h:13:
In file included from /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceBase.h:30:
In file included from /usr/include/xpc/xpc.h:330:
In file included from /usr/include/launch.h:29:
In file included from /usr/include/mach/mach.h:67:
In file included from /usr/include/mach/mach_interface.h:45:
/usr/include/mach/lock_set.h:63:15: error: conflicting types for 'neko_lock_release'
kern_return_t lock_release
              ^
../../vm/neko.h:372:23: note: expanded from macro 'lock_release'
#define lock_release            neko_lock_release
                                ^
../../vm/neko.h:445:14: note: previous declaration is here
        EXTERN void lock_release( mt_lock *l );
                    ^
../../vm/neko.h:372:23: note: expanded from macro 'lock_release'
#define lock_release            neko_lock_release
                                ^
In file included from ui.c:31:
In file included from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:24:
In file included from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:35:
In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:43:
In file included from /System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:9:
In file included from /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceAPI.h:13:
In file included from /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceBase.h:30:
In file included from /usr/include/xpc/xpc.h:330:
In file included from /usr/include/launch.h:29:
In file included from /usr/include/mach/mach.h:67:
In file included from /usr/include/mach/mach_interface.h:45:
/usr/include/mach/lock_set.h:75:15: error: conflicting types for 'neko_lock_try'
kern_return_t lock_try
              ^
../../vm/neko.h:371:20: note: expanded from macro 'lock_try'
#define lock_try                        neko_lock_try
                                        ^
../../vm/neko.h:444:13: note: previous declaration is here
        EXTERN int lock_try( mt_lock *l );
                   ^
../../vm/neko.h:371:20: note: expanded from macro 'lock_try'
#define lock_try                        neko_lock_try
                                        ^
3 errors generated.
Called from tools/install.neko line 423
Called from tools/install.neko line 384
Uncaught exception - Error 1 : aborted
make: *** [libs] Error 1

null-ptr dereference in neko_buffer_to_string

#0 neko_buffer_to_string (b=0x0) at vm/others.c:192
#1 0xb7fdb04e in ?? ()
#2 0xb7fb72eb in neko_val_callN (f=0x80adcc0, args=0x81aaf04, nargs=6) at vm/callback.c:138
#3 0xb7fb57bb in builtin_call (f=0x80adcc0, ctx=0x81a7e70, args=0x81aaf00) at vm/builtins.c:497
#4 0xb7dbb05b in ?? ()
#5 0xb7fbec50 in neko_vm_execute (vm=0x80b6450, _m=0x81b5f30) at vm/interp.c:239
#6 0xb7d90e26 in module_exec (mv=0x8167550) at libs/std/module.c:143
#7 0xb7fb702f in neko_val_callEx (vthis=0xb7fcf4dc, f=0x8072810, args=0xbffff2c8, nargs=1, exc=0xbffff2cc)

at vm/callback.c:78

#8 0x0804993e in ?? ()
#9 0x08049bf9 in ?? ()
#10 0xb7e64ca6 in __libc_start_main () from /lib/i686/cmov/libc.so.6
#11 0x08048e61 in ?? ()

I am happy to share the code for the tool and reduced input that causes this, if there is interest.

Roadmap?

I was at the Ufront gitter chat room today talking about how one should debug an Ufront app and the fact that there's still not interactive debugger available for it (we talked briefly about the possibility of using the experimental Nodejs backend to debug the server using https://github.com/node-inspector/node-inspector ). Since Neko is the default target afaik but there's isn't yet a native Neko interactive debugger, that made me think about Neko's future and roadmap.

I totally forgot to ask @ncannasse or @Simn about that at the conference, but it'd be nice to know what are the foundation plans for Neko, since, from my point of view, it's still a crucial component in the Haxe eco-system and it should get the attention it deserves.

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.