powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Разработка под GT.M
21 сообщений из 21, страница 1 из 1
Разработка под GT.M
    #38539552
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пару вопросов для тех кто работает с этим чудом.

Насколько я понял, код программ всегда в виде файлов с расширением *.M ?
Файлы эти должны лежать в одной папке (без подпапок), я так понимаю рядом с БД ?
Для компиляции кода, обязательно вызывать mumps hello.m или нет ?
Есть ли какое то объединение на проекты ?

может есть еще что-то, что нужно учесть для редактора ?
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38539579
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
Да, в одной паке или разделять на подкаталоги (.m and .o)
Там одна рутина представляет собой сам текст с расширением ".m"
и она же скомпилированая с расширением ".o" - object
И не обязательно рядом с базой, хотя так разумнее и логичнее.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38539586
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor Для компиляции кода, обязательно вызывать mumps hello.m или нет ?
Можно командой zlink "hello.m"
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38539591
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хочу добавить параллельно Cache поддержку GT.M, в свою студию.
И вот как раз думаю о том как получше это организовать

как понимаю, должна быть корневая папка, из которой отображать M-файлы.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38539814
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,как понимаю, должна быть корневая папка, из которой отображать M-файлы
Корневая папка может быть только для системных рутин (на подобие %SYS в Cache'),
это где инсталлирован сам GT.M.
Главную роль играют переменные окружения, которые как бы указывают нам патчи
остальных областей, (хотя в GT.M нету таких, есть сегменты и регионы).
Мы сами можем создать каталоги по смыслу, где будут жить наши базы, рутины и глобалы.
Например:
В следующие несколько шагов создаем GT.M базы данных и импортируем глобалы salrte в эту базу данных.
Во-первых, установим несколько переменных среды вручную.

1.Создаем директорию на подобие cache для программ
[root@LinuxServer salrte]# mkdir /usr/local/gtm60/mgr/salrte/r

2.Создаем директорию на подобие cache для глобалов
[root@LinuxServer salrte]# mkdir /usr/local/gtm60/mgr/salrte/g

3.Определимся где будут лежать наши програмы + системные gtm программы:

[root@LinuxServer salrte]# gtmroutines="/usr/local/gtm60/mgr/salrte/r $gtm_dist ."
[root@LinuxServer salrte]# export gtmroutines

4.Создаем переменну для определения глобальной директории
где будет лежать(название.gld). В нашем случае database.gld :

[root@LinuxServer salrte]# gtmgbldir=/usr/local/gtm60/mgr/salrte/g/database
[root@LinuxServer salrte]# export gtmgbldir

5.Создаем остальные переменные для дальнейшей работы(gtm,mupip,lke,gde,dse):

[root@LinuxServer salrte]# gtm="$gtm_dist/mumps -direct"; export gtm
[root@LinuxServer salrte]# mupip="$gtm_dist/mupip"; export mupip
[root@LinuxServer salrte]# lke="$gtm_dist/lke"; export lke
[root@LinuxServer salrte]# gde="$gtm_dist/mumps -r ^GDE"; export gde
[root@LinuxServer salrte]# dse="$gtm_dist/dse"; export dse

6.Используем утитлиту GDE для создания нашей глобальной директории файлов:

[root@LinuxServer salrte]# mumps -r GDE
%GDE-I-GDUSEDEFS, Using defaults for Global Directory
/usr/local/gtm60/mgr/salrte/g/database.gld

[root@LinuxServer salrte]#GDE> change -s DEFAULT -f=/usr/local/gtm60/mgr/salrte/g/database
[root@LinuxServer salrte]#GDE>exit
%GDE-I-VERIFY, Verification OK
%GDE-I-GDCREATE, Create Global Directory file
/usr/local/gtm60/mgr/salrte/g/database.gld

7.Используем утилиту MUPIP для создания файла нашей базы данных
используя новые возможности версии V6.0-000:

- The maximum supported key size increases from 255 to 1,019 bytes.
- Global variable nodes need no longer fit within a database block. This
opens opportunities for applications to consider smaller block sizes where
these improve performance. Also, the new maximum global variable node size
of 1,048,576 bytes (1 MiB) means that any local variable node can also be
stored in a global variable.
- The maximum size of a database file is now 1,040,187,392 (992 Mi) blocks.
Previously this limit was 234,881,024 (224 Mi) blocks.

[root@LinuxServer salrte]# mupip create && dse change -f -key_max=1019 -rec=1048576
Created file /usr/local/gtm60/mgr/salrte/g/database.dat

File /usr/local/gtm60/mgr/salrte/g/database.dat
Region DEFAULT

8. В общем наш профильный (profile) файл должен выглядеть примерно так:

#!/bin/bash
cd /usr/local/gtm60/mgr/salrte
gtm_dist="/usr/local/gtm60"; export gtm_dist
gtmroutines="/usr/local/gtm60/mgr/salrte/r $gtm_dist ."; export gtmroutines
gtmgbkdir="/usr/local/gtm60/mgr/salrte/g/database"; export gtmgbldir
gtm="$gtm_dist/mumps -direct"; export gtm
mupip="$gtm_dist/mupip"; export mupip
lke="$gtm_dist/lke"; export lke
gde="$gtm_dist/mumps -r ^GDE"; export gde
dse="$gtm_dist/dse"; export dse
PATH=$PATH:$gtm_dist

...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540048
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, спасибо, дома посмотрю как все это работает.
т.е. если я правильно понял, то gt.m все таки не знает о всех установленных БД ?

Вот например, ты используешь Sublime для редактирования M-кода,
как ты его настраиваешь, как компилируешь код ?
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540069
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел правда посмотреть как в Sublime подсветка кода для M сделана, что-то не подключается она.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540103
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,т.е. если я правильно понял, то gt.m все таки не знает о всех установленных БД ?
Совершено правильно. Назначая переменные окружения мы как бы указываем где они находятся.
Можно ознакомится с AcculturationWorkshop-Materials на
http://sourceforge.net/projects/fis-gtm/files/GT.M Acculturation Workshop/
Я например запускаю свой конфигурационный файл баш и записываю все это в один
глобаль ^sysconfig в корневом каталоге, где установлен GT.M.
При последующих добавлений баз данных, опять все сюда пишу.
Это очень удобно при навигации (смене) по разных базах (каталогах).
^sysconfig("SYS","database")=/usr/gtm610/mumps.dat
^sysconfig("SYS","gld")=/usr/gtm610/mumps.gld
^sysconfig("SYS","o")=/usr/gtm610
^sysconfig("SYS","patch")=/usr/gtm610
^sysconfig("SYS","r")=/usr/gtm610
^sysconfig("cadre","database")=/home/cadre/cadre.dat
^sysconfig("cadre","gld")=/home/cadre/cadre.gld
^sysconfig("cadre","journal")=/home/cadre/cadre.mjl
^sysconfig("cadre","o")=/home/cadre/o
^sysconfig("cadre","patch")=/home/cadre/o(/home/cadre/r) /usr/gtm610
^sysconfig("cadre","r")=/home/cadre/r
^sysconfig("itin","database")=/home/itin/itin.dat
^sysconfig("itin","gld")=/home/itin/itin.gld
^sysconfig("itin","journal")=/home/itin/itin.mjl
^sysconfig("itin","o")=/home/itin/o
^sysconfig("itin","patch")=/home/itin/o(/home/itin/r) /usr/gtm610
^sysconfig("itin","r")=/home/itin/r
^sysconfig("json","database")=/home/json/json.dat
^sysconfig("json","gld")=/home/json/json.gld
^sysconfig("json","journal")=/home/json/json.mjl
^sysconfig("json","o")=/home/json/o
^sysconfig("json","patch")=/home/json/o(/home/json/r) /usr/gtm610
^sysconfig("json","r")=/home/json/r
^sysconfig("salrte","database")=/home/salrte/salrte.dat
^sysconfig("salrte","gld")=/home/salrte/salrte.gld
^sysconfig("salrte","journal")=/home/salrte/salrte.mjl
^sysconfig("salrte","o")=/home/salrte/o
^sysconfig("salrte","patch")=/home/salrte/o(/home/salrte/r) /usr/gtm610
^sysconfig("salrte","r")=/home/salrte/r

Я например до сих пор не понял как они импортируют глобалы в добавленных сегментах.
Это посмотрите в материале что я указал выше.
Например мне удобнее и привычнее как в других реализациях MUMPS - создавать отдельные
каталоги и БД по смыслу.
Вот например, ты используешь Sublime для редактирования M-кода,
как ты его настраиваешь, как компилируешь код ?
Я его не использую, у меня свой редактор на стороне Windows(Linux) клиента.
С помощью сокета манипулирую прием отправка текста.
На сервере вызываю код текста программы. Отправляю клиенту.
Здесь отредактировали, опять отправляю серверу, пишем в файл текстовый, потом его же и компилирую.
Если ошибки при компиляции, ловлю и отправляю опять клиенту.
Примерно так.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540119
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пару скринов своего приложения можно посмотреть здесь
http://eltranssoft.ucoz.ru/
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540168
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да, про Sublime я перепутал, это SergeyLee с ним работает
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540735
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, вот такое нашел
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540756
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMor, вот такое нашелДа я про него и писал, только вот почему то не получилось заставить это работать. Видимо что-то не так делаю.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38540974
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, получилось запустить под вторым и третьим Sublime.
Исходное состояние: Sublime с плагином Package Control
1. Запускаем командную консоль Ctrl+Shift+P
2. Выбираем команду Добавить репозиторий
3. Вводим https://github.com/ksherlock/MUMPS.tmbundle
4. Выбираем команду Установить пакет
5. Вводим MUMPS
6. После установки можно перезагрузить и создать файл с расширением int, или использовать View - Syntax - Mumps

Правда определения команд немного кондовые - только верхний регистр. Осталось форкнуть проект и настраивать под свой вкус и цвет :)
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38541007
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ооо, не ожидал, что все так ставится
так конечно удобно, видимо плохо знаком я с Sublime
Хотя конечно, подстветка почти бестолковая, как я и ожидал
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38541027
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, вот тут как настраивать определения
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38541102
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMor, вот тут как настраивать определенияЭто ладно, но проблема всех таких подсветок это ошибочное определение строки вида
new set , kill
он подсветит все как команды, но это не верно
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38541125
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, да, знаменитое
A  B:C  D E F G=H:I:J K:L M N O,P Q:R  S T=UVW X YZ

Надо учитывать строко-ориентированность Mumps и вложенность COS (&sql,&html,&js,СDL,Storage,XData). Правила разметки явно будут ОЧЕНЬ ОЧЕНЬ интересными
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38541146
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMor, да, знаменитое
A  B:C  D E F G=H:I:J K:L M N O,P Q:R  S T=UVW X YZ

Надо учитывать строко-ориентированность Mumps и вложенность COS (&sql,&html,&js,СDL,Storage,XData). Правила разметки явно будут ОЧЕНЬ ОЧЕНЬ интереснымиВот это точно. У себя то в моей студии я это постарался учесть.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38542006
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Не следил за форумом около недели. :)
Вижу уже освоили Sublime с MUMPS.
Я же пока работаю в режиме:
1. Редактор Sublime + MUMPS bundle, иногда gedit (тоже есть MUMPS подсветка), но Sublime интереснее, тоже пока изучаю и не использую все возможности.
2. В терминале по старинке работаю в командной строке с GT.M: zlink и прочие действия по отладке.

Надо будет засесть и улучшить многое:
1. Редактор связать с терминалом, установить плагин в Sublime
2. С разными проектами-папками работаю посредством готового скрипта с переменными окружения, скрипт также использовать при работе с терминалом в Sublime
3. Разобраться с отладкой и обработкой ошибок в GT.M и максимально внедрить это в связку Sublime+Terminal.

Terminal плагин например: http://wbond.net/sublime_packages/terminal

Будут вопросы, задавайте!
Я когда попробовал начать работать с Cache, тоже растерялся сперва. Там код хранится прямо в базе, да?
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38542011
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLeeЯ когда попробовал начать работать с Cache, тоже растерялся сперва. Там код хранится прямо в базе, да?
Да.
...
Рейтинг: 0 / 0
Разработка под GT.M
    #38546001
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMor, получилось запустить под вторым и третьим Sublime.
Исходное состояние: Sublime с плагином Package Control
1. Запускаем командную консоль Ctrl+Shift+P
2. Выбираем команду Добавить репозиторий
3. Вводим https://github.com/ksherlock/MUMPS.tmbundle
4. Выбираем команду Установить пакет
5. Вводим MUMPS
6. После установки можно перезагрузить и создать файл с расширением int, или использовать View - Syntax - Mumps

Правда определения команд немного кондовые - только верхний регистр. Осталось форкнуть проект и настраивать под свой вкус и цвет :)еще такой вариант нашел
https://github.com/seanklingensmith/CacheColors
И Brandon Horst собирается сделать поддержку классов Caché в Sublime
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Разработка под GT.M
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]