Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-11 11:46:14 -0700 (Sat, 11 Oct 2003)
Revision: 176
Log message:
Conditionals were using a private string->bool conversion function.
This test is now standardized, in the Omake_util module.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-11 11:49:09 -0700 (Sat, 11 Oct 2003)
Revision: 177
Log message:
Apparently, Unix.select has a bug on win32, where it sometimes returns
a file descriptor that is not in the set of descriptors provided.
Should track this down sometime, and tell the INRIA folks.
Changes | Path |
+6 -4 | omake/Makefile.dep.nt |
+9 -6 | omake/src/exec/omake_exec.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-11 13:11:36 -0700 (Sat, 11 Oct 2003)
Revision: 178
Log message:
Add a --print-dependencies option for debugging.
Changes | Path |
+31 -7 | omake/src/build/omake_build.ml |
+1 -0 | omake/src/build/omake_build_type.ml |
+4 -1 | omake/src/ir/omake_state.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-11 13:24:13 -0700 (Sat, 11 Oct 2003)
Revision: 179
Log message:
Added capitalize and uncapitalize functions.
Changes | Path |
+24 -1 | omake/src/build/omake_builtin.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-11 17:25:33 -0700 (Sat, 11 Oct 2003)
Revision: 181
Log message:
Save some space on dependency printing.
Changes | Path |
+13 -9 | omake/src/build/omake_build.ml |
+1 -1 | omake/src/build/omake_build_type.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-11 21:01:04 -0700 (Sat, 11 Oct 2003)
Revision: 182
Log message:
Add instructions on how to build LaTeX.
Changes | Path |
+73 -0 | omake/OMakeroot |
+3 -1 | omake/src/build/omake_build.ml |
+94 -23 | omake/src/build/omake_builtin.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-12 01:59:50 -0700 (Sun, 12 Oct 2003)
Revision: 183
Log message:
Updated LaTeX generation code.
Changes | Path |
+2 -0 | omake/OMakeroot |
+14 -0 | omake/src/build/omake_builtin.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-12 12:07:57 -0700 (Sun, 12 Oct 2003)
Revision: 184
Log message:
Added the $(intersection <set1>, <set2>) function.
Changes | Path |
+7 -7 | omake/OMakeroot |
+35 -0 | omake/src/build/omake_builtin.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-12 13:01:12 -0700 (Sun, 12 Oct 2003)
Revision: 185
Log message:
Add a $(TARGETS) variable that is a string containing all the targets.
Changes | Path |
+19 -17 | omake/src/build/omake_build.ml |
+20 -1 | omake/src/build/omake_builtin.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-12 18:21:40 -0700 (Sun, 12 Oct 2003)
Revision: 186
Log message:
OMakefile options are now handled functionally, and scoped just
like variables. For example, suppose you want to turn off the progress
bar for the duration of a rule. This code would do it, and the option
would only be disabled when this rule is evaluated.
if true
OMakeOptions(--no-progress)
target: deps
commands
This is certainly cleaner semantically, but it is also a little of
an overkill for the problem of the progress bar messing with the
output of commands.
I fixed that in a different way, by displaying the progress bar
only *after* a command is finished.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-13 09:59:10 -0700 (Mon, 13 Oct 2003)
Revision: 187
Log message:
This file was missing.
Changes | Path |
Added | omake/src/ir/omake_state.mli |
Properties | omake/src/ir/omake_state.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-13 12:53:09 -0700 (Mon, 13 Oct 2003)
Revision: 188
Log message:
Oooouuuch! This dead-code was causing IR conversion to take
exponential time.
Changes | Path |
+0 -1 | omake/src/env/omake_ir_ast.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-13 20:35:39 -0700 (Mon, 13 Oct 2003)
Revision: 190
Log message:
Initial version of omake ported to the MetaPRL version of libmojave.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-13 20:45:57 -0700 (Mon, 13 Oct 2003)
Revision: 191
Log message:
Forgot to add this configuration file.
Changes | Path |
Added | omake/libmojave.m4 |
Properties | omake/libmojave.m4 |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-13 21:15:05 -0700 (Mon, 13 Oct 2003)
Revision: 193
Log message:
Dependencies for win32.
Changes | Path |
+82 -64 | omake/Makefile.dep.nt |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-14 03:16:12 -0700 (Tue, 14 Oct 2003)
Revision: 194
Log message:
- Bunch of clean-ups in RPM build scripts.
- Bumping the version number to 0.6.9
Changes | Path |
+5 -2 | omake/config_rpm |
+1 -1 | omake/make_rpm |
+4 -7 | omake/omake.spec |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-14 03:17:58 -0700 (Tue, 14 Oct 2003)
Revision: 195
Log message:
Modern RPM would compress the man pages.
Changes | Path |
+1 -1 | omake/omake.spec |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-14 12:10:50 -0700 (Tue, 14 Oct 2003)
Revision: 196
Log message:
Added a --version option, bumped the version numbr to 0.7.0
Changes | Path |
+2 -2 | omake/Makefile.in |
+2 -2 | omake/Makefile.nt |
+1 -1 | omake/omake.spec |
+46 -1 | omake/src/magic/omake_gen_magic.ml |
+5 -1 | omake/src/main/omake_main.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-14 12:23:54 -0700 (Tue, 14 Oct 2003)
Revision: 197
Log message:
Added an OMakeVersion function that checks that omake is up-to-date.
Changes | Path |
+12 -0 | omake/src/build/omake_builtin.ml |
+30 -2 | omake/src/magic/omake_gen_magic.ml |
+2 -2 | omake/src/main/omake_main.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-14 12:33:29 -0700 (Tue, 14 Oct 2003)
Revision: 198
Log message:
Added double-bounds version of OMakeVersion.
Changes | Path |
+20 -6 | omake/src/build/omake_builtin.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-14 13:48:47 -0700 (Tue, 14 Oct 2003)
Revision: 199
Log message:
- Use the Lm_string_util.trip, not a copy of it.
- Print the version number in the --help screen.
Changes | Path |
+1 -1 | omake/Makefile.in |
+2 -2 | omake/Makefile.nt |
+1 -28 | omake/src/magic/omake_gen_magic.ml |
+3 -2 | omake/src/main/omake_main.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-14 15:53:52 -0700 (Tue, 14 Oct 2003)
Revision: 200
Log message:
- Made "make clean" a bit cleaner.
- Fixed tha make_omake_magic compilation (hopefully).
Changes | Path |
+2 -2 | omake/Makefile.in |
+2 -2 | omake/Makefile.nt |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-14 16:04:47 -0700 (Tue, 14 Oct 2003)
Revision: 201
Log message:
Adding back the %{index} approach. The release number will yet again
include the .rhxx suffix - but this time only if the rh_release macro
is defined _externally_ (e.g. in ~/.rpmmacros) and if it is not defined,
there will be no suffix (so the spec file should still work outside
of Red Hat).
Changes | Path |
+1 -1 | omake/config_rpm |
+3 -2 | omake/omake.spec |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-14 16:10:42 -0700 (Tue, 14 Oct 2003)
Revision: 202
Log message:
Close the omake.spec file after reading it.
Changes | Path |
+8 -6 | omake/Makefile.dep.nt |
+1 -1 | omake/Makefile.nt |
+4 -0 | omake/src/magic/omake_gen_magic.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-14 19:38:43 -0700 (Tue, 14 Oct 2003)
Revision: 203
Log message:
TEXINPUTS needs to end with a : in order for the library files to be accessible.
Changes | Path |
+1 -1 | omake/OMakeroot |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-15 12:33:48 -0700 (Wed, 15 Oct 2003)
Revision: 205
Log message:
This addresses part of bug #84, OMAKEFLAGS takes precedences over command
line options.
Changes | Path |
+2 -1 | omake/src/main/omake_main.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-15 18:53:03 -0700 (Wed, 15 Oct 2003)
Revision: 207
Log message:
Forgot to define CWD in the root project directory.
Changes | Path |
+1 -0 | omake/src/env/omake_env.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-16 20:03:31 -0700 (Thu, 16 Oct 2003)
Revision: 209
Log message:
Print a list of unbuilt targets when omake fails. Also, fail correctly
when the -k option is used.
1. It is incorrect to squash error codes when -k is used.
2. Print a list of failed targets when omake finishes with an error.
Changes | Path |
+13 -3 | omake/src/build/omake_build.ml |
+1 -1 | omake/src/exec/omake_exec_local.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-16 20:06:03 -0700 (Thu, 16 Oct 2003)
Revision: 210
Log message:
Print failed targets when omake finishes with an error.
This addresses bug #92.
Changes | Path |
+6 -4 | omake/src/build/omake_build.ml |
Changes by: ( at unknown.email)
Date: 2003-10-16 20:06:03 -0700 (Thu, 16 Oct 2003)
Revision: 211
Log message:
This commit was manufactured by cvs2svn to create branch
'existential_nodes'.
Changes | Path |
Copied | omake-branches/existential_nodes |
Changes by: ( at unknown.email)
Date: 2003-10-16 20:06:03 -0700 (Thu, 16 Oct 2003)
Revision: 212
Log message:
This commit was manufactured by cvs2svn to create branch
'maybe_dependencies'.
Changes | Path |
Copied | omake-branches/maybe_dependencies |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-17 11:24:14 -0700 (Fri, 17 Oct 2003)
Revision: 214
Log message:
Added existential file nodes. The syntax for an existential
file is ?name. The node exists, even if the file doesn't.
This was designed as a fix to dependencies:
.SCANNER: %.cmo %.cmx: %.ml ?%.mli
$(OCAMLDEP) $(OCAMLDEPFLAGS) $(OCAMLINCLUDES) $(set $(replacesuffixes .cmi .cmo .cmx, .mli .ml .ml, $^))
where the scanner is restarted if the .mli file appears, otherwise
the .mli file is ignored.
This doesn't work, because the existential node and the
original node are completely independent. So, the rule does
not consider that the .mli file could be generated.
Committing on a branch that will be dropped immediately.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-18 10:28:50 -0700 (Sat, 18 Oct 2003)
Revision: 215
Log message:
This is an alternative approach to possible dependencies. In this case,
you would use the following conditional rule:
.SCANNER: %.cmo %.cmx: %.ml :maybe: %.mli
$(OCAMLDEP) $(OCAMLDEPFLAGS) $(OCAMLINCLUDES) $(set $(replacesuffixes .cmi .cmo .cmx, .mli .ml .ml, $^))
Which establishes a dependency if the .mli file exists.
For each rule, we keep track of the "maybe" dependencies.
However, this is expensive, and its really hard to get it right.
Going back to the approach using existential nodes.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-18 15:27:28 -0700 (Sat, 18 Oct 2003)
Revision: 216
Log message:
Rearranged the targets/pattern/sources code.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-18 18:10:35 -0700 (Sat, 18 Oct 2003)
Revision: 217
Log message:
Rearranged the workflow. The scanner is run at most once for each
target. There is no fixpoint any longer.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-18 18:54:17 -0700 (Sat, 18 Oct 2003)
Revision: 218
Log message:
This is a partial move to optional dependencies.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-19 20:44:47 -0700 (Sun, 19 Oct 2003)
Revision: 219
Log message:
This is the final commit on the existential_nodes branch.
This has several differences from the trunk:
1. scanners are run at most once, instead of a fixpoint,
dropping all dependencies from the cache when the
scanner is actually run (this addresses the
monotonicity problem).
2. weak dependencies are allowed. Here is an example:
.SCANNER: %.cmo %.cmx: %.ml $(optional %.mli)
$(OCAMLDEP) ...
The .mli file doesn't need to exist to run the scanner,
but if it is created, or if it changes, the scanner
will be considered out-of-date.
Internally, this uses an escape-convention on filenames.
The escaped string representation is ?%.mli?. That is,
any file that begins and ends with a ? is considered
a weak existential. The escape convention can be
adjusted at will.
One more issue: the weak dependency does not consider
rules to build the dependency. That is, the rule may
be executed even before rules to build the .mli file.
The problem is that weak dependencies implicitly create
fixpoint rules, like Aleksey's example:
%.dvi %.aux: %.tex $(optional %.aux)
latex ...
This rule should be executed until the .aux file no
longer changes.
This commit sets the stage for fixpoint rules, but
we should take it one step at a time. The problem is
that recursion may involve more than one rule, and
this would be really confusing to the user whenever
the system goes into an infinite loop (the dependencies
are currently checked for being well-founded).
I'm going to commit this to the trunk. It seems stable, no
problem building MetaPRL on Linux and Windows.
One issue: omake -j fails on Windows with a dependency
error, but not on Linux. This may be a lurking issue with
dependency analysis, but it seems more likely that
scanners are colliding on win32. For example, perhaps
choosing the name of a temp file is broken on Windows,
and they all use the same file.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-19 21:01:17 -0700 (Sun, 19 Oct 2003)
Revision: 220
Log message:
In OMakeroot, do not finish with the
.SUBDIRS: .
Force the project OMakeroot to do it instead.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-19 21:02:33 -0700 (Sun, 19 Oct 2003)
Revision: 221
Log message:
Install the correct file here too.
Changes | Path |
+1 -1 | omake-branches/existential_nodes/Makefile.nt |
+2 -2 | omake-branches/existential_nodes/OMakefile.in |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-19 21:34:09 -0700 (Sun, 19 Oct 2003)
Revision: 222
Log message:
Merged the existential_nodes branch to the trunk.
For the ommit log, see the last log on the existential_nodes branch.
Revision is updated to 0.7.1. This version builds MetaPRL without
problems on Linux, and on Windows without the -j option. Please
tell any problems! This version acts a little differently, in
preparation for fixpoint rules. I've checked, it seems stable,
but let me know.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-21 11:14:44 -0700 (Tue, 21 Oct 2003)
Revision: 228
Log message:
Removed moogle/kupo config. That belongs only in mcc.
In addition to setting TEXINPUTS, set BIBINPUTS to the same value
so that bibtex will find rc.bib.
Changes | Path |
+2 -19 | omake/OMakeroot.install |
+2 -1 | omake/src/eval/omake_eval.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-21 15:52:07 -0700 (Tue, 21 Oct 2003)
Revision: 229
Log message:
It's OMakeroot.install, not Omakeroot.install
Changes | Path |
+1 -1 | omake/OMakeroot |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-21 15:59:20 -0700 (Tue, 21 Oct 2003)
Revision: 230
Log message:
Compile with profiling support when NATIVE_PROFILE variable is set.
Changes | Path |
+3 -0 | omake/OMakefile.in |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-21 16:58:38 -0700 (Tue, 21 Oct 2003)
Revision: 231
Log message:
Adding a time measurement to the "omake: done" message
Changes | Path |
+3 -0 | omake/OMakefile.in |
+2 -1 | omake/src/build/omake_build.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-21 18:08:02 -0700 (Tue, 21 Oct 2003)
Revision: 233
Log message:
Be more clean on "omake clean"
Changes | Path |
+2 -2 | omake/OMakefile.in |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-21 19:46:31 -0700 (Tue, 21 Oct 2003)
Revision: 234
Log message:
Minor tuning.
Changes | Path |
+13 -21 | omake/src/build/omake_build.ml |
+2 -1 | omake/src/ir/omake_cache.ml |
+61 -58 | omake/src/ir/omake_node.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-22 09:18:28 -0700 (Wed, 22 Oct 2003)
Revision: 235
Log message:
Added a function $(squashed-dependencies ...) for files that we
care just exist.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-22 13:23:25 -0700 (Wed, 22 Oct 2003)
Revision: 236
Log message:
Fixed a problem with existential files.
Changes | Path |
+2 -2 | omake/OMakefile.in |
+3 -2 | omake/src/env/omake_env.ml |
+1 -1 | omake/src/ir/omake_cache.ml |
+5 -1 | omake/src/ir/omake_node_sig.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-22 18:35:27 -0700 (Wed, 22 Oct 2003)
Revision: 237
Log message:
Use a standard PATH when making an RPM.
Changes | Path |
+1 -0 | omake/config_rpm |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-23 02:06:58 -0700 (Thu, 23 Oct 2003)
Revision: 238
Log message:
Keep the version number in a separate version.txt file.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 09:56:29 -0700 (Thu, 23 Oct 2003)
Revision: 239
Log message:
There was an instance of $(bindir), which should have been $(BINDIR).
How did this ever work?
Changes | Path |
+1 -1 | omake/OMakefile.in |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 12:23:27 -0700 (Thu, 23 Oct 2003)
Revision: 240
Log message:
Addressed compilation problems for bug #101.
1. omake already had a -D option to force a project rescan.
Renamed this to --depend to make it more intuitive.
2. Update Makefile.nt; I haven't checked this. Will do in a sec.
Just a note here: this problem came up because omake_gen_magic now needs
lm_string_util.ml. Its unfortunate, but a command like this:
ocamlc -o omake_gen_magic lm_debug.ml lm_string_util.ml omake_gen_magic.ml
also generates files lm_string_util.cmi lm_string_util.cmo, etc.
Fixed this by building omake_gen_magic the normal way.
Changes | Path |
+5 -7 | omake/Makefile.nt |
+0 -0 | omake/src/build/omake_build.ml |
+1 -1 | omake/src/ir/omake_state.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 12:36:31 -0700 (Thu, 23 Oct 2003)
Revision: 241
Log message:
Well, building omake_gen_magic as a normal program doesn't work because
it needs to be built before scanning for dependencies.
The new fix is to make sure lm_debug.mli and lm_string_util.mli are
also included in the omake_gen_magic file list.
Changes | Path |
+6 -4 | omake/Files |
+24 -20 | omake/Makefile.dep.nt |
+8 -7 | omake/Makefile.in |
+4 -4 | omake/Makefile.nt |
+3 -3 | omake/OMakefile.in |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 12:40:12 -0700 (Thu, 23 Oct 2003)
Revision: 242
Log message:
Fixed typos.
Changes | Path |
+1 -1 | omake/Makefile.in |
+1 -1 | omake/OMakefile.in |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2003-10-23 16:44:04 -0700 (Thu, 23 Oct 2003)
Revision: 243
Log message:
The Lm_filename_util.tail function was buggy - it was returning "/xyz"
instead of "xyz" for files that contained a path!
I removed the Lm_filename_util.tail and replaced it with Filename.basename
I also renamed the $(tail ...) function into a $(basename ...) one (since
"basename" is kind of canonical for this).
For now, I am keeping $(tail ...) as well for backwards compatibility.
Bumping the version number to 0.7.3
Changes | Path |
+0 -12 | libmojave/stdlib/lm_filename_util.ml |
+0 -1 | libmojave/stdlib/lm_filename_util.mli |
+5 -4 | omake/src/build/omake_builtin.ml |
+1 -1 | omake/version.txt |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 19:56:55 -0700 (Thu, 23 Oct 2003)
Revision: 244
Log message:
Define the command line vars at the end of OMakeroot (bug #96).
Include a version check in the system OMakeroot (bug #99). The
omake_gen_magic program is used to generate this file.
Haven't checked this on windows, will do next.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 20:13:26 -0700 (Thu, 23 Oct 2003)
Revision: 246
Log message:
Minor fixes to bring Makefile.nt into line.
Changes | Path |
+10 -10 | omake/Makefile.nt |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2003-10-23 20:17:18 -0700 (Thu, 23 Oct 2003)
Revision: 247
Log message:
Added an up-to-date Makefile.dep.nt.
In general, if you get dependency errors in win32, try running
nmake -f Makefile.nt depend
Changes | Path |
Properties | omake |
+1 -0 | omake/.cvsignore |
+9 -9 | omake/Makefile.dep.nt |