powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / перекомпиить MAC
11 сообщений из 11, страница 1 из 1
перекомпиить MAC
    #34705243
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня понял, что не знаю, как перекомпилить программу из терминала.
Раньше просто было не нужно - не задавался целью.

Желаетельно, если это можно было бы сделать по маске, или например, не трогая программы-исходники от классов.
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34705353
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	set rs=##class(%ResultSet).%New("%Library.Routine:RoutineList")
	if rs.Execute("*.MAC", 1 , 1 )
	{ 
		while rs.Next()
		{
			d $system.OBJ.CompileList(rs.Get("Name"),"cd")
		}
	}
	set rs=""


...
Рейтинг: 0 / 0
перекомпиить MAC
    #34705364
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо

можно проще
d $system.OBJ.ExportPattern("*.MAC","d:\temp\1.xml")
d $system.OBJ.Load("d:\temp\1.xml","c")

Хотелось решения красивее
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34705439
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем это оно проще ???

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

IMXO очень не проще.
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34705441
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не говоря уже о том (может в 5.2 это и пофиксиили) что в 5.0.x ветке команда d $system.OBJ.Load(file,"c") - для рутин не производит компиляцию :-) загрузку да - компиляцию нет
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34705450
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторочень не проще
Ну я же не сказал "лучше", "надежнее"

Проще - значит для этого не нужна отдельная программа, а достаточно двух командам из терминала. То что здесь посредником выступает файловая система - как раз мне и не нравится.

И хотя при проблемах файловой системы скорее всего просто компиляция и загрузка не произойдет
Присутствие "линего звена" меня не радует.

То, что Load нормально компилит, проверяю в 2007, да и в 5.2 (по памяти) - тоже нормально.
Если бы не было нормально, мы бы не смогли на нее перейти ;-)
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34707043
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В нашей версии d $system.OBJ.Load(file,"c") все нормально компилит...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34707177
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил - таки компилит - значить где то в другом у нас сабака зарылась
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34707232
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточнение .... с Load все нормально. А вот с LoadDir ... фигня.

Проверьте ...
...
Рейтинг: 0 / 0
перекомпиить MAC
    #34707344
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУточнение .... с Load все нормально. А вот с LoadDir ... фигня.
Да, была такая проблема. Невнимательно читал документацию ;-)

авторclassmethod LoadDir(dir As %String = "", qspec As %String = "", ByRef errorlog As %String, recurse As %Boolean, ByRef loadedlist As %String) returns %Status
Load all class definitions in a directory.
Load and, optionally compile, all class definitions within directory dir, this includes all .XML and .CDL files. If the recurse is true then it will include subdirectories. Returns a comma separated list of the items it loaded in loadedlist and the same data also as a loadedlist(name)="" in case the comma list is more than 32k. Note that this will only compile classes found in these CDL/XML files and no other types. If you want to be able to compile anything use the ImportDir .

...
Рейтинг: 0 / 0
перекомпиить MAC
    #34707650
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В нашей такого нет... вечно доки отстают
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / перекомпиить MAC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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