compiler/notes/coding_standards.html:
Specify that library module interfaces should avoid module
qualification where possible.
Minor formatting improvements and (a few) rewordings.
Add MR_strerror as a thread-safe alternative to strerror.
The current implementation wraps strerror_r(), strerror_s()
or sys_errlist as appropriate for the platform. Bug #340.
configure.ac:
runtime/mercury_conf.h.in:
Check for strerror_r, strerror_s.
Delete irrelevant code in the sockets test for the external debugger.
runtime/mercury_runtime_util.c:
runtime/mercury_runtime_util.h:
Add MR_strerror and use it.
library/io.m:
Use MR_strerror. In particular, mercury_output_error was not
thread-safe.
Pass errno to mercury_output_error explicitly for clarity.
Delete req_lock parameter in ML_maybe_make_err_msg macro which is not
needed any more.
compiler/prog_event.m:
runtime/mercury_deep_profiling.c:
runtime/mercury_misc.c:
runtime/mercury_term_size.c:
runtime/mercury_trace_base.c:
trace/mercury_trace_cmd_developer.c:
trace/mercury_trace_cmd_exp.c:
trace/mercury_trace_cmd_misc.c:
trace/mercury_trace_declarative.c:
trace/mercury_trace_external.c:
trace/mercury_trace_internal.c:
Use MR_strerror.
compiler/notes/coding_standards.html:
Update coding standard.
extras/net/sockets.m:
extras/net/tcp.m:
Use MR_strerror.
NEWS:
Announce change.
We had been maintaining two copies of these notes, this change attempts to
merge them into one set. The cononical location for these notes is here in
compiler/notes/, they will be removed from the www repository.
I've also updated a number of URLs.
compiler/notes/allocation.html:
compiler/notes/bootstrapping.html:
compiler/notes/coding_standards.html:
compiler/notes/compiler_design.html:
compiler/notes/gc_and_c_code.html:
compiler/notes/glossary.html:
compiler/notes/release_checklist.html:
compiler/notes/reviews.html:
compiler/notes/todo.html:
compiler/notes/work_in_progress.html:
Merge in differences with the versions of these files in the www
repository. Most differences are trivial.
compiler/notes/bytecode.html:
compiler/notes/c_coding_standard.html:
compiler/notes/developer_intro.html:
Add files that were missing from the main repository but were on the
website.
Estimated hours taken: 2
Branches: main
Move the intermodule analysis framework into the `compiler' directory, in
preparation for making it specific to the Mercury compiler, rather than having
it generic in case some fictional being might want to use it with a .NET
compiler one day. This will make it easier to use and modify.
compiler/analysis.file.m:
compiler/analysis.m:
Copy these files from the `analysis' directory.
compiler/top_level.m:
Include analysis.m as a new package.
compiler/Mercury.options:
Add a bug workaround line from analysis/Mercury.options.
analysis/Mercury.options:
analysis/Mmakefile:
analysis/analysis.file.m:
analysis/analysis.m:
analysis/mer_analysis.m:
Replace the contents of these files with comments that the analysis
framework is now in the `compiler' directory. We don't actually
delete them so their histories remain easily accessible.
analysis/README:
Mention that the code has been moved.
compiler/notes/compiler_design.html:
compiler/notes/overall_design.html:
Update documentation.
Mmake.workspace:
Mmakefile:
configure.in:
compiler/.mgnuc_copts:
compiler/COMP_FLAGS.in:
compiler/Mmakefile:
deep_profiler/.mgnuc_copts:
scripts/Mmake.vars.in:
scripts/c2init.in:
scripts/mercury_config.in:
scripts/prepare_tmp_dir_fixed_part.in:
tools/binary:
tools/binary_step:
tools/bootcheck:
tools/lmc.in:
tools/make_arena:
compiler/notes/coding_standards.html:
Remove references to the `analysis' directory and `libmer_analysis'.
Estimated hours taken: 0
Branches: main
compiler/notes/coding_standards.html:
Mention that module imports from the analysis directory should be
grouped with those from the compiler and mdbcomp directories.
Estimated hours taken: 0.1
Branches: main
compiler/compiler_util.m:
Add expect/3 as a replacement for require/2 in the compiler.
compiler/notes/coding_standards.html:
Update some references: s/error_util/compiler_util/
Mention that in the compiler we should use expect/3 rather
than require/2.
Estimated hours taken: 0.5
Branches: main
compiler/hlds_goal.m:
Clean up the formatting of comments in this module.
Add a comment about why there is duplicate information
in the representation of unifications.
Use unexpected/2 in preference to error1.
s/creater/creator/
compiler/notes/coding_standards.html:
Fix a misformed tag.
Estimated hours taken: 1
Branches: main
compiler/notes/coding_standards.html:
Update the coding standard to ask for each import_module to import
only one module even if the module is from the library.
Update the coding standard to reflect current accepted practice
with respect to indentation and the formatting of type definitions.
Estimated hours taken: 0.1
Branches: main
compiler/notes/coding_standards.html:
Added a comment regarding the use of DCG notation and state
variables, particularly with respect to IO.
Estimated hours taken: 0.1
Branches: main
compiler/notes/coding_standards.html:
If a grouping of predicate, mode and function declarations
occurs in the interface one of the standard library modules
specify that the function declaration should listed before the
others. The rationale for doing this is to make the library
reference manual more consistent (it also makes it easier
to see if there is a function version of a predicate.
Estimated hours taken: 1
Branches: main
Update coding standards for interfaces in the
standard library. The intent is to improve the
library reference guide.
compiler/notes/coding_standards.html:
Modify the coding standards to specify how descriptive
comments for library procedures should be placed.
By fixing a style (hopefully) the library reference guide
should have a more consistent appearance.
Specify that predmode syntax should be used in preference
to a separate mode declaration if a predicates has only
one mode.
Specify that descriptive comments for procedures should
ideally state under which conditions the procedure can
fail (if it can) or throw an exception.
Estimated hours taken: 0.25
Branches: main
compiler/notes/coding_standards.html:
Document that "++" should be used for string literals that don't
fit on a single line.
Estimated hours taken: 0.25
Branches: main
compiler/notes/coding_standards.html:
w3/information/developers/c_coding_standard.html:
Specify that code should generally be ordered top-down, not bottom-up.
Estimated hours taken: 0.25
Branches: main
compiler/notes/coding_standards.html:
Add two new guidelines:
- procedures defined using foreign code should be documented carefully
- in the compiler, use unexpected/2 or sorry/2 rather than error/1
Estimated hours taken: 0.1
Minor cleanup of some html.
compiler/notes/coding_standards.html:
Get rid of some empty paragraphs. Update a reference to a
filename which has changed.
Estimated hours taken: 0.1
Branches: main
Improvements to the "Layout" section of the Mercury coding standards.
compiler/notes/coding_standards.html:
Split the layout section into paragraphs, to make it easier to
read. Add the requirement that, like if-then-elses, all disjunctions
should be parenthesized.
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