spf/linux by ~yz

89 messages Options
Embed this post
Permalink
1 2 3 4 5
Andrey Cherezov

threads

Reply Threaded More More options
Print post
Permalink
In reply to this post by Yuriy Zhilovets
Добрый день, Yuriy Zhilovets!

Ваше сообщение от 27.02.2008 13:33:
> Если мы почитаем всяких гуру, например, Реймонда, то увидим, что
> использование потоков - совсем не unix-way и осуждается им как
> противоречащее дизайну системы (см.
> http://www.catb.org/~esr/writings/taoup/html/ch07s03.html#id2923889).
> Однако же мы видим, что вопреки этим гуру кто-то все-таки запихал их
> зачем-то в ядро. Очевидно, они кому-то понадобились.
>  
Здесь, как и везде - на всех языках можно запрограммировать всё, на всех
осях
можно сделать всё, и т.д. Речь только о затраченных усилиях для
достижения цели
и эффективности полученного решения. Замыкание на чем-то одном хорошо
в религии или в любви, а в программировании нет причин не использовать
самые подходящие для задачи инструменты. Пусть ESR говорит что угодно, но
полностью доверять ему нельзя: опыта программирования в многопоточной среде
у него нет. Кстати жаль, что он, в отличие от других гуру, совсем не
заботится
о работоспособности своих программ под виндой. Bogofilter очень бы нам
пригодился
(Eserv работает с тремя байесами - popfile, spamprotexx и libsd - и
только один из
них свободный; несколько лет назад я пытался портировать bogofilter под
windows - у меня не получилось [в отличие от антиспама clamav, который
тогда же
удалось довести до работоспособного состояния под виндой; кстати clamD -
хороший
пример полезности потоков под unix; в bogofilter они бы пригодились тоже по
той же самой причине что в clamd]).

Если же говорить не о практике, а именно о чистоте и красоте самой идеи
сопрограмм, то подход к сопрограммам как к черным ящикам, не разделяющим
память, а общающимся по строгим протоколам конечно красивее. Только вот
на практике и сам юникс не смог удержаться в рамках этой идеи. Мы тоже
можем много о чем из нами накодированного сказать (и говорим) "это не
фортово",
но практика иногда главнее нашей любви к искусству.

-------------------------------------------------------------------------
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
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by ygrek-3
Some javascript/style in this post has been disabled (why?)
Добрый день, ygrek!

Ваше сообщение от 27.02.2008 19:57:
Может тогда уже слить в trunk?
  
Я думаю, что полагаться на такое ограниченное тестирование не стоит.
Надо убедиться, что ни у кого никаких побочных эффектов нежданно не вылезет.
По части Eserv я постараюсь уже сегодня собрать дистрибутив на базе этого нового
spf4.exe и поставить в бой на нашем сервере, т.к. локальным стресс-тестам тоже
нельзя доверять на 100%.
Хотя меня еще смущает и сам вид исходников, все эти VIRT'ы и [IF]ы.
Усложнение требует не только совместного тестирования, но и совместного
осмысления :) У меня лично некая мысленная ломка начинается, как при переводе
Eserv с SPF375 на SPF4 :)
Для сохранения там вызывается shell-скрипт который вызывает линковщик
системный - ищет в каталоге save. Ошибка #2 - т.е. файл не найден -
т.е. наверное так и есть. 
  
ОК. А я думал, что он если он один раз нашел все нужные части для сохранения,
то и потом найдет.
Кстати возможно имеет смысл этот shell скрипт с ld-файлами вкомпилить
внутрь бинарника и доставать по необходимости..
  
Может быть. SPF3 тоже сначала требовал отдельного файла со stub'ом, а потом
догадался извлекать его из заголовка собственного exe :)
P.S. Размер файла spf4 - 66606 ;) (под ubuntu)
    
Надо ещё 60 байт найти :)
  
Я к тому, что этим он тоже заметно отличается от привычного вида spf4.exe.

-------------------------------------------------------------------------
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
ygrek-3

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
On Wed, 27 Feb 2008 23:16:39 +0200
Andrey Cherezov <[hidden email]> wrote:

> Хотя меня еще смущает и сам вид исходников, все эти VIRT'ы и [IF]ы.
> Усложнение требует не только совместного тестирования, но и совместного
> осмысления :)

VIRT в win-версии это NOOP.
trunk как раз привлечёт больше тестирования :)
Просто ветки лучше сливать как можно раньше, чтобы меньше конфликтов
было.

--
 ~ygrek


-------------------------------------------------------------------------
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

attachment0 (196 bytes) Download Attachment
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
Добрый день, ygrek!

Ваше сообщение от 27.02.2008 23:23:
> trunk как раз привлечёт больше тестирования :)
>  
Тогда будет принудительное тестирование. А хотелось бы сначала
добровольное :)
Что-то народ подозрительно молчит. Если всем без разницы, то можно
конечно и форсировать процесс.
> Просто ветки лучше сливать как можно раньше, чтобы меньше конфликтов было.
>  
Это-то понятно. Много конфликтов быть не должно в любом случае, ядро
меняется редко.

-------------------------------------------------------------------------
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
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by ygrek-3

>> В прошлый раз этот второй spf4 уже не запускался, а сейчас запускается,
>> и им можно еще раз скомпилить самого себя, и т.д.
>>    
Пытаюсь скомпилировать вчерашним posix-spf сегодняшние сырцы (под ubuntu).
В compile-options выставил в TRUE
UNIX-ENVIRONMENT и TARGET-POSIX, ini не использую,
получаю

SP-FORTH - ANS FORTH 94 for Linux
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.19 Build 006 at ==FIXME for Linux==

Build options :
     CREATE-XML-HELP : FALSE
             ARCH-P6 : FALSE
     BUILD-OPTIMIZER : TRUE
       USE-OPTIMIZER : TRUE
    OPTIMIZE-BY-SIZE : FALSE
           WIDE-CHAR : FALSE
    UNIX-ENVIRONMENT : TRUE
        TARGET-POSIX : TRUE

Exception #-2003 at: src/macroopt.f:86:18:
: ClearJpBuff JP0 JpBuffSize ERASE ;
                ^ ERROR #-2003

Т.е. двумя опциями (как ты пишешь в комментах к коммитам) не обойтись,
нужно и USE-OPTIMIZER отключать. Кстати, если оставить BUILD-OPTIMIZER TRUE,
то тоже компилится и работает, а размер получается аж 155Кб. И эта толстая
версия саму себя уже не компилирует:

4589FC @COD, ERRORException #-1 at: lib/asm/486asm.f:33:35:
        ONLY FORTH ALSO ASM-HIDDEN ALSO ASSEMBLER DEFINITIONS ;
                                 ^ ERROR #-1

Поэтому приходится и BUILD-OPTIMIZER отключать. Тогда все работает как
раньше,
самокомпилируется, размер слегка увеличился - 66678.

В общем, юникс-версия (без оптимизатора) не поломалась. Переключаюсь на
тестирование под виндой с Eserv'ом на exe, собранном из тех же сырцов.


-------------------------------------------------------------------------
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
Ruvim Pinka

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by Andrey Cherezov
On 2/28/08, Andrey Cherezov <[hidden email]> wrote:
> Хотя меня еще смущает и сам вид исходников, все эти VIRT'ы и [IF]ы.
> Усложнение требует не только совместного тестирования, но и совместного
> осмысления :)

да, мне тоже они не нравятся. Но, от них избавится -- это надо
приложить значительных усилий (и времени) на продумывание. Предлагаю
отвести еще не менее недельки на осмысление.

--
Ruvim
-------------------------------------------------------------------------
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
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by ygrek-3
Добрый день, ygrek!

Ваше сообщение от 27.02.2008 19:57:
> Для сохранения там вызывается shell-скрипт который вызывает линковщик
> системный - ищет в каталоге save. Ошибка #2 - т.е. файл не найден -
> т.е. наверное так и есть.
>  
Да, взял с svn этот каталог, SAVE работает. Если сохранять без
изменений, то сохраненный
файл получается на 4Кб меньше исходного, но запускается и работает
(например,
компилирует spf :) нормально.

Eserv/3.34a на этой версии spf4.exe собрал, дома и на сайт поставил.
Пока ничего подозрительного в его работе не заметил. Если до утра не
рухнет,
рискну оставить на день :) Если день простоит без нареканий, то технически я
уже готов к переходу этой версии posix-spf в ствол. И начинаю привыкать к
этой мысли :)

-------------------------------------------------------------------------
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
Yuriy Zhilovets

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by Ruvim Pinka
Some javascript/style in this post has been disabled (why?)
Ruvim Pinka пишет:
On 2/28/08, Andrey Cherezov [hidden email] wrote:
  
Хотя меня еще смущает и сам вид исходников, все эти VIRT'ы и [IF]ы.
Усложнение требует не только совместного тестирования, но и совместного
осмысления :)
    

да, мне тоже они не нравятся. Но, от них избавится -- это надо
приложить значительных усилий (и времени) на продумывание. Предлагаю
отвести еще не менее недельки на осмысление.

  
От >VIRT избавиться нельзя, программы под Линуксом собираются в очень высоких для Windows адресах памяти. Это плата за извращенную сборку SPF, когда в процессе целевой компиляции запускаются части эмбриональной форт-системы.
[IF] мне тоже не нравятся, больно Си напоминают. Я предлагаю просто сделать вместо spf.f отдельный файл spf-linux.f, в который инклудить линуксовые функции. От большинства условных операторов это должно избавить.

Ю. Жиловец


-------------------------------------------------------------------------
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
Ruvim Pinka

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
Привет!

2008/2/28 Yuriy Zhilovets <[hidden email]>:
Ruvim Pinka пишет:
On 2/28/08, Andrey Cherezov [hidden email] wrote: 
Хотя меня еще смущает и сам вид исходников, все эти VIRT'ы и [IF]ы.
Усложнение требует не только совместного тестирования, но и совместного
осмысления :)
А, еще, смущает конструкция "<( ))"

да, мне тоже они не нравятся. Но, от них избавится -- это надо
приложить значительных усилий (и времени) на продумывание. Предлагаю
отвести еще не менее недельки на осмысление.

От >VIRT избавиться нельзя, программы под Линуксом собираются в очень высоких для Windows адресах памяти.

Возможно, это тоже было причиной, когда ты хотел сделать ядро, независимое от базового адреса (позиционно-независимое).

Как вариант, можно сделать перемещение всего образа по той же технологии, что и dll (сличением двух образов с различными базовыми адресами), заодно получив и таблицу перемещений (relocation table). Кстати, в gforth эта же технология используется для определения, является ли фрагмент кода позиционно-независимым.

 
Это плата за извращенную сборку SPF, когда в процессе целевой компиляции запускаются части эмбриональной форт-системы.

Между прочим, для эмбириона это самое что ни на есть естественное, а не извращенное ;)
 

Если не считать сохранение системы (которое ты сделал и без запуска целевой системы :), то запуски всех этих частей ограничиваются целью: установить значение в ячейку памяти. Слово (TO) вполне может не запускать целевой код, и само выполнять ">VIRT" при установке вектора.  Остаются несколько мест с простыми ячейками. В них можно записывать тоже специальным словом, типа
' TITLE ' MAINX (STORE-XT)
вместо
' TITLE ' MAINX EXECUTE !

Что еще?


[IF] мне тоже не нравятся, больно Си напоминают. Я предлагаю просто сделать вместо spf.f отдельный файл spf-linux.f, в который инклудить линуксовые функции. От большинства условных операторов это должно избавить.


Да. Еще, spf_con_io.f и spf_date.f сделать целиком отдельными (слова BL, SPACE и SPACES вынести куда-то в другое общее место, слово CONSOLE-HANDLES внести в con_io ). spf_init.f — тоже развести на два варианта и одну общую часть типа spf_init.common.f


--
Ruvim
-------------------------------------------------------------------------
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
Ruvim Pinka

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
Привет!

2008/2/29 Ruvim Pinka <[hidden email]>:

Если не считать сохранение системы (которое ты сделал и без запуска целевой системы :), то запуски всех этих частей ограничиваются целью: установить значение в ячейку памяти.

Установка практически всех таких ячеек сделана через слова "TC-VECT!" (для векторов) и "TC-ADDR!" (для VARIABLE-слов).
Исключения составили несколько меств в файлах posix/memory.f, posix/save.f, spf.f, spf_init_posix.f, xsave.f — везде в части POSIX-версии. По хорошему, надо бы там тоже что-нибудь придумать.

[IF] мне тоже не нравятся, больно Си напоминают. Я предлагаю просто сделать вместо spf.f отдельный файл spf-linux.f, в который инклудить линуксовые функции. От большинства условных операторов это должно избавить.

Да. Еще, spf_con_io.f и spf_date.f сделать целиком отдельными (слова BL, SPACE и SPACES вынести куда-то в другое общее место, слово CONSOLE-HANDLES внести в con_io ). spf_init.f — тоже развести на два варианта и одну общую часть типа spf_init.common.f


Файл spf.f пока остался общий.

Файл spf_init.f разведен на spf_init_posix.f и spf_init_win32.f, общая часть оставлена в spf_init.f
Из файла spf_con_io.f выделен spf_con_io_win32.f

Думаю, после испытаний можно сливать с основной веткой :)

--
Ruvim
-------------------------------------------------------------------------
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
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
Добрый день, Ruvim Pinka!

Ваше сообщение от 17.03.2008 21:28:
> Файл spf_init.f разведен на spf_init_posix.f и spf_init_win32.f, общая
> часть оставлена в spf_init.f
> Из файла spf_con_io.f выделен spf_con_io_win32.f
>
> Думаю, после испытаний можно сливать с основной веткой :)
Предыдущую версию ветки (до сегодняшних изменений) я активно испытывал и
под windows
(Eserv/3.34beta компилируется ею и 2-3 недели уже работает без проблем)
и под linux
(испытал и докрутил почти все свои портабельные либы, в т.ч.
использующие .so).
Поэтому тоже согласен на перевод ветки в ствол.

-------------------------------------------------------------------------
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
ygrek-3

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
Привет,

 Вместо [DEFINED] WINAPI: [IF] нужно что-нибудь человеческое :)

 SYSTEM ( -- n )
 1 CONSTANT WIN32
 2 CONSTANT POSIX
 : SYSTEM-WIN32? SYSTEM WIN32 = ;
 : SYSTEM-POSIX? SYSTEM POSIX = ;

 Варианты?
 Нужны ли какие-нибудь дополнительные заделы для расширений (номер версии системы, подтип, etc)?

--
 ~ygrek


-------------------------------------------------------------------------
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

attachment0 (196 bytes) Download Attachment
Yuriy Zhilovets

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
ygrek пишет:

>Привет,
>
> Вместо [DEFINED] WINAPI: [IF] нужно что-нибудь человеческое :)
>
> SYSTEM ( -- n )
> 1 CONSTANT WIN32
> 2 CONSTANT POSIX
> : SYSTEM-WIN32? SYSTEM WIN32 = ;
> : SYSTEM-POSIX? SYSTEM POSIX = ;
>
> Варианты?
> Нужны ли какие-нибудь дополнительные заделы для расширений (номер версии системы, подтип, etc)?
>  
>
Нужен не POSIX, а LINUX.
Идея совместимости SPF/Linux с другими posix-системами оказалась чистой
фикцией. Так что, возможно, там будут  еще другие константы типа QNX.

Ю. Жиловец




-------------------------------------------------------------------------
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
ygrek-3

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
On Sat, 22 Mar 2008 15:22:30 +0200
Yuriy Zhilovets <[hidden email]> wrote:

> Нужен не POSIX, а LINUX.
> Идея совместимости SPF/Linux с другими posix-системами оказалась чистой
> фикцией. Так что, возможно, там будут  еще другие константы типа QNX.

А что именно отличается в этих разных системах с точки зрения ядра spf?

--
 ~ygrek


-------------------------------------------------------------------------
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

attachment0 (196 bytes) Download Attachment
Yuriy Zhilovets

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
>
>
>А что именно отличается в этих разных системах с точки зрения ядра spf?
>  
>
Вызовы из библиотеки glibc. В частности, под Линуксом вместо stat(...)
приходится вызывать какой-то xstat(3,...)
То есть совместимость со стандартом Posix там только на уровне
компилятор С :-(

Ю. Жиловец


-------------------------------------------------------------------------
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
ygrek-3

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by ygrek-3
Привет всем,

 Ветка branch-linux-port слита в trunk

--
 ~ygrek


-------------------------------------------------------------------------
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

attachment0 (196 bytes) Download Attachment
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
Добрый день, ygrek!

Ваше сообщение от 23.03.2008 10:47:
>  Ветка branch-linux-port слита в trunk
>  
Спасибо, принято. Проверил на двух линуксах, работает (только без
оптимизатора).
Под win - скомпилировал Eserv, ставлю на сервер - сразу в бой.

-------------------------------------------------------------------------
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
Andrey Cherezov

Re: spf/linux by ~yz

Reply Threaded More More options
Print post
Permalink
In reply to this post by Yuriy Zhilovets
Добрый день, Yuriy Zhilovets!

Ваше сообщение от 22.03.2008 19:27:
> Вызовы из библиотеки glibc. В частности, под Линуксом вместо stat(...)
> приходится вызывать какой-то xstat(3,...)
> То есть совместимость со стандартом Posix там только на уровне
> компилятор С :-(
>  
Сейчас прикручивал iconv, тоже интересно получилось: где-то
libiconv.so.2 отдельная
либа, где-то внутри libc сидит. Где-то имена функций iconv начинаются на
lib-, где-то без.
В общем, либо замыкаться на относительно узком подмножестве юниксов (и даже
linux'ах не всех), либо "опускаться" до configure-скриптов. Пока
испытываю только на
redhat/fedora, debian/ubuntu... и эта версия заработала на sf.net
(предыдущая выдавала
float exception при инициализации).

-------------------------------------------------------------------------
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
Andrey Cherezov

без [IF] легко (Re: spf/linux by ~yz)

Reply Threaded More More options
Print post
Permalink
In reply to this post by Yuriy Zhilovets
Some javascript/style in this post has been disabled (why?)
Добрый день!

Ваше сообщение от 22.03.2008 15:22:
Игрек> Вместо [DEFINED] WINAPI: [IF] нужно что-нибудь человеческое :)

SYSTEM ( -- n )
1 CONSTANT WIN32
2 CONSTANT POSIX
: SYSTEM-WIN32? SYSTEM WIN32 = ;
: SYSTEM-POSIX? SYSTEM POSIX = ;
    
Юра> Нужен не POSIX, а LINUX.
  
А ведь тут можно вообще без констант обойтись. [IF] я применил только для того чтобы быстро
и надежно убедиться (и другим наглядно показать), как легко "двухплатформизируются" обертки над dll/so.

Чтобы избавиться от [IF] можно для начала вспомнить (или узнать :), что dll/so в этих либах являются
подключаемыми форт-словарями. Т.е., вообще говоря, мы можем подключить СРАЗУ ДВА словаря
  ALSO SO NEW: libxml2.dll
  ALSO SO NEW: /usr/lib/libxml2.so.2
а выбор поручить SFIND'у! - функция найдется в том из них, какой из них не пустой :)

Попробуйте, вот в xml.f убрать [IF]:

==========
  ALSO SO NEW: libxml2.dll
  ALSO SO NEW: /usr/lib/libxml2.so.2
  ORDER KEY DROP
==========

Context: /usr/lib/libxml2.so.2 libxml2.dll FORTH
Current: FORTH
...
и все компилируется! И даже работает :)

Т.е. подумать стоит не столько о том как избавиться от [IF], сколько о том, как избавиться от "dll" и "so"
и жестко заданных путей. [и насколько это вообще нужно на данном этапе эволюции SPF]

-------------------------------------------------------------------------
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
ygrek-3

Re: без [IF] легко (Re: spf/linux by ~yz)

Reply Threaded More More options
Print post
Permalink
Привет,
   
> А ведь тут можно вообще без констант обойтись. [IF] я применил только
> для того чтобы быстро
> и надежно убедиться (и другим наглядно показать), как легко
> "двухплатформизируются" обертки над dll/so.

Стильно :)
Но всё равно какой-то тупой низкоуровневый метод идентификации нужен.

--
 ~ygrek


-------------------------------------------------------------------------
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

attachment0 (196 bytes) Download Attachment
1 2 3 4 5