сво
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "БК-0010 - первый советский персональный компьютер" - http://groups.google.ru/group/bk0010
В процессе попыток завести Elm-тянский Petite FatFs на БК выяснил:
-- long может быть аргументом функции, но необходимо явно приводить
тип при каждом вызове, иначе аргумент передается как слово
-- указатель на long может быть аргументом функции
-- long не может быть возвращаемым значением
-- long испытывает трудности, когда он используется как boolean. if
(longvar) сработает более-менее в зависимости от того, как себя
чувствует младшее слово. Надо всегда писать if (longvar != 0L).
-- с тернарными операциями типа long вообще ничего не получилось,
пришлось разбить на if() else
Кроме того:
-- ANSI прототипы функций вроде бы работают, но только если в них нет
определенных через typedef типов
-- в случае с long-ами, прототипы как будто бы не очень помогают.
Возможно, проблема на самом деле в том, что все мои примеры были с
typedef-ами, сил проверить не хватило.
-- переменные байтового размера нельзя использовать для индексации --
используется слово, вторая половина которого как повезет
-- вообще нельзя рассчитывать на то, что компилятор сам правильным
образом выберет тип для выражения. Всегда-всегда надо явно приводить к
нужному типу вручную.
Не рассчитываю на исправления ;) Но, зная все эти ограничения,
компилятором можно пользоваться, поэтому такой список полезно иметь.
сво
Так устроен компилятор Джонсона. Его развитие остановилось где-то в
начале 80-х, вероятно. До полной ANSI-шности он не дорос. Впрочем,
компилятор Ритчи еще более дремучий.
К сожалению, GCC давно потерял способность порождать корректный код
для PDP-11.
___
С уважением,
Сергей Вакуленко
Есть повод надеяться, что скоро мы снова увидим GCC, порождающий
корректный код для PDP-11 ;)
svo
Неужели кто-то взялся доделать GCC?
Это радостная новость. :)
___
Сергей
Сделал нормальный вызов функций с использыванием MARK. Сейчас
отлаживаю uclibc порт.
Приветствую, Феликс!
Помнится, я наталкивался на то, что GCC "забывает" порождать код для
сдвигов.
В качестве теста можно использовать standalone утилитки и тесты из
проекта bkunix. Например fdfmt, tstsh, tstlsh и другие.
Ну и само ядро bkunix, конечно, неплохо бы запустить.
___
С уважением,
Много ли корысти в команде MARK? С ней, в конце концов, код не длиннее
ли получается, чем с традиционными CSV/CRET?
Leo