PBeM-Spiele
http://www.pbem-spiele.de/forum/

Server unter 64bit kompiliert - Problem mit Magellan
http://www.pbem-spiele.de/forum/viewtopic.php?f=16&t=4182
Seite 1 von 1

Autor:  macalloy [ 08.01.2018 16:33 ]
Betreff des Beitrags:  Server unter 64bit kompiliert - Problem mit Magellan

Hallo Zusammen!

Vor ein paar Tagen habe ich Freunden von PbEM erzählt. Es hat gedauert bis ich mich an den Name Eressea erinnern konnte... Bin aber fündig geworden :-)
Ich möchte mit ihnen nun ein kleines Testspiel starten.
Dazu habe ich mir bereits den Source code geladen und compiliert (unter MacOS). Meine ersten Versuchsauswertungen habe ich erfolgreich hinter mir. D.h. der Server läuft mal.
Nun wollte ich aber eine dieser Auswertungen in Magellan laden.
Dort bekomme ich aber folgenden Fehler:

Code:
2018-01-08 15:51:26.623 java[38247:1615860] *** Assertion failure in -[AWTWindow_Normal _changeJustMain], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1561.20.106/AppKit.subproj/NSWindow.m:13141
(II) 08.01.2018 15:51:26.663: Loading report /Develope/pbem/game-2/reports/11-ycmd.cr
(WW) 08.01.2018 15:51:28.664: java.lang.NumberFormatException: For input string: "2625639936"
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
   at java.lang.Integer.parseInt(Integer.java:583)
   at java.lang.Integer.valueOf(Integer.java:766)
   at magellan.library.IntegerID.create(IntegerID.java:59)
   at magellan.library.io.cr.CRParser.parseMessages(CRParser.java:437)
   at magellan.library.io.cr.CRParser.parseFaction(CRParser.java:1899)
   at magellan.library.io.cr.CRParser.parseHeader(CRParser.java:895)
   at magellan.library.io.cr.CRParser.read(CRParser.java:3249)
   at magellan.library.io.AbstractReportParser.read(AbstractReportParser.java:266)
   at magellan.library.io.GameDataReader.readGameData(GameDataReader.java:126)
   at magellan.library.io.GameDataReader.readGameData(GameDataReader.java:89)
   at magellan.library.io.GameDataReader.readGameData(GameDataReader.java:63)
   at magellan.client.Client.loadCR(Client.java:1758)
   at magellan.client.Client$10.run(Client.java:1880)
   at java.lang.Thread.run(Thread.java:748)


In der CR Datei steht - Teil passend zur Fehlermeldung:
Code:
MESSAGE 2625639936
771334452;type
"Frau Andrea (a1) verdient in Vutvonpan (0,0) 10 Silber.";rendered


Nun gehe ich mal davon aus, dass Magellan nur mit 32bit Integer arbeiten kann.
Wenn ich unter MacOS den Server kompiliere, erhalte ich aber ein 64bit Program.

Ich hab schon versucht, das Ding als 32bit zu kompilieren. Bin aber gescheitert. Die Tests gehen dann nicht mehr durch.
Meine Kenntnisse von make files sind aber schon sehr verstaubt. Und cmake-files kenne ich schon gar nicht...

Hat jemand einen Tipp, wie ich das in meiner Konfiguration zum Laufen bringe?
Bin schon am überlegen, mir eine virtuelle Maschine mit 32bit Linux zu installieren und den server dann dort zu betreiben...

Liebe Grüße!

Autor:  Enno [ 08.01.2018 17:10 ]
Betreff des Beitrags:  Re: Server unter 64bit kompiliert - Problem mit Magellan

Den System hat sizeof(int) = 8? Das ist zumindest ungewöhnlich. Der CR ist da nicht genau spezifiziert, aber so wie es aussieht, nimmt Magellan an, dass die Message Ids 32 Bit sind, was sie jedenfalls bisher auch immer waren.

Ich habe kein System, auf dem das auftreten würde, deshalb ist meine Antwort erst einmal, dass das nicht supported ist.

Autor:  Enno [ 08.01.2018 17:12 ]
Betreff des Beitrags:  Re: Server unter 64bit kompiliert - Problem mit Magellan

Ich kompiliere allerdings auch gelegentlich unter macOS, und mir ist nicht bewusst, dass die Integer da größer sind. Ansonsten wäre mein Vorschlag aber, Linux in einer VM zu installieren, das ist in der Praxis die am besten unterstützte Umgebung.

Autor:  Enno [ 08.01.2018 17:14 ]
Betreff des Beitrags:  Re: Server unter 64bit kompiliert - Problem mit Magellan

Letzte Möglichkeit: in das laufende Eressea wieder einsteigen. So super ich es finde, wenn es mehr Spielleiter gibt, wenn dein Ziel lediglich ist, deinen Freunden zu zeigen was Eressea ist, ist das wesentlich leichter.

Autor:  Enno [ 08.01.2018 18:35 ]
Betreff des Beitrags:  Re: Server unter 64bit kompiliert - Problem mit Magellan

Es kann sein, dass der Fehler ganz woanders liegt. Ich sehe gerade, dass die MESSAGE ID unsigned ist, Magellan aber wohl für alle Zahlen im CR signed 32-bit integers annimmt. Und deine ID hier (2625639936) liegt genau im Intervall [2^31,2^32), wo das eine Rolle spielt. Dass das im laufenden Spiel noch nie vorgekommen ist, hat sicher ganz spannende Gründe, und ich kann mir nicht erklären, warum es in einer kleinen Testwelt auftreten würde, aber der "korrekte" Fix hier ist auf jeden Fall, den Definitionsraum der ID zu reduzieren auf Zahlen in [0,2^31).

Autor:  macalloy [ 08.01.2018 21:48 ]
Betreff des Beitrags:  Re: Server unter 64bit kompiliert - Problem mit Magellan

Enno hat geschrieben:
Letzte Möglichkeit: in das laufende Eressea wieder einsteigen. So super ich es finde, wenn es mehr Spielleiter gibt, wenn dein Ziel lediglich ist, deinen Freunden zu zeigen was Eressea ist, ist das wesentlich leichter.


Ja, das mag sein. Jetzt hat mich aber der Ehrgeiz gepackt. Ich möchte dass gerne zum Laufen bringen :-)
Ausserdem weiß ich nicht, ob sich meine Freunde auf das Retro-Spiel :-) einlassen wollen, möchte ihnen daher schon mal etwas vorzeigen können.
Vielleicht packt sie das Fieber und wir steigen wirklich alle in das "richtige" Eressea ein.

Autor:  macalloy [ 11.01.2018 19:25 ]
Betreff des Beitrags:  Re: Server unter 64bit kompiliert - Problem mit Magellan

War etwas viel zu tun die letzen Tage...
Vor 2 Tagen habe ich mir den Source neu gezogen - in der unit.c wurde ein cast auf (long long) eingebaut.
Funktioniert nun mit Magellan. Also doch kein mac bzw. 64bit Problem.

Danke mal an dieser Stelle!

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/