]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PR modula2/119650, PR modula2/117203]: WriteString and Delete are missing from base...
authorGaius Mulley <gaiusmod2@gmail.com>
Sat, 7 Jun 2025 15:25:19 +0000 (16:25 +0100)
committerGaius Mulley <gaiusmod2@gmail.com>
Sat, 7 Jun 2025 15:25:19 +0000 (16:25 +0100)
commitd1c3cfa3296ae5010c514d67f57acf144a299c7a
tree74f57de8e9404371a7be6d513e6049fa39ed038a
parent59a3da733a79f621700dd9ddc11a0efc07237c3a
[PR modula2/119650, PR modula2/117203]: WriteString and Delete are missing from base libraries

This patch introduces a Write procedure for an array of char,
the string and char datatype.  It uses the m2r10 style of
naming the module on the datatype.  This uncovered a bug
in the import handling inside Quadident.  It also includes
an Unlink procedure from a new module FileSysOp and a String
interface to this module.

gcc/m2/ChangeLog:

PR modula2/119650
PR modula2/117203
* gm2-compiler/P2Build.bnf (CheckModuleQualident): New
procedure.
(Qualident): Rewrite.
* gm2-compiler/P3Build.bnf (PushTFQualident): New procedure.
(CheckModuleQualident): Ditto.
(Qualident): Rewrite.
* gm2-compiler/PCBuild.bnf (PushTFQualident): New procedure.
(CheckModuleQualident): Ditto.
(Qualident): Rewrite.
* gm2-compiler/PHBuild.bnf (PushTFQualident): New procedure.
(CheckModuleQualident): Ditto.
(Qualident): Rewrite.
* gm2-libs/ARRAYOFCHAR.def: New file.
* gm2-libs/ARRAYOFCHAR.mod: New file.
* gm2-libs/CFileSysOp.def: New file.
* gm2-libs/CHAR.def: New file.
* gm2-libs/CHAR.mod: New file.
* gm2-libs/FileSysOp.def: New file.
* gm2-libs/FileSysOp.mod: New file.
* gm2-libs/String.def: New file.
* gm2-libs/String.mod: New file.
* gm2-libs/StringFileSysOp.def: New file.
* gm2-libs/StringFileSysOp.mod: New file.

libgm2/ChangeLog:

PR modula2/119650
PR modula2/117203
* libm2pim/Makefile.am (M2MODS): Add ARRAYOFCHAR,
CHAR.mod, StringFileSysOp.mod and String.mod.
(M2DEFS): Add ARRAYOFCHAR, CHAR.mod,
StringFileSysOp.mod and String.mod.
(libm2pim_la_SOURCES): Add CFileSysOp.c.
* libm2pim/Makefile.in: Regenerate.
* libm2pim/CFileSysOp.cc: New file.

gcc/testsuite/ChangeLog:

PR modula2/119650
* gm2/iso/fail/CHAR.mod: New test.
* gm2/iso/run/pass/CHAR.mod: New test.
* gm2/iso/run/pass/importself.mod: New test.
* gm2/pimlib/run/pass/testwrite.mod: New test.
* gm2/pimlib/run/pass/testwritechar.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
23 files changed:
gcc/m2/gm2-compiler/P2Build.bnf
gcc/m2/gm2-compiler/P3Build.bnf
gcc/m2/gm2-compiler/PCBuild.bnf
gcc/m2/gm2-compiler/PHBuild.bnf
gcc/m2/gm2-libs/ARRAYOFCHAR.def [new file with mode: 0644]
gcc/m2/gm2-libs/ARRAYOFCHAR.mod [new file with mode: 0644]
gcc/m2/gm2-libs/CFileSysOp.def [new file with mode: 0644]
gcc/m2/gm2-libs/CHAR.def [new file with mode: 0644]
gcc/m2/gm2-libs/CHAR.mod [new file with mode: 0644]
gcc/m2/gm2-libs/FileSysOp.def [new file with mode: 0644]
gcc/m2/gm2-libs/FileSysOp.mod [new file with mode: 0644]
gcc/m2/gm2-libs/String.def [new file with mode: 0644]
gcc/m2/gm2-libs/String.mod [new file with mode: 0644]
gcc/m2/gm2-libs/StringFileSysOp.def [new file with mode: 0644]
gcc/m2/gm2-libs/StringFileSysOp.mod [new file with mode: 0644]
gcc/testsuite/gm2/iso/fail/CHAR.mod [new file with mode: 0644]
gcc/testsuite/gm2/iso/run/pass/CHAR.mod [new file with mode: 0644]
gcc/testsuite/gm2/iso/run/pass/importself.mod [new file with mode: 0644]
gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod [new file with mode: 0644]
gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod [new file with mode: 0644]
libgm2/libm2pim/CFileSysOp.cc [new file with mode: 0644]
libgm2/libm2pim/Makefile.am
libgm2/libm2pim/Makefile.in