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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Чт янв 20, 2011 23:54 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
похоже чего-то не хватает:
D:\SPF>spf4.exe console.f
API-CALL isn't unique (stdlib.f)
Exception #-2003 at: D:\SPF\devel/~day\hype3\hype3.f:2:3:
ta c-addr u - xt 1 | xt -1 | abort )
MFIND ?DUP 0=
IF
ROT DUP S" unknown" SEND
THEN
;

: SEND, ( a ta addr u
^ -2003 WORD OR FILE NOT FOUND
^C

пытался запустить на стандартном СПФ без CVS обновлений (может поэтому?)

Заглянул в код, интересно, вы [IF] [ELSE] [THEN] специально не используете?

И еще,
Код:
VARIABLE  uSaveUSD    // Указатель для сохранения и востановления стека

может лучше таки USER использовать?

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


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

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

Интересно, у других то работает?


Последний раз редактировалось mgw Пт янв 21, 2011 09:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключение графической библиотеки QT к SPF 4.20
СообщениеДобавлено: Пт янв 21, 2011 01:09 
mgw писал(а):
Мне он не нравится, т.к. тяжело визуально понять, где объект, а где его метод. Думаю при помощи слова NOTFOUND реализовать синтаксис через точку

Конфликтовать не будет. Но, может быть перекрытие — например, если есть объект o, метод m, и слово с именем o.m, то при связывании будет отдано предпочтение слову.
Код:
REQUIRE enqueueNOTFOUND ~pinka/spf/notfound-ext.f
REQUIRE SPLIT-  ~pinka/samples/2005/lib/split.f
REQUIRE AsQWord ~pinka/spf/quoted-word.f


: AsHypeMethod ( i*x c-addr u -- i*x a-addr u false | j*x true )
  `. SPLIT- 0= IF FALSE EXIT THEN
  SFIND 0= IF DROP -ROT + OVER - FALSE EXIT THEN
  EVALUATE-WITH
  TRUE EXIT
;
'AsHypeMethod enqueueNOTFOUND

\EOF  \ test:
~day\hype3\hype3.f

CLASS C1
  : test ." passed " ;
;CLASS

C1 NEW a
a test
a.test


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

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
mgw писал(а):
Мне он не нравится, т.к. тяжело визуально понять, где объект, а где его метод. Думаю при помощи слова NOTFOUND реализовать синтаксис через точку:
NOTFOUND для этого ни к чему (разве что очень хочется)
Почему бы ни писать просто при помощи префиксов
Код:
оОбъект   оОбъектик   оОбъектушка   \имена объектов 
mДелает  mОтлынивает  mКовыряетсяВносу  \имена методов 


Код:
0 оОбъект mДелает
3 оОбъектик mКовыряетсяВносу
4 оОбъектушка mОтлынивает


Помоему все будет понятно или нет :?:
Хотя еще лучше писать используя части речи как в обычном языке.



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

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Код:
REQUIRE enqueueNOTFOUND ~pinka/spf/notfound-ext.f
REQUIRE SPLIT-  ~pinka/samples/2005/lib/split.f
REQUIRE AsQWord ~pinka/spf/quoted-word.f

: AsHypeMethod ( i*x c-addr u -- i*x a-addr u false | j*x true )
  `. SPLIT- 0= IF FALSE EXIT THEN
  SFIND 0= IF DROP -ROT + OVER - FALSE EXIT THEN
  EVALUATE-WITH
  TRUE EXIT
;
'AsHypeMethod enqueueNOTFOUND

Спасибо SPF за красивое решение. :D Работает отлично!

_Harry писал(а):
NOTFOUND для этого ни к чему (разве что очень хочется)Почему бы ни писать просто при помощи префиксов

Я так и делал в начале, но консерватизм берет своё. На меня С++ давит очень сильно ...

Трудность, которую наверное не обойти (может кто знает как сделать):
Пока работаем с указателем (пример: *QWidget) всё отлично. Но как дело доходит до объектов, то всё рушится. Связано это с типизацией С++. Объект в С++ - это структура в нескольких регистрах. Вернуть объект на стек SPF нет возможности :( а вся QT усеяна такими вот методами:
Код:
QString QApplication.DirNamePath();

Форт надо развивать в сторону структур и объектов C++ (например MinGW и gcc). Если форт сможет работать со структурами С++, то это будет супер!


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
mgw писал(а):
Трудность, которую наверное не обойти (может кто знает как сделать):
Пока работаем с указателем (пример: *QWidget) всё отлично. Но как дело доходит до объектов, то всё рушится. Связано это с типизацией С++. Объект в С++ - это структура в нескольких регистрах. Вернуть объект на стек SPF нет возможности а вся QT усеяна такими вот методами:

Вариант только один - делать обертки для каждого вызова на асме.
То есть, снимать данные со стека данных, размещать их в регистрах (предварительно сохранив содержимое EDI на стеке данных), сохранять указатель на стек данных, и потом делать вызов.

mgw писал(а):
Я так и делал в начале, но консерватизм берет своё. На меня С++ давит очень сильно ...

зря, будет получаться некрасиво и неудобно (таки идеология иная)

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


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

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

к Форту уже тьма объектных библиотек есть (каждый делает свой вариант) и очень мало толку. Структуры тоже не проблема, они не только есть, но есть в разном исполнении. Объекты - таки другая парадигма, лучше освоить нормально словари и работу с ними.

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


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

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
mOleg писал(а):
к Форту уже тьма объектных библиотек есть
Есть моделирование объектов на форте, а я говорю об реальных объектах и структурах C++ и работе с форта с ними.
Ну вот простой пример:
В QtCore4.dll лежит функция с именем _ZN16QCoreApplication19applicationFilePathEv. Адрес этой функции известен.
Её опеределение: QString CoreApplication::applicationFilePath() проще некуда, просто вернуть значение. Вопрос как это сделать ..... не имея поддержки объектов С++ Или я заблуждаюсь и это просто?


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

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

sys1:
pop ebx
jmp sys0

;-------------------------------------------------------------------------
;syscall that takes 2 parameters

sys2:
pop ebx
pop ecx
jmp sys0

;-------------------------------------------------------------------------
;etc

sys3:
pop ebx
pop ecx
pop edx
jmp sys0

;-------------------------------------------------------------------------

sys4:
pop ebx
pop ecx
pop edx
pop esi
jmp sys0

;-------------------------------------------------------------------------

sys5:
pop ebx
pop ecx
pop edx
pop esi
pop edi
jmp sys0

;-------------------------------------------------------------------------
;use of this limits your code to kernel 2.4+

sys6:
pop ebx
pop ecx
pop edx
pop esi
pop edi
pop ebp
jmp sys0


это кусочек одного из Фортов под Linux, где параметры передаются не через стек, а через регистры.

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


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

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
mOleg писал(а):
это кусочек одного из Фортов под Linux
Это интересно, большое спасибо. Я уже думал в этом направлении, ну а раз есть подтверждение, надо нажать.

Кстати, Олег, удалось запустить console.f ?


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

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

Нет, не пытался разбираться. Посмотрел чуток в код и все.
Хотя, таки либы у меня новые для СПФа.

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


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

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Снимок с экрана. tutor1, tutor2 и console в Linux http://mgw.narod.ru/tmp1.jpeg


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

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

Написал с использованием модернизированной библиотеки программу на SPF. Это просмоторщик файлов форта (view.f), с подсветкой синтаксиса. Вполне реально развить её до редактора (можно вписывать текст, но пока без сохранения) или до IDE.

Ссылка для скачивания spfqt_win_2.zip


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

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

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


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

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

Частично. С вызовом объектов С++ из форта проблема. Объект в понятиях C++ - это куча значений в регистрах, а у форта только стек. Писать на ассемблере слова моделирующие механизмы С++ слишком сложно, фактически писать компилятор С++. Пока я на промежуточном варианте, а именно, всё что не могу сделать в форте делаю в DLL. Вообще по современным меркам форт развит слабо, с другой стороны если его развить, то получится, либо Python либо Java. Форт, тем и хорош, что пока не страдает гигантизмом.

P.S. Народ, помогите протестировать библиотеку spfqt_win_2.zip Должна же она работать у других ...


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

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


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

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


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

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