[m-rev.] diff: minor updates to allegro binding
Julien Fischer
juliensf at csse.unimelb.edu.au
Wed May 9 18:23:46 AEST 2007
Estimated hours taken: 0.5
Branches: main
extras/graphics/mercury_allegro/allegro*.m:
Replace export pragmas with foreign_export pragmas.
Add the `can_pass_as_mercury_type' annotation to foreign
types where appropriate.
Julien.
Index: allegro.bitmap.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.bitmap.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.bitmap.m
--- allegro.bitmap.m 23 Apr 2007 04:00:54 -0000 1.1
+++ allegro.bitmap.m 9 May 2007 08:03:44 -0000
@@ -79,7 +79,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", bitmap, "BITMAP *").
+:- pragma foreign_type("C", bitmap, "BITMAP *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
screen(Result::out, IO0::di, IO::uo),
@@ -391,7 +391,8 @@
%-----------------------------------------------------------------------------%
:- func c_pointer_to_bitmap(c_pointer) = bitmap.
-:- pragma export(c_pointer_to_bitmap(in) = out, "_mal_c_pointer_to_bitmap").
+:- pragma foreign_export("C", c_pointer_to_bitmap(in) = out,
+ "_mal_c_pointer_to_bitmap").
:- pragma foreign_proc("C",
c_pointer_to_bitmap(CPtr::in) = (Bitmap::out),
@@ -405,8 +406,9 @@
:- func make_yes_bitmap(bitmap) = maybe(bitmap).
:- func make_no_bitmap = maybe(bitmap).
-:- pragma export(make_yes_bitmap(in) = out, "_mal_make_yes_bitmap").
-:- pragma export(make_no_bitmap = out, "_mal_make_no_bitmap").
+:- pragma foreign_export("C", make_yes_bitmap(in) = out,
+ "_mal_make_yes_bitmap").
+:- pragma foreign_export("C", make_no_bitmap = out, "_mal_make_no_bitmap").
make_yes_bitmap(X) = yes(X).
make_no_bitmap = no.
Index: allegro.color_format.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.color_format.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.color_format.m
--- allegro.color_format.m 23 Apr 2007 04:00:54 -0000 1.1
+++ allegro.color_format.m 4 May 2007 15:42:38 -0000
@@ -38,7 +38,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", rgb_map, "RGB_MAP *").
+:- pragma foreign_type("C", rgb_map, "RGB_MAP *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
bestfit_color(Palette::in, R::in, G::in, B::in, Index::out,
Index: allegro.compiled.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.compiled.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.compiled.m
--- allegro.compiled.m 23 Apr 2007 04:00:54 -0000 1.1
+++ allegro.compiled.m 4 May 2007 15:46:30 -0000
@@ -37,7 +37,8 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", compiled_sprite, "COMPILED_SPRITE *").
+:- pragma foreign_type("C", compiled_sprite, "COMPILED_SPRITE *",
+ [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
get_compiled_sprite(Sprite::in, Planar::in, MaybeCompiled::out,
@@ -74,12 +75,12 @@
:- func make_maybe_compiled_sprite_yes(compiled_sprite) =
maybe(compiled_sprite).
-:- pragma export(make_maybe_compiled_sprite_yes(in) = out,
+:- pragma foreign_export("C", make_maybe_compiled_sprite_yes(in) = out,
"_mal_make_maybe_compiled_sprite_yes").
make_maybe_compiled_sprite_yes(Compiled) = yes(Compiled).
:- func make_maybe_compiled_sprite_no = maybe(compiled_sprite).
-:- pragma export(make_maybe_compiled_sprite_no = out,
+:- pragma foreign_export("C", make_maybe_compiled_sprite_no = out,
"_mal_make_maybe_compiled_sprite_no").
make_maybe_compiled_sprite_no = no.
Index: allegro.datafile.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.datafile.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.datafile.m
--- allegro.datafile.m 23 Apr 2007 04:00:54 -0000 1.1
+++ allegro.datafile.m 9 May 2007 08:04:52 -0000
@@ -105,8 +105,10 @@
:- type datafile_cptr.
:- type datafile_object_cptr.
-:- pragma foreign_type("C", datafile_cptr, "DATAFILE *").
-:- pragma foreign_type("C", datafile_object_cptr, "DATAFILE *").
+:- pragma foreign_type("C", datafile_cptr, "DATAFILE *",
+ [can_pass_as_mercury_type]).
+:- pragma foreign_type("C", datafile_object_cptr, "DATAFILE *",
+ [can_pass_as_mercury_type]).
:- pragma foreign_type("C", dat_id, "int").
:- type outer_datafile
@@ -438,7 +440,8 @@
:- func make_inner_datafile(datafile_cptr) = inner_datafile.
-:- pragma export(make_inner_datafile(in) = out, "_mal_make_inner_datafile").
+:- pragma foreign_export("C", make_inner_datafile(in) = out,
+ "_mal_make_inner_datafile").
make_inner_datafile(X) = inner_datafile(X).
@@ -447,9 +450,9 @@
:- func make_yes_outer_datafile(datafile_cptr) = maybe(outer_datafile).
:- func make_no_outer_datafile = maybe(outer_datafile).
-:- pragma export(make_yes_outer_datafile(in) = out,
+:- pragma foreign_export("C", make_yes_outer_datafile(in) = out,
"_mal_make_yes_outer_datafile").
-:- pragma export(make_no_outer_datafile = out,
+:- pragma foreign_export("C", make_no_outer_datafile = out,
"_mal_make_no_outer_datafile").
make_yes_outer_datafile(X) = yes(outer_datafile(X)).
@@ -460,9 +463,9 @@
:- func make_yes_inner_datafile(datafile_cptr) = maybe(inner_datafile).
:- func make_no_inner_datafile = maybe(inner_datafile).
-:- pragma export(make_yes_inner_datafile(in) = out,
+:- pragma foreign_export("C", make_yes_inner_datafile(in) = out,
"_mal_make_yes_inner_datafile").
-:- pragma export(make_no_inner_datafile = out,
+:- pragma foreign_export("C", make_no_inner_datafile = out,
"_mal_make_no_inner_datafile").
make_yes_inner_datafile(X) = yes(inner_datafile(X)).
@@ -473,7 +476,7 @@
:- func make_normal_datafile_object(datafile_object_cptr) =
normal_datafile_object.
-:- pragma export(make_normal_datafile_object(in) = out,
+:- pragma foreign_export("C", make_normal_datafile_object(in) = out,
"_mal_make_normal_datafile_object").
make_normal_datafile_object(X) = normal_datafile_object(X).
@@ -485,9 +488,9 @@
:- func make_no_normal_datafile_object =
maybe(normal_datafile_object).
-:- pragma export(make_yes_normal_datafile_object(in) = out,
+:- pragma foreign_export("C", make_yes_normal_datafile_object(in) = out,
"_mal_make_yes_normal_datafile_object").
-:- pragma export(make_no_normal_datafile_object = out,
+:- pragma foreign_export("C", make_no_normal_datafile_object = out,
"_mal_make_no_normal_datafile_object").
make_yes_normal_datafile_object(X) = yes(normal_datafile_object(X)).
@@ -500,9 +503,9 @@
:- func make_no_loose_datafile_object =
maybe(loose_datafile_object).
-:- pragma export(make_yes_loose_datafile_object(in) = out,
+:- pragma foreign_export("C", make_yes_loose_datafile_object(in) = out,
"_mal_make_yes_loose_datafile_object").
-:- pragma export(make_no_loose_datafile_object = out,
+:- pragma foreign_export("C", make_no_loose_datafile_object = out,
"_mal_make_no_loose_datafile_object").
make_yes_loose_datafile_object(X) = yes(loose_datafile_object(X)).
Index: allegro.digi.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.digi.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.digi.m
--- allegro.digi.m 23 Apr 2007 04:00:54 -0000 1.1
+++ allegro.digi.m 9 May 2007 08:20:18 -0000
@@ -113,7 +113,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", sample, "SAMPLE *").
+:- pragma foreign_type("C", sample, "SAMPLE *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
load_sample(Filename::in, MaybeSample::out, IO0::di, IO::uo),
@@ -597,8 +597,9 @@
:- func make_yes_sample(sample) = maybe(sample).
:- func make_no_sample = maybe(sample).
-:- pragma export(make_yes_sample(in) = out, "_mal_make_yes_sample").
-:- pragma export(make_no_sample = out, "_mal_make_no_sample").
+:- pragma foreign_export("C", make_yes_sample(in) = out,
+ "_mal_make_yes_sample").
+:- pragma foreign_export("C", make_no_sample = out, "_mal_make_no_sample").
make_yes_sample(X) = yes(X).
make_no_sample = no.
Index: allegro.flic.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.flic.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.flic.m
--- allegro.flic.m 23 Apr 2007 04:00:55 -0000 1.1
+++ allegro.flic.m 9 May 2007 08:06:25 -0000
@@ -57,7 +57,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", memory_fli, "void *").
+:- pragma foreign_type("C", memory_fli, "void *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
play_fli(Filename::in, Bitmap::in, Status::out, IO0::di, IO::uo),
@@ -202,13 +202,13 @@
:- func make_fli_status_not_open = fli_status.
:- func make_fli_status_error = fli_status.
-:- pragma export(make_fli_status_ok = out,
+:- pragma foreign_export("C", make_fli_status_ok = out,
"_mal_make_fli_status_ok").
-:- pragma export(make_fli_status_eof = out,
+:- pragma foreign_export("C", make_fli_status_eof = out,
"_mal_make_fli_status_eof").
-:- pragma export(make_fli_status_not_open = out,
+:- pragma foreign_export("C", make_fli_status_not_open = out,
"_mal_make_fli_status_not_open").
-:- pragma export(make_fli_status_error = out,
+:- pragma foreign_export("C", make_fli_status_error = out,
"_mal_make_fli_status_error").
make_fli_status_ok = ok.
Index: allegro.joystick.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.joystick.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.joystick.m
--- allegro.joystick.m 23 Apr 2007 04:00:55 -0000 1.1
+++ allegro.joystick.m 9 May 2007 08:17:34 -0000
@@ -67,8 +67,10 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", stick_info, "JOYSTICK_STICK_INFO *").
-:- pragma foreign_type("C", axis_info, "JOYSTICK_AXIS_INFO *").
+:- pragma foreign_type("C", stick_info, "JOYSTICK_STICK_INFO *",
+ [can_pass_as_mercury_type]).
+:- pragma foreign_type("C", axis_info, "JOYSTICK_AXIS_INFO *",
+ [can_pass_as_mercury_type]).
install_joystick(_Type, Success, !IO) :-
install_joystick_2(Success, !IO).
Index: allegro.load_bitmap.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.load_bitmap.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.load_bitmap.m
--- allegro.load_bitmap.m 23 Apr 2007 04:00:55 -0000 1.1
+++ allegro.load_bitmap.m 9 May 2007 08:07:13 -0000
@@ -313,13 +313,13 @@
%-----------------------------------------------------------------------------%
:- func make_load_bitmap_result_ok(bitmap, palette) = load_bitmap_result.
-:- pragma export(make_load_bitmap_result_ok(in, in) = out,
+:- pragma foreign_export("C", make_load_bitmap_result_ok(in, in) = out,
"_mal_make_load_bitmap_result_ok").
make_load_bitmap_result_ok(Bmp, Pal) = ok(Bmp, Pal).
:- func make_load_bitmap_result_error = load_bitmap_result.
-:- pragma export(make_load_bitmap_result_error = out,
+:- pragma foreign_export("C", make_load_bitmap_result_error = out,
"_mal_make_load_bitmap_result_error").
make_load_bitmap_result_error = error.
Index: allegro.math3d.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.math3d.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.math3d.m
--- allegro.math3d.m 23 Apr 2007 04:00:55 -0000 1.1
+++ allegro.math3d.m 9 May 2007 08:16:51 -0000
@@ -72,7 +72,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", matrix_f, "MATRIX_f *").
+:- pragma foreign_type("C", matrix_f, "MATRIX_f *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
identity_matrix_f = (Matrix::out),
Index: allegro.midi.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.midi.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.midi.m
--- allegro.midi.m 23 Apr 2007 04:00:56 -0000 1.1
+++ allegro.midi.m 9 May 2007 08:08:02 -0000
@@ -57,7 +57,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", midi, "MIDI *").
+:- pragma foreign_type("C", midi, "MIDI *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
load_midi(Filename::in, MaybeMidi::out, IO0::di, IO::uo),
@@ -202,8 +202,8 @@
:- func make_yes_midi(midi) = maybe(midi).
:- func make_no_midi = maybe(midi).
-:- pragma export(make_yes_midi(in) = out, "_mal_make_yes_midi").
-:- pragma export(make_no_midi = out, "_mal_make_no_midi").
+:- pragma foreign_export("C", make_yes_midi(in) = out, "_mal_make_yes_midi").
+:- pragma foreign_export("C", make_no_midi = out, "_mal_make_no_midi").
make_yes_midi(X) = yes(X).
make_no_midi = no.
Index: allegro.palette.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.palette.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.palette.m
--- allegro.palette.m 23 Apr 2007 04:00:56 -0000 1.1
+++ allegro.palette.m 9 May 2007 08:16:27 -0000
@@ -77,7 +77,7 @@
#undef key
").
-:- pragma foreign_type("C", palette, "RGB *").
+:- pragma foreign_type("C", palette, "RGB *", [can_pass_as_mercury_type]).
%-----------------------------------------------------------------------------%
@@ -248,7 +248,7 @@
% ).
:- type rsvd.
-:- pragma foreign_type("C", rsvd, "char *").
+:- pragma foreign_type("C", rsvd, "char *", [can_pass_as_mercury_type]).
:- impure pred spec_to_rsvd(list(optimize_palette_spec)::in, palette::out,
rsvd::out) is det.
Index: allegro.prim.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.prim.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.prim.m
--- allegro.prim.m 23 Apr 2007 04:00:56 -0000 1.1
+++ allegro.prim.m 9 May 2007 08:15:51 -0000
@@ -234,7 +234,7 @@
polygon_2(Bitmap, NumVerts, Array, Color, !IO).
:- type vertex_array.
-:- pragma foreign_type("C", vertex_array, "int *").
+:- pragma foreign_type("C", vertex_array, "int *", [can_pass_as_mercury_type]).
:- pred allocate_vertex_array(vertex_array::uo) is det.
:- pragma foreign_proc("C",
@@ -383,8 +383,9 @@
:- func mal_cons_int_int(int, int, list({int, int})) = list({int, int}).
:- func mal_nil_int_int = list({int, int}).
-:- pragma export(mal_cons_int_int(in, in, in) = out, "_mal_cons_int_int").
-:- pragma export(mal_nil_int_int = out, "_mal_nil_int_int").
+:- pragma foreign_export("C", mal_cons_int_int(in, in, in) = out,
+ "_mal_cons_int_int").
+:- pragma foreign_export("C", mal_nil_int_int = out, "_mal_nil_int_int").
mal_cons_int_int(X, Y, List) = [{X, Y} | List].
mal_nil_int_int = [].
Index: allegro.rle.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.rle.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.rle.m
--- allegro.rle.m 23 Apr 2007 04:00:56 -0000 1.1
+++ allegro.rle.m 9 May 2007 08:09:17 -0000
@@ -46,7 +46,8 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", rle_sprite, "RLE_SPRITE *").
+:- pragma foreign_type("C", rle_sprite, "RLE_SPRITE *",
+ [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
get_rle_sprite(Sprite::in, MaybeRLE::out, IO0::di, IO::uo),
@@ -130,9 +131,9 @@
:- func make_maybe_rle_sprite_yes(rle_sprite) = maybe(rle_sprite).
:- func make_maybe_rle_sprite_no = maybe(rle_sprite).
-:- pragma export(make_maybe_rle_sprite_yes(in) = out,
+:- pragma foreign_export("C", make_maybe_rle_sprite_yes(in) = out,
"_mal_make_maybe_rle_sprite_yes").
-:- pragma export(make_maybe_rle_sprite_no = out,
+:- pragma foreign_export("C", make_maybe_rle_sprite_no = out,
"_mal_make_maybe_rle_sprite_no").
make_maybe_rle_sprite_yes(RLE) = yes(RLE).
Index: allegro.text.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.text.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.text.m
--- allegro.text.m 23 Apr 2007 04:00:57 -0000 1.1
+++ allegro.text.m 9 May 2007 08:15:18 -0000
@@ -47,7 +47,7 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", font, "FONT *").
+:- pragma foreign_type("C", font, "FONT *", [can_pass_as_mercury_type]).
:- pragma foreign_proc("C",
font(Fnt::out, IO0::di, IO::uo),
Index: allegro.transparency.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.transparency.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.transparency.m
--- allegro.transparency.m 23 Apr 2007 04:00:57 -0000 1.1
+++ allegro.transparency.m 9 May 2007 08:15:01 -0000
@@ -70,7 +70,8 @@
%-----------------------------------------------------------------------------%
-:- pragma foreign_type("C", color_map, "COLOR_MAP *").
+:- pragma foreign_type("C", color_map, "COLOR_MAP *",
+ [can_pass_as_mercury_type]).
drawing_mode(solid, !IO) :-
solid_mode(!IO).
Index: allegro.util.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegro.util.m,v
retrieving revision 1.1
diff -u -r1.1 allegro.util.m
--- allegro.util.m 23 Apr 2007 04:00:57 -0000 1.1
+++ allegro.util.m 9 May 2007 08:10:20 -0000
@@ -26,8 +26,8 @@
:- func make_yes_int(int) = maybe(int).
:- func make_no_int = maybe(int).
-:- pragma export(make_yes_int(in) = out, "_mal_make_yes_int").
-:- pragma export(make_no_int = out, "_mal_make_no_int").
+:- pragma foreign_export("C", make_yes_int(in) = out, "_mal_make_yes_int").
+:- pragma foreign_export("C", make_no_int = out, "_mal_make_no_int").
make_yes_int(X) = yes(X).
make_no_int = no.
@@ -37,8 +37,9 @@
:- func make_yes_int_int(int, int) = maybe({int, int}).
:- func make_no_int_int = maybe({int, int}).
-:- pragma export(make_yes_int_int(in, in) = out, "_mal_make_yes_int_int").
-:- pragma export(make_no_int_int = out, "_mal_make_no_int_int").
+:- pragma foreign_export("C", make_yes_int_int(in, in) = out,
+ "_mal_make_yes_int_int").
+:- pragma foreign_export("C", make_no_int_int = out, "_mal_make_no_int_int").
make_yes_int_int(X, Y) = yes({X, Y}).
make_no_int_int = no.
@@ -48,8 +49,9 @@
:- func make_yes_string(string) = maybe(string).
:- func make_no_string = maybe(string).
-:- pragma export(make_yes_string(in) = out, "_mal_make_yes_string").
-:- pragma export(make_no_string = out, "_mal_make_no_string").
+:- pragma foreign_export("C", make_yes_string(in) = out,
+ "_mal_make_yes_string").
+:- pragma foreign_export("C", make_no_string = out, "_mal_make_no_string").
make_yes_string(X) = yes(X).
make_no_string = no.
Index: allegrogl.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/allegrogl.m,v
retrieving revision 1.1
diff -u -r1.1 allegrogl.m
--- allegrogl.m 23 Apr 2007 04:00:57 -0000 1.1
+++ allegrogl.m 9 May 2007 08:19:32 -0000
@@ -319,7 +319,8 @@
% Text drawing and font conversion
%
-:- pragma foreign_type("C", agl_font, "FONT *").
+:- pragma foreign_type("C", agl_font, "FONT *",
+ [can_pass_as_mercury_type]).
:- func font_type_to_int(font_type) = int.
Index: mercury_allegrogl.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/extras/graphics/mercury_allegro/mercury_allegrogl.m,v
retrieving revision 1.1
diff -u -r1.1 mercury_allegrogl.m
--- mercury_allegrogl.m 23 Apr 2007 04:00:57 -0000 1.1
+++ mercury_allegrogl.m 4 May 2007 15:57:13 -0000
@@ -3,7 +3,8 @@
% Copyright (C) 2007 The University of Melbourne.
%-----------------------------------------------------------------------------%
%
-% This file is used create libmercury_allegrogl.a instead of liballegrogl.a.
+% This file is used to create libmercury_allegrogl.a instead of
+% liballegrogl.a.
%
:- module mercury_allegrogl.
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to: mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions: mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the reviews
mailing list