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

64 bit windows builds, but scripts fail. #77

Open
rybakatchya opened this issue Jun 16, 2022 · 12 comments
Open

64 bit windows builds, but scripts fail. #77

rybakatchya opened this issue Jun 16, 2022 · 12 comments

Comments

@rybakatchya
Copy link

rybakatchya commented Jun 16, 2022

Building with -C64 compiler flag and still doesn't run scripts. I get memory errors. Willing to pay $100 to anyone who can get this working on 64 bit windows/linux.

@namazso
Copy link
Contributor

namazso commented Jun 16, 2022

you set PAWN_CELL_SIZE to 64, right? it seems to work just fine here, i tried the greatest common divisor example.

@rybakatchya
Copy link
Author

you set PAWN_CELL_SIZE to 64, right? it seems to work just fine here, i tried the greatest common divisor example.

Yes I did, I will try to start fresh and see if i can get the samples running maybe I messed something else up.

@namazso
Copy link
Contributor

namazso commented Jun 16, 2022

Oh wait, maybe I misunderstood something. In the title the "64 bit" refers to pawn cell size, or the target architecture?

@rybakatchya
Copy link
Author

rybakatchya commented Jun 16, 2022

Both, I am trying to build the pawn library to embed in a program that targets 64 bit architecture. However I am get errors that I am attempting to read/write protected memory. If I build for x86 everything works fine.

Oh wait, maybe I misunderstood something. In the title the "64 bit" refers to pawn cell size, or the target architecture?

@rybakatchya
Copy link
Author

rybakatchya commented Jun 16, 2022

Yeah I am pretty sure it does not work on 64 bit windows. I been trying to get this working for almost a week. Am willing pay anyone who is able to get pawn working on 64 bit windows/linux $100 usd.

@namazso
Copy link
Contributor

namazso commented Jun 16, 2022

Hm, indeed 64 bit builds are somewhat broken. For me it stuck in an infinite loop rater than access violation, but that's obviously not correct behavior either.

I'm not sure what your use case is, but I have a Pawn interpreter implemented in C++ that should be able to work on anything with 8 bit bytes: https://github.com/namazso/PawnPP
It has some different design considerations like isolation over performance and misses the whole stdlib (didn't need it)

Maybe it can help you somehow?

@rybakatchya
Copy link
Author

How much different is the performance than this version of pawn? I will give it a test but will have to benchmark it as I am trying to use it to allow modding on a game engine.

@rybakatchya
Copy link
Author

rybakatchya commented Jun 16, 2022

If I use the version of pawn on the compuphase website. I am getting no errors pawnrun just wont run the scripts.

image

@rybakatchya
Copy link
Author

Hm, indeed 64 bit builds are somewhat broken. For me it stuck in an infinite loop rater than access violation, but that's obviously not correct behavior either.

I'm not sure what your use case is, but I have a Pawn interpreter implemented in C++ that should be able to work on anything with 8 bit bytes: https://github.com/namazso/PawnPP It has some different design considerations like isolation over performance and misses the whole stdlib (didn't need it)

Maybe it can help you somehow?

What version of the pawn compiler do I need to use to run a script using your version of the interpreter? I am getting "malformed file" when I run the example in 64 architecture on test16 test32 and test64.amx

@namazso
Copy link
Contributor

namazso commented Jun 16, 2022

What version of the pawn compiler do I need to use to run a script using your version of the interpreter?

The latest. You're most likely receiving that because the tests use a native called "opaque" (here: https://github.com/namazso/PawnPP/blob/master/Test/test.p#L6 ) while the example project only implements one named "five" (here: https://github.com/namazso/PawnPP/blob/master/Example/main.cpp#L136-L138 )

Also your use case (game modding) might not be quite compatible with the goals of my implementation, as I miss the entire float library (or any library at all really, it's just the interpreter), so if you wanted floats you'd need to implement them, or port them over from here.

How much different is the performance than this version of pawn?

this depends heavily on the memory backing model used, partial address space one can be as low as a few percents slower as memory access doesn't need to be range checked. but best is if you just benchmark

@rybakatchya
Copy link
Author

I was able to get it working, and have emailed you a potential freelance opportunity if you're at all interested.

@zboszor
Copy link
Contributor

zboszor commented Jul 23, 2023

Probably a lot of 64-bit issues are fixed by #72. It definitely works for us in a 64-bit Linux build now. Plus it can be used as a shared library now.

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

3 participants