Giter Club home page Giter Club logo

Comments (6)

PG1003 avatar PG1003 commented on August 17, 2024

Hello, I'm sorry to react this late.
Nice to hear you like it!
I will investigate your issue.

from dogfood.

PG1003 avatar PG1003 commented on August 17, 2024

I've tried to reproduce your issue but did not got the same result.
But instead of the 'lfs' I used my own filesystem module and that worked.

The following three points may help you.

Do you use the pre-build binary?
In that case, then issue could be that the pre-build dogfood binaries are build with MSVC which may not be compatible with your Lua Rocks configuration (I assume).

Are the C modules and the dogfood executable of the same platform (x86/x64)?

Are you sure that you placed all the dependencies/DLLs required by 'lfs', 'socked' 'iuplua', 'gbk' are placed too in the same folder as these C modules? You can use Depdency Walker to figure out what is missing.

from dogfood.

robertlzj avatar robertlzj commented on August 17, 2024

Hi,
I use dogfood53_win_x86-32.zip and C module for lua 5.3.
I attach 'lfs.dll' and all the demo. I'm not sure compile compatible problem.

I use pre-compile binary for lfs.dll and lua5.3 from official, generally not suffer any compatible problem.
But the issue presents like a lua5.1 interpreter handles a 5.3 module - process blocks till some timeout, then program stop, without any error message.

Are the C modules and the dogfood executable of the same platform (x86/x64)?

Yes, they are. Otherwise, there will be prompt: error loading module 'lfs' from file 'lfs.dll', %1 not a valid Win32 application.

Are you sure that you placed all the dependencies.

Yes. Otherwise, it will prompt "module 'lfs' not found".

Demo:

--test.lua
print(_VERSION)
package.path=''
package.cpath='?.dll'
print(package.cpath)
--	require'lfs'
local _,lfs=assert(pcall(require,'lfs'))
print(lfs)
print'test OK'

Step:

  1. dogfood.exe test.exe test in cmd.
  2. test.exe, will get

D:>test.exe
Lua 5.3
?.dll

D:>

Files:
dogfood_test.zip

  • lfs.dll
  • test.exe
  • test.lua

Thanks for your work, again~

from dogfood.

PG1003 avatar PG1003 commented on August 17, 2024

The lfs C module required lua53.dll.
However when I added lua53.dll then a 'multiple Lua VMs detected' message was displayed in the command prompt.

The pre-build Lua binaries are statically build with Lua which effectively disables support for C modules.
So, dogfood needs to be dynamically linked to support C modules.

I really liked the single dogfood executable without dependencies.
Its possible to embed a DDL in an executable but that requires a change to dog.c and the Visual Studio project files. I will try this but I'm not sure how it turns out.

from dogfood.

PG1003 avatar PG1003 commented on August 17, 2024

I've managed to embed Lua53.dll into the dogfood executable.

This zip contains a debug build of dogfood for Lua 5.3
It runs your test without errors.
Can you try this build with other libraries?

from dogfood.

PG1003 avatar PG1003 commented on August 17, 2024

A new release of dogfood has been made.
Also the pre-build binaries are updated to include the fix for your issue.

from dogfood.

Related Issues (1)

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.