Commit Graph

32 Commits

Author SHA1 Message Date
Julien Fischer
ee723eb6d7 Bump the minimum version of Java required.
NEWS:
README.Java:
    Require at least Java SE 8 or equivalent.

m4/mercury.m4:
    Check for at least the above version of Java.
2017-10-08 00:28:03 -04:00
Julien Fischer
be267604bb Bump the minimum version of Java required.
NEWS:
README.Java:
    Required at least Java SE 6 or equivalent.

m4/mercury.m4:
    Check for at least the above version of Java.
2016-10-11 10:26:55 +11:00
Julien Fischer
d0d6fc647f Update README files for non-C backends.
README.{CSharp,Java,Erlang}:
    Delete stuff about the IL backend.

    Backjumping does not currently work on any of the non-C backends.
2016-02-19 01:10:16 +11:00
Julien Fischer
015330c715 Update instructions for installing C#/Java versions of the compiler.
README.CSharp:
README.Java:
    As above.
2016-01-09 00:10:23 +11:00
Julien Fischer
9acc9db555 Generate executables in the Java grade as JARs.
When building an executable in the Java grade, the Mercury compiler generates
all the class files in the Mercury subdirectory and then generates a wrapper
script or batch file that points towards these class files.  This makes
deploying executables built in the Java grade rather awkward.  This change
makes the Mercury compiler package up all the class files for an executable
into a JAR file and modifies the wrapper scripts to point to this JAR file.

NOTE: the JAR file we generate cannot be executed with 'java -jar ...'.  This
is because in that mode of operation the Java interpreter ignores all user
classpath settings, such as those that tell the interpreter where the Mercury
standard library is.  (We could support this mode of operation by setting any
required library classpath directories in the archive's manifest, but that
would mean either hardcoding installation specific directories in the manifest
or copying any required .jars to a known location relative to the executable's
class files.  Generating such self-contained archives may be useful in some
cases, but it is not something this change addresses.)

compiler/compile_target_code.m:
        Rename the link target type for Java executables.

        Add a predicate for creating Java "executables": this involves generating
        an archive (as we do for libraries) and then generating the wrapper script
        or batch file.

        Simplify some code that generates an error message.

compiler/module_cmds.m:
        Change the wrapper scripts for Java executables to point towards
        the .jar file generated instead of the class files in the Mercury
        subdirectory.

        Ditto for the wrapper batch files.

compiler/make.m:
compiler/make.program_target.m:
compiler/make.util.m:
        Conform to the above changes.

README.Java:
        Mention that class files for the executable are packaged up in
        an archive.

NEWS:
        Announce this change.
2015-04-17 11:27:54 +10:00
Julien Fischer
c60aab937b Fix and update README files.
README.CSharp:
README.Java:
	The foreign_proc examples here would result in a purity error.
	Fix them so they do not.

README.Cygwin:
	Update URLs.

README.AIX:
	Delete the bit about the -ansi option; we no longer pass that to
	the C compiler anyway.

README.MinGW:
README.MS-VisualC:
	Fix grammar.
2015-01-05 13:27:26 +11:00
Julien Fischer
a552c56ee3 Minor fix for README.Java.
README.Java:
	Add a missing word.
2014-03-04 16:10:54 +11:00
Julien Fischer
c5f35d84f7 Document workaround for bug #303.
README.Java:
    Document the workaround for bug #303.

README.MinGW:
    Wrap a couple of overlong lines.
2013-11-25 02:19:26 +11:00
Julien Fischer
b2415d841b Documentation improvements for non-C backends.
README.CSharp:
	Delete the note about the C# backend being an experimental feature.

	Add a paragraph describing the situation with different versions
	of the .NET libraries on Mono.

	Emphasise that you must use mmc --make with the C# backend.

README.Java:
	Delete the note about the Java backend being an experimental feature.

	Emphasise that you must use mmc --make with the Java backend.

README.Erlang:
	Emphasise that you must use mmc --make with the Erlang backend.

configure.ac:
	Reword the documentation of --with-csharp-compiler.
2013-05-28 13:33:20 +10:00
Julien Fischer
b995aebcc0 Update email addresses and URLs.
.README.in:
BUGS:
README.CSharp:
README.DotNet:
README.Erlang:
README.Java:
README.ThreadScope:
compiler/notes/todo.html:
doc/faq.texi:
doc/make_manpage:
	As above.
2013-04-24 16:13:59 +10:00
Peter Wang
c5aa9f8478 Fix typos in documentation for building the compiler in non-C grades.
README.CSharp:
README.Erlang:
README.Java:
	As above.
2013-01-08 10:35:16 +11:00
Julien Fischer
937cb7a512 Fix bug #261: document how to build the compiler in non-C grades.
README.CSharp:
README.Java:
README.Erlang:
	Document how to build the Mercury compiler using the non-C grades.
2013-01-07 16:46:35 +11:00
Julien Fischer
cccf6db162 Document the --{host,target}-env-type options.
Branches: main, 11.01

Document the --{host,target}-env-type options.

doc/user_guide.texi:
compiler/options.m:
	Add (or enable) the documentation for the above options.

README.{Erlang,Java}:
	Mention how to produce a batch file launcher rather than a
	shell script.
2011-01-10 06:40:25 +00:00
Peter Wang
91b78d6738 Make it possible to install and use the csharp.ssdebug grade.
Branches: main

Make it possible to install and use the csharp.ssdebug grade.

Mmake.workspace:
        Never try to link with `mer_rt' in C# grades.

browser/Mmakefile:
mdbcomp/Mmakefile:
ssdb/Mmakefile:
        Use `mmc --make' to install these libraries in `csharp' grades.

        Don't add C libraries to MLLIBS in non-C or asm grades.

browser/Mercury.options:
ssdb/Mercury.options:
        "EXTRA_LIBRARIES-libname" doesn't actually work with `mmc --make',
        but "LIBRARIES-name" does.

library/exception.m:
ssdb/ssdb.m:
        Handle EXCP events in C# grades.

        Trap SIGINT when running ssdb in C# grades.

        Add `exit_process' implementation.

browser/declarative_execution.m:
browser/listing.m:
        Add stubs for C#.

README.CSharp:
        Document the C# backend.

README.DotNet:
        Add a pointer to README.CSharp.

README.Erlang:
README.Java:
        Remove a non-sensical paragraph.

.INSTALL.in:
configure.in:
        Add `--enable-csharp-grade' option.

        Make `configure --enable-ssdebug-grades' add `csharp.ssdebug'
        to the list of library grades.
2010-10-26 04:59:10 +00:00
Peter Wang
07557a573c Add some documentation for the source-to-source debugger.
Branches: main, 10.04

README.ssdebug:
        Add some documentation for the source-to-source debugger.

NEWS:
README.Java:
        Mention the source-to-source debugger.
2010-06-10 07:00:59 +00:00
Peter Wang
3716b74eb5 It appears that javac -Xmx256m still runs out of memory when building
Branches: main

library/Mmakefile:
	It appears that javac -Xmx256m still runs out of memory when building
	the standard library in the java grade on 32-bit machines. Bump up the
	maximum size to 512 MB for the standard library, but not in general.

README.Java:
	Describe how to increase the memory limit with mmc --make.
2009-11-05 01:59:45 +00:00
Peter Wang
254a45937c Use mmc --make to install Java grades. The makefile rules in library/Mmakefile
Branches: main

Use mmc --make to install Java grades.  The makefile rules in library/Mmakefile
did not install .opt files into <prefix>/lib/mercury/ints/java.  When
intermodule optimisation was enabled with a Java grade, the Mercury compiler
would read the .opt files from <prefix>/lib/mercury/ints, which could be from
*any* grade (they are only installed to work around problems with Mmake).

Mmakefile:
        Force mmc --make to be used to install Java grades.

browser/Mmakefile:
library/Mmakefile:
mdbcomp/Mmakefile:
ssdb/Mmakefile:
        Delete rules for building libraries in the Java grade with Mmake.

        Move --no-libgrade options to *_FLAGS files.

library/Mmakefile:
        Create the jmercury -> ../java symlink at the `mmake depend' step.

        Pass -sourcepath . to javac so it can find the jmercury/runtime/*.java
        files.

browser/MDB_FLAGS.in:
compiler/COMP_FLAGS.in:
library/LIB_FLAGS.in:
mdbcomp/MDBCOMP_FLAGS.in:
ssdb/SSDB_FLAGS.in:
        Add --no-libgrade options so that mmc --make libFOO.install only
        installs the main grade.

        Add --no-java-classpath so that the .jar files from the installed
        compiler aren't used.

        Tell the Java compiler about .jar files that each directory depends on.

README.Java:
        Remove a mention of Mmake with the java grade.
2009-10-20 04:07:25 +00:00
Peter Wang
5454956ebf Document that there are problems at higher optimisation levels
Branches: main

README.Java:
        Document that there are problems at higher optimisation levels
        and that trailing and tabling are not supported.
2009-09-28 06:59:44 +00:00
Peter Wang
7a3b796bb1 Make the warning less scary.
Branches: main

README.Java:
        Make the warning less scary.

        Preempt complaints about performance on short programs.
2009-09-25 07:35:18 +00:00
Peter Wang
9fc47f5c91 Make the Java backend not use native code to implement any standard library
Branches: main

Make the Java backend not use native code to implement any standard library
procedures.  The only such procedures were related to benchmarking and timing,
which aren't very important so I just make a best effort using methods that
the Java standard library provides.

library/benchmarking.m:
        Implement `benchmarking.report_stats' for Java as closely as possible
        without native code.  Add real time output.

        Add `benchmarking.ML_initialise' to remember the time when the
        program starts up.

compiler/mlds_to_java.m:
        Make the main wrapper call `benchmarking.ML_initialise' at startup.

library/time.m:
        Implement `time.clock', `time.times', `time.clocks_per_sec',
        `time.clk_tck' as closely as possible without native code.

library/Mmakefile:
        Comment out commands to build and install Native.so.

java/runtime/Native.c:
        Even though this is not used any more, update the function names for
        the "jmercury" package prefix.

README.Java:
        Update section on unimplemented procedures.
2009-08-14 06:34:03 +00:00
Peter Wang
c6b277dd3a Implementation of construct and construct_tuple for Java backend.
Branches: main

Implementation of construct and construct_tuple for Java backend.

java/runtime/TypeCtorInfo_Struct.java:
        The type_ctor_num_functors field was not being initialised.

library/construct.m:
        Call the predicates in rtti_implementation.m when appropriate.

library/rtti_implementation.m:
        Fix get_functor_enum which was confused lexical ordering and functor
        ordinals.

        Implement construct and construct_tuple for Java backend.

        Delete some out of date comments.

library/type_desc.m:
        Add Pseudo_type_desc_0 class which mirrors the
        jmercury.runtime.PseudoTypeInfo class with Type_desc_0 and
        Type_ctor_desc_0 as subclasses.

        Fill in stubs that work with pseudo_type_descs.

library/univ.m:
        Export predicates.

README.Java:
        Update readme.
2009-07-31 06:54:21 +00:00
Peter Wang
ae7e6b4dc3 Complete the deep copy implementation for Java.
Branches: main

Complete the deep copy implementation for Java.

library/builtin.m:
        Implement deep copy using reflection to instantiate new objects and
        set fields.  Only Mercury objects are copied, in line with deep copy
        in C grades.

compiler/ml_type_gen.m:
        Generate zero-argument constructors for Java classes corresponding to
        Mercury types.  The deep copy implementation needs to be able to
        instantiate the classes without knowing the constructor arguments.

README.Java:
        Update readme.
2009-06-16 00:38:23 +00:00
Peter Wang
d1cffc4523 RTTI improvements for Java backend. io.write/3 works for some simple types
Branches: main

RTTI improvements for Java backend.  io.write/3 works for some simple types
(builtin types and non-existential d.u. types).

compiler/mlds_to_java.m:
        Fix problem with cyclic RTTI definitions.  Initialisers could refer to
        other RTTI structures which weren't yet allocated, leading to fields
        being null.  The fix is to allocate all top-level RTTI objects first
        and initialise in a second phase.

java/runtime/DuExistInfo.java:
java/runtime/DuExistLocn.java:
java/runtime/DuFunctorDesc.java:
java/runtime/EnumFunctorDesc.java:
java/runtime/ForeignEnumFunctorDesc.java:
java/runtime/TypeClassConstraint.java:
java/runtime/TypeClassDeclStruct.java:
java/runtime/TypeClassId.java:
java/runtime/TypeCtorInfo_Struct.java:
java/runtime/TypeInfo_Struct.java:
        Separate constructors into constructors for the initial allocation,
        and an `init' method to fill in the fields.

java/runtime/MethodPtr.java:
        Use variadic method support to simplify semidet_call_* and
        result_call_* in rtti_implementation.m.

library/builtin.m:
        Make Java definitions of builtin.unify/2 and builtin.compare/3 call
        rtti_implementation.generic_unify and generic_compare.

library/private_builtin.m:
        Add missing MR_TYPECTOR_REP_FOREIGN_ENUM{,_USEREQ} constants
        for C# and Java.

library/rtti_implementation.m:
        Fix and add missing Java versions of many foreign_procs.

        Add more attributes to foreign_procs.

        Clean up the code a bit (fewer casts and ^ field access functions).

README.Java:
        Bump Java version requirement to J2SE 1.5 or higher.
2009-04-30 00:43:35 +00:00
Julien Fischer
576600811f Prepare for the 0.13 release and fix/update documentation.
Estimated hours taken: 1
Branches: main, release

Prepare for the 0.13 release and fix/update documentation.

NEWS:
HISTORY:
	Update the NEWS and HISTORY files for the 0.13 release.

RELEASE_NOTES:
	s/0.12/0.13/

	Add Linux/x86_64 to the list of architectures supported by this
	release.

	Remove Solaris 8/x86 from the same list.

.README.in:
extras/README:
	Remove references to the clp(r) binding.  We no longer support it.

bindist/bindist.README:
	Update the year in the copyright message.

	Fix the gc version; 0.13 uses 6.5.

BUGS:
README.DotNet:
README.Java:
README.gcc-backend:
doc/faq.texi:
doc/make_manpage:
doc/mercury.html.in:
doc/mercury.info.in:
	s/.cs.mu.oz.au/.csse.unimelb.edu.au/

library/array.m:
library/builtin.m:
library/eqvclass.m:
library/graph.m:
samples/README:
	Fix typos.
2006-09-07 08:32:20 +00:00
Julien Fischer
7203b29da8 The Java grade is not enabled by default at the moment.
Estimate hours taken: 0.1
Branches: main, release

NEWS:
	The Java grade is not enabled by default at the moment.

README.Java:
	Mention that the Java grade is sometimes broken (like now).
2005-08-30 07:29:35 +00:00
Fergus Henderson
3fee135954 Mention some more things that don't work, and say that the list
Estimated hours taken: 0.5
Branches: main

README.Java:
	Mention some more things that don't work, and say that the list
	of things that don't work is probably incomplete.
2004-02-20 05:32:54 +00:00
James Goddard
02d4fe2e13 Update documentation for Java grade.
Estimated hours taken: 0.2
Branches: main

Update documentation for Java grade.

README.Java:
	Add sub-modules to the list of unimplemented features.
	Rearrange `unimplemented' section of FAQ slightly to aid readability.
2004-02-16 03:55:59 +00:00
James Goddard
bf70ebd080 Simplify use of the Java grade by automatically setting the classpath.
Estimated hours taken: 1.5
Branches: main

Simplify use of the Java grade by automatically setting the classpath.

scripts/Mercury.config.in:
scripts/Mercury.config.bootstrap.in:
	Set the --java-classpath option in DEFAULT_MC_FLAGS.
	Define STD_LIB_NAME, RT_LIB_NAME.

scripts/c2init.in:
	Add the above two files to the list of those which use STD_LIB_NAME and
	RT_LIB_NAME.

library/Mmakefile:
	Use RT_LIB_NAME instead of STD_LIB_NAME.runtime

compiler/modules.m:
	Remove the XXX comment that worries about this issue.

README.Java:
	Remove instructions relating to setting the classpath manually.
2004-02-12 02:48:37 +00:00
James Goddard
83d21de865 Update documentation for Java grade.
Estimated hours taken: 0.2
Branches: main

Update documentation for Java grade.

README.Java:
	Update the list of implemented modules.  Include list of
	incompletely implemented predicates.
2004-02-11 23:52:56 +00:00
Fergus Henderson
89adfe0d7b Clean up the handling of the --java' and --gc' compilation options.
Estimated hours taken: 3
Branches: main

Clean up the handling of the `--java' and `--gc' compilation options.

README.Java:
	Document the `--java' and `--target java' options,
	and use `--java' rather than `--grade java' in the examples.

compiler/handle_options.m:
	Fix a bug where `mmc --java --output-grade-string'
	was printing "java.gc" instead of "java".  It was calling
	set_gc_method to set the gc_method field in the globals structure,
	but it was not setting the corresponding string option in the
	options table, and compute_grade was looking at the string option.
	The fix was to also set the string option.

scripts/parse_grade_options.sh-subr:
	Handle the `--java' and `--java-only' options.

scripts/final_grade_options.sh-subr:
	For the IL and Java back-ends, set the gc_method to automatic.
	For the Java back-end, set highlevel_data to true.

compiler/globals.m:
	Fix an XXX: add a new alternative to the gc_method type,
	"automatic", to distinguish lack of GC ("none") from the
	automatic GC done by Java or the .NET CLR.

compiler/options.m:
doc/user_guide.texi:
	Document the new `--gc automatic' alternative for the `--gc' option.
	Delete the documentation of the deprecated `--gc conservative'
	option (which has been replaced with `--gc boehm').

compiler/compile_target_code.m:
compiler/handle_options.m:
scripts/parse_grade_options.sh-subr:
scripts/final_grade_options.sh-subr:
	Handle the new `--gc automatic' option..
2004-02-10 12:43:33 +00:00
Fergus Henderson
aa694a3f9d A few minor wording changes. Suggest using `--target-debug'
Estimated hours taken: 0.5
Branches: main

README.Java:
	A few minor wording changes.  Suggest using `--target-debug'
	rather than `--java-flags "-g"' to enable Java-level debugging.
2004-02-08 04:29:23 +00:00
James Goddard
18d457a7c4 A helpful guide to installing and using the Java grade, modelled on
Estimated hours taken: 5
Branches: main

README.Java:
	A helpful guide to installing and using the Java grade, modelled on
	README.DotNet.
2004-02-02 03:16:35 +00:00