Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Перевод сорцов aCis interlude на Java 1.8 (https://forum.zone-game.info/showthread.php?t=37495)

Johnson 14.01.2015 20:14

Перевод сорцов aCis interlude на Java 1.8
 
Последние (и не только) сорцы aCis используют устаревшую версию ECJ для компиляции скриптов датапака.
Если просто в проекте (или при запуске) использовать Java 1.8 - то скрипты компилиться не будут, будет ругаться:
Цитата:

Annotation processing got disabled, since it requires a 1.6 compliant JVM
С кучей ошибок компиляции (не удается найти классы ядра).

Решается довольно просто:
Удаляем из библиотек либы java-engine-1.7 и ecj-3.7.1 (или какая у вас там версия), удаляем сами библиотеки.
Добавляем на их место следующие и подключаем:
java-engine-1.8.jar
ecj-4.4.jar

PS: Кто общается с разрабами aCis наведите их на мысль, что пора бы уже мигрировать...

n3k0nation 14.01.2015 20:29

Re: Перевод сорцов aCis interlude на Java 1.8
 
Уже было нечто похожее, но в более глобальной плане, без частностей.

Почему бы не написать им на форум? И да, даже при обычной смене ВМ с 1.7 на 1.8 вылезет много очень интересных багов :) Например с картами remove, put.

Donatte 14.01.2015 21:04

Re: Перевод сорцов aCis interlude на Java 1.8
 
Скоро аЦис переходит на Java 8. Инфа 146%.

SouthBridge 14.01.2015 21:13

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от Pointer*Rage (Сообщение 384276)
Например с картами remove, put.

Припоминаю такую тему. Была в одном месте операция remove затем put по одинаковому ключу. Вроде бы ничего, но насколько помню, это приводило к неопределенному поведению и гигабайты хипа сжирались в минуты.
Причину не помню, давно уже было, и сейчас это вроде уже исправили в апдейтах?

Johnson 14.01.2015 21:14

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от Pointer*Rage (Сообщение 384276)
Уже было нечто похожее, но в более глобальной плане, без частностей.

Почему бы не написать им на форум? И да, даже при обычной смене ВМ с 1.7 на 1.8 вылезет много очень интересных багов :) Например с картами remove, put.

Ну, при переводе проекта на 1.8 я не нашел решение проблемы по строке ошибки, пришлось немного изучить проблемму. Моя тема как минимум при поиске по ошибке выдастся.
Про "глобальность" - с чем работаю, про то и написал, я не знаю какие еще сборки используют ECJ.
Писать на форум не хочу - только опозорюсь знанием разговорного английского :) Да и не зарегистрирован я там даже, читаю только изредка.

Добавлено через 41 секунду
За инфо про карты - спасибо, поищу использования.

Добавлено через 1 минуту
Цитата:

Сообщение от Donatte (Сообщение 384277)
Скоро аЦис переходит на Java 8. Инфа 146%.

На сколько скоро, если не секрет? Хотел делать глобальные изменения, но, видимо, придется потерпеть :)

n3k0nation 14.01.2015 21:36

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от SouthBridge (Сообщение 384281)
Припоминаю такую тему. Была в одном месте операция remove затем put по одинаковому ключу. Вроде бы ничего, но насколько помню, это приводило к неопределенному поведению и гигабайты хипа сжирались в минуты.
Причину не помню, давно уже было, и сейчас это вроде уже исправили в апдейтах?

Использую 11-b12, до сих пор те же проблемы. Зато код очистился маленько, ведь можно совершенно спокойно делать один put, без remove.

Donatte 14.01.2015 21:36

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от Johnson (Сообщение 384283)
На сколько скоро, если не секрет? Хотел делать глобальные изменения, но, видимо, придется потерпеть :)

Возможно в ближайших коммитах. Как максимум.

Добавлено через 1 минуту
Цитата:

Сообщение от Pointer*Rage (Сообщение 384289)
Использую 11-b12, до сих пор те же проблемы. Зато код очистился маленько, ведь можно совершенно спокойно делать один put, без remove.

Так вроде как, если в карту с тем же идентификатором ложить объект, то он подменяется автоматически. Что не так? :(

n3k0nation 14.01.2015 21:42

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от Donatte (Сообщение 384290)
Возможно в ближайших коммитах. Как максимум.

Добавлено через 1 минуту


Так вроде как, если в карту с тем же идентификатором ложить объект, то он подменяется автоматически. Что не так? :(

Все так, но хип не колбасит, если сравнивать с remove-put.

SouthBridge 14.01.2015 21:47

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от Pointer*Rage (Сообщение 384289)
Использую 11-b12, до сих пор те же проблемы. Зато код очистился маленько, ведь можно совершенно спокойно делать один put, без remove.

А странно. Мне казалось это устранили.
Попробовал набросать простой тест с remove/put под u25 - всё ок.
Влепил на ВМ самую первую версию Java 8 и тоже никаких признаков отклонения от нормы.
Обида. Наверное я упустил какую-то тонкость :)

Johnson, один такой метод есть в классе Olympiad, метод updateNobleStats, который в принципе то и не нужен.

n3k0nation 14.01.2015 21:51

Re: Перевод сорцов aCis interlude на Java 1.8
 
Цитата:

Сообщение от SouthBridge (Сообщение 384294)
А странно. Мне казалось это устранили.
Попробовал набросать простой тест с remove/put под u25 - всё ок.
Влепил на ВМ самую первую версию Java 8 и тоже никаких признаков отклонения от нормы.
Обида. Наверное я упустил какую-то тонкость :)

Johnson, один такой метод есть в классе Olympiad, метод updateNobleStats, который в принципе то и не нужен.

Дык у меня u11, о чем я и написал. Возможно в версиях выше исправили, по крайней мере ченджлоги я еще не читал и скорее всего читать буду не скоро :)

Добавлено через 18 минут
Посмотрел так я текущие баги и понял, что можно в принципе и не обновляться :)
генерация кривой таблицы исключений:
Свернуть ↑Развернуть ↓


Вот вам и dynamicinvoke...


Текущее время: 15:28. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot