|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
Пару вопросов для тех кто работает с этим чудом. Насколько я понял, код программ всегда в виде файлов с расширением *.M ? Файлы эти должны лежать в одной папке (без подпапок), я так понимаю рядом с БД ? Для компиляции кода, обязательно вызывать mumps hello.m или нет ? Есть ли какое то объединение на проекты ? может есть еще что-то, что нужно учесть для редактора ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 18:16 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
DAiMor, Да, в одной паке или разделять на подкаталоги (.m and .o) Там одна рутина представляет собой сам текст с расширением ".m" и она же скомпилированая с расширением ".o" - object И не обязательно рядом с базой, хотя так разумнее и логичнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 18:43 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
DAiMor Для компиляции кода, обязательно вызывать mumps hello.m или нет ? Можно командой zlink "hello.m" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 18:49 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
Я хочу добавить параллельно Cache поддержку GT.M, в свою студию. И вот как раз думаю о том как получше это организовать как понимаю, должна быть корневая папка, из которой отображать M-файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2014, 18:53 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 00:18 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
ОК, спасибо, дома посмотрю как все это работает. т.е. если я правильно понял, то gt.m все таки не знает о всех установленных БД ? Вот например, ты используешь Sublime для редактирования M-кода, как ты его настраиваешь, как компилируешь код ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 10:02 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
Хотел правда посмотреть как в Sublime подсветка кода для M сделана, что-то не подключается она. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 10:17 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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) клиента. С помощью сокета манипулирую прием отправка текста. На сервере вызываю код текста программы. Отправляю клиенту. Здесь отредактировали, опять отправляю серверу, пишем в файл текстовый, потом его же и компилирую. Если ошибки при компиляции, ловлю и отправляю опять клиенту. Примерно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 10:34 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
Пару скринов своего приложения можно посмотреть здесь http://eltranssoft.ucoz.ru/ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 10:47 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
Ах да, про Sublime я перепутал, это SergeyLee с ним работает ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 11:11 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
DAiMor, вот такое нашел ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 16:06 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
doublefintDAiMor, вот такое нашелДа я про него и писал, только вот почему то не получилось заставить это работать. Видимо что-то не так делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 16:15 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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 Правда определения команд немного кондовые - только верхний регистр. Осталось форкнуть проект и настраивать под свой вкус и цвет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 17:43 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
ооо, не ожидал, что все так ставится так конечно удобно, видимо плохо знаком я с Sublime Хотя конечно, подстветка почти бестолковая, как я и ожидал ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 17:57 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
DAiMor, вот тут как настраивать определения ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 18:04 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
doublefintDAiMor, вот тут как настраивать определенияЭто ладно, но проблема всех таких подсветок это ошибочное определение строки вида new set , kill он подсветит все как команды, но это не верно ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 18:37 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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). Правила разметки явно будут ОЧЕНЬ ОЧЕНЬ интересными ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 18:57 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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). Правила разметки явно будут ОЧЕНЬ ОЧЕНЬ интереснымиВот это точно. У себя то в моей студии я это постарался учесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2014, 19:18 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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, тоже растерялся сперва. Там код хранится прямо в базе, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2014, 13:46 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
SergeyLeeЯ когда попробовал начать работать с Cache, тоже растерялся сперва. Там код хранится прямо в базе, да? Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2014, 13:48 |
|
Разработка под GT.M
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2014, 18:05 |
|
|
start [/forum/topic.php?fid=39&msg=38546001&tid=1556966]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 151ms |
0 / 0 |