Good afernoon. I have been programming my chess program GenMax with Purebasic for many years. Since I upgraded to Version 6.1 onwards, I am having problems with bad results compared to the 6.0 compilation (which works fine).
I initialized all the variables and the problems continue. For example, using the last version (6.10) I noticed a move counter doesn't work. It used to work perfectly. What can be the incompatibility?
Thank you very much.
Claudio Bollini
Incompatibilties after version 6.00
Re: Incompatibilties after version 6.00
It's hard to say without your code/a description of what the problem is, but my guess is trying to store a 64-bit pointer in a 32-bit container or similar. I've seen multiple topics about this issue, like: https://www.purebasic.fr/english/viewto ... 01#p617401
Re: Incompatibilties after version 6.00
GenMax has almost 24000 lines of code, so it is very heavy to share, even the supect portions.
I don't use pointers in the program. The counter variable that has issues (surely there are more over there) is a global integer variable.
I also checked the link you sent me and there are no long integer variables in my code. I only use integer anf float types (as well as strings). My compiler always was of 64b.
If it used to work ok in version 6.00, what could have changed in the following versions to make it incompatible now?
Thank you very much
Claudio Bollini
I don't use pointers in the program. The counter variable that has issues (surely there are more over there) is a global integer variable.
I also checked the link you sent me and there are no long integer variables in my code. I only use integer anf float types (as well as strings). My compiler always was of 64b.
If it used to work ok in version 6.00, what could have changed in the following versions to make it incompatible now?
Thank you very much
Claudio Bollini
Re: Incompatibilties after version 6.00
Truthfully I have absolutely no idea, can you describe what exactly it does? Like, it doesn't work, but how? What exactly doesn't work about it? Does it crash on a certain line? Does it hang? Is a feature broken? Etc.
-
- Addict
- Posts: 2344
- Joined: Mon Jun 02, 2003 9:16 am
- Location: Germany
- Contact:
Re: Incompatibilties after version 6.00
Did you use EnableExplicit at the very beginning? A global counter not counting sounds to me like a second instance or the conditions around the increments are never met.
bye,
Daniel
Daniel
Re: Incompatibilties after version 6.00
I think... Better stay with the old version of PB you used for this project and change it to the latest one only for the next project.
Re: Incompatibilties after version 6.00
I initially had several issues switching from 6.04 to 6.10 with my big app (62000+ lines), but now it's all working as intended after some deep source-checking and help from users here.
Your problem sounds like an easy one, though - a counter isn't working? Sounds like no big deal to fix. My app had actual real issues with memory crashing, and pointers, and wrong-sized variables. So how is your move counter incremented? In a thread? Outside one? What type of variable is it (Global, Protected, etc)? And is it defined as a long or integer? We need more info.
Your problem sounds like an easy one, though - a counter isn't working? Sounds like no big deal to fix. My app had actual real issues with memory crashing, and pointers, and wrong-sized variables. So how is your move counter incremented? In a thread? Outside one? What type of variable is it (Global, Protected, etc)? And is it defined as a long or integer? We need more info.
Re: Incompatibilties after version 6.00
Thank you very much for your kind remarks.
Quin and BarryG:
When I say that the counter does not work, I mean that after correctly assigning = 1, it freezes at this value. I repeat that until version 6.0, it worked perfectly. (It was already implemented long ago). And I'm sure that there are a lot of variables over there that dosen't work propely (as it does runing at version 6).
Darkdragon:
I did not have declared "enableexplicit" . So I'm slowly declaring all the non-global variable throughout the 24000 lines of code. I'll let you know if I succeed.
Caronte3D
Yes, that's my plan B. I've seen that, despite the incompatibilities, version 6.10 is faster and better.
Thank you all very much!
Claudio Bollini
Quin and BarryG:
When I say that the counter does not work, I mean that after correctly assigning = 1, it freezes at this value. I repeat that until version 6.0, it worked perfectly. (It was already implemented long ago). And I'm sure that there are a lot of variables over there that dosen't work propely (as it does runing at version 6).
Darkdragon:
I did not have declared "enableexplicit" . So I'm slowly declaring all the non-global variable throughout the 24000 lines of code. I'll let you know if I succeed.
Caronte3D
Yes, that's my plan B. I've seen that, despite the incompatibilities, version 6.10 is faster and better.
Thank you all very much!
Claudio Bollini