powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / MUMPS 2020
137 сообщений из 137, показаны все 6 страниц
MUMPS 2020
    #39955720
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MDC повел вторую фазу работ по подготовке стандарта MUMPS 2020.
Рик Маршал, секретарь MDC, позвал меня в рабочую группу, называется Task Group 19.
Пока все обсуждения и документы закрытые.
Работа ведется, процесс идет.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39955735
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как интересно. А цель нового стандарта?
Добавить что-то принципиально новое?
InterSystems участвует?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39955932
misha_shar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня возмите.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39955935
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor
Как интересно. А цель нового стандарта?
Добавить что-то принципиально новое?
InterSystems участвует?

Пока в основном неточности в спецификации элементов языка.
Предполагаю что да, но еще не в курсе кто именно из участников представляет Интерсистемс.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39955948
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я,

То что надо

Когда, предположительно, будет новый стандарт ?

Успехов в этом сложном деле !

==================
...
Рейтинг: 0 / 0
MUMPS 2020
    #39955956
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
ну я,

То что надо

Когда, предположительно, будет новый стандарт ?

Успехов в этом сложном деле !

==================

Сейчас предполагается что в 2021.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39956379
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде бы всем понятно, что стандартизация - вещь хорошая, прежде всего, для нас, потребителей. Пока было много М-систем на рынке, она была в какой-то степени выгодна и поставщикам. Но когда в 2000-х их осталось, условно говоря, только двое (не беря в расчёт MUMPSv1, M21+ и прочие небольшие системы, которые в основном использовались лишь их авторами), в общем-то понятно прохладное отношение InterSystems к развитию Стандарта, следствием которого стало практически полное замораживание деятельности MDC.

Что, кроме появления третьего игрока - MiniM - изменилось к 2020 году? Что движет людьми, возобновившими работу над Стандартом? Есть ли хотя бы черновая публикация на эту тему, Евгений?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39956657
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Что движет людьми, возобновившими работу над Стандартом? Есть ли хотя бы черновая публикация на эту тему, Евгений?

Движет хорошее ))) В языке есть некоторые неточности и отсутствуют конструкции выглядящие разумно, вроде
предложений Type A, типа new $test или new $reference (хотя new $reference я еще не понял в чем смысл). Там большой список.
Или уточнения синтаксиса, вроде того что принимает ^$global - в его первом индексе указано gvn, но gvn специфицирован с допустимыми сабскриптами, но для ^$global их нельзя указывать.
Ну и в таком роде.
Рик Маршал ведет обсуждение в закрытом формате, тут не моя юрисдикция.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39956881
misha_shar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну я,
Если привлекут к разработке стандарта IS, я думаю они попытаются включить свое расширение в стандарт.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957153
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
Alexey Maslov
Что движет людьми, возобновившими работу над Стандартом? Есть ли хотя бы черновая публикация на эту тему, Евгений?

Движет хорошее ))) В языке есть некоторые неточности и отсутствуют конструкции выглядящие разумно...
Ясно, что над языком можно ещё поработать. Не ясно, какие бизнес интересы за этим стоят. Чем это поможет нам, пользователям?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957223
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Чем это поможет нам, пользователям?

Если, например, ГТ.М подтянет использование некоторых функций до "стандарта" Каше - нам будет проще писать программки.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957307
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Если, например, ГТ.М подтянет использование некоторых функций до "стандарта" Каше - нам будет проще писать программки.
В Cache много полезных функций :) Чего больше всего не хватает в M?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957412
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Чего больше всего не хватает в M?

Мне нравятся поиски по шаблонам... Там небольшое семейство функций.

Да и в старых стандартных функциях были добавлены некие полезные варианты с параметрами...
Я было их запомнил и стал применять. А потом пришлось писать "универсально", все переделали на стандарт М. И я позабыл про это все, т.к. уже несколько лет это обновление не использую.
Но память о том, что это было довольно удобно осталась!

Помню были возможны отрицательные значения в параметрах... Типа -1 - до конца. Или -N (N целое) типа N с конца...
Вот не вспомню сейчас.

У нас молодежь активно использовала листбилдовские функции... Теперь х/з чего делать с теми программами.
Их довольно много. Так же хотелось бы такое получить в "Стандарт". Хотя бы для ГТ.М...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957591
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
У нас молодежь активно использовала листбилдовские функции

Сейчас в YottaDB имеются следующие расширения:

$list* (все 12 функций)
$order(variable,direction ,target )
$replace
$zcrc
$zcvt
$zhex
$zstrip

Код: javascript
1.
2.
3.
4.
YDB>w $zyrel
YottaDB r1.28 Linux x86_64
YDB>w $zv
GT.M V6.3-008SD Linux x86_64



Куда обращаться, знаете.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957774
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто знает как быстро сохранить ВСЕ локальные переменные из namespace.
А потом если надо быстро все восстановить ?

По хотелкам - new для $zr предотвратило бы некоторые трудноуловимые ошибки.

Кстати $zr вместе с $r для YottaDB не планируется ?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957824
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Куда обращаться, знаете.

Я х/з что ты имел ввиду...
Даже не понял зачем нам YottaDB...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957825
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Кто знает как быстро сохранить ВСЕ локальные переменные из namespace.
А потом если надо быстро все восстановить ?

У нас такое на мамсе использовали только нерадивые программисты... Но там хоть было ограничения по памяти.
Они все требовали его увеличить. Сначала делали 20КБт... Потом 30КБт... На 40КБт клиенты начали возмущаться, что их так нагло заставляют покупать память.
И мы приструнили тех программистов, научили их пользоваться командой new ... Год контроля так же дал результат.

А у вас почему появилась такая надобность?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957826
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Кто знает как быстро сохранить ВСЕ локальные переменные из namespace.

Вот пример из документации, как получить "следующую" локальную переменную
Код: javascript
1.
2.
SET a="best",a1="prime",aa="choice",b="good",c="utility grade"
WRITE !,$ORDER(a1,1,target),!,target


Далее ее имя и значение можно записать в глобал или файл, как тебе будет удобнее...

Правда я забыл как получить именно первую локальную переменную.
Но, если у вас нет переменной с именем % - можно использовать ее. Она же подойдет и как переменная для цикла.
Код: javascript
1.
WRITE !,$ORDER(%,1,target),!,target




MX-9
А потом если надо быстро все восстановить ?

Пройтись по тому глобалу и, используя имя (косвенное обращение) и значение восстановить локальную переменную

В обоих вариантах нужно действовать командой merge ...
Она скопирует как значение, так и все подузлы локальной переменной.
Правда и тут есть подводные камни... У глобалов есть ограничения на длины значений, придется их увеличивать в настройках СУБД.

Но это путь "в никуда". Не делайте так.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957827
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Правда я забыл как получить именно первую локальную переменную.

Помнят руки-то , помнят! (с)
Код: javascript
1.
WRITE !,$ORDER(@"",1,target),!,target
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957883
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Даже не понял зачем нам YottaDB...
Если заинтересованы в развитии, то стоит сменить GT.M на YottaDB. Снизу вверх они совместимы. Новые фичи будут появляться только в YottaDB.

Пока не все добавленные функции вошли в основную ветвь, хотя работа над этим ведётся, за дистрибутивом можно обращаться в нашу компанию. Мы всегда рады сотрудничеству.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957888
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Кстати $zr вместе с $r для YottaDB не планируется ?
Вряд ли: $r соответствует Стандарту ANSI X11.1-1995 (не знаю, что будет с ANSI X11.1-2020 - здесь Евгению карты в руки), а $zr - нет. Пусть InterSystems подтягивается.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957943
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Если заинтересованы в развитии, то стоит сменить GT.M на YottaDB.

Ну это уже не ко мне...
У нас на то есть эффективные топ менеджеры!

Alexey Maslov
Снизу вверх они совместимы. Новые фичи будут появляться только в YottaDB.

Понял.
А есть поддержка терминального соединения с БД на YottaDB?
Помнится еще нам была нужна сертификация в реестре "доступного ПО" для госконтор... У YottaDB есть такое?
Ну и документация для изучения новичками и не только... Есть?

Alexey Maslov
за дистрибутивом можно обращаться в нашу компанию. Мы всегда рады сотрудничеству.

Ок, понял.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957950
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

YottaDB это по сути просто форк GT.M, то есть это все он же просто с новыми возможностями
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957956
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor
YottaDB это по сути просто форк GT.M, то есть это все он же просто с новыми возможностями

Пусть так... Значит терминальное подключение какое-то есть...

Как с "сертификацией" в "российском ПО"?
Нам можно использовать только такое для госконтор...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957963
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Кстати $zr вместе с $r для YottaDB не планируется ?

Про $r...
Если YottaDB это следующий ГТ.М, то программы там просто файлы. А с файлами работают другие функции...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957967
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Про $r...
Это не про программы, а про последнюю глобальную ссылку. Полный аналог Кашовой $zreference.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39957969
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Как с "сертификацией" в "российском ПО"?
Наш клон сертифицирован под именем "M.Base". Почему так назвали? не скажу, потому что не знаю.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958034
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov , в сертификации, насколько я знаю, важно не только имя ПО но и номер его версии.
Т.ч. без сертификации нам дорога в YottaDB заказана...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958068
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Alexey Maslov , в сертификации, насколько я знаю, важно не только имя ПО но и номер его версии.
Т.ч. без сертификации нам дорога в YottaDB заказана...


M.Base
https://reestr.minsvyaz.ru/reestr/150011/

АИР-ГТМ
https://reestr.minsvyaz.ru/reestr/138928/

Нет нигде упоминания о версии, по моему видимых причин нет
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958242
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Спасибо за ответ.
Этот вариант работает не так быстро как хотелось бы.
Думал что есть что-то побыстрее..

Иногда соединение клиента с сервером рвется - и процесс аварийно закрылся.
Надо продолжить с теми же переменными и незаметно для пользователя.

Пока в общем-то все работает нормально ( с Вашим вариантом) - но полсекеунды на стыке после разрыва иногда заметны.

Речь идет про 'виртуальный ексцел' развернутый в m-database (IRIS-CACHE-MSM-MiniM)
интерактивно отображаемый на ексцели клиентов в сети.

в частности - для IRIS -
https://openexchange.intersystems.com/package/EXCEL-as-a-REST-application

=========
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958243
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey
как через Вашу фирму получить дистрибутив YottaDB ?

sia.enters@inbox.lv

===============
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958276
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Alexey
как через Вашу фирму получить дистрибутив YottaDB ?

sia.enters@inbox.lv

===============


Вы это в серьёз?
Чем вам https://yottadb.com/product/get-started/ не источник?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958278
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://sisyphus.ru/en/srpm/Sisyphus/MUMPS
Current version: 1.71-alt1
Build date: 23 january 2020, 14:04 ( 16.2 weeks ago )
Size: 301.50 Kb

License: BSD
Summary: Massachusetts General Hospital Utility Multi-Programming System
Description:

MUMPS (Massachusetts General Hospital Utility Multi-Programming System)
or alternatively M, is a general-purpose computer programming language
that provides ACID (Atomic, Consistent, Isolated, and Durable)
transaction processing. Its most unique and differentiating feature is
its "built-in" database, enabling high-level access to disk storage
using simple symbolic program variables and subscripted arrays, similar
to the variables used by most languages to access main memory.
Current maintainer: Fr. Br. George

List of contributors

Fr. Br. George

Мне вот любопытно, все изобретают свою сертификацию при наличии этого продукта
в сертифицированном http://altsp.su/
А Current maintainer: Fr. Br. George явно не из секты "СВИДЕТЕЛИ ДИАМСА"

Кто в курсе истории появления этого пакета в Сизифе?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958280
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://sparm.com/products/ais#rec180169605
https://www.npcair.ru/it-systems/soi-szn/

Вам бы каждому ещё и по форку GCC сделать для сборки своих M.Base и АИР-ГТМ
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958294
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
experience
MX-9
Alexey
как через Вашу фирму получить дистрибутив YottaDB ?

sia.enters@inbox.lv

===============


Вы это в серьёз?
Чем вам https://yottadb.com/product/get-started/ не источник?


1.30 - не удалось установить
и не только мне

Если SP-ARM взялся - все будет работать и устанавливаться.
Знаем по предыдущему опыту сотрудничества.

Плюс всегда можно проконсультироваться.
Возможно что часть документации будет на русском.
(мы не в России - уже начали забывать как буковки пишутся)
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958759
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Иногда соединение клиента с сервером рвется - и процесс аварийно закрылся.
Надо продолжить с теми же переменными и незаметно для пользователя.

Такие "ключевые" переменные можно хранить в глобале... ;)
Т.е. даже не именно хранить, а использовать только глобальные переменные. Тогда и записывать ничего не нужно. Все уже записано до нас. (с)
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958795
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
experience

все изобретают свою сертификацию при наличии этого продукта
в сертифицированном http://altsp.su/

Все изобретают свою сертификацию чего? MV1?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958828
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
experience

все изобретают свою сертификацию при наличии этого продукта
в сертифицированном http://altsp.su/

Все изобретают свою сертификацию чего? MV1?


Я про то, что уже находится в разряде open source.
И имею ввиду например то, что gt.m есть в репозиториях ubuntu и очень вероятно в debian(специально не изучал)
И значит препятствий для появления в сертифицированной Astra нет от слова совсем ибо всё что собрано сертифицированным GCC в замкнутом контуре не требует сертификации в достаточно широком спектре случаев.
В alt-e тоже ведь кто то когда инициировал наличие пакета о котором я выше писал в сизифе и он сопровождается, это видно по датам.
Т.е. вместо генерации форков gtm,yotta с не прозрачной лицензией и сопровождением, целесообразнее было бы простимулировать maintainer-ов соответствующих дистрибутивов под которые реалии бизнеса в России диктует вхождение в реестры т.д и т.п.

А самим только прикладную часть генерить указывая пакеты M-DBS в качестве зависимостей.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958891
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
MX-9
Иногда соединение клиента с сервером рвется - и процесс аварийно закрылся.
Надо продолжить с теми же переменными и незаметно для пользователя.

Такие "ключевые" переменные можно хранить в глобале... ;)
Т.е. даже не именно хранить, а использовать только глобальные переменные. Тогда и записывать ничего не нужно. Все уже записано до нас. (с)

Абсолютно поддерживаю ! Хранение всего контекста в глобальных переменных позволяет в итоге отказаться от постоянной сессии и легко перейти к реализации настоящего Web-клиента. А в GT,M/YottaDB (из-за особенностей реализации локальной среды) это может даже увеличить скорость работы приложений, у которых эта самая среда большого объема.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958930
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
experience
ну я
пропущено...

Все изобретают свою сертификацию чего? MV1?


Я про то, что уже находится в разряде open source.
И имею ввиду например то, что gt.m есть в репозиториях ubuntu и очень вероятно в debian(специально не изучал)
И значит препятствий для появления в сертифицированной Astra нет от слова совсем ибо всё что собрано сертифицированным GCC в замкнутом контуре не требует сертификации в достаточно широком спектре случаев.
В alt-e тоже ведь кто то когда инициировал наличие пакета о котором я выше писал в сизифе и он сопровождается, это видно по датам.
Т.е. вместо генерации форков gtm,yotta с не прозрачной лицензией и сопровождением, целесообразнее было бы простимулировать maintainer-ов соответствующих дистрибутивов под которые реалии бизнеса в России диктует вхождение в реестры т.д и т.п.

А самим только прикладную часть генерить указывая пакеты M-DBS в качестве зависимостей.

И каков же способ "простимулировать maintainer-ов соответствующих дистрибутивов под реалии бизнеса в России"?
Порадовать их что их разработки вносятся в реестр российского ПО и поэтому они должны?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39958932
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
experience
пропущено...


Вы это в серьёз?
Чем вам https://yottadb.com/product/get-started/ не источник?


1.30 - не удалось установить
и не только мне


Устанавливать лучше по инструкции из дистрибутива README.md, новый скрипт установки ydbinstall.sh пока еще сыроват.
Если что-то не получается - спрашивайте, подскажу.

И самое главное, по первоначальной теме топика, про стандарт ! Это нужно обязательно сделать, нормальный стандарт !
Интерсистемс на это дело плюнула, и в результате наплодила монстров типа $zhex()

USER>w $zv
Cache for UNIX (SUSE Linux Enterprise Server for x86-64) 2015.1.2 (Build 607_0_15502) Mon Sep 14 2015 22:19:23 EDT
USER>s a=+3030

USER>w a
3030
USER>w $zh(a)
BD6
USER>s a="3"_"030"

USER>w a
3030
USER>w $zh(a)
12336
USER>


Про функции, которые возвращают одновременно два значения, я уж молчу.... Так что я бы не торопился восхищаться и включать в стандарт неоднозначные вещи.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959004
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
Это нужно обязательно сделать, нормальный стандарт !
...
Интерсистемс на это дело плюнула
Скорее всего, плюнула, и это ключевой момент.
Допустим, появится стандартная функция ($hex?), работающая по прозрачным правилам. Что заставит InterSystems её реализовать? Аналогичные вопросы можно задать по остальным возможным направлениям развития Стандарта и получить аналогичные ответы. Подозреваю, что и YottaDB относительно равнодушна к Стандарту, хотя лучше у них спросить.

Тогда для кого Стандарт, если все его нарушают, кроме MUMPSv1 - референтной системы MDC?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959008
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я

И каков же способ "простимулировать maintainer-ов соответствующих дистрибутивов под реалии бизнеса в России"?
Порадовать их что их разработки вносятся в реестр российского ПО и поэтому они должны?

Мне кажется, как раз наоборот. Чем больше мы будем поддерживать безумие в виде таких вот реестров, тем больше этого безумия будет плодить государство.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959035
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДопустим, появится стандартная функция ($hex?), работающая по прозрачным правилам. Что заставит InterSystems её реализовать?
А заставлять никого не надо. Не нужен стандарт ради стандарта, он нужен для того, чтобы его поддерживали добровольно, иначе все бессмысленно. Если несколько производителей начнут его поддерживать, то между ними будет конкуренция уже не за количество, а за качество. Соответственно, будет конкуренция, и снижение себестоимости (ну да, монополистам придется покупать яхты поменьше). В итоге будут оставаться эффективные решения, а дурацкие исчезать..... И если стандарт начнем помогать производителям, то ИС никуда не денется, приведет в порядок свой код.... Как-то так мне казалось....
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959181
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
MX-9
Иногда соединение клиента с сервером рвется - и процесс аварийно закрылся.
Надо продолжить с теми же переменными и незаметно для пользователя.

Такие "ключевые" переменные можно хранить в глобале... ;)
Т.е. даже не именно хранить, а использовать только глобальные переменные. Тогда и записывать ничего не нужно. Все уже записано до нас. (с)


Все правильно говорите.
Много кода еще с прошлого века.
Работает как зверь - переписывать не хочется.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959229
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Много кода еще с прошлого века.
Работает как зверь - переписывать не хочется.

Это-то понятно...
Просто мало ли кто потом будет читать, так сделает правильный вывод и выбор.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959338
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Alexey
как через Вашу фирму получить дистрибутив YottaDB ?

sia.enters@inbox.lv

===============

Есть публичный репозиторий, где можно взять последнюю стабильную версию с добавленными функциями, о которых писал Alex Maslov.
https://gitlab.com/littlecat/YDB/-/tree/sparm_master
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959457
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
MX-9
Alexey
как через Вашу фирму получить дистрибутив YottaDB ?

sia.enters@inbox.lv

===============

Есть публичный репозиторий, где можно взять последнюю стабильную версию с добавленными функциями, о которых писал Alex Maslov.
https://gitlab.com/littlecat/YDB/-/tree/sparm_master
А кстати, такой вопрос, а можно выделить из него парсер, который можно использовать для построения AST?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39959715
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
MX-9
Alexey
как через Вашу фирму получить дистрибутив YottaDB ?

sia.enters@inbox.lv

===============

Есть публичный репозиторий, где можно взять последнюю стабильную версию с добавленными функциями, о которых писал Alex Maslov.
https://gitlab.com/littlecat/YDB/-/tree/sparm_master


Спасибо
будем качать
...
Рейтинг: 0 / 0
MUMPS 2020
    #39960684
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor
А кстати, такой вопрос, а можно выделить из него парсер, который можно использовать для построения AST?

Это вряд ли....
...
Рейтинг: 0 / 0
MUMPS 2020
    #39967325
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Линда (Linda Yaw) выложила компиляцию некоторой части обсуждений.
Выглядит примерно так:
http://mumps.org/mdc/work/tg19/analysis-and-plan-20200608
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971321
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из новостей.
Поддержка NEW $TEST добавлена в MiniM и MUMPS V1. В Cache и GT.M была добавлена ранее.
В MiniM добавлена также форма с инициализацией NEW $TEST=expr.
Предложение по добавлению NEW $TEST было датировано аж июнь 1994 года.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971554
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений,

Относительно текущих версий Cache/IRIS это не так: см., например, $TEST и NEW , да и ошибка <SYNTAX> поправит сомневающегося.

Более того, InterSystems едва ли нуждается в этой команде: ведь в Cache она выполняется неявно при вызове методов классов (даже по DO), а прочие DO ISC рассматривает как устаревший код и особо не заинтересована в их развитии.

Раз уж зашёл разговор о Стандарте: свершилось чудо, и InterSystems начала участвовать в деятельности по подготовке нового Стандарта? Точной ссылки не нашёл, но по достоверным сведениям где-то в середине 90-х на одном из заседаний MDC их представитель заявил, что они более не считают себя связанными обязательствами по соблюдению Стандарта. Возможно, кто-то из членов MDC тех лет или сотрудников InterSystems мог бы уточнить этот момент, хотя исходя из текущего состояния языка ObjectScript он едва ли нуждается в уточнении.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971566
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
свершилось чудо, и InterSystems начала участвовать в деятельности по подготовке нового Стандарта?

Их представителей пока не наблюдал.
Про NEW $TEST в Cache писал со слов, возможно не так перевел.

Из новостей: добавляются операторы <= >= ]= ]]=
Удалось отговорить от отрицаний '<= '>= ']= ']]=
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971740
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавили бы ещё:
$increment (вот он-то по факту есть "у всех": в Cache, YottaDB, GT.M, MiniM),
$replace (Cache, YottaDB, MiniM(?)),
$list* (Cache, YottaDB, MiniM).
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971774
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Добавили бы ещё:
$increment (вот он-то по факту есть "у всех": в Cache, YottaDB, GT.M, MiniM),
$replace (Cache, YottaDB, MiniM(?)),
$list* (Cache, YottaDB, MiniM).

Про $increment и $bit пришлось рассказывать мини-лекцию, что это не столько для арифметики и конструирования строк как альтернатива $ZBIT, сколько для корректной работы транзакций. Если $i() и отыщется в планах, то это надолго.

$replace в MiniM есть, даже есть $zpcrereplace с регэкспами.

На добавление не-Z функций в MDC смотрят неодобрительно, но все же как на реальность.
С $list надо вообще-то детально специфицировать что там с кодированием, что возвращает
Код: plaintext
1.
$ascii($listbuild(expr[,...]),expr)


Пока все относятся к листам как к чему-то с чем можно оперировать только через $list функции, то оно может быть как-бы и ок, но для стандарта описывать надо. Чтобы поведение программ было одинаковым для разных реализаций.

Кстати, листы в YottaDB добавлял Константин? Помнится он рассказывал
http://thedarkaugust.blogspot.com/2016/03/blog-post_20.html
что у него листы конструируются лишь с частичной совместимостью с Cache.
Интересно было бы узнать поподробнее о поддержке листов в YottaDB, как они сейчас сделаны.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971784
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
...листы конструируются лишь с частичной совместимостью с Cache...
Насколько знаю, примерно так всё и осталось: КонстантинДвоичная совместимость частичная, при создании листов в GT.M все элементы создаются типа "строка", хотя при извлечении обрабатываются все типы из Cache.Если интересно более авторитетное мнение, могу привлечь Костино внимание, ибо он сюда редко заглядывает.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971814
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
добавляются операторы <= >=

Мне всегда нравились <= =>

ну я
Удалось отговорить от отрицаний '<= '>= ']= ']]=

Правильно.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39971857
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
Пока все относятся к листам как к чему-то с чем можно оперировать только через $list функции, то оно может быть как-бы и ок, но для стандарта описывать надо. Чтобы поведение программ было одинаковым для разных реализаций.
Почему бы только так к ним и не относиться? В противном случае вряд ли листы попадут в Стандарт, т.к. они опираются на понятие внутреннего типа данных, которое не во всех реализациях M имеет смысл.
ну яДвоичная совместимость частичная...Похоже, так всё и осталось:
Код: javascript
1.
2.
3.
4.
5.
USER>s a=$lb("0","0"),b=$lb(0,0) w a=b
0

YDB>s a=$lb("0","0"),b=$lb(0,0) w a=b
1
...
Рейтинг: 0 / 0
MUMPS 2020
    #39972321
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
С $list надо вообще-то детально специфицировать что там с кодированием...
Если хотим, чтобы в некоем портабельном двоичном формате (который тоже не стандартизован) можно было выгрузить данные из одной М-системы и загрузить в другую, то да, и с этим могут возникнуть трудности, т.к. InterSystems как автор формата $list, ставшего стандартом де-факто, в M-стандартизации более не участвует.

А кстати, кто из остальных, кроме MiniM, участвует? Fidelity? YottaDB?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39972338
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
ну я
С $list надо вообще-то детально специфицировать что там с кодированием...
Если хотим, чтобы в некоем портабельном двоичном формате (который тоже не стандартизован) можно было выгрузить данные из одной М-системы и загрузить в другую, то да, и с этим могут возникнуть трудности, т.к. InterSystems как автор формата $list, ставшего стандартом де-факто, в M-стандартизации более не участвует.

А кстати, кто из остальных, кроме MiniM, участвует? Fidelity? YottaDB?

Участвует ISC в стандартизации или нет, в любом случае мне не попадалась формальная спецификация листов от ISC.
За MiniM могу сказать то же самое, спецификация формата не открывалась.
А по YottaDB - так вроде листы у вас, в СП.АРМ добавлялись, источник информации у вас.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39972345
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
...в любом случае мне не попадалась формальная спецификация листов
Да я уже не про листы, я про М-стандартизацию в целом.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39977899
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
А кстати, кто из остальных, кроме MiniM, участвует? Fidelity? YottaDB?
Президент YottaDB K.S.Bhaskar ответил, что они не только участвуют в обсуждениях, но и открывают проблемы у себя в gitlab по подтягиванию своего продукта к новому Стандарту. Так что процесс идёт...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980066
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять я дискуссию пропустил... Когда я писал про совместимость листов, имелось ввиду, что лист, созданный в одной системе, корректно прочитается в другой (допустим вы записали что-то в базу в формате $list и передали эти данные). Особенности связаны с форматами чисел, которые в разных системах имеют разную точность и разные диапазоны. Таким образом внутреннее представление будет отличаться (простейший пример 1000 и 1E3 - целое число и число с плавающей точкой с дробной частью, равной 0). Но при извлечении элемента и использовании его в операциях это будет одно и то же везде. Т.е. совместимость гарантирует правильное извлечение данных, а не двоичное совпадение полученных листов. Кстати, приведенный пример
Alexey MaslovПохоже, так всё и осталось:

USER>s a=$lb("0","0"),b=$lb(0,0) w a=b
0

YDB>s a=$lb("0","0"),b=$lb(0,0) w a=b
1


не совсем корректный, не зря для сравнения листов была введена функция $LISTSAME. Она в обеих системах даст одинаковый результат.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980391
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И уж чтобы расставить точки на i, некорректное поведение в приведенном примере ИМХО со стороны Cache. Это связано с неявной типизацией данных, которая там появилась, однако используется совершенно беспорядочно и недокументированно. Я уже писал про $zhex, в листах проявляется то же самое. Результат зависит от предыдущей операции с этими данными ! Отсюда и необходимость в функции $LISTSAME. В нашем варианте в YottaDB функция $listsame была добавлена только для совместимости при переносе программ и данных между системами.
USER>s a=$lb(1000),b=$lb(1E3)

USER>w a=b
0


YDB>s a=$lb(1000),b=$lb(1E3)

YDB>w a=b
1


Если уж говорить о стандартизации внутреннего формата, я бы хранил в листах только один тип данных - строки. Таким образом отпадает необходимость хранить признак типа, и остается предельно простая конструкция - длина и сама строка. Полная совместимость для любых М-систем будет обеспечена, поскольку не будет зависеть от специфики реализации внутреннего представления чисел.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980405
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
...пример не совсем корректный...
Просто он не о логической ($listsame), а о двоичной совместимости. Она не часто может быть важна, но представим себе гипотетическую утилиту сравнения БД онлайн, подобную кашовской ^DATACHECK, но кросс-платформенную; так вот она, если не будет распознавать $list-ы, может выдать отрицательный результат для двух логически совпадающих глобалов в БД, находящихся в разных системах.

Беглый просмотр заметки по MUMPS-2020 показал, что важная часть начатой работы: обновить минимальные требования к диапазонам и точности чисел, которая должна обеспечиваться стандартной М-системой. До стандартизации $list-ов ещё ох как далеко, хотя наверное она упростилась бы, если ограничиться таким определением:

Если два листа a и b, созданные из набора элементов (a1,...,an) в двух разных М-системах, после двоичного копирования в любую из этих М-систем выдадут одинаковый результат $listsame(a,b) независимо от используемой М-системы, то формат листов в рассматриваемых М-системах логически совместим по чтению-записи и физически - по чтению.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980429
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Просто он не о логической ($listsame), а о двоичной совместимости.

При наличии функции $listsame полная двоичная совместимость ИМХО бессмысленна. Сейчас при обмене данными Cache <-> YottaDB функция $listsame в любой из этих систем выдаст правильные значения при сравнении листов, полученных на разных платформах.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980451
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костя, это ведь не я завёл речь о кодировании $list, а Евгений, непосредственно участвующий в М-стандартизации:
ну я
С $list надо вообще-то детально специфицировать что там с кодированием, что возвращает
$ascii($listbuild(expr[,...]),expr)

Пока все относятся к листам как к чему-то с чем можно оперировать только через $list функции, то оно может быть как-бы и ок, но для стандарта описывать надо. Чтобы поведение программ было одинаковым для разных реализаций.
Я тоже не сталкивался с описанием каких-либо двоичных форматов в Стандарте X11.1-1995, везде описывалось только поведение на уровне результатов выполнения выражений М-языка. Возможно, Евгений пояснит, почему теперь (в 2020) это стало важно.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980454
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, свое предложение по стандартизации я озвучил выше :-) Ну и еще попытался показать на примерах, как развитие без плана и стандарта может завести в дебри....
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980507
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сами по себе скрытые типы данных - вещь неплохая: их наличие, очевидно, ускоряет арифметические операции и делает более компактным хранение чисел (если хранить в листах), ну и в Стандарте нет ни слова, что так делать нельзя. Других неприятностей с ними, кроме $zhex, вроде бы не наблюдается, а ей, кстати, ISC сама не рада: её унаследовали у одной из благоприобретённых М-систем и теперь вынуждены поддерживать (про это даже статья была на community). Да, могли бы объявить эту функцию "legacy" и предложить новую, "правильную", но видимо их основные клиенты уже привыкли к особенностям $zhex и непонятно, ради кого стараться.

Новые идеи, и в частности функции, всегда воспринимаются и внедряются с трудом, поэтому понятна осторожность, с которой вендоры их добавляют. За последние 10 лет не припомню существенных добавок в базовый набор функций ObjectScript, кроме $locate и $match. Регулярные выражения - прекрасная идея, но вот кинутся ли, к примеру, разработчики YottaDB ("идя навстречу пожеланиям трудящихся") добавлять их в свой движок? - сомневаюсь.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980515
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Сами по себе скрытые типы данных - вещь неплохая:

С этим никто не спорит, я про подход. Получается, что результат операции зависит от предыдущих действий, и ты сам это наглядно показал на примере нуля в листах, который получен разными способами. Про $zhex я писал. А сколько еще таких мест, на которые мы пока не наткнулись ? Вот в чем проблема, а не в каких-то конкретных задачах. Я как-то привык, что если у меня есть число 1.34, и я хочу взять целую часть, то я могу это сделать разными способами. Но получается, что результат не совсем одинаков. Мне этого не видно и заранее проверить это я никак не могу, и дальнейшие операции с этими данными дают разный результат. И это в пределах одной системы ! (Чего уж там кросплатформенная ^DATACHECK)


USER>s a=$lb(1.34\1)

USER>s b=$lb($p(1.34,"."))

USER>w a=b
0


$LB и $ZHEX, это то, что мы знаем. Но после этого кто может гарантировать, что нет еще каких-то плюшек на эту тему ?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980540
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$list и все что около не использую.

Пока не будет сделано как предлагает Константин - тип данных только строки.

А то понаделали тут панимаешь ...
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980544
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
Я как-то привык, что если у меня есть число 1.34, и я хочу взять целую часть, то я могу это сделать разными способами. Но получается, что результат не совсем одинаков.
...
$LB и $ZHEX, это то, что мы знаем. Но после этого кто может гарантировать, что нет еще каких-то плюшек на эту тему ?

1) Целая часть числа - это первый элемент списка, а не весь список. И результат таки одинаков:
Код: sql
1.
2.
3.
4.
USER>s a=$lb(1.34\1) s i1=$lg(a) 
USER>s b=$lb($p(1.34,".")) s i2=$lg(b)
USER>w i1=i2
1


2) Плюшки есть, куда ж без них? О них ранее упомянутое эссе разработчика ISC
КМК, Стандарт ограничивает вендоров, и в погоне за (... впишите нужное...) они вольно или невольно его нарушают. В GT.M/YottaDB, скажешь, плюшек нет? Как хорошо сказал K.S.Bhaskar, "Стандарт - это то, к чему мы привыкли". Однако, если стандартизаторы будут последовательны на выбранном пути:
  • уточнение нечётких определений;
  • небольшое количество ясно специфицированных шагов;
  • никаких революций типа уже через пару лет никому не нужных MWAPI, OMI и т.д.
толк от этой деятельности, возможно, будет.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980549
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
И результат таки одинаков:


Как добыть правильные данные, мы все знаем, я про другой результат, из твоего первого примера про нули.

Alexey Maslov
В GT.M/YottaDB, скажешь, плюшек нет?


Я такого не говорил. Там тоже есть плюшка с сортировкой длинных чисел в индексах, вопрос о которой я пытался поднять, но не был понят.

Вот пример проблемы (под другой системой подразумевается Cache)

S arr("202004080830202004080930")=""
S arr("202004090830202004090930")=""
s arr("202004090800000000000000")=""
s x="" f s x=$o(arr(x)) q:x="" w !,x," ",+x

Result in another system is normal numeric sorting

202004080830202004080930 202004080830202004100000
202004090800000000000000 202004090800000000000000
202004090830202004090930 202004090830202004100000

In YottaDB we see string sorting

202004090800000000000000 202004090800000000000000
202004080830202004080930 202004080830202004000000
202004090830202004090930 202004090830202004000000


Тут также из-за того, что целые числа имеют ограниченную точность, то, что влезает в сетку, сортируется как числа, а что нет - как строки. ИМХО это неправильно, но переубедить пока не удалось.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980565
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Костя, это ведь не я завёл речь о кодировании $list, а Евгений, непосредственно участвующий в М-стандартизации:
ну я
С $list надо вообще-то детально специфицировать что там с кодированием, что возвращает
$ascii($listbuild(expr[,...]),expr)

Пока все относятся к листам как к чему-то с чем можно оперировать только через $list функции, то оно может быть как-бы и ок, но для стандарта описывать надо. Чтобы поведение программ было одинаковым для разных реализаций.
Я тоже не сталкивался с описанием каких-либо двоичных форматов в Стандарте X11.1-1995, везде описывалось только поведение на уровне результатов выполнения выражений М-языка. Возможно, Евгений пояснит, почему теперь (в 2020) это стало важно.

$ascii() это и есть не двоичный формат представления, это функция языка, которую могут использовать программисты чтобы посмотреть какую последовательность образует строка. В принципе, то что получено в качестве $LB(), может быть получено и конкатенацией, и как-то иначе. И Евгений не может пояснить почему это стало важно в 2020, потому что это всегда было важно.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980576
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
целые числа имеют ограниченную точность, то, что влезает в сетку, сортируется как числа, а что нет - как строки
Формально они правы; если следовать букве Стандарта: если не число, то строка, а значит пусть как строка и сортируется. Но ведь неудобно! А в ISC решили иначе, и это тоже иногда неудобно. Я на эту тему даже проблему когда-то открывал (не помню уже, что из-за этого ломалось). Процитирую, т.к. никакого секрета тут нет:
*** Мой вопрос: ***

Current Locale is: ^%SYS("LOCALE","CURRENT")="ruw8"
Collation table: Cyrillic2 or Cache standard (it doesn't mean much).

The following code provides the output as follows:

kill b
set a=1E30,b(+a)=1,b(+a_"1")=3,b(+a_"1a")="3a"
set a=3E30,b(+a)=2,b(+a_"1")=4,b(+a_"1a")="4a"
set b($c(2))="c2"
zwrite b

b(1000000000000000000000000000000)=1
b(3000000000000000000000000000000)=2
b("10000000000000000000000000000001")=3
b("30000000000000000000000000000001")=4
b($c(2))="c2"
b("10000000000000000000000000000001a")="3a"
b("30000000000000000000000000000001a")="4a"

while the expected output is:

b(1000000000000000000000000000000)=1
b(3000000000000000000000000000000)=2
b($C(2))="c2"
b("10000000000000000000000000000001")=3
b("10000000000000000000000000000001a")="3a"
b("30000000000000000000000000000001")=4
b("30000000000000000000000000000001a")="4a"

because as to ISO M Standard, in the first half of ASCII table there should be only 2 collation
ranges:
1) numbers (sorted numerically)
2) non-numbers (sorted alphabetically).

while in Cache one can find 3 collation ranges:
1) numbers (sorted numerically)
1*) pseudo numbers (sorted numerically)
2) non-numbers (sorted alphabetically).

Should be mentioned that this sample code provides correctly collated {glvn} in MSM, MiniM, GT.M.

*** И ответ разработчика ***

This is correct behavior. Anything which is entirely numeric will collate as if it was a number
even if it exceeds the capacity of the supported precision. SPJ932 contains a description of this.

If you create the global with string collation, then all entries are collated as strings.
--------------<skipped>------
Цитата из изменения SPJ932: "In ANSI collation, any number (or string that is in canonic
numeric form) is collated numerically, before all non-numeric strings."
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980910
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из новостей:

Поддержано введение
set $qs(name,pos) = expr

Для удаления предлагал дополнить
kill $qs(name,expr)
но пока не поддержано, возможно что неактуально.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39980929
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Формально они правы; если следовать букве Стандарта: если не число, то строка, а значит пусть как строка и сортируется.

И где в моем примере "не число" ?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981026
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
И где в моем примере "не число" ?

Код: javascript
1.
2.
3.
4.
YDB>s x="202004080830202004080930" w x,!,+x,!,x=+x
202004080830202004080930
202004080830202004000000
0


Извини, пропустил слово: x - не каноническое число, поэтому с т.з. действующего Стандарта поведение YottaDB корректно.

Возможные неприятные последствия противоположного решения (в Cache) показаны ранее в моём примере под спойлером.

Источник проблемы здесь - не М-система, а формирование строк, по формату являющихся числами, в результате не вычислительных операций (конкатенации и пр.). Добавь разработчики букву в начало такого индекса, поведение было бы одинаковым в обеих системах. В моём случае они так и поступили.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981035
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
kill $qs(name,expr)
Что под этим понималось?

set a(1,2)=12
set a(1,2,3)=123
set a(1,2,3,4)=1234
set ref=$name(a(1,2,3,4))

kill $qs(ref,2)

w ref

a(1,3,4) ; - если это, то непонятно, зачем
или
a(1) ; - если это, то в предложении смысл есть.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981041
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
ну я
kill $qs(name,expr)
Что под этим понималось?

Операция set может проставить значение индекса, но не удалить индекс. Этого не хватает для полноты операций.
А чтобы получить a(1) есть второй аргумент у $name()
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981045
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
Операция set может проставить значение индекса, но не удалить индекс
Какой физический смысл сего деяния? Вот есть глобальная ссылка, допустим; зачем вырезать в ней промежуточные индексы, просто "чтобы было"?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981048
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
LittleCat
И где в моем примере "не число" ?

Код: javascript
1.
2.
3.
4.
YDB>s x="202004080830202004080930" w x,!,+x,!,x=+x
202004080830202004080930
202004080830202004000000
0


Извини, пропустил слово: x - не каноническое число,


Если бы в начале числа был 0, это было бы неканоническое число. Если бы присутствовал любой символ, отличный от цифры, это было бы неканоническое число. Но почему в приведенном примере это число неканоническое ? Из-за того, что во внутреннем представлении оно не влезает в разрядную сетку и при арифметических операциях обрезается ? Но это проблема реализации, а не концепции. Это что же, будут разные реализации М-систем с разным внутренним представлением чисел, и во всех одни и те же данные будут сортироваться по-разному ?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981056
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел определение канонического представления целого числа
Каноническая форма положительного целого числа в десятичном представлении является конечной последовательностью цифр , которая не начинается с нулем.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981065
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
ну я
Операция set может проставить значение индекса, но не удалить индекс
Какой физический смысл сего деяния? Вот есть глобальная ссылка, допустим; зачем вырезать в ней промежуточные индексы, просто "чтобы было"?

Этого не хватает для полноты операций.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981084
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
Каноническая форма положительного целого числа в десятичном представлении является конечной последовательностью цифр , которая не начинается с нулем.
Это неполное определение применительно к M. Стандарта нет под рукой, но см., например, Canonical Form of Numbers или у Е. Каратаева, "2.8 Каноничность индексов" (стр. 221). У Е. Каратаева, правда, добавлено немного странное правило № 6, которое не выполняется ни в Cache, ни в GT.M, но сейчас это не важно.

Простейшая проверка, является ли строка X каноническим числом:

if $isvalidnum(X),X=+X w "Yes!" ; без $isvalidnum можно нарваться на <NUMERIC OVERFLOW>.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981086
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выдержка из стандарта ANSI 1995 года
Only numbers which may be represented with a finite number of decimal digits are representable as numeric values. A data value has the form of a number if it satisfies the following restrictions.

a. It shall contain only digits and the characters "-" and ".".
b. At least one digit must be present.
c. "." occurs at most once.
d. The number zero is represented by the one-character string "0".
e. The representation of each positive number contains no "-".
f. The representation of each negative number contains the character "-" followed by the representation of the positive number which is the absolute value of the negative number. (Thus, the following restrictions describe positive numbers only.)
g. The representation of each positive integer contains only digits and no leading zero.
g. The representation of each positive number less than 1 consists of a "." followed by a nonempty digit string with no trailing zero. (This is called a fraction.)
h.The representation of each positive non-integer greater than 1 consists of the representation of a positive integer (called the integer part of the number) followed by a fraction (called the fraction part of the number).


См. пункт g. А чего там Женя написал, или Intersystems, так это они что-то хотели под себя подогнать, под свою реализацию.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981092
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костя,

Это определение тоже немного странное:
- п. "g" встречается дважды
- в п. "h" ничего не сказано про ".".

Если обратиться к документу, с которого началась эта дискуссия, так там недвусмысленно сказано о наличии неточностей в Стандарте. Возможно, как раз один из таких случаев.

Итак, имеем:
  • Стандарт M 1995, возможно, подлежащий уточнению в 2020.
  • Cache, сортирующая любые (даже очень длинные, явно не канонические) цифровые строки как числа.
  • GT.M/YottaDB, сортирующий таким образом только канонические (в смысле +X=X) числа.
Не будем спрашивать, кто виноват. Ответ на вопрос "Что делать?", КМК, очевиден.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39981095
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Костя,

Это определение тоже немного странное:
- п. "g" встречается дважды
- в п. "h" ничего не сказано про ".".

Если обратиться к документу, с которого началась эта дискуссия, так там недвусмысленно сказано о наличии неточностей в Стандарте. Возможно, как раз один из таких случаев.

Итак, имеем:
  • Стандарт M 1995, возможно, подлежащий уточнению в 2020.
  • Cache, сортирующая любые (даже очень длинные, явно не канонические) цифровые строки как числа.
  • GT.M/YottaDB, сортирующий таким образом только канонические (в смысле +X=X) числа.
Не будем спрашивать, кто виноват. Ответ на вопрос "Что делать?", КМК, очевиден.


Леша, извини, буквы я сам расставлял, они со странички стандарта не откопипастились ;-)

http://71.174.62.16/Demo/AnnoStd

ИМХО никаких неточностей нет, определение канонических целых чисел соответствует математическому.
Насчет того, что делать, я как раз придерживаюсь мнения, что будущий стандарт нужно привести в соответствие с реальным миром, и буду рад, если любые индексы, соответствующие пункту g старого стандарта будут сортироваться как числа.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39984318
Onix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что делать когда появится сверхдлинная арифметика? 128+ бит уже на подходе.
...
Рейтинг: 0 / 0
MUMPS 2020
    #39984325
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Onix
А что делать когда появится сверхдлинная арифметика? 128+ бит уже на подходе.
А я так понимаю у вас уже есть мысли как этим можно будет пользоваться в MUMPS?
Есть примеры того зачем оно нужно?
...
Рейтинг: 0 / 0
MUMPS 2020
    #39994271
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из новостей. На MDC один из вопросов - NEW $REFERENCE, пока все в раздумьи.

Мое предложение по NEW $REFERENCE такое:
* все автоматические изменения naked indicator (разные там $D, $O) и прямое присваивание $REFERENCE смотрят на каком последнем уровне стека было NEW $REFERENCE и только на нем меняют.
* при смене текущей базы данных просматриваем все уровни стека и на каких был NEW $REFERENCE на всех них и сбрасываем в пустую строку.
* на чтении возвращаем с последнего стека где был NEW $REFERENCE.
* если не было NEW $REFERENCE то значит операция на нулевом уровне.

Отличие в поведении других NEW svn - во втором пункте, на смене текущей базы.

Такой вариант выглядит и достаточно совместимым и не слишком косячным.

Пишу чтобы посоветоваться. У кого будут поправки, замечания, и прочее - отпишитесь.
К этой теме нужно отнестись взвешенно.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014630
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из новостей

Вместо MUMPS V1 теперь ведется его продолжение RSM (Reference Standard M), проект продолжает David Wicksell.

David Wicksell
RSM V1.72.0 is now live at https://gitlab.com/Reference-Standard-M/rsm

Eugene Karataev
We will refer to RSM instead of MV1?

David Wicksell
Yes. MV1 stopped being developed in 2018. and Ray Newman retired. He passed it along to me this year, and I changed its name from MV1 to RSM. The original MV1 will be archived at https://gitlab.com/Reference-Standard-M/mumpsv1, with no more updates ever, while RSM will be hosted at https://gitlab.com/Reference-Standard-M/rsm
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014769
ну я
И
.....
* при смене текущей базы данных просматриваем все уровни стека и на каких был NEW $REFERENCE на всех них и сбрасываем в пустую строку.
.....

Отличие в поведении других NEW svn - во втором пункте, на смене текущей базы.

Такой вариант выглядит и достаточно совместимым и не слишком косячным.

Пишу чтобы посоветоваться. У кого будут поправки, замечания, и прочее - отпишитесь.
К этой теме нужно отнестись взвешенно.


А не накладно при смене базы стек гонять?
Я наверно не в курсе, но разве $zr не должен был хранить в себе еще и ссылку на конкретную БД в начале?
У нас всё в одной всегда живёт, но есть мысль такая: кодогенерация во временную БД (специальную, в оперативке которая) и оттуда сгенерированный код ориентируясь на структуру основной БД по ней бегает. Т.е. свитч во временную БД, там вызов кода который делает переключение обратно. И вот таких переключений может быть много.
Понятно, это детали реализации, и сделать можно очень быстрое переключение, но всё же. Это я так, мысли вслух.
Оно уже может решено там всё давно? :-)
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014928
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов
кодогенерация во временную БД (специальную, в оперативке которая) и оттуда сгенерированный код ориентируясь на структуру основной БД по ней бегает
А зачем? Но даже допустив, что в этом есть смысл, зачем бегать от БД к БД, когда Routine Mapping позволяет отобразить хранение программного кода в любую БД, никуда не бегая.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014949
Alexey Maslov,

Ну у кого есть оный - тот счастлив.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014962
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов,

Просто ранее упомянули $zr, а она вроде как только в Cache и в MSM, в других М-СУБД обычно $r. Какая у вас СУБД, если не секрет?

По поводу БД в памяти не стал бы обольщаться. Из нашего опыта: в Cache такие БД не поддерживаются, а в GT.M таки возможны Memory Mapped DB. Когда-то пробовали, работает медленнее, чем обычные БД, которые на Async I/O.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014967
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов

А не накладно при смене базы стек гонять?
Я наверно не в курсе, но разве $zr не должен был хранить в себе еще и ссылку на конкретную БД в начале?

Нет, не накладно )))
$ZR хранит naked indicator. А он может как содержать так и не содержать базу, это зависит от того как сослались на глобал - полностью или только по имени.
Если не полностью то это означает что операция применяется к текущей базе, иначе к явно указанной. Выполнение тех же операций в другой базе должно означать выполнение тех же операций - что указано явно то явно, а что по умолчанию - то к текущей.
Сам naked indicator может быть прочитан в локальную переменную, сохранен в глобале или передан в девайс, прочитан из глобала или девайса, применен, но в любом случае система должна выполнить строго те же операции. Даже если это другая М система.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014968
Alexey Maslov,

MSM. В ней нет Routine Mapping, на сколько я знаю. Только таблица трансляций. Там что-то есть с маппингом процентных, откуда их цеплять, а вот межу Volume Group маппинг произвольных нет.

А с БД в оперативки... МЫ в неё умеем, всё что могу сказать ;)
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014980
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов
МЫ в неё умеем, всё что могу сказать
Да мы тоже когда-то пробовали (в MSM, лет 27 назад), и тоже тормозило. Система не была на это рассчитана изначально по понятным причинам.

Но может времена изменились, и с более быстрой памятью ситуация изменилась? Хорошо, если так.

Если не секрет, что держит в MSM? Сейчас ведь есть из чего выбрать, в том числе из бесплатного.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014985
Alexey Maslov,

Да Windows держит. И нормальная реализация Job'ов, не тупорылая многопроцессорная херня, а своя vm которая асинхронно всё делает (и еще как-то разделяет, не суть).
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014991
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как странно. Мы когда-то перевели не одну прикладную систему из MSM в Cache, и "тупорылая многопроцессорная херня" всегда делала "умную MSM-овскую" в разы на том же железе. Системы были не только наши, но и сторонних разработчиков, а результат отличался лишь "количеством раз": когда в 2, а когда и в 4 раза Cache обгоняла.

Но я давно уже никого не агитирую за переход. Работайте, в чём работается, если вас это устраивает.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014993
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов
Alexey Maslov,

Да Windows держит. И нормальная реализация Job'ов, не тупорылая многопроцессорная херня, а своя vm которая асинхронно всё делает (и еще как-то разделяет, не суть).

Видимо, многопроцессорная -> многопроцессная?
...
Рейтинг: 0 / 0
MUMPS 2020
    #40014997
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я,

Поскольку MSM умеет использовать только одно ядро CPU, то в его случае это практически одно и то же. Да, помню про асинхроный i/o в MSM-NT, но это копейки.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40015002
Alexey Maslov,

Проблему 10к (которая в современности уже вроде 10kk, но не суть), чисто на эме как решать? Плодить 10k процессов? Городить свою асинхронную очередь? Это рамки которые ограничивают.

Агитируете, вы же говорите - "у нас норм". Интересно в цифрах, сколько джобов работают на сервере одновременно, на сколько логика погружена в этот самый эм (не торчит ли там большой кусок на "яве" (не суть на чём) сбоку), не является ли Ваш код callback-hell, не храните ли вы состояние сессий в глобалях между этими callback. Да и вообще - фронтенд накладывает отпечаток, смотря подо что ваш бэк.

Я не противопоставляю MSM кэше конкретно. Я ж не говорю что каше говно. Я утверждаю что разделение job по процессам ОС - путь к кладбищу для M, т.к. для решения современных задач надо уметь в BigData не только как хранилище, но и как ЯП, а твой наш "BigData" ограничен кол-вом лицензий на сервер, если ты ВСЁ хочешь делать на эме. По моему очевидно. Смысл менять MSM если та же каше или GT.M тебя загоняет в новые рамки, избавив (ли?) от старых. M очень прогрессивный язык, но архитекторы разных реализаций пошли по шаблонному устаревшему пути. Не важно по каким причинам, не сомневаюсь что они были очень вескими.
На мой взгляд пришли к тому что "А смысл развивать выразительность M?" Для программирования в стиле "быстрая замена SQL" его хватает за глаза. Никто ж не будет браться за серьёзный проект держа в голове только M (хорошо, кто-то может будет (удачи ему), я бы точно не стал).
Надеюсь развёрнуто пояснил, может сумбурно - вечер перед выходным настраивает на лирический лад.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40015003
ну я,
>Видимо, многопроцессорная -> многопроцессная?
Да, простите.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40015006
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов,

> Агитируете, вы же говорите - "у нас норм".

Что ж мне, врать, что "не норм" и плакать о прожитых без MSM уже 20 без малого лет?

> Интересно в цифрах, сколько джобов работают на сервере одновременно, на сколько логика погружена в этот самый эм

Сервер серверу рознь. До 2000 пользователей на сервере среднего класса запускать приходилось. Характеристик сервера под рукой нет, но поверьте, не супер-компьютер. Вся бизнес-логика на M, на веб- или Delphi-клиенте только отрисовка экранов и интерактив с пользователем.

Прикладное ПО - МИС qMS, см. sparm.com. Поверьте, тяжелее задач не бывает. Здесь и OLAP, и OLTP, и много чего ещё, и высочайшие требования заказчиков.

Проблему 10k (пользователей, не job'ов! job'ов может быть значительно больше) пока решаем горизонтальным масштабированием. В Cache/IRIS это называется ECP.

Асинхронные очереди тоже, конечно, есть, но это не основной, а дополнительный инструмент для распараллеливания тяжёлых фоновых расчётов. Используем как очереди, встроенные в Cache, так и самописную на M. Мампсисту да очередь не написать? Мне через это смешно.

Продолжаю не агитировать, просто рассказал. У вас другие задачи, вас всё устраивает, ОК. Успехов!
...
Рейтинг: 0 / 0
MUMPS 2020
    #40015043
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов

не храните ли вы состояние сессий в глобалях между этими callback.

Стесняюсь спросить,а чем плохо хранить состояние сессий в глобалах ? И в чем Вы предлагаете его хранить ? (действительно интересно, поскольку у нас давно на эту тему идет дискуссия)
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016011
Alexey Maslov,

Алексей, спасибо за информацию, про очереди в каше не знал. Но стало понятно отчего так спокойно на "той стороне".
Написать очередь самому - конечно, не вопрос.
Вопрос в другом - запрос-ответ это уже не так актуально. Актуально быть в постоянном интерактиве - интернет вещей про это (где много железок онлайн), и при этом не тонуть в колбэках, писать код сверху вниз а не салатной нарезкой. И клёвый интерактив с юзером тоже удобно и здорово так писать.

LittleCat,

Такой интерактив - он не про хранение сессий в глобалях, это просто не удобно и медленно. Надо менять парадигму программирования. А временная информация должна лежать в локальных переменных, персистентная - в глобалях, всё же просто.
Оно конечно можно всё распихивать в глобали, на каждый запрос поднимать и обратно складывать, но это решение от безысходности. Или решение "потому что мы всегда так делали для вэба, у нас же запрос-ответ".

Нет таких M реализаций которые дадут тебе нормальную виртуальную машину (не важно, либо с green threads как в MSM либо a-la asyncio под капотом) которая позволит без стеснения одинаково обрабатывать хоть сотни хоть сотни тысячи запросов коннектов и не заниматься переливаниям порожняка временных сессионных данных туда-сюда, с принудительным дроблением нормальных, понятных бизнес-алгоритмов на "коротенькие" процедурки (так что бы клиент не отвалился по таймауту) или под свои "ой да написать мапсисту очередь раз плюнуть" очереди. Следовательно, смысл что-то менять? Что MSM - кусок старого говна, что альтернативы - такие же, только дата компиляции посвежее. Как-то-так.

Сейчас, что бы стать стильным модным молодёжным - надо уметь в асинхронность. И не такую разноцветную как в тайпскрипте каком-нибудь или питоне, а в нормальную, когда прикладник и не в курсе что он делит процессор с соседями (примерно как в Stackless Python). Казалось бы, идеология M идеально ложится в это - много мелких простых запросов - удобно параллелить, оно прямо просится само. Но нет, доминация подхода "как в SQL" - монстропроцесс-конвеер который будет перемалывать запросы. Еще бы блин на каждый Job - юзера в системе создавали, ну что за люди... (ну что за люди эти банкиры с их безопастниками, я сейчас подумал что и такое может быть).

Хотя вот YottaDB в ту сторону вроде двигается, слежу с замиранием сердца. Как только смогут в асинхронную очередь работать внутри своей .so с прокидкой хвостов наружу (или наоборот - внутрь в своей очереди) - всё, это победа, прикручивай любой современный язык и рви всех в клочья. Их скорее всего стопорит проблема с транзакциями.

Извините за оффтоп, M люблю но от состояния дел в современном эме - боль. Потому что современного эма нет. Во всех смыслах: что в реализациях что в стандарте.

Я когда услышал про 2020 - обрадовался, неужели?.. А оно там как, за последние 25 лет хвосты подчистить, ничего нового никто не предлагает? Ну прям такого что огого, типа итераторы поинтересней по деревьям, или там объектные нотации какие-нибудь? Революция будет, не побоюсь этого слова? Или как обычно - пока сам не сделаешь, никто не сделает?
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016038
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов
Не понял, зачем сессионную информацию гонять туда-сюда. А если просто хранить ее там ? При первом обращении к сессии она конечно прочитается с диска, но потом-то она будет болтаться в кэше, и при правильной настройке не вытеснится оттуда, пока клиент не пропадет надолго. А насчет "делить процессор" разве ОС не занимается этим сама, и вполне успешно ????
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016053
LittleCat
Антон Аксёнов
Не понял, зачем сессионную информацию гонять туда-сюда. А если просто хранить ее там ? При первом обращении к сессии она конечно прочитается с диска, но потом-то она будет болтаться в кэше, и при правильной настройке не вытеснится оттуда, пока клиент не пропадет надолго. А насчет "делить процессор" разве ОС не занимается этим сама, и вполне успешно ????


Зачем хранить временную, никому не нужную кроме как этому конкретному коннекту информацию в кэш? А чё-бы кэш не занимать только той информацией которая нужна всем? Чего бы временной локальной информации не жить в локальных переменных, для этого придуманных? С подходом один процесс как молотилка очереди запросов - локальные перемененные алгоритма который выполнялся бы сверху вниз слишком долго (а это "долго" определяет параметр таймаута HTTP, да не важно кто - ограничение некое сверху) переносят в разряд "сессионных данных", дробя этот алгоритм на последовательность запросов. Понимаете к чему я? А можно жить в своём джобе и вместе с тем пока собираются данные отдавать что-то клиенту по чуть-чуть, держа его в тонусе, и при этом не погружаясь в салатный код из колбэков.
Я Вам говорю что то, что вы называете "сессионные данные" - у Вас не полностью из них состоят. В силу архитектуры монстра-молотилки вы туда еще складываете состояние алгоритма, и делаете потому что по другому никак. Потому что ваш бизнес-алгоритм расхристан стейт-машиной посредством колбэков. И считаете это норм. Потому что по другому на текущих реализациях эма нельзя. А я вот говорю что это нихрена не норм. Слишком много бесполезных (ибо порождены ограничениями реализаций) абстракций и поэтому слишком далеко от железа.

А насчет "делить процессор" разве ОС не занимается этим сама, и вполне успешно ????
Вот разрабы всех современных реализаций видать где-то так же рассуждают. Вы меня читаете но не понимаете. Проблему 10k (которая, повторюсь, уже 10kk) тоже процессами собрались решать? Тут даже в потоках народ упирается, а Вы - процессами.
Как бы там ось не занималась "успешно" - хрень всё это, не поверю что парни из редмонда смогут написать лучше планировщик чем разработчик виртуальной машины под М - ведь именно разработчик знает все особенности языка, особенности работы с разряженным массивами, он точно сделает лучше. Процесс будет управляем, будет доступна приоритезация job'ов. Ну это все прелести зелёных потоков, не буду переписывать интернеты.
Есть и еще небольшой (не особо важный но приятный) бонус - при работе "во враждебной" среде (у конечного пользователя) если твой процесс запустился - аллилуйя, работаем пока не перегрузимся. Да да, не все живут в тепличных серверных условиях. Но это так, мелочь.

Вся прелесть асинхронной обработки в том что ты можешь позволить себе как белый господин программировать сверху вниз, программировать алгоритмы бизнеса ровно так как их тебе напишут люди из бизнеса, а не ломать голову "как бы мне тут раскидать по запросам, тут в очередь закинуть, тут в пул складывать данные, тут из пула отдавать данные". Хотя не сомневаюсь, что после некоторой практики такое само собой решается: салатный код лепится не задумываясь. И даже наверно потом норм читается.
Прелесть асинхронной обработки еще и в том что программировать можно одинаково, используя одни и те же практики и наработки для сервера любого уровня нагрузки - хоть на 10 юзеров хоть на миллион. Вот в этом разрезе Job на процесс - детский сад, меня это и бесит и умиляет одновременно.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016061
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов,
Вы написали много слов, но большинство из них проходят мимо моего сознания, видимо в следствии ограниченного кругозора. ("салатный код из колбэков", "архитектура монстра-молотилки" и т.п.) Но я не об этом, знание некоторых принципов позволяет не заботиться о запоминании множества фактов.

Антон АксёновЗачем хранить временную, никому не нужную кроме как этому конкретному коннекту информацию в кэш? А чё-бы кэш не занимать только той информацией которая нужна всем? Чего бы временной локальной информации не жить в локальных переменных, для этого придуманных?
Очень просто - информация, необходимая алгоритму, располагается в оперативной памяти и занимает некоторый ее объем. Вам не все равно, в общем кэше она или в локальной среде процесса ? Если она в локальной среде, процесс становится большим и неповоротливым. Если среди этих данных есть то, что следует сохранить, получаем накладные расходы на сохранение о последующее восстановление. Таким образом, ИМХО, в локальных переменных стоит держать только то, что не страшно потерять в любой момент.
Насчет использования потоков есть здравое зерно, тут я не готов спорить.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016113
LittleCat
Антон Аксёнов,
Вы написали много слов, но большинство из них проходят мимо моего сознания, видимо в следствии ограниченного кругозора. ("салатный код из колбэков", "архитектура монстра-молотилки" и т.п.) Но я не об этом, знание некоторых принципов позволяет не заботиться о запоминании множества фактов.


Ой ладно вам, я уверен - вы скромничаете. Уж что такое callback-hell вы должны знать. И если программировать под вэб, в рамках "ответить надо быстро иначе клиент отвалится", то понимание должно быть что долгую обработку с интерактивом надо пилить на несколько этапов, если между этапами подразумевается некий интерактив с пользователем. А колбэк - это кусок алгоритма срабатывающий после того как та сторона (пользователь) ответит, и обрабатывает ответ, использует его в дальнейших рассчётах.
Монстр-молотилка - это процесс (в широком понимании) который обрабатывает очередь поступивших запросов.
Я за то что бы небыло запросов, а были свои джобы на каждое соединение которые бы обрабатывали персонально каждый коннект и ЖДАЛИ бы его при необходимости интерактива. Таким образом не надо будет пилить алгоритмы на куски.

Не бог весь какая терминология, больше аналогий (не спорю, не совсем удачных, скорее экспрессивных), но дело ваше, можете не напрягаться, читая этот сумбур. Пишу не только для вас, но попробую больше про принципы, ок.

LittleCat

Очень просто - информация, необходимая алгоритму, располагается в оперативной памяти и занимает некоторый ее объем. Вам не все равно, в общем кэше она или в локальной среде процесса ? Если она в локальной среде, процесс становится большим и неповоротливым. Если среди этих данных есть то, что следует сохранить, получаем накладные расходы на сохранение о последующее восстановление. Таким образом, ИМХО, в локальных переменных стоит держать только то, что не страшно потерять в любой момент.
Насчет использования потоков есть здравое зерно, тут я не готов спорить.


Я же написал, мы с вами разное подразумеваем под временными данными. Вы, в силу того что привыкли к своей архитектуре распиленных бизнес-алгоритмов, считаете частью сессии то что, по сути, можно было бы к чертям потерять. Например, текущая итерация цикла прерванного для ожидания интерактива. Я так, абстрактно. Потому что у вас часть цикла в одной процедуре, а часть во второй, которая будет вызвана после ответа пользователя. И вот что бы вторая процедура продолжила нормально работу - вы храните состояние первой в сессии, ибо бедный (о чём все мои посты выше) инструментарий заставляет вас высвобождать драгоценные оплаченные деньгами джобы для обработки следующих запросов из очереди. С таким подходом у нас вообще нет выбора где хранить, если говорить только в рамках подхода обработчик очереди запросов. Где ж еще, если надо быстрее кончить и освободить джоб для следующего запроса? Какая разница, ну хотите пишите:
for ^sessions(ID,"x")=1:1:9000 s ^sessions(ID,"y")=^sessions(ID,"y")+1
Если чувство прекрасного вас обделило, хотите пишите поднятие/сохранение промежуточных данных в конце запроса.
О чём спор если по факту выбора-то нет?

А могла бы быть одна единая процедура, в которой в середине что-то спросили бы у пользователя и после получения ответа сразу бы продолжили работу, а всё состояние бизнес-алгоритма как жило в локалях так бы там и осталось.

>Таким образом, ИМХО, в локальных переменных стоит держать только то, что не страшно потерять в любой момент.
Ну тут невозможно и не зачем спорить. Это не ИМХО а прописная истина.
Вот только разрезанные интерактивом бизнес-алгоритмы в подходе "меня спросили - я ответил" вынуждены хранить в глобалях то что можно было бы потерять не парясь.

Но в принципе, абстрагируясь от сессий и всего о чём мы говорим, странная постановка вопроса про кэш. Как это какая разница, ведь одно дело держать в оперативке джоба, на кончиках пальцев, а другое дело - в расшаренном кэше, где помимо хранения и доставания данных будет еще код блокировки из-за того что оно расшарено между джобами? Это же лишний оверхед пока я работаю с моими данными. Моими интимными, больше никому не нужными данными одного конкретного соединения, возвращаясь к нашим баранам.
Это вы ловко ввернули, "при правильной настройке", а если неправильная? Тот подход за который я топлю если и требует отдельной настройки кэша сессионных данных, то этот процесс будет прогнозируем. Т.е. можно заранее прикинуть что вот столько юзеров и столько ТАКИХ-ТО данных, т.е. мы знаем что в нашем кэше сесси сиддят только данные сессии. А с подходом единого джоба-молотилки нам приходится держать в голове тот факт что в любой момент может появится интерактив внутри одного из бизнесс-процесса который заставит выгружать в этот кэш кучу данных по локальному состоянию этого алгоритма, т.к. он будет "разрублен" этим интерактивом. И вы такое не предусмотрите в жисть.

LittleCat
Если она в локальной среде, процесс становится большим и неповоротливым.

Я к тому что при подходе job=коннект_до_его_смерти программист волен решать и прикидывать - что лучше хранить в глобалях, т.к. оно скорее всего будет большим и неповоротливым если будет сидеть в оперативке, а что держать "горячим" в локалях. А при подходе который я критикую выбора-то и нет, повторюсь.

И еще раз, отскакивая в сторону, и немного мечтая, а неплохо было бы для джоба иметь некое хранилище для временных данных прошитое в стандарт. Что бы что-то крупное хранить на диске а не в оперативке, но без транзакций и шаринга, это должно быть видно только джобу. Вроде в cashe такое есть, специальная глобаль или что-то такое. Вот это точно в стандарт надо тащить. Это хорошая штука для тех данный сессии которые потенциально могут пухнуть.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016171
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Антон Аксёнов
LittleCat
Антон Аксёнов,
И еще раз, отскакивая в сторону, и немного мечтая, а неплохо было бы для джоба иметь некое хранилище для временных данных прошитое в стандарт. Что бы что-то крупное хранить на диске а не в оперативке, но без транзакций и шаринга, это должно быть видно только джобу. Вроде в cashe такое есть, специальная глобаль или что-то такое. Вот это точно в стандарт надо тащить. Это хорошая штука для тех данный сессии которые потенциально могут пухнуть.

В Cache есть https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_variables#GCOS_variables_procprivglbls
A process-private global is a variable that is only accessible by the process that created it. When the process ends, all of its process-private globals are deleted...
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016499
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов
...это все прелести зелёных потоков...
Одно маленькое "но": как правило, множество зелёные потоков обслуживают одного пользователя. MSM, как и ряд других M-систем конца 80-х и начала 90-х, составляют исключение. Во времена их расцвета многопроцессорных серверов не было вовсе, и даже к моменту заката MSM они считались high-end, поэтому действительно с т.з. производительности приложений MSM смотрелся для своего времени неплохо. Кратное ускорение при переходе из MSM в Cache, которое мы наблюдали, сейчас, в связи с значительным увеличением числа ядер CPU даже на серверах среднего класса, скорее всего, было бы на порядок выше.

Так что зелёные потоки как единственный механизм обеспечения многозадачности сервера БД и приложений - конечно же, тупик, и в Micronetics это понимали. В своё время мне приходилось общаться с их разработчиками, и они успели рассказать, что в 1998 году уже существовала версия MSM 4.5 с native threads. Почему она не увидела свет, думаю, объяснять не надо.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016711
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Почему она не увидела свет, думаю, объяснять не надо.

Надо :-)
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016746
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.
Надо :-)
Потому что в 1998 году InterSystems приобрела MSM, закончив этим скупку конкурирующих М-систем, продолжавшуюся несколько лет. Развитие поглощённых систем немедленно приостанавливалось. Что-то полезное из них заимствовалось, в случае MSM это был MSM-API (инструмент, похожий на VisM), + языковой режим MSM, + ещё что-то по мелочи, облегчающее переход из MSM в Cache. Понятно, что InterSystems не была заинтересована в поддержке множества установок "legacy" систем, и всячески способствовала их переходу в Cache.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016748
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И отдельное спасибо владельцам GT.M, которые тогда же отказались его продать и продолжили самостоятельное развитие. Теперь у нас есть YottaDB.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016754
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LittleCat
...GT.M, которые тогда же отказались его продать...
Скорее, заключили более выгодную сделку, позволившую продолжить развитие:
Who develops YottaDB/GT.M?GT.M was originally developed in the mid-1980s by Greystone Technology Corporation then of Wakefield, and later Woburn, Massachusetts. In 1998, the GT.M business (including the customers, the product, the development team, and all development assets) was acquired by Sanchez Computer Associates (Sanchez) of Malvern, Pennsylvania.
...
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016756
LittleCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо, это одно и то же, важен результат - он остался.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40016771
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

Спасибо, я подозревал, но не был уверен.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017301
Alexey Maslov
Антон Аксёнов
...это все прелести зелёных потоков...
Одно маленькое "но": как правило, множество зелёные потоков обслуживают одного пользователя. MSM, как и ряд других M-систем конца 80-х и начала 90-х, составляют исключение. Во времена их расцвета многопроцессорных серверов не было вовсе, и даже к моменту заката MSM они считались high-end, поэтому действительно с т.з. производительности приложений MSM смотрелся для своего времени неплохо. Кратное ускорение при переходе из MSM в Cache, которое мы наблюдали, сейчас, в связи с значительным увеличением числа ядер CPU даже на серверах среднего класса, скорее всего, было бы на порядок выше.


Алексей, разверните пожалуйста эту мысль, что за обслуживание одного пользователя, кого вы под пользователем подразумеваете?
Вы про проблему что Job'=User, и если один мешок с костями подключается несколькими коннектами то может ими "забить" ядро? И в этом случае честный шедулинг затрудняется? Ну тогда каким боком это у вас "но" применительно к зелёным потокам? Как раз в концепции зелёных Job'ов мы может отдать прикладнику объединение джобов в виртуальные группы и уже эти группы шедулить по чесноку в разрезе процессорного времени и частоте запросов к диску. А вот в тупорылом подходе job=процессОС мы нихера не можем (ну если честно то можем, даже в последних виндах как раз можно группировать процессы, но это.. извращение, будем честны, для наших целей).

Alexey Maslov

Так что зелёные потоки как единственный механизм обеспечения многозадачности сервера БД и приложений - конечно же, тупик, и в Micronetics это понимали. В своё время мне приходилось общаться с их разработчиками, и они успели рассказать, что в 1998 году уже существовала версия MSM 4.5 с native threads. Почему она не увидела свет, думаю, объяснять не надо.


Вот это Вы задвинули, я аж вспотел. Конечно же тупик - текущий подход, то что это вам не очевидно, ну печаль, а так все вокруг идут туда, в сторону асинхронности скрытой языковыми конструкциями (качество этих скрытий везде по разному но в основном - так себе, хотя go вроде неплох).

А Ваш аргумент получился в стиле "ваш самолёт не взлетит потому что у моей машины высокое лобовое сопротивление". Это если я правильно понял две предпосылки для вашего вывода "тупик".
Таки попытаюсь, еще раз: Вам сотрудник из Micronetics сказал что пробовали(сделали?) в натив треды.... И из этого вы сделали офигенный вывод что зелёные потоки "конечно же тупик"? Брр запутался. Т.е. они понимали что, мол, тупик, и сделали на тредах? А вы не в курсе подробностей? А хотите версию? Они понимали что ручной шедулинг джобов и единое адресное пространство - это орудие победы, и что бы ловить профит от нескольких ядер - сделали последний, логичный шаг: вместо одного потока который шедулит зелёные треды сделали по потоку на ядро? Т.е. каждый поток обрабатывает свои джобы. Именно то что я ожидаю от будущей БД мечты. Вот бы связаться с этим сотрудником и узнать.


>Почему она не увидела свет, думаю, объяснять не надо.
Вот хорошо внизу уточнили, а то я уже в конспирологию хотел удариться :-)
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017311
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Аксёнов,

> Т.е. они понимали что, мол, тупик, и сделали на тредах?

"Делали" MSM в конце 80-х, когда поддержки нативных тредов не было в большинстве ОС, и серверы были однопроцессорными. (Тогда и слова такого "сервер", честно говоря, не было). Сравнивать производительность нативных и зелёных тредов имело смысл только на однопроцессорниках, на многопроцессорниках - что тут сравнивать? Как справедливо заметил LittleCat, ОС справляется с распределением процессов/потоков по процессорам лучше, чем СУБД.

Кстати, Cache выигрывала у MSM даже на однопроцессорниках, так что тупорылые были быстрее умных и зелёных, хотя, возможно, причины были не только в этом: детальным анализом производительности я тогда не занимался, да и с чего бы, когда проблем с ней не было.

Обсуждать эту тему дальше бессмысленно: прошло четверь века, подробностей, фамилий и явок не помню, извиняйте. И удачи!
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017314
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений (который "ну я"),

Мы тут маленько замусорили твою ветку, постараемся исправиться. Можно вопрос? Как принимается решение о присвоении предложению MDC типа A (или как он теперь называется), имею в виду присвоение статуса готовности к включению в Стандарт 2020:
простым большинством или требуется консенсус?
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017386
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Евгений (который "ну я"),

Мы тут маленько замусорили твою ветку, постараемся исправиться. Можно вопрос? Как принимается решение о присвоении предложению MDC типа A (или как он теперь называется), имею в виду присвоение статуса готовности к включению в Стандарт 2020:
простым большинством или требуется консенсус?

Тип С - если понравилось более чем одному из участников и выглядит логично, цельно, непротиворечиво. Выглядит как запись для памяти на будущие обсуждения - документирования - описания. Ну чтобы не забылось. Вообще документов много, ведется работа по сканированию всей кипы бумаги в pdf.
Тип B и A - автоматическое продвижение если не встретилось ничего против за время вылёживания.
Переход из A в сам стандарт - вот тут уже обсуждение. Тут по-разному, кто за, кто против, кто поддерживает, кто уже поддержал. Если нужно обсуждение, разъяснение - то всегда до полного понимания, никто никуда не торопится. Если кем-то воспринимается в штыки и вызывает бурления - то не принимается.
Скажем в стандарте описано использование environment для полного имени глобала, рутины (namespace или UCI, где как). Я просто задал вопрос что с одной стороны оно используется, но нигде не описано что это и как получить к примеру список имеющихся, допустимость значений, проверить существование и прочее. Для рутин, или глобалов, или еще что, есть соответствующие SSVN, а вот для списка environment - нет, ну разве что в RSM (ранее MV1). И тут (неожиданно для меня) Рик Маршал стал за, Bhaskar против, ну у всех свои мнения, и из-за того что не сошлись даже в уровень C вносить не стали. Видимо, в GTM свои мнения на архитектуру и трактовку environment и не хотят чего-то терять или менять. А вот предложение на тему new lvn=expr было встречено за, внесено в C. В разных системах это было сделано по-разному и видимо пока никто не будет браться за строгую переносимость environment, уже хорошо что в MUMPS 1995 договорились хотя бы о синтаксисе.
По теме левостороннего set $qs()=... было просто. За? За. Вносим? Вносим. Вот список в каких реализациях как поддержано.
С операторами https://thedarkaugust.blogspot.com/2020/07/mumps2020.html сравнения и равно или с new $test - то же самое. За? За. Вносим? Вносим, вот список где поддержано. Обмениваемся кодом для проверки корректности (простенькие юнит-тесты), сверили - ок.

Bhaskar решил дальше не участвовать поскольку обсуждение закрытое, а он хочет открытый форум. Ну и вообще, считает что стандарты имеют смысл лишь если это кому-то нужно для взаимозаменяемости. А пока видимо если кто для чего пишет то соответствующую специфику и использует. И будет добавляться что-то одинаково или неодинаково - видимо уже не столь важно. Ну, в принципе, и его решение, и решение Интерсистемс было на чем-то основано с их точки зрения.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017416
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я

...
Bhaskar решил дальше не участвовать поскольку обсуждение закрытое, а он хочет открытый форум. Ну и вообще, считает что стандарты имеют смысл лишь если это кому-то нужно для взаимозаменяемости. А пока видимо если кто для чего пишет то соответствующую специфику и использует. И будет добавляться что-то одинаково или неодинаково - видимо уже не столь важно. Ну, в принципе, и его решение, и решение Интерсистемс было на чем-то основано с их точки зрения.


Я правильно понимаю, что не в плане персон, а в плане представленных в комитете реализаций Caché и YottaDB не участвуют?

Можно список реализаций в которых возможно будет увидеть когда нибудь результаты работы MDC?
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017452
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pureproft

Я правильно понимаю, что не в плане персон, а в плане представленных в комитете реализаций Caché и YottaDB не участвуют?
Можно список реализаций в которых возможно будет увидеть когда нибудь результаты работы MDC?

Разработчик GT.M и YottaDB, а также разработчик FreeM, решили не участвовать в обсуждениях , им не понравилось как сейчас все ведется. К неучастию в стандарте это не относится, как я понял они хотят иную форму.
Часть добавлений M2020 в YottaDB уже были внесены.
Сейчас в списке присутствия / отсутствия фич есть Cache, IRIS, GT.M, YottaDB, FreeM, MiniM, RSM (MUMPS V1).
Представителей ISC там нет. Из разработчиков сейчас представлены MiniM и RSM.
На тему Cache переживаний нет - у ISC достаточно сильные разработчики чтобы поддержать то что сочтут нужным и как сочтут нужным.
А что будет в будущем - кто ж его знает, может и M21 и M3 поддержат, может еще какая реализация появится. Я будущего не знаю.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017455
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pureproft
...не в плане персон, а в плане представленных в комитете реализаций Caché и YottaDB не участвуют
K.S.Bhaskar - это президент YottaDB LLC, если что. До какой степени он (или она, YottaDB) теперь, после рассказанного Евгением, участвует в стандартизации, видимо, надо спрашивать у него.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017490
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
... Из разработчиков сейчас представлены MiniM и RSM. ...


Я наверно не удачно вопрос сформулировал, но ответ я получил исчерпывающий.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017653
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений,

А "ленивые" && и || не пробовали протолкнуть в Стандарт?
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017714
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Евгений,

А "ленивые" && и || не пробовали протолкнуть в Стандарт?

Нет, не было таких предложений.
Хотя они и поддерживаются по крайней мере в Cache и MiniM.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40017853
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я
...поддерживаются по крайней мере в Cache и MiniM
Я в курсе. Мне кажется, стандартизация подобных операций была бы полезным начинанием.

С традиционными ! и & не всё так просто: в Стандарте M-1995 не сказано, что необходимо вычислить все операнды выражения вне зависимости от того, влияют ли они на результат. Однако в большинстве М-систем они вычисляются. YottaDB составляет здесь исключение, с некоторыми оговорками.
...
Рейтинг: 0 / 0
MUMPS 2020
    #40020625
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nov 17, 2020 MiniM - 52

MiniM got an MDC assigned number 52.

USER>w $sy
52,AUGUST:MINIM00
This update will be available at next build.


Евгений Анатольевич, я правильно понимаю, что это повод для поздравлений?
...
Рейтинг: 0 / 0
MUMPS 2020
    #40020705
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pureproft
Nov 17, 2020 MiniM - 52

MiniM got an MDC assigned number 52.

USER>w $sy
52,AUGUST:MINIM00
This update will be available at next build.


Евгений Анатольевич, я правильно понимаю, что это повод для поздравлений?

Да)))
...
Рейтинг: 0 / 0
MUMPS 2020
    #40020893
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений !
Примите наши поздравления !

На Вас вся надежда в деле популяризации демократизации М !
-----------------------------

от Латвии и окрестностей
Алексей
...
Рейтинг: 0 / 0
MUMPS 2020
    #40038561
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На этом форуме вроде обсуждают на счет стандарта,наших заинтересованных нет ?
https://groups.google.com/g/comp.lang.mumps/c/NeBXUJziDww
...
Рейтинг: 0 / 0
MUMPS 2020
    #40040182
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuНа этом форуме вроде обсуждают на счет стандартаНе слишком-то обсуждают. Упомянули "new $test" (о чём ранее писал Евгений), а также K.S.Bhaskar (YottaDB) подчеркнул, что займётся разработкой нового Стандарта, лишь когда этот процесс станет открытым для всех членов М-сообщества.

Продолжается ли сам процесс разработки, есть ли результаты, каковы перспективы? - давно никаких новостей. Может быть, Евгений нам что-нибудь поведает.
...
Рейтинг: 0 / 0
137 сообщений из 137, показаны все 6 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / MUMPS 2020
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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