Mark
Knight
Linux/Mono Notes
Using Mono 1.2.5:
1. You must have some form of libc and libz installed on your system.
2. Mono must be in your path.
3. You will need a copy of the mul/idx files listed in "Scripts\Misc\DataPath.cs".
Known Issues:
1. Mono does not like a class containing two methods with the same name that differ only by a generic parameter. This means you will need to patch "Serialization.cs" and modify any affected Script files.
2. Mono increments pointers by 4 bytes no matter what the underlying type is in unsafe code when using the "++" operator. This is already accounted for in RunUO, but I am noting it here so it can be tested in future versions.
3. Generic commands do not work and will crash the Mono runtime. The issue occurs when we call Extensions.Parse from the commands area, global, region, online, etc. I have not found a workaround for this yet.
4. Documentation generation does not work. I haven't investigated the issue.
Compiling:
Here is how I compile the core:
* Mono is installed in my home directory, your path to gmcs may very.
Here is how I start RunUO:
* If Mono is not in your path, ScriptCompiler will fail. Setting the PATH variable shouldn't be necessary in most cases.
Using Mono 1.2.5:
1. You must have some form of libc and libz installed on your system.
2. Mono must be in your path.
3. You will need a copy of the mul/idx files listed in "Scripts\Misc\DataPath.cs".
Known Issues:
1. Mono does not like a class containing two methods with the same name that differ only by a generic parameter. This means you will need to patch "Serialization.cs" and modify any affected Script files.
2. Mono increments pointers by 4 bytes no matter what the underlying type is in unsafe code when using the "++" operator. This is already accounted for in RunUO, but I am noting it here so it can be tested in future versions.
3. Generic commands do not work and will crash the Mono runtime. The issue occurs when we call Extensions.Parse from the commands area, global, region, online, etc. I have not found a workaround for this yet.
4. Documentation generation does not work. I haven't investigated the issue.
Compiling:
Here is how I compile the core:
Code:
$ ~/mono-1.2.5/bin/gmcs -d:MONO -unsafe+ -optimize- -t:exe -out:RunUO.exe -recurse:Server/*.cs
Here is how I start RunUO:
Code:
$ PATH=~/mono-1.2.5/bin ~/mono-1.2.5/bin/mono RunUO.exe