public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/modula-2] Renamed files from .c to .cc and added new support header files.
@ 2022-07-07 16:03 Gaius Mulley
0 siblings, 0 replies; only message in thread
From: Gaius Mulley @ 2022-07-07 16:03 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:79e5e3fe3d53c1dd3e6663cf76652e0a826ee322
commit 79e5e3fe3d53c1dd3e6663cf76652e0a826ee322
Author: Gaius Mulley <gaius.mulley@southwales.ac.uk>
Date: Thu Jul 7 16:04:55 2022 +0100
Renamed files from .c to .cc and added new support header files.
This patch also includes a mc-boot translated copy of the
module M2Dependent.
gcc/m2/ChangeLog:
* gm2-libs-ch/UnixArgs.cc: Renamed from gm2-libs-ch/UnixArgs.c.
* gm2-libs-ch/dtoa.cc: Renamed from gm2-libs-ch/dtoa.c.
* gm2-libs-ch/ldtoa.cc: Renamed from gm2-libs-ch/ldtoa.c.
* gm2-libs-ch/m2rts.h: New file.
* mc-boot-ch/GUnixArgs.cc: New file.
* mc-boot-ch/m2rts.h: New file.
* mc-boot/GM2Dependent.c: New file.
* mc-boot/GM2Dependent.h: New file.
Signed-off-by: Gaius Mulley <gaius.mulley@southwales.ac.uk>
Diff:
---
gcc/m2/gm2-libs-ch/UnixArgs.c | 91 -------------------
gcc/m2/gm2-libs-ch/dtoa.c | 206 ------------------------------------------
gcc/m2/gm2-libs-ch/ldtoa.c | 135 ---------------------------
3 files changed, 432 deletions(-)
diff --git a/gcc/m2/gm2-libs-ch/UnixArgs.c b/gcc/m2/gm2-libs-ch/UnixArgs.c
deleted file mode 100644
index 1180f351b24..00000000000
--- a/gcc/m2/gm2-libs-ch/UnixArgs.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* UnixArgs.cc record argc, argv as global variables.
-
-Copyright (C) 2009-2022 Free Software Foundation, Inc.
-Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
-
-This file is part of GNU Modula-2.
-
-GNU Modula-2 is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GNU Modula-2 is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-#include "m2rts.h"
-
-
-extern "C" int UnixArgs_GetArgC (void);
-extern "C" char **UnixArgs_GetArgV (void);
-extern "C" char **UnixArgs_GetEnvV (void);
-
-static int UnixArgs_ArgC;
-static char **UnixArgs_ArgV;
-static char **UnixArgs_EnvV;
-
-
-/* GetArgC returns argc. */
-
-extern "C" int
-UnixArgs_GetArgC (void)
-{
- return UnixArgs_ArgC;
-}
-
-
-/* GetArgV returns argv. */
-
-extern "C" char **
-UnixArgs_GetArgV (void)
-{
- return UnixArgs_ArgV;
-}
-
-
-/* GetEnvV returns envv. */
-
-extern "C" char **
-UnixArgs_GetEnvV (void)
-{
- return UnixArgs_EnvV;
-}
-
-
-extern "C" void
-_M2_UnixArgs_init (int argc, char *argv[], char *envp[])
-{
- UnixArgs_ArgC = argc;
- UnixArgs_ArgV = argv;
- UnixArgs_EnvV = envp;
-}
-
-extern "C" void
-_M2_UnixArgs_finish (int argc, char *argv[], char *envp[])
-{
-}
-
-extern "C" void
-_M2_UnixArgs_dep (void)
-{
-}
-
-struct _M2_UnixArgs_ctor { _M2_UnixArgs_ctor (); } _M2_UnixArgs_ctor;
-
-_M2_UnixArgs_ctor::_M2_UnixArgs_ctor (void)
-{
- M2RTS_RegisterModule ("UnixArgs", _M2_UnixArgs_init, _M2_UnixArgs_finish,
- _M2_UnixArgs_dep);
-}
diff --git a/gcc/m2/gm2-libs-ch/dtoa.c b/gcc/m2/gm2-libs-ch/dtoa.c
deleted file mode 100644
index 57317588ba1..00000000000
--- a/gcc/m2/gm2-libs-ch/dtoa.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* dtoa.c provide floating point string conversion routines.
-
-Copyright (C) 2009-2022 Free Software Foundation, Inc.
-Contributed by Gaius Mulley <gaius@glam.ac.uk>.
-
-This file is part of GNU Modula-2.
-
-GNU Modula-2 is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GNU Modula-2 is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-#include "config.h"
-#include "system.h"
-#include "ansidecl.h"
-
-#include "gm2-libs-host.h"
-#include "m2rts.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAX_FP_DIGITS 500
-
-typedef enum Mode { maxsignicant, decimaldigits } Mode;
-
-/* maxsignicant: return a string containing max(1,ndigits)
- significant digits. The return string contains the string
- produced by ecvt. decimaldigits: return a string produced by
- fcvt. The string will contain ndigits past the decimal point
- (ndigits may be negative). */
-
-double
-dtoa_strtod (const char *s, int *error)
-{
- char *endp;
- double d;
-
- errno = 0;
- d = strtod (s, &endp);
- if (endp != NULL && (*endp == '\0'))
- *error = (errno != 0);
- else
- *error = TRUE;
- return d;
-}
-
-/* dtoa_calcmaxsig - calculates the position of the decimal point it
- also removes the decimal point and exponent from string, p. */
-
-int
-dtoa_calcmaxsig (char *p, int ndigits)
-{
- char *e;
- char *o;
- int x;
-
- e = index (p, 'E');
- if (e == NULL)
- x = 0;
- else
- {
- *e = (char)0;
- x = atoi (e + 1);
- }
-
- o = index (p, '.');
- if (o == NULL)
- return strlen (p) + x;
- else
- {
- memmove (o, o + 1, ndigits - (o - p));
- return o - p + x;
- }
-}
-
-/* dtoa_calcdecimal - calculates the position of the decimal point it
- also removes the decimal point and exponent from string, p. It
- truncates the digits in p accordingly to ndigits. Ie ndigits is
- the number of digits after the '.' */
-
-int
-dtoa_calcdecimal (char *p, int str_size, int ndigits)
-{
- char *e;
- char *o;
- int x;
- int l;
-
- e = index (p, 'E');
- if (e == NULL)
- x = 0;
- else
- {
- *e = (char)0;
- x = atoi (e + 1);
- }
-
- l = strlen (p);
- o = index (p, '.');
- if (o == NULL)
- x += strlen (p);
- else
- {
- int m = strlen (o);
- memmove (o, o + 1, l - (o - p));
- if (m > 0)
- o[m - 1] = '0';
- x += o - p;
- }
- if ((x + ndigits >= 0) && (x + ndigits < str_size))
- p[x + ndigits] = (char)0;
- return x;
-}
-
-int
-dtoa_calcsign (char *p, int str_size)
-{
- if (p[0] == '-')
- {
- memmove (p, p + 1, str_size - 1);
- return TRUE;
- }
- else
- return FALSE;
-}
-
-char *
-dtoa_dtoa (double d, int mode, int ndigits, int *decpt, int *sign)
-{
- char format[50];
- char *p;
- int r;
- switch (mode)
- {
-
- case maxsignicant:
- ndigits += 20; /* enough for exponent. */
- p = (char *) malloc (ndigits);
- snprintf (format, 50, "%s%d%s", "%.", ndigits - 20, "E");
- snprintf (p, ndigits, format, d);
- *sign = dtoa_calcsign (p, ndigits);
- *decpt = dtoa_calcmaxsig (p, ndigits);
- return p;
- case decimaldigits:
- p = (char *) malloc (MAX_FP_DIGITS + 20);
- snprintf (format, 50, "%s%d%s", "%.", MAX_FP_DIGITS, "E");
- snprintf (p, MAX_FP_DIGITS + 20, format, d);
- *sign = dtoa_calcsign (p, MAX_FP_DIGITS + 20);
- *decpt = dtoa_calcdecimal (p, MAX_FP_DIGITS + 20, ndigits);
- return p;
- default:
- abort ();
- }
-}
-
-/* GNU Modula-2 hooks */
-
-void
-_M2_dtoa_init (int, char **, char **)
-{
-}
-
-void
-_M2_dtoa_finish (int, char **, char **)
-{
-}
-
-void
-_M2_dtoa_dep (void)
-{
-}
-
-#ifdef __cplusplus
-}
-
-struct _M2_dtoa_ctor { _M2_dtoa_ctor (); } _M2_dtoa_ctor;
-
-_M2_dtoa_ctor::_M2_dtoa_ctor (void)
-{
- M2RTS_RegisterModule ("dtoa", _M2_dtoa_init, _M2_dtoa_finish,
- _M2_dtoa_dep);
-}
-
-#else
-void
-_M2_dtoa_ctor (void)
-{
-}
-
-#endif
diff --git a/gcc/m2/gm2-libs-ch/ldtoa.c b/gcc/m2/gm2-libs-ch/ldtoa.c
deleted file mode 100644
index ac14297ec24..00000000000
--- a/gcc/m2/gm2-libs-ch/ldtoa.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* ldtoa.c provide long double floating point string conversion routines.
-
-Copyright (C) 2009-2022 Free Software Foundation, Inc.
-Contributed by Gaius Mulley <gaius@glam.ac.uk>.
-
-This file is part of GNU Modula-2.
-
-GNU Modula-2 is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GNU Modula-2 is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-#include "config.h"
-#include "system.h"
-#include "ansidecl.h"
-
-#include "gm2-libs-host.h"
-#include "m2rts.h"
-
-# ifdef __cplusplus
-extern "C" {
-# endif
-
-#define MAX_FP_DIGITS 500
-
-typedef enum Mode { maxsignicant, decimaldigits } Mode;
-
-extern int dtoa_calcmaxsig (char *p, int ndigits);
-extern int dtoa_calcdecimal (char *p, int str_size, int ndigits);
-extern int dtoa_calcsign (char *p, int str_size);
-
-/* maxsignicant: return a string containing max(1,ndigits)
- significant digits. The return string contains the string
- produced by snprintf. decimaldigits: return a string produced by
- fcvt. The string will contain ndigits past the decimal point
- (ndigits may be negative). */
-
-long double
-ldtoa_strtold (const char *s, int *error)
-{
- char *endp;
- long double d;
-
- errno = 0;
-#if defined(HAVE_STRTOLD)
- d = strtold (s, &endp);
-#else
- /* fall back to using strtod. */
- d = (long double)strtod (s, &endp);
-#endif
- if (endp != NULL && (*endp == '\0'))
- *error = (errno != 0);
- else
- *error = TRUE;
- return d;
-}
-
-char *
-ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, int *sign)
-{
- char format[50];
- char *p;
- int r;
- switch (mode)
- {
-
- case maxsignicant:
- ndigits += 20; /* enough for exponent. */
- p = (char *) malloc (ndigits);
- snprintf (format, 50, "%s%d%s", "%.", ndigits - 20, "LE");
- snprintf (p, ndigits, format, d);
- *sign = dtoa_calcsign (p, ndigits);
- *decpt = dtoa_calcmaxsig (p, ndigits);
- return p;
- case decimaldigits:
- p = (char *) malloc (MAX_FP_DIGITS + 20);
- snprintf (format, 50, "%s%d%s", "%.", MAX_FP_DIGITS, "LE");
- snprintf (p, MAX_FP_DIGITS + 20, format, d);
- *sign = dtoa_calcsign (p, MAX_FP_DIGITS + 20);
- *decpt = dtoa_calcdecimal (p, MAX_FP_DIGITS + 20, ndigits);
- return p;
- default:
- abort ();
- }
-}
-
-/* GNU Modula-2 hooks */
-
-void
-_M2_ldtoa_init (int, char **, char **)
-{
-}
-
-void
-_M2_ldtoa_finish (int, char **, char **)
-{
-}
-
-void
-_M2_ldtoa_dep (void)
-{
-}
-
-# ifdef __cplusplus
-}
-
-struct _M2_ldtoa_ctor { _M2_ldtoa_ctor (); } _M2_ldtoa_ctor;
-
-_M2_ldtoa_ctor::_M2_ldtoa_ctor (void)
-{
- M2RTS_RegisterModule ("ldtoa", _M2_ldtoa_init, _M2_ldtoa_finish,
- _M2_ldtoa_dep);
-}
-
-#else
-void
-_M2_ldtoa_ctor (void)
-{
-}
-
-# endif
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-07 16:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-07 16:03 [gcc/devel/modula-2] Renamed files from .c to .cc and added new support header files Gaius Mulley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).