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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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..
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.