Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 19:07

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Сб сен 07, 2013 14:52 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Проблема с кодировками исходного текста программы.

При разработке QtE столкнулся со следующей проблемой. Как правильно определить в какой кодировке набран текст программы. Есть несколько подходов:
1 – Считать, что если Windows то Windows-1251, если Linux то UTF-8. Классический в SPF
2 – Считать любой текст в UTF-8. Подход языка D.
3 – Определить кодировку по комментарию. Подход Python.

Что выбрать? Кто что думает?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Сб сен 07, 2013 17:19 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
mgw писал(а):
Проблема с кодировками исходного текста программы.

Считать любой текст в UTF-8.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Сб сен 07, 2013 18:14 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
UTF8.SPF

\ является ли текст utf8 кодированным.
\ на входе адрес начала текста.
: ?utf8 ( addr --> flag ) @ 0xFFFFFF AND 0xBFBBEF = ;

\ является ли символ utf8 символом длиной от двух до шести байт
\ адрес должен указывать на начало символа.
: ?utf8char ( addr --> flag )
DUP B@ 0xE0 OVER AND 0xC0 = SWAP
0xF0 OVER AND 0xE0 = SWAP
0xF8 OVER AND 0xF0 = SWAP
0xFC OVER AND 0xF8 = SWAP
0xFE AND 0xFC = OR OR OR OR
SWAP 1 + B@ 0xC0 AND 0x80 = AND ;

\ содержит ли фрагмент текста utf8 символ(ы)
: isUTF8 ( asc # --> flag )
OVER ?utf8 IF DDROP TRUE ;THEN \ ?сигнатура
BOUNDS
BEGIN DDUP <> WHILE \ ищем начало двух и более байтового символа
DUP B@ DUP 0x7F < SWAP 0xC0 AND 0x80 = OR WHILE
1 +
REPEAT NIP ?utf8char
;THEN DDROP FALSE ;

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur



За это сообщение автора mOleg поблагодарил: mgw
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Сб сен 07, 2013 21:23 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Попытаюсь вставить алгоритм Олега. Спасибо.
Сейчас подтягиваю QtE.f до уровня QtE.d. Планирую в ближайшее время испытать Qt-5.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пн сен 09, 2013 10:48 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Положил новую версию QtE от 08.09.13. http://qte.ucoz.ru/load Добавлено несколько новых виджетов. Сделана попытка задействовать слоты/сигналы с параметрами.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Вс ноя 17, 2013 21:18 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Сделал очередной шаг в развитии QtE (Qt для Forth). QtE работает в Windows и Linux 32/64.
К разработке QtE (язык программирования D) присоединился ещё один человек. Однако
с вариантом QtE для Forth наблюдается явное отставание от варианта для D.

Вопрос. Может есть желающие принять участие в развитии и тестировании QtE.f модуля?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пн ноя 18, 2013 17:24 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
могу в тестировании помочь
32bit linux


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пн ноя 18, 2013 18:56 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Отлично! Моя почта mgwl@mail.ru Если есть вопросы пиши на этот адрес или спрашивай в этой теме.
Первая задача запустить QtE и примеры.
Необходимо скачать QtE от 141013. ( для D и SPF-4-20 ) Windows и Linux 32 и 64
http://qte.ucoz.ru/. Скомпилировать библиотеку qte.so Попытаться запустить примеры.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пт ноя 22, 2013 01:51 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Скачал, скомпилировал. Правда, пришлось подправить пути к qt4: в ubuntu 13.10 файлы include лежат в /usr/include/qt4. Получил QtE.so.1.0.0
При попытке запуска t13.f ошибка:
Код:
Exception #2 at: ~mgw/qte.f:251:30:
if=L REQUIRE HYPE qtf/hype3.f         //
                            ^ -2003 WORD OR FILE NOT FOUND

Не хватает папки qtf.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пт ноя 22, 2013 15:11 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Отлично! Главное есть QtE.so — это мостик между QtE.f и Qt. Специально для Linux подготовил архив. В нём минимально необходимый набор. Кстати, файлы QtE.so.1.0.0 и spf4 из архива замени своими. Они привязаны к конкретной архитектуре. С точки зрения теории понятно, как работать с Qt из любого диалекта Forth

Файл для скачивания: http://yadi.sk/d/9BmBto_rD8KTG


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Сб ноя 23, 2013 01:52 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Из QtE_141013 t13 и t12 запустились
Из последнего архива ничего не запускается:
Код:
Внимание! Error find function:   QT_QCheckBox


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пн янв 06, 2014 11:33 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Когда то давно, я заинтересовался вопросом «Можно ли из Forth использовать тонны готовых библиотек валяющихся на компьютере в виде DLL, при этом не используя компилятор С++». К сожалению ответ — НЕТ.
Если библиотеки написаны в стиле классического С, то проблем нет. Там лежит просто набор функций с «прозрачными» именами, которые легко использовать. Однако большинство современных представляют собой С++ библиотеки. Первая трудность в них — это искажение имен. В них добавлен список и типы аргументов, что делает их слабо понятными для человека. Сделано это для того, что бы С++ мог иметь одинаковое имя функции с разными параметрами. Существует множество утилит декодирующих имена и аргументы в нормальный вид, что фактически снимает эту проблему. Конструкторы и деструкторы, если они имеются в DLL могут быть корректно вызваны и работают правильно. Таким образом в Forth можно построить дерево классов С++. Но, как выяснилось в погоне за «эффективностью» часть функций определена в виде «inline» функций. А так как «inline» - это псевдофункция, то её код не представлен в DLL. Получается, что часть кода в DLL С++ c «inline» функциями отсутствует физически. Без компилятора С++ и исходных текстов воспроизвести эту утерянную часть нет возможности. По правильному, нужно к каждой С++ библиотеке прикладывать «DLLку совместимости», в которой определить явно все «inline» функции, размеры объектов и прочую недостающую информацию в основных DLL. Жаль, что этого правила нет, это значительно облегчило бы использование С++ библиотек из других языков.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пн янв 06, 2014 14:12 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
mgw писал(а):
Когда то давно, я заинтересовался вопросом «Можно ли из Forth использовать тонны готовых библиотек валяющихся на компьютере в виде DLL, при этом не используя компилятор С++». К сожалению ответ — НЕТ.

И какой процент "неправильных" DLL? Много же и правильных.
Кроме того некоторые DLL сделаны с ипользованием DCOM/OLE/ActiveX технологии (достаточно популярной в определённых "обстоятельствах" для Windows) и другие современные "инкарнации"


P.S. Для использования, например, Java можно из SPF4 использовать JVM.DLL или уже нет? (учтя сигнатуры классов).
Можно "завести" список DLL с которыми уже опробована возможность их использования в тех или иных Форт-системах.

В "некоторых" случаях можно порекомендовать, например при создании пользовательского графического интерфейса,
выбросить "технологические" DLL и отрисовать интерфейс непосредственно в графическую память системы.
(много хороших есть примеров, например Reda4 Forth like система для Windows и др. варианты)
Сейчас мне больше "импонирует" данный вариант "экстремального" программирования.
(Делать приложение, например, используя возможности графического интерфейса Koлибри ОС, а запускать в рамках ХP или других систем через
симулятор (сделан уже) или виртуальные машины или в рамках самой операционной системы) Думаю "обкатать" данный вариант. К тому же для Колибри ОС уже присутствует вариант SPF4 Форт системы. (стараниями вездесущего Михаила:) Ещё немного "допиливания" и был бы полноценный форк Колибри на базисе Форт. (сейчас только демо-прототип)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Ср янв 08, 2014 21:14 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
KPG писал(а):
Ещё немного "допиливания" и был бы полноценный форк Колибри на базисе Форт.

Вытащить из Колибри что-то полезное для работы в дугой системе - задача почти не реальная.
На первом этапе лучше заставить форт-систему сгенерировать тот-же бинарник, что генерируется FARом.
Принципиальных проблем нет. Вопрос в объеме. Если просто перевести на форт-ассемблер в одиночку,
это месяцы (если не годы) непрерывной работы. Следует разработать специальный дизассемблер или
сделать форт-ассемблер максимально близким к FARу.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Ср янв 08, 2014 21:35 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Колибри для меня слишком сложна. Мне больше интересна интеграция форта (SPF желательно) в другие приложения. Скажем использование SPF в качестве внутреннего "исследователя" (вместо отладчика например) конечного приложения на D и его (приложения) дальнейшего модификации. Наверное надо SPF цеплять как DLL ку.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB