Leonid,
Fixed.
However, this kind of versioning is not recommended anymore. More and more people want 'deterministic' compilations.
Our compiler supports that too (not in the project properties dialog yet) by passing a /deterministic commandline option, or by adding <deterministic>true</deterministic> to the project properties in your project file.
If you google for "deterministic" you will see that this is a big thing
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
robert wrote:If you google for "deterministic" you will see that this is a big thing
Hm. "In mathematics, computer science and physics, a deterministic system is a system in which no randomness is involved in the development of future states of the system. A deterministic model will thus always produce the same output from a given starting condition or initial state."
Not sure, how that's connected. "I" would like a new "name" (=number), whenever the compiled code differs from it's predecessors. Is that deterministic?
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
P.S. The automatic build number helps with internal testing when you submit an application for QA review. At this stage, builds are released frequently, with minor fixes, and it is important to know which build the tester is working with. You can forget to increase the build number on your own, and it is difficult to follow this. This should be automated (Build number). Major and Minor must be explicitly defined by the developer. I think different models are suitable for different methods of project management - somewhere deterministic, somewhere not.
Like you, I have difficulty in seeing the connection.
But be careful of reading too much into deterministic and non-deterministic.
Both are vital and occur in every application.
Basically they are the only two ways logic can be, and is, routed through a running application. A route that is non-deterministic is a route in which you need to catch potential errors since you can't predict what the user may do. Deterministic, as it's name implies, is enforced in your code - and you are responsible for errors or bugs in that.
Having said that, trying to read across from mathematics is frought with difficulty. Basically a digital program cannot completely remove the random element. (It can get close)
This is because, in mathematics we can imagine a system in which randomness gets ever smaller down to zero. (Mathematicians will qualify what they say by stipulating their functions are continuous).
Digital Processing cannot do this, for the simple reason the calculations would take an infinite length of time to work things out.
This leads into probabilities, statistics and so on - ugh.
Terry
The "deterministic" in this context means that everytime when you build the same binary with the compiler from the same source, then the binary result must be 100% identical.
So the binary can not contain "current date/time" timestamps and also not version numbers that are automatically calculated.
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu