Andrey Cherezov пишет:
>Из неприятностей:
>1) другой SEH, при сбое слетает процесс, ну это мелочи пока
>
>
Обработки исключений под Линуксом нет вообще. Тот дамп, что выводится,
сделан полушаманским путем (через какое-то секретное расширение
обработчиков сигналов) и в принципе не может продолжать работу после
исключения.
Уж на что я не люблю Билла Гейтса, но вынужден признать, что
внутренности Линукс выглядят довольно архаично.
>2) стек у нового DLOPEN неудачный - строки нефортовые, и ior не
>добъешься - в ядре мы так обычно не делаем. Предлагаю использовать
>мой старый вариант DLOPEN/DLSYM, который я встраивал в LinuxSPF,
>и который совместим и с Windows, и есть кроссплатформенные примеры,
>и реально используемые почти кроссплатформенные либы (в ~ac/lib/lin).
>Впрочем, мне тоже не сложно переименовать свой DLOPEN во что-то
>другое, просто изменений будет больше.
>
>
Мой DLOPEN работает на довольно низком уровне и очень рано, когда
форт-система еще толком не скомпилирована. ior он возвращать никак не
может, поскольку для этого надо вызывать функцию _errorno, а ее нельзя
вызвать без работающего DLOPEN. То же самое со строками - их надо
куда-то копировать и врисовывать ноль. Поэтому он сделан именно так.
Но поскольку это низкоуровневое слово, давайте переименуем его,
допустим, в (DLOPEN) или DYNOPEN и определим позже высокоуровневое
DLOPEN с идентичным твоему интерфейсом. Тем более, что твои библиотеки
уже используются, а в SPF/Linux о совместимости пока речь не идет.
>3) ModuleDirName дает "./" вместо полного пути, в результате
>что-то скомпилировать можно, только находясь в корне spf, что
>неудобно (ModuleDirName и делался для отвязки от этого неудобства).
>
>
Придется вModuleName вместо чтения ARGV[0] вызывать getcwd
(
http://www.opengroup.org/onlinepubs/009695399/functions/getcwd.html) и
объединять его с именем модуля..
>4) придется подстраиваться к регистрочувствительным именам файлов
>(в либах) - это тоже мелочи, т.к. наверное только у меня остались либы
>с заглавными буквами в названиях - с досовых времен.
>
>
Заодно надо будет во всех библиотеках менять в путях REQUIRE "\" на "/".
>5) дальше идут не неудобства, а непонятки
>[root@rainbow ~]# ./spf4
>[титры]
>REQUIRE [UNDEFINED] lib/include/tools.f
>----------------------------------------------------------------
>[Segmentation fault] Code:1 Address:080507A6 Word:Ошибка
>сегментирования
>
>
>
Похоже на оптимизатор.
Ю. Жиловец
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev