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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: µForth :: контроль версий слов
СообщениеДобавлено: Чт май 23, 2013 01:48 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Пока "µForth" на данном форуме не устаканилось, буду использовать сей термин а-ля namespace С++ :) ...

В данный момент в голове вопрос "чего делать с модернизацией языка"?

На пальцах:

В версии 1.8 "языка" слово SEND снимает со стека два значения и производит деление.
В версии 2.0 "языка" слово SEND снимает со стека два значения и производит деление с округлением.

Как нам собрать (интерпретировать) модуль, предназначенный для версии 1.8 в реализации 2.0?

Берем "классику" типа Qt. На этапе компиляции вылетают варнинги типа несоответствие типа. Иными словами, то части функций нет, то аргументы не те. И то это, чисто формально ....

А если в версии слова AGE аргументом будет сперва дата рождения, а потом возраст в годах? Типы одинаковые - но трактация и обработка разные должны быть!

Вощем в будущем языке "µForth" хочу ввести понятие "версия слова". Это будет означать следующее:

  • Каждый модуль будет иметь сигнатуру версии для которой писался
  • Будет вестись "реестр изменений", относительно которого будут вычисляться "потенциально опасные" слова
  • Слова можно будет маркировать версиями
  • После адаптации (все слова последней версии) - можно будет править сигнатуру модуля на последнюю

Критикуйте и предлагайте, вэлком! :)

_________________
Мои программные ништякиhttp://majestio.info
Форум по языку программирования Dhttp://dlanguage.ru


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: контроль версий слов
СообщениеДобавлено: Чт май 23, 2013 10:13 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 10 раз.
Для слов контроль версий, это перебор. Слово в форте, это аналог функция в С. А а вот контроль версий модулей, это хорошо. На мой взгляд нужен автоматический механизм тестирования, как например в fork от mOleg. Запустил систему и дал команду --> тестируйся. Этакая самодиагностика.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: контроль версий слов
СообщениеДобавлено: Чт май 23, 2013 16:12 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 907
Благодарил (а): 3 раз.
Поблагодарили: 33 раз.
mgw писал(а):
Для слов контроль версий, это перебор. Слово в форте, это аналог функция в С. А а вот контроль версий модулей, это хорошо. На мой взгляд нужен автоматический механизм тестирования, как например в fork от mOleg. Запустил систему и дал команду --> тестируйся. Этакая самодиагностика.

Возможно имеет смысл если будут "насследоваться" слова и программы из других Форт систем. Бывает не отличаются по интерфейсам,
а реализация завязана на внутренние особенности конкретной системы. И это можно учитывать в мета информации на конкретное слово.



За это сообщение автора KPG поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: контроль версий слов
СообщениеДобавлено: Пт май 24, 2013 02:14 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Majestic писал(а):
Как нам собрать (интерпретировать) модуль, предназначенный для версии 1.8 в реализации 2.0?

1. Начинать модуль для PIMPFORTH версии 1.8 строчкой
Код:
1 8 PIMPFORTH

2. С версией 2.0 будет файлик pimpforth-2.0:
Код:
\ вот поменял аргументы местами, так будет вдвое лучше
: SEND ( старое) SWAP SEND ( новое) ;

3. Такие же файлики будут для всех версий, где есть поменянные слова.
4. Если версия системы 2.0, а модуль хочет 1.8, то слово PIMPFORTH найдёт и включит pimpforth-2.0, а потом pimpforth-1.9
:mrgreen:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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