compuphase / pawn

Pawn is a quick and small scripting language that requires few resources.

Home Page:http://www.compuphase.com/pawn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

64 bit windows builds, but scripts fail.

rybakatchya opened this issue · comments

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.

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

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.

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

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?

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.

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?

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.

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

image

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

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

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

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.