pike.git/
lib/
master.pike.in
Branch:
Tag:
Non-build tags
All tags
No tags
1999-11-26
1999-11-26 21:42:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>
6d926ceaceef523a044328ebf810e5ebb256aa60 (
60
lines) (+
35
/-
25
)
[
Show
|
Annotate
]
Branch:
7.9
Support changing the search method for precompiled files.
Rev: lib/master.pike.in:1.72
1:
-
/* $Id: master.pike.in,v 1.
71
1999/11/
23
16
:
40
:
01
per
Exp $
+
/* $Id: master.pike.in,v 1.
72
1999/11/
26
21
:
42
:
47
grubba
Exp $
* * Master-file for Pike. *
235:
#define capitalize(X) (upper_case((X)[..0])+(X)[1..])
+
array(string) query_precompiled_names(string fname)
+
{
+
// Filenames of potential precompiled files in priority order.
+
return ({ fname + ".o" });
+
}
+
static program low_findprog(string pname, string ext, object|void handler) { program ret;
255:
{ case "": case ".pike":
-
if(array s2=master_file_stat(
fname+".o"
))
+
foreach(query_precompiled_names(fname), string oname) {
+
if(array s2=master_file_stat(
oname
))
{ if(s2[1]>=0 && s2[3]>=s[3]) { mixed err=catch {
-
AUTORELOAD_CHECK_FILE(
fname+".o"
);
-
return programs[fname]=decode_value(_static_modules.files()->Fd(
fname+".o"
,"r")->read(),Codec());
+
AUTORELOAD_CHECK_FILE(
oname
);
+
return programs[fname]
=
+
decode_value(_static_modules.files()->Fd(
oname
,"r")->read(),
+
Codec());
}; if (handler) {
-
handler->compile_warning(
fname + ".o"
, 0,
+
handler->compile_warning(
oname
, 0,
sprintf("Decode failed:\n" "\t%s", err[0])); } else {
-
compile_warning(
fname + ".o"
, 0,
+
compile_warning(
oname
, 0,
sprintf("Decode failed:\n" "\t%s", err[0])); } } else { if (handler) {
-
handler->compile_warning(
fname + ".o"
, 0,
+
handler->compile_warning(
oname
, 0,
"Compiled file is out of date\n"); } else {
-
compile_warning(
fname + ".o"
, 0, "Compiled file is out of date\n");
+
compile_warning(
oname
, 0, "Compiled file is out of date\n");
} } }
-
+
}
if ( mixed e=catch { ret=compile_file(fname); } )
306:
AUTORELOAD_FINISH(ret,programs,fname); return programs[fname]=ret;
-
}else{
+
}
return UNDEFINED; }
-
}
+
static program findprog(string pname, string ext, object|void handler) {