Нераспознанные символы в GNU APL
Я играю с GNU APL, но мои эксперименты быстро зашли в тупик. Вот что произошло у меня:
x←1 2 3 4 5
⍝ build the matrix u where u_{ij} = x_i + x_j,
⍝ then filter the entries equal to 6
u←6=x∘.+x
Все идет нормально,
u
как и ожидалось, является перевернутой единичной матрицей.
Теперь я хотел бы получить индексы ненулевых записей, поэтому я пытаюсь
⍸u
но здесь я получаю
SYNTAX ERROR++
предупреждение. Такая же ошибка появляется при вводе любой из следующих команд:
{⍸6=⍵∘.+⍵}x
{⍸6=⍵∘.+⍵} 1 2 3 4 5
{⍸6=⍵∘.+⍵} ⍳5
app←{⍸6=⍵∘.+⍵}
Я подозреваю, что это какая-то проблема в моей локальной установке, так как я не могу воспроизвести ошибки в онлайн-интерпретаторе.
Кто-нибудь видел эту проблему раньше? Я скомпилировал APL из исходников (ubuntu, GCC), ошибка появляется в обеих версиях 1.7 и 1.8. Я мог воспроизвести ошибку с помощью предварительно скомпилированного двоичного файла, доступного с зеркала GNU. Интересно, не ошибся ли я при компиляции и установке GNU APL, но единственной нестандартной вещью, которую я сделал, было снятие флага WERROR из Makefile в папке src, иначе он не будет компилироваться из-за непроверенного возвращаемого значения в источник.
1 ответ
Я написал на bug-apl@gnu.org, чтобы кто-нибудь посмотрел. Я получил такой ответ:
без понятия. Я получаю это:
⍝ build the matrix u where u_{ij} = x_i + x_j, ⍝ then filter the entries equal to 6 u←6=x∘.+x ⍸u 1 5 2 4 3 3 4 2 5 1
SVN - это 18005, он же. 1474 г. и связанный с ним код не менялись на протяжении многих лет.
Касательно:
«иначе он не будет компилироваться из-за непроверенного возвращаемого значения в источнике».
пожалуйста, сообщайте о подобных проблемах по адресу bug-apl@gnu.org, распечатав сообщение об ошибке компилятора. Компиляторы становятся все более придирчивыми к различным this, что приводит к тому, что код успешно компилируется в течение десятилетия, а затем внезапно вызывает предупреждение с новым кодом компилятора.
У меня есть амбиции, чтобы GNU APL компилировался практически на всех платформах и компиляторах, и, поскольку я не могу тестировать все платформы самостоятельно, важно, чтобы такие пользователи, как вы, использующие другую платформу, сообщали мне о проблемах.
С уважением,
[доктор] Юрген [Зауэрманн, главный разработчик GNU APL]