10
10
eval_when([translate,demo,batch,loadfile],
12
HERALD_PACKAGE(NAME)::=
14
VERSION_NO:IF TR_TRUE_NAME_OF_FILE_BEING_TRANSLATED#FALSE THEN
15
?pathname\-version(TR_TRUE_NAME_OF_FILE_BEING_TRANSLATED)
16
ELSE "VERSION UNKNOWN"],
17
(IF LOADPRINT THEN PRINT('name,"source",'version_no),
18
PUT('NAME,'VERSION_NO,'VERSION)))
12
herald_package(name)::=
14
version_no:if tr_true_name_of_file_being_translated#false then
15
?pathname\-version(tr_true_name_of_file_being_translated)
16
else "version unknown"],
17
(if loadprint then print('name,"source",'version_no),
18
put('name,'version_no,'version)))
21
21
/* next, a macro that is convenient for making sure a HERALDed package
22
22
is loaded. It saves a bit of typing. e.g.
23
23
LOAD_PACKAGE(FOO_STUFF,FOO,FASL,DSK,SHARE) */
25
HERALD_PACKAGE(PACKG)$
25
herald_package(packg)$
27
LOAD_PACKAGE(NAME,FILE_NAME)::=
28
BUILDQ([NAME,FILE_NAME],
29
IF GET('NAME,'VERSION)=FALSE THEN LOAD(FILE_NAME))$
27
load_package(name,file_name)::=
28
buildq([name,file_name],
29
if get('name,'version)=false then load(file_name))$
32
32
/* For address space reasons on MC things which have an autoload
36
36
special handling during translation. Which is not a bad thing to
39
SETUP_AUTOLOAD_MACRO(FILENAME,[L])::=
40
BUILDQ([PROPSETS:MAPLIST(LAMBDA([U],BUILDQ([U],PUT('U,TRUE,'TRANSLOAD))),L),
42
(SETUP_AUTOLOAD(FILENAME,SPLICE(L)),SPLICE(PROPSETS)) )$
39
setup_autoload_macro(filename,[l])::=
40
buildq([propsets:maplist(lambda([u],buildq([u],put('u,true,'transload))),l),
42
(setup_autoload(filename,splice(l)),splice(propsets)) )$
44
44
/* Now, here are the big ones */