Forth
http://fforum.winglion.ru/

SPF/Linux
http://fforum.winglion.ru/viewtopic.php?f=18&t=800
Страница 9 из 10

Автор:  VoidVolker [ Вт авг 20, 2013 20:18 ]
Заголовок сообщения:  Re: SPF/Linux

Ой, а давайте перенесем оффтопик в другую тему?

Автор:  Mihail [ Ср авг 21, 2013 00:12 ]
Заголовок сообщения:  Re: SPF/Linux

с VALUE вроде разобрался http://fpauk.narod.ru/LinuxSPF64.2.tar.bz2

С остальным завтра. Еще литералы урезаються.

Автор:  VoidVolker [ Ср авг 21, 2013 08:53 ]
Заголовок сообщения:  Re: SPF/Linux

Mihail
Спасибо! Таки проверь ЛС.
Предлагаю вынести все сишные библиотеки в отдельный файл и каталог. У меня сейчас вот так:
Код:
+ spf64/
    + clibs/
        socket.c
        fork.c
    clibs.o

Сокеты чуток доработанные - выкинул лишнее и добавил листен и акцепт.

Автор:  VoidVolker [ Ср авг 21, 2013 13:35 ]
Заголовок сообщения:  Re: SPF/Linux

Вот 2@ есть, а 2! нету.
Не работают:
Код:
2@ \ Извлекает только 4 байта на стек
ZTYPE \ Никакой реакции

Автор:  Mihail [ Ср авг 21, 2013 23:57 ]
Заголовок сообщения:  Re: SPF/Linux

Очередная версия http://fpauk.narod.ru/LinuxSPF64.3.tar.bz2

Автор:  VoidVolker [ Чт авг 22, 2013 15:21 ]
Заголовок сообщения:  Re: SPF/Linux

SP-Forth x64 на гитхабе: https://github.com/VoidVolker/spf64
Собственно, предлагаю перенести обсуждение спф-64 в отдельную тему.

Автор:  VoidVolker [ Вт сен 17, 2013 08:21 ]
Заголовок сообщения:  Re: SPF/Linux

Как подключать внешние so-библиотеки в LinuxSPF_x86?

Автор:  mgw [ Вт сен 17, 2013 16:09 ]
Заголовок сообщения:  Re: SPF/Linux

1 - задать каталог поиска. Обычно в переменной LD_LIBRARY_PATH
Для установки текущего каталога:
LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH

2 - Загрузить библиотеку и дальше как обычно, поиск функции и т.д.

В тех библиотеках, что я видел в SPF-4.20 подключение в Windows и Linux различаются синтаксисом, что мне не удобно. Я написал свою библиотеку. Она универсальна и работает одинаково в обоих операционках. Если есть необходимость, могу выложить и рассказать как работает.

Автор:  VoidVolker [ Вт сен 17, 2013 16:57 ]
Заголовок сообщения:  Re: SPF/Linux

mgw писал(а):
В тех библиотеках, что я видел в SPF-4.20 подключение в Windows и Linux различаются синтаксисом, что мне не удобно. Я написал свою библиотеку. Она универсальна и работает одинаково в обоих операционках. Если есть необходимость, могу выложить и рассказать как работает.

Да, интересно.

Автор:  mgw [ Вт сен 17, 2013 18:15 ]
Заголовок сообщения:  Re: SPF/Linux

Скачиваешь архив http://qte.ucoz.ru/load от 08.09.13 (самый свежий). В нем есть каталог spf. В этом каталоге есть папка ~mgw - копируешь её в каталог devel в spf. В этой папке mgw_dll.f

В своём файле пишешь:
REQUIRE CDECL-CALL ~mgw/mgw_dll.f

\ Подготовка к загрузке, реальной загрузки библиотеки нет
if=L Library" libc.so.6" libc6 \ сработает в Linux
if=W Library" libc.dll" libc6 \ сработает в Windows. Имя DLL не помню, пишу для примера

\ Формируем список с описанием вызова.
\ Перед типом вызова количество аргументов для функции
if=L Library@ libc6 1 CDECL-Call" malloc" malloc
if=L Library@ libc6 2 CDECL-Call" calloc" calloc
if=L Library@ libc6 1 CDECL-Call" free" free

: malloc0 1 calloc ; // Выделить память и обнулить её

\ Загрузим и активизируем библиотеку. В этот момент список функций заполняется
\ реальными адресами
LibraryLoad libc6

: ВыделитьВхипеИзанулить ( Nбайт -- A ) \ Выделяет и зануляет в хипе N байт
malloc0
;

Типы вызовов могут быть разные:
CDECL-Call
CDECL-Call-N
STDCALL-Call
STDCALL-Call-N
WINAPI-Call
WINAPI-Call-N
Extern
THIS-CDECL-Linux-gcc-Call
THIS-CDECL-Win-MinGW-Call

Автор:  VoidVolker [ Вт сен 17, 2013 20:31 ]
Заголовок сообщения:  Re: SPF/Linux

Для кода есть bb-тег CODE.
mgw писал(а):
if=L Library@ libc6 1 CDECL-Call" malloc" malloc

А зачем кавычки? Все равно в функциях пробелов не бывает - можно же сразу слово забирать из входного потока.
mgw писал(а):
Типы вызовов могут быть разные:
CDECL-Call
CDECL-Call-N
STDCALL-Call
STDCALL-Call-N
WINAPI-Call
WINAPI-Call-N
Extern
THIS-CDECL-Linux-gcc-Call
THIS-CDECL-Win-MinGW-Call

А как определить?

Автор:  mgw [ Вт сен 17, 2013 20:54 ]
Заголовок сообщения:  Re: SPF/Linux

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

Определить что? Если тип вызова, то читай док по конкретной so. Как ее запрограммировали так и надо вызывать. В linux системные библитеки в cdecl

Автор:  VoidVolker [ Вт сен 17, 2013 21:59 ]
Заголовок сообщения:  Re: SPF/Linux

Ясно, спасибо! Как будет время - закопаюсь.

Автор:  mgw [ Чт окт 03, 2013 21:12 ]
Заголовок сообщения:  Re: SPF/Linux

Решил попробовать QtE в 64 разрядах. Поставил 64 разрядную Fedora 19. Пока борюсь с ошибками, но что радует - уже отображается окошко (QWidget) и правильно работают события. Пока работаю на D, но планирую испытать и под фортом. Скорее всего под gForth 64

Автор:  mgw [ Вс окт 06, 2013 22:15 ]
Заголовок сообщения:  Re: SPF/Linux

Изготовил QtE - 64. Проверил на D в 64 разрядном режиме (Fedora 19 - 64). Всё работает. Покрутил gForth ... сильно запутанно. Нашел как загрузить SO и она грузится, нашел поиск и загрузку функции - работает, а вот как вызвать функцию, так и не нашел. То, что они рекомендуют не работает.
Субъективно конечно, но 32 разрядная система работает заметно быстрее 64 разрядной. (amd Athlon 64 X2, 3gb памяти).


QtE for Dlang 64
http://files.mail.ru/D03386CA294542298B2EDF297B4FF313

Страница 9 из 10 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/