Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSVC 2019: Small errors with self-build #548

Open
IngwiePhoenix opened this issue Feb 13, 2021 · 2 comments
Open

MSVC 2019: Small errors with self-build #548

IngwiePhoenix opened this issue Feb 13, 2021 · 2 comments

Comments

@IngwiePhoenix
Copy link

Hello!

Trying to build Dao on my Windows 10 maschine as I am testing out how it'd work with the V programming language. I found the following errors:

"state" is not a member of "DThreadData":
https://github.com/daokoder/dao/blob/master/kernel/daoThread.c#L275
https://github.com/daokoder/dao/blob/master/kernel/daoThread.c#L291

"thdSpecData" is no member of "DThreadData"
https://github.com/daokoder/dao/blob/master/kernel/daoThread.c#L349

"TlsSetValue": Not enough arguments for call:
https://github.com/daokoder/dao/blob/master/kernel/daoThread.c#L349

Uninitialized variable "j" used:
https://github.com/daokoder/dao/blob/master/kernel/daoProcess.c#L1765 (Typo?)

Compilation command used: cl .\kernel\*.c -I kernel /DWIN32 /DDAO_WITH_CONCURRENT /DDAO_STATIC_BUILD /Fedao.exe

Also where can I find the full documentation for all the syntax? I was not able to see the load keyword documented anywhere - just within one of the tests within test.

Kind regards,
Ingwie

@IngwiePhoenix
Copy link
Author

Also, when not compiling with DAO_WITH_CONCURRENT, an error is shown that __impl_timeGetTime() can not be resolved. You might want to add #pragma comment(lib, "winmm.lib") to fix that :)

@dumblob
Copy link

dumblob commented May 31, 2021

Hi and sorry for the delay. Dao uses it's own daomake tool which generates standard Makefiles depending on the platform. daomake itself uses the great C ecosystem to do all the heavy lifting with system properties detection etc. and thus the generated Makefiles are tailored to the system daomake itself was built for.

In other words you have to build daomake first (which should be quite easy - and it should work cross-platform as it's written in plain C but (un)surprisingly includes core parts of the Dao interpreter to allow writing the daomakefiles using a subset of Dao 😉).

Feel free to take a look at the PKGBUILD https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=dao-git (yeah, there are quite some ad-hoc patches using sed -i etc. to use os-level libraries instead of those distributed with Dao, but you'll get the idea).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants