Servers > How-To

Mono install - flags and version

(1/2) > >>

Darchiv:
Hello,

I have just set up Debian on Xen VPS and secured it. Now I am going to install Mono, and this has led me to ask some questions:

* Flag's --with-xen-opt description says "it makes Mono generate code which [...]". So does Mono run code in this way or compile it? If so, could you show me how to use mcs compiler on TDSM project (if TDSM is not compiled under xen-opt)?
* Shall I use Mono 2.11.x (compared to 2.10.x) or is this useless, as there is nothing better/more functions that TDSM uses?
Best regards,
Darchiv.

Darchiv:
OK, I can't wait.
I used 2.11.1. Everything got right, but when player joined (tried...) Mono exceptioned something.
Now I try to compile TDSM on Mono. The results aren't great. I use this in TDSM main source folder:

--- Code: ---/opt/mono11/bin/mcs -recurse:'*.cs' -lib:/opt/mono11/lib
--- End code ---
Of course I was welcomed by errors:

--- Code: ---./Utility/Serialize/DiffSerializer.cs(40,45): error CS0246: The type or namespace name `XmlDictionaryWriter' could not be found. Are you missing a using directive or an assembly reference?
./TDSMPermissions/TDSMPermissions/TDSMPermissions.cs(16,7): error CS0246: The type or namespace name `YaTools' could not be found. Are you missing a using directive or an assembly reference?
./Languages/Program.cs(4,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
--- End code ---
And 61 other.

I'm not blaming you, obviously. However, could you just show me what references I need? Or is this task possible on Mono on Debian at all?


EDIT: Sorry, I'm a short fuse :-[
I forgot about compatibility. Finally, I'll try LLVM for 2.10.x and Mono 2.10.8.1, and hold with compiling TDSM.
That should do the trick.

Stickiler:

--- Quote from: Darchiv on May 22, 2012, 02:07:31 PM ---OK, I can't wait.
I used 2.11.1. Everything got right, but when player joined (tried...) Mono exceptioned something.
Now I try to compile TDSM on Mono. The results aren't great. I use this in TDSM main source folder:

--- Code: ---/opt/mono11/bin/mcs -recurse:'*.cs' -lib:/opt/mono11/lib
--- End code ---
Of course I was welcomed by errors:

--- Code: ---./Utility/Serialize/DiffSerializer.cs(40,45): error CS0246: The type or namespace name `XmlDictionaryWriter' could not be found. Are you missing a using directive or an assembly reference?
./TDSMPermissions/TDSMPermissions/TDSMPermissions.cs(16,7): error CS0246: The type or namespace name `YaTools' could not be found. Are you missing a using directive or an assembly reference?
./Languages/Program.cs(4,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
--- End code ---
And 61 other.

I'm not blaming you, obviously. However, could you just show me what references I need? Or is this task possible on Mono on Debian at all?


EDIT: Sorry, I'm a short fuse :-[
I forgot about compatibility. Finally, I'll try LLVM for 2.10.x and Mono 2.10.8.1, and hold with compiling TDSM.
That should do the trick.

--- End quote ---

Sorry I didn't get onto you sooner, I thought I had replied  :-[

You shouldn't need to compile TDSM on your server, it should be enough to download the binaries. As far as I'm aware, TDSM won't compile on Mono. It's something I would LIKE to do, but don't have the time with other commitments. I may get the chance to look into it eventually, but at the moment, it's not a high priority.

If you want the most up-to-date from the Git that you can, check the prereleases folder on the Git, it's generally up to date. It may be one or two patches behind, but that's about it.

Darchiv:
Thanks for response.
I have Mono 2.10.8.1 and LLVM for 2.10.x and succesfully started and played on server without LLVM. When I use LLVM, I'm given the following error (when player joins):

--- Code: ---mono-sgen: /root/mono-llvm/include/llvm/ADT/SmallVector.h:154: const T& llvm::SmallVectorTemplateCommon<T>::operator[](unsigned int) const [with T = unsigned int]: Assertion `begin() + idx < end()' failed.
Stacktrace:

  at Terraria_Server.Main.Update (System.Diagnostics.Stopwatch) <IL 0x000dd, 0x0062f>
  at Terraria_Server.Program.UpdateLoop () <IL 0x000f1, 0x003e3>
  at Terraria_Server.ProgramThread/<>c__DisplayClass2.<.ctor>b__0 (object) <0x0001b>
  at System.Threading.Thread.StartInternal () <0x0005d>
  at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <IL 0x0004e, 0xffffffff>

Native stacktrace:

        mono-sgen() [0x80e55f9]
        [0xb76f640c]
        /lib/i686/nosegneg/libc.so.6(abort+0x182) [0xb7471e72]
        /lib/i686/nosegneg/libc.so.6(__assert_fail+0xf8) [0xb74679c8]
        mono-sgen() [0x84b1ccf]

Debug info from gdb:

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

--- End code ---

I don't know what's going on, but it shouldn't use files in /root/mono-llvm, in particular because they're deleted... Maybe I can issue any variable for my TDSM start directory or Mono's one, so that it uses correct files? Or just LLVM is incompatible with TDSM for now?

Stickiler:

--- Quote from: Darchiv on May 23, 2012, 01:04:48 PM ---Thanks for response.
I have Mono 2.10.8.1 and LLVM for 2.10.x and succesfully started and played on server without LLVM. When I use LLVM, I'm given the following error (when player joins):

--- Code: ---mono-sgen: /root/mono-llvm/include/llvm/ADT/SmallVector.h:154: const T& llvm::SmallVectorTemplateCommon<T>::operator[](unsigned int) const [with T = unsigned int]: Assertion `begin() + idx < end()' failed.
Stacktrace:

  at Terraria_Server.Main.Update (System.Diagnostics.Stopwatch) <IL 0x000dd, 0x0062f>
  at Terraria_Server.Program.UpdateLoop () <IL 0x000f1, 0x003e3>
  at Terraria_Server.ProgramThread/<>c__DisplayClass2.<.ctor>b__0 (object) <0x0001b>
  at System.Threading.Thread.StartInternal () <0x0005d>
  at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <IL 0x0004e, 0xffffffff>

Native stacktrace:

        mono-sgen() [0x80e55f9]
        [0xb76f640c]
        /lib/i686/nosegneg/libc.so.6(abort+0x182) [0xb7471e72]
        /lib/i686/nosegneg/libc.so.6(__assert_fail+0xf8) [0xb74679c8]
        mono-sgen() [0x84b1ccf]

Debug info from gdb:

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

--- End code ---

I don't know what's going on, but it shouldn't use files in /root/mono-llvm, in particular because they're deleted... Maybe I can issue any variable for my TDSM start directory or Mono's one, so that it uses correct files? Or just LLVM is incompatible with TDSM for now?

--- End quote ---

Where do you have mono-llvm installed? I would check that, because it's saying that you've got it installed in /root/mono-llvm.

We haven't done any tests with LLVM so far, afaik. I don't think, at this stage in time, TDSM is compatible with the LLVM.

Navigation

[0] Message Index

[#] Next page

Go to full version