jvburnes / node9

A portable hybrid distributed OS based on Inferno, LuaJIT and Libuv
MIT License
408 stars 32 forks source link

Unexpected symbol near 'if' in kernel.lua #10

Closed rudchenkos closed 9 years ago

rudchenkos commented 9 years ago

Hi Jim,

Node9 fails at startup somewhere in kernel.lua. I wonder where is the 'if' it complains about? Neither line 33 nor line 2 has 'if' around.

I am on OSX 10.10.

$ node9 First Edition (20150610), build: 1434426470  main (pid=41810)
Tue Jun 16 05:38:53 2015  node9/kernel: initializing terminal
Tue Jun 16 05:38:53 2015  node9/kernel: loading
Tue Jun 16 05:38:53 2015  node9/kernel: initializing namespace
Tue Jun 16 05:38:53 2015  node9/kernel: binding standard streams
Tue Jun 16 05:38:53 2015  node9/kernel: initializing host environment
Tue Jun 16 05:38:53 2015  node9/kernel: accepting requests
Tue Jun 16 05:38:53 2015  node9/kernel: starting luaspace ...
Tue Jun 16 05:38:53 2015  signals set
Tue Jun 16 05:38:53 2015  node9: pcall: did not exit cleanly, err = 2
Tue Jun 16 05:38:53 2015  
FATAL ERROR:
  node9/init: could not start lua scheduler: /Users/serega/devel/node9/src/fs/os/lib/kernel.lua:33: unexpected symbol near 'if' at line 2
jvburnes commented 9 years ago

What OS are you using?

On Tue, Jun 16, 2015 at 1:10 AM, Sergii Rudchenko notifications@github.com wrote:

Hi Jim,

Node9 fails at startup somewhere in kernel.lua. I wonder where is the 'if' it complains about? Neither line 33 nor line 2 has 'if' around.

I am on OSX 10.10.

$ node9 First Edition (20150610), build: 1434426470 main (pid=41810) Tue Jun 16 05:38:53 2015 node9/kernel: initializing terminal Tue Jun 16 05:38:53 2015 node9/kernel: loading Tue Jun 16 05:38:53 2015 node9/kernel: initializing namespace Tue Jun 16 05:38:53 2015 node9/kernel: binding standard streams Tue Jun 16 05:38:53 2015 node9/kernel: initializing host environment Tue Jun 16 05:38:53 2015 node9/kernel: accepting requests Tue Jun 16 05:38:53 2015 node9/kernel: starting luaspace ... Tue Jun 16 05:38:53 2015 signals set Tue Jun 16 05:38:53 2015 node9: pcall: did not exit cleanly, err = 2 Tue Jun 16 05:38:53 2015 FATAL ERROR: node9/init: could not start lua scheduler: /Users/serega/devel/node9/src/fs/os/lib/kernel.lua:33: unexpected symbol near 'if' at line 2

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10.

rudchenkos commented 9 years ago

It is OS X 10.10.3

jvburnes commented 9 years ago

That's strange. I'm not sure how it broke. I'll take a look at it. Has anyone changed kernel.lua?

On Tue, Jun 16, 2015 at 9:59 AM, Sergii Rudchenko notifications@github.com wrote:

It is OS X 10.10.3

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112462047.

rudchenkos commented 9 years ago

I have no local changes to kernel.lua

$ git show HEAD
commit fb4bf5e59bdfcd928207d4ad95ecd12519a9839c
Merge: 6ea8105 0ca97e8
Author: Jim Burnes <jvburnes@gmail.com>
Date:   Mon Jun 15 12:08:53 2015 -0600

    Merge pull request #6 from paoloo/patch-3

    add linux compiling possibility
jvburnes commented 9 years ago

Sergii,

That's a strange line. Line 33 in the kernel is loading the CDEF from a specific include file. I can't tell which one it is from the error but looks to be line 2 of one of the .h files. Did you modify any of the includes?

(Hint: Check the series of "load_cdef" calls in the startup code in kernel.lua)

Jim

On Tue, Jun 16, 2015 at 12:14 PM, Jim Burnes jvburnes@gmail.com wrote:

That's strange. I'm not sure how it broke. I'll take a look at it. Has anyone changed kernel.lua?

On Tue, Jun 16, 2015 at 9:59 AM, Sergii Rudchenko < notifications@github.com> wrote:

It is OS X 10.10.3

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112462047.

jvburnes commented 9 years ago

Sergii,

Insert the following line as the first statement in load_cdef and try again:

print("loading header",hdr)

Jim

On Tue, Jun 16, 2015 at 1:55 PM, Jim Burnes jvburnes@gmail.com wrote:

Sergii,

That's a strange line. Line 33 in the kernel is loading the CDEF from a specific include file. I can't tell which one it is from the error but looks to be line 2 of one of the .h files. Did you modify any of the includes?

(Hint: Check the series of "load_cdef" calls in the startup code in kernel.lua)

Jim

On Tue, Jun 16, 2015 at 12:14 PM, Jim Burnes jvburnes@gmail.com wrote:

That's strange. I'm not sure how it broke. I'll take a look at it. Has anyone changed kernel.lua?

On Tue, Jun 16, 2015 at 9:59 AM, Sergii Rudchenko < notifications@github.com> wrote:

It is OS X 10.10.3

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112462047.

rudchenkos commented 9 years ago

Jim,

I did not modify any headers manually, though I have some local changes changes (probably generated by premake4 or make build steps). One header file is modified as well.

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   LuaJIT-2.0.3/src/host/buildvm
    modified:   LuaJIT-2.0.3/src/host/minilua
    modified:   LuaJIT-2.0.3/src/luajit
    modified:   premake4.lua
    modified:   src/include/kerndate.h
    modified:   src/libnode9.make
    modified:   src/node9.make
    modified:   src/styx/libs/lib9/Makefile
    modified:   src/styx/libs/libbio/Makefile
    modified:   src/styx/libs/libsec/port/Makefile
    modified:   src/styx/utils/Makefile
    modified:   src/styx/utils/ndate

Though the change is subtle, doesn't look like a cause for the problem:

$ git diff src/include/kerndate.h
diff --git a/src/include/kerndate.h b/src/include/kerndate.h
index 44d55fa..de22431 100644
--- a/src/include/kerndate.h
+++ b/src/include/kerndate.h
@@ -1 +1 @@
-#define KERNDATE 1432340974
+#define KERNDATE 1434426470

I have dumped the "hdr" argument from load_cdef, it is /module/ninevals.h:

Tue Jun 16 19:26:50 2015  signals set
loading header  /module/ninevals.h
Tue Jun 16 19:26:50 2015  node9: pcall: did not exit cleanly, err = 2
Tue Jun 16 19:26:50 2015  
FATAL ERROR:
  node9/init: could not start lua scheduler: /Users/serega/devel/node9/src/fs/os/lib/kernel.lua:34: unexpected symbol near 'if' at line 2

So most likely it is a regression introduced by commit 0ca97e87e38515b6a2317d5a0548b8f28891cee4

jvburnes commented 9 years ago

Yes. That's exactly the problem. It modified one of the CDEF headers. The LuaJIT FFI doesn't allow #ifdefs when reading CDEFs. We'll have to point to a different file in that case.

Let me think about it.

Jim

On Tue, Jun 16, 2015 at 2:29 PM, Sergii Rudchenko notifications@github.com wrote:

Jim,

I did not modify any headers manually, though I have some local changes changes (probably generated by premake4 or make build steps). One header file is modified as well.

$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)

modified:   LuaJIT-2.0.3/src/host/buildvm
modified:   LuaJIT-2.0.3/src/host/minilua
modified:   LuaJIT-2.0.3/src/luajit
modified:   premake4.lua
modified:   src/include/kerndate.h
modified:   src/libnode9.make
modified:   src/node9.make
modified:   src/styx/libs/lib9/Makefile
modified:   src/styx/libs/libbio/Makefile
modified:   src/styx/libs/libsec/port/Makefile
modified:   src/styx/utils/Makefile
modified:   src/styx/utils/ndate

Though the change is subtle, doesn't look like a cause for the problem:

$ git diff src/include/kerndate.h diff --git a/src/include/kerndate.h b/src/include/kerndate.h index 44d55fa..de22431 100644 --- a/src/include/kerndate.h +++ b/src/include/kerndate.h @@ -1 +1 @@ -#define KERNDATE 1432340974 +#define KERNDATE 1434426470

I have dumped the "hdr" argument from load_cdef, it is /module/ninevals.h:

Tue Jun 16 19:26:50 2015 signals set loading header /module/ninevals.h Tue Jun 16 19:26:50 2015 node9: pcall: did not exit cleanly, err = 2 Tue Jun 16 19:26:50 2015 FATAL ERROR: node9/init: could not start lua scheduler: /Users/serega/devel/node9/src/fs/os/lib/kernel.lua:34: unexpected symbol near 'if' at line 2

So most likely it is a regression introduced by commit 0ca97e8 https://github.com/jvburnes/node9/commit/0ca97e87e38515b6a2317d5a0548b8f28891cee4

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112538818.

jvburnes commented 9 years ago

Sergii,

I've fixed the ninevals.h file by simply patching it back to the original contents. If you pull changes from origin master it should work (assuming you've fixed the penlight issue).

Jim

On Tue, Jun 16, 2015 at 2:35 PM, Jim Burnes jvburnes@gmail.com wrote:

Yes. That's exactly the problem. It modified one of the CDEF headers. The LuaJIT FFI doesn't allow #ifdefs when reading CDEFs. We'll have to point to a different file in that case.

Let me think about it.

Jim

On Tue, Jun 16, 2015 at 2:29 PM, Sergii Rudchenko < notifications@github.com> wrote:

Jim,

I did not modify any headers manually, though I have some local changes changes (probably generated by premake4 or make build steps). One header file is modified as well.

$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)

modified:   LuaJIT-2.0.3/src/host/buildvm
modified:   LuaJIT-2.0.3/src/host/minilua
modified:   LuaJIT-2.0.3/src/luajit
modified:   premake4.lua
modified:   src/include/kerndate.h
modified:   src/libnode9.make
modified:   src/node9.make
modified:   src/styx/libs/lib9/Makefile
modified:   src/styx/libs/libbio/Makefile
modified:   src/styx/libs/libsec/port/Makefile
modified:   src/styx/utils/Makefile
modified:   src/styx/utils/ndate

Though the change is subtle, doesn't look like a cause for the problem:

$ git diff src/include/kerndate.h diff --git a/src/include/kerndate.h b/src/include/kerndate.h index 44d55fa..de22431 100644 --- a/src/include/kerndate.h +++ b/src/include/kerndate.h @@ -1 +1 @@ -#define KERNDATE 1432340974 +#define KERNDATE 1434426470

I have dumped the "hdr" argument from load_cdef, it is /module/ninevals.h:

Tue Jun 16 19:26:50 2015 signals set loading header /module/ninevals.h Tue Jun 16 19:26:50 2015 node9: pcall: did not exit cleanly, err = 2 Tue Jun 16 19:26:50 2015 FATAL ERROR: node9/init: could not start lua scheduler: /Users/serega/devel/node9/src/fs/os/lib/kernel.lua:34: unexpected symbol near 'if' at line 2

So most likely it is a regression introduced by commit 0ca97e8 https://github.com/jvburnes/node9/commit/0ca97e87e38515b6a2317d5a0548b8f28891cee4

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112538818.

jvburnes commented 9 years ago

Sergii,

In addition to fixing the ninevals problem I also embedded penlight into the distribution. It's only 438k of source of which I'm currently only using the List object.

On Tue, Jun 16, 2015 at 3:23 PM, Jim Burnes jvburnes@gmail.com wrote:

Sergii,

I've fixed the ninevals.h file by simply patching it back to the original contents. If you pull changes from origin master it should work (assuming you've fixed the penlight issue).

Jim

On Tue, Jun 16, 2015 at 2:35 PM, Jim Burnes jvburnes@gmail.com wrote:

Yes. That's exactly the problem. It modified one of the CDEF headers. The LuaJIT FFI doesn't allow #ifdefs when reading CDEFs. We'll have to point to a different file in that case.

Let me think about it.

Jim

On Tue, Jun 16, 2015 at 2:29 PM, Sergii Rudchenko < notifications@github.com> wrote:

Jim,

I did not modify any headers manually, though I have some local changes changes (probably generated by premake4 or make build steps). One header file is modified as well.

$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)

modified:   LuaJIT-2.0.3/src/host/buildvm
modified:   LuaJIT-2.0.3/src/host/minilua
modified:   LuaJIT-2.0.3/src/luajit
modified:   premake4.lua
modified:   src/include/kerndate.h
modified:   src/libnode9.make
modified:   src/node9.make
modified:   src/styx/libs/lib9/Makefile
modified:   src/styx/libs/libbio/Makefile
modified:   src/styx/libs/libsec/port/Makefile
modified:   src/styx/utils/Makefile
modified:   src/styx/utils/ndate

Though the change is subtle, doesn't look like a cause for the problem:

$ git diff src/include/kerndate.h diff --git a/src/include/kerndate.h b/src/include/kerndate.h index 44d55fa..de22431 100644 --- a/src/include/kerndate.h +++ b/src/include/kerndate.h @@ -1 +1 @@ -#define KERNDATE 1432340974 +#define KERNDATE 1434426470

I have dumped the "hdr" argument from load_cdef, it is /module/ninevals.h:

Tue Jun 16 19:26:50 2015 signals set loading header /module/ninevals.h Tue Jun 16 19:26:50 2015 node9: pcall: did not exit cleanly, err = 2 Tue Jun 16 19:26:50 2015 FATAL ERROR: node9/init: could not start lua scheduler: /Users/serega/devel/node9/src/fs/os/lib/kernel.lua:34: unexpected symbol near 'if' at line 2

So most likely it is a regression introduced by commit 0ca97e8 https://github.com/jvburnes/node9/commit/0ca97e87e38515b6a2317d5a0548b8f28891cee4

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112538818.

rudchenkos commented 9 years ago

Jim,

Thank you, now I have Node9 running!

jvburnes commented 9 years ago

Excellent.

On Wed, Jun 17, 2015 at 12:42 AM, Sergii Rudchenko <notifications@github.com

wrote:

Jim,

Thank you, now I have Node9 running!

— Reply to this email directly or view it on GitHub https://github.com/jvburnes/node9/issues/10#issuecomment-112660072.