Size: a a a

2020 October 10

aK

a K in Ada
Dmitriy Anisimkov
cоцопросы тут можно настоящим голосованием проводить. с пунктами и крыжиками.
Не, не. Я по старинке...
источник

МР

Максим Резник... in Ada
Видели, что в Firefox есть свой Task Manager? 😊
источник

FO

FORTRAN ONE LOVE in Ada
Максим Резник
Видели, что в Firefox есть свой Task Manager? 😊
и в хроме есть
источник

МР

Максим Резник... in Ada
я только обнаружил 😄
источник

l

longboi in Ada
А неро так и не выпустили свою ос(
источник

l

longboi in Ada
Зато народ уже устанавливает крайсис на видеокарты😂
источник

AV

Alexey Veselovsky in Ada
источник

IS

Ilya Stolyarov in Ada
Нужна помощь со связыванием двух ads файлов.

Есть файл  limited_with_1_h.ads
package limited_with_1_h is

  type foo is record
     null;
  end record
 
  subtype foo_t is foo;

end limited_with_1_h;

Второй файл файл  limited_with_2_h.ads
limited with limited_with_1_h;

package limited_with_2_h is

  type bar is record
     foo : access limited_with_1_h.foo_t;
  end record

end limited_with_2_h;

Так вот такая конструкция не компилируется с ошибкой:
limited_with_2_h.ads: "foo_t" not declared in "limited_with_1_h"

Решения вижу два.
- Заменить limited with на with. Но я не понимаю для чего вообще нужен limited и его трогать страшно.
- Заменить
subtype foo_t is foo;
на
type foo_t is new foo;
это выглядит более безобидно, но тогда должно быть какое-то объяснение почему gcc генерирует subtype
источник

aK

a K in Ada
А может погромирование таки похоже на музыку и дело не в инструменте, а в музыканте? ;)
источник

aK

a K in Ada
Это я про Ютуб и сэйфкритикал
источник

l

longboi in Ada
С лимитед визом видно только теговые типы и их примитивы
источник

l

longboi in Ada
Вру, примитивов даже нет
источник

l

longboi in Ada
Только типы
источник

l

longboi in Ada
Подтиплв не видать
источник

l

longboi in Ada
Limited нужен для термоядернвх фанатов инкапсуляции
источник

IS

Ilya Stolyarov in Ada
longboi
С лимитед визом видно только теговые типы и их примитивы
Хорошо. В таком случае мне не понятна необходимость использования limited with.

Я вижу по коду, что генератор спецификаций указывает использовать limited если при обработке СИ файла видит POINTER_TYPE или REFERENCE_TYPE и второе условие из кода
if TYPE represents an aggregate (multi-component) type.

Действительно, если убрать указатель — limited пропадает.
источник

МР

Максим Резник... in Ada
Ilya Stolyarov
Хорошо. В таком случае мне не понятна необходимость использования limited with.

Я вижу по коду, что генератор спецификаций указывает использовать limited если при обработке СИ файла видит POINTER_TYPE или REFERENCE_TYPE и второе условие из кода
if TYPE represents an aggregate (multi-component) type.

Действительно, если убрать указатель — limited пропадает.
Если у тебя есть два пакета, A и B, ты не можешь with-ать друг друга, т.к. такая циклическая зависимость запрещена.

with B; package A is end;
with A; package B is end;
источник

IS

Ilya Stolyarov in Ada
Максим Резник
Если у тебя есть два пакета, A и B, ты не можешь with-ать друг друга, т.к. такая циклическая зависимость запрещена.

with B; package A is end;
with A; package B is end;
Они не включают друг друга. Только последовательно. Проверил.
источник

МР

Максим Резник... in Ada
Но ты можешь один (или оба) with сделать limited и компилятор не будет жаловаться. При этом из limited-with-нутого пакета ты будешь видеть только типы (ну и вложенные пакеты рекурсивно). Типы ты будешь видеть как будьто они объявденны через type T; т.е. без всех свойств
источник

МР

Максим Резник... in Ada
Ilya Stolyarov
Они не включают друг друга. Только последовательно. Проверил.
Если нет циклической зависимости, то и limited в with не нужен
источник