Commit Graph

11 Commits

Author SHA1 Message Date
Simon Taylor
d74eb22905 Fix a bug in the module import mechanism -- use_module should
Estimated hours taken: 8

Fix a bug in the module import mechanism -- use_module should
not be transitive. This change is needed for smart recompilation
to avoid needing to check whether the removal of a transitive
import could cause compilation errors -- it never should.

Also fix some bugs in the handling of type class declarations.

compiler/prog_data.m:
	Add a `transitively_imported' pseudo-declaration, which
	is placed before the items from `.int2' files and `.opt'
	files.

	Fix the representation of type class bodies.
	`:- typeclass foo where [].' declares a typeclass with no
	methods. `:- typeclass foo.' declares an abstract typeclass.
	The old representation made no distinction between these cases.

compiler/hlds_data.m:
compiler/prog_data.m:
compiler/module_qual.m:
	Move the declaration of type type_id from hlds_data.m to prog_data.m.
	This avoids a duplicate declaration in module_qual.m.

compiler/modules.m:
	Add a `transitively_imported' pseudo-declaration before the
	items from `.int2' files.

	Remove the bodies of typeclass declarations placed in `.int2'
	files -- the methods should not be available unless the module
	is explicitly imported.

compiler/module_qual.m:
	Items after the `transitively_imported' pseudo-declaration
	should not be considered when module qualifying locally
	declared items.

compiler/equiv_type.m:
compiler/mercury_to_mercury.m:
compiler/prog_io_typeclass.m:
	Handle the change to the representation of typeclass bodies.

compiler/prog_io_typeclass.m:
	Check that the arguments of a typeclass declaration
	are distinct variables.

compiler/make_hlds.m:
	Handle abstract typeclass declarations.

compiler/check_typeclass.m:
	Check that all typeclasses have a definition somewhere.

compiler/intermod.m:
	Write abstract_exported typeclasses to the `.opt' file.

compiler/add_trail_ops.m:
compiler/context.m:
compiler/llds.m:
compiler/vn_type.m:
	Add missing imports.

compiler/magic_util.m:
compiler/ml_type_gen.m:
	Remove unnecessary imports.

NEWS:
	Note that this change may break existing programs.

compiler/notes/todo.html:
	Remove the item relating to this change.

tests/invalid/transitive_import.{m,err_exp}:
	Add some tests for uses of transitively imported items.

tests/invalid/transitive_import_class.m:
tests/invalid/transitive_import_class2.m:
tests/invalid/transitive_import_class3.m:
tests/invalid/transitive_import_class.err_exp:
	Add a test for use of transitively imported class methods.

tests/invalid/invalid_typeclass.{m,err_exp}:
	Add some tests for invalid typeclass declarations.

tests/invalid/Mmakefile:
	Add the new tests.
2001-05-02 17:34:50 +00:00
Fergus Henderson
cb613916ae Update for release 0.9.
Estimated hours taken: 0.25

compiler/notes/todo.html:
	Update for release 0.9.
1999-12-11 16:36:47 +00:00
Fergus Henderson
d4694d2e48 Deprecate the old style of lambda expressions.
Estimated hours taken: 0.5

Deprecate the old style of lambda expressions.

NEWS:
doc/reference_manual.texi:
	Document that the old-style lambda expressions are now deprecated.

compiler/notes/todo.html:
	Mention that we should warn about the use of old-style lambda
	expressions.
1999-03-24 05:32:26 +00:00
David Jeffery
9f3490be9d Updated mention of existential types and added an item about better
Estimated hours taken: 0.1

compiler/notes/todo.html
        Updated mention of existential types and added an item about better
        support in the standard library for higher order programming.
1998-09-22 08:04:17 +00:00
Fergus Henderson
5f0dc73080 Update a couple of things.
Estimated hours taken: 0.25

compiler/notes/todo.html:
	Update a couple of things.
1998-09-02 07:02:19 +00:00
Fergus Henderson
9f11e1e4fb Delete some things that have been done, and add a couple of new
Estimated hours taken: 0.25

compiler/notes/todo.html:
	Delete some things that have been done, and add a couple of new
	things to the todo list and wish list.
1998-06-29 05:37:19 +00:00
Zoltan Somogyi
39871ffd62 Removed "being done by jammb", since he isn't working on Mercury
Estimated hours taken: 0.2

todo.html:
	Removed "being done by jammb", since he isn't working on Mercury
	anymore. Added a note that petdr is supposed to be working on
	data type specialization. Clarified a point about attribute grammars.
1997-07-10 06:44:42 +00:00
Simon Taylor
e7ebb733be Document `:- use_module'.
Estimated hours taken: 14

compiler/notes/todo.html
	Document `:- use_module'.
1997-06-29 23:17:47 +00:00
Zoltan Somogyi
8e0a049f42 Removed an item saying only "implement".
Estimated hours taken: 0.1

Removed an item saying only "implement".
1997-05-07 05:24:11 +00:00
Fergus Henderson
5da7e91c83 Update the todo list to reflect things that have been done.
Estimated hours taken: 1

compiler/notes/todo.html:
	Update the todo list to reflect things that have been done.
	Move some items from the TODO section to the WISHLIST section.
	Change the indentation slightly to make it easier to read
	the ASCII source.
1997-04-29 15:01:06 +00:00
Bert Thompson
dea497b338 Translated plain text docs to HTML. This obviously creates
Estimated hours taken: 4

Translated plain text docs to HTML. This obviously creates
a dual update problem. We should solve this by putting
the plain text docs in the attic and retaining the HTML.

Also added the HTML files to the Mmakefile so they are installed
on the web pages.

The other documents in compiler/notes will be HTMLized soon.

compiler/notes/
	Mmakefiles
	ALLOCATION.html
	AUTHORS.html
	CODING_STANDARDS.html
	COMPILER_DESIGN.html
	GC_AND_C_CODE.html
	GLOSSARY.html
	MODULE_SYSTEM.html
	RELEASE_CHECKLIST.html
	REVIEWS.html
	TODO.html
1997-04-03 05:17:54 +00:00