Здравствуйте!
Так как мне в текущем проекте ничего не мешает делать программы произвольного размера, я не скупился на подключение зависимостей. И GnatColl, и XmlAda, и Ada Web Server, и Матрёшка. Ну разве что Qt выбросил. Как–то так получается, что ничего нет в одном месте. В AWS вроде бы есть MIME, но charset= от text/xml отделить средствами AWS не получится, а руками не хочется, неправильно это как–то. Вот так со всех сторон и понадёргал.
Проблема в том, что теперь при попытке добавить -gnatn в опции то тут, то там в этих чужих проектах начинают сыпаться ошибки. В aws/templates_parser-filter.adb Illegal wide character обнаруживается, в Матрёшке Ada 2012-only фичи не соответствуют моему Ada 2005 проекту.
Непонятно, что с этим делать. Я для своего проекта указываю -gnat05 и -gnatW8, а настройки для проектов зависимостей должны из проектов зависимостей браться, а не из моего. Почему так?
Пока что решил прогнуться и перейти на Ada 2012, а вместо -gnatW8 и To_Universal_String использовать ad hoc utf-8 и From_UTF_8_String
Так всё заработало.
С уважением,
Левашев Иван
-- If you want to get to the top, you have to start at the bottom
On 01/17/2013 06:05 PM, Иван Левашев wrote:
Проблема в том, что теперь при попытке добавить -gnatn в опции то тут, то там в этих чужих проектах начинают сыпаться ошибки. В
aws/templates_parser-filter.adb Illegal wide character обнаруживается, в Матрёшке Ada 2012-only фичи не соответствуют моему Ada 2005 проекту.
Непонятно, что с этим делать. Я для своего проекта указываю -gnat05 и -gnatW8, а настройки для проектов зависимостей должны из проектов зависимостей браться, а не из моего. Почему так?
Матрёшку несложно поправить, но нужно иметь список пакетов, на которые ругается компилятор. Засаду с кодировками можно обойти указав в файле проекта один из "совместимых" ключей для конкретного файла, например вот так:
for Switches ("cli.adb")
use Config.Default_Ada_Switches & ("-gnatWh");
17.01.2013 16:05, Иван Левашев пишет:
В aws/templates_parser-filter.adb Illegal wide character обнаруживается,
Можно в начало templates_parser-filter.adb добавить строку
pragma Wide_Character_Encoding (Brackets);
тогда gnat будт знать что внутри него символы в Latin-1 и
не будет их пытаться интерпетировать как UTF-8.
А можете написать баг-репорт в AdaCore?
Письмо на адрес report@... со словом gnat в сабжекте.
--
Maxim Reznik
18.01.2013 12:36, Vadim Godunko пишет:
Засаду с кодировками можно обойти указав в файле проекта один из
"совместимых" ключей для конкретного файла
Не для конкретного, а для всех. Проблем бы не было, если бы gcc, когда идёт inline'ить другие исходники, учитывал опции тех, других исходников, а не того исходника, который нужно скомпилировать.
А я подумал, пожалуй, так и оставлю кодировку. Всё равно все эти потуги с Wide_Wide не приживаются. raise with требует String. Wide_Wide_Exception_Name есть, а Wide_Wide_Exception_Message где? XMLAda DOM — String. Append_Body в AWS — опять же String.
Короче, надо много переписать, чтобы сломать нарощенный хребет. Так что ad hoc utf-8
Ada 2012 требуется в league/matreshka-internals-strings.adb
Строка 80, function Test_And_Set: functions can only have "in" parameters
-- If you want to get to the top, you have to start at the bottom
On 01/18/2013 04:59 PM, Иван Левашев wrote:
Ada 2012 требуется в league/matreshka-internals-strings.adb
Строка 80, function Test_And_Set: functions can only have "in" parameters
Странно... Какую версию компилятора и какую версию Матрёшки Вы используете?
Vadim Godunko пишет:
On 01/18/2013 04:59 PM, Иван Левашев wrote:
Ada 2012 требуется в league/matreshka-internals-strings.adb
Строка 80, function Test_And_Set: functions can only have "in" parameters
Странно... Какую версию компилятора и какую версию Матрёшки Вы используете?
Промежуточная после 0.4 ревизия "Update expected results".
GNAT GPL 2012, x86_64-linux
http://forge.ada-ru.org/matreshka/browser/trunk/matreshka/source/league/matreshka-internals-strings.adb?rev=3044#L80
-- If you want to get to the top, you have to start at the bottom
On 01/19/2013 07:02 AM, Иван Левашев wrote:
Vadim Godunko пишет:
On 01/18/2013 04:59 PM, Иван Левашев wrote:
Ada 2012 требуется в league/matreshka-internals-strings.adb
Строка 80, function Test_And_Set: functions can only have "in" parameters
Я понял, в этом месте теперь выскакивать не должно.
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти