Ada_Ru форум

Обсуждение языка Ада

Проблемы включения inline при множестве зависимостей

Оставить новое сообщение

Сообщения

Иван Левашев
Проблемы включения inline при множестве зависимостей
2013-01-17 14:05:47

Здравствуйте!

 

Так как мне в текущем проекте ничего не мешает делать программы произвольного размера, я не скупился на подключение зависимостей. И 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

Я понял, в этом месте теперь выскакивать не должно.

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти