From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1499) id 97D71385801C; Tue, 1 Nov 2022 11:44:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 97D71385801C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667303050; bh=dvsWqU+W4rFwwvLxmt0C0RDdOTocpEIlbK10bfVpzMM=; h=From:To:Subject:Date:From; b=xKFPEnUOl4zCcgMm29X+8rPG6IRgwak1HRmBdKFZxdwEQLJagA4QqPbnjm1KMRbqa hyD4pj/QneZ7dBirhWjK4P6gjT6x07wUc8tPcwHVGG1TKLhIx0AvD7MYRSv3pEYPZ6 2/5yhG9uWE0sQcDMr8Q2DcCg0sIAAkeVB5kflHn8= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Gaius Mulley To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/modula-2] Fix urls in gm2.texi, remove older news, improvements to def2doc.py. X-Act-Checkin: gcc X-Git-Author: Gaius Mulley X-Git-Refname: refs/heads/devel/modula-2 X-Git-Oldrev: a0fa580fb07a0dedaa0598e97a643349d10a0e1e X-Git-Newrev: ca91bc242ab54aefce7fe68cae7a748c8a94353a Message-Id: <20221101114410.97D71385801C@sourceware.org> Date: Tue, 1 Nov 2022 11:44:08 +0000 (GMT) List-Id: https://gcc.gnu.org/g:ca91bc242ab54aefce7fe68cae7a748c8a94353a commit ca91bc242ab54aefce7fe68cae7a748c8a94353a Author: Gaius Mulley Date: Tue Nov 1 11:43:19 2022 +0000 Fix urls in gm2.texi, remove older news, improvements to def2doc.py. Remove older papers and talks as the front end has changed significantly. Remove older text description for coroutines since the underlying threading model has also changed. Corrected other urls given floppsie.comp.glam.ac.uk has disappeared. gcc/ChangeLog: * doc/gm2.texi (Papers and talks): Removed. Urls to floppsie.comp.glam.ac.uk replaced. gcc/m2/ChangeLog: * gm2-libs-coroutines/README.texi: Remove all GNU Pthread text as the processes now use __gthread. * tools-src/def2doc.py (emitSubSection): Use '-' character. (parseDefinition) Improved. Diff: --- gcc/doc/gm2.texi | 24 ++++--------------- gcc/m2/gm2-libs-coroutines/README.texi | 42 +--------------------------------- gcc/m2/tools-src/def2doc.py | 10 ++++---- 3 files changed, 9 insertions(+), 67 deletions(-) diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi index fdecabc01ab..5d7b800a046 100644 --- a/gcc/doc/gm2.texi +++ b/gcc/doc/gm2.texi @@ -192,7 +192,7 @@ here is a talk on GNU Modula-2 given at Manchester on 8th September 2018. The title is, ``GNU Modula-2 update, catching semantic errors post code optimisation and improved debugging'' -[@url{http://floppsie.comp.glam.ac.uk/Papers/paper23/gaius-mulley-gnu-m2.pdf,slides} +[@url{https://splendidisolation.ddns.net/Papers/paper23/talk.pdf,slides} and @url{https://www.youtube.com/watch?v=6jf6weRuHjk,video}]. @item gm2 1.8.2 @@ -215,7 +215,7 @@ here is a talk on GNU Modula-2 given at Hebden Bridge on 9th September 2016. The title is, ``GNU Modula-2 status, whole program optimisation and language interoperability'' -[@url{http://floppsie.comp.glam.ac.uk/Papers/paper22/gaius-gcc-cauldron-2016.pdf,slides} +[@url{https://splendidisolation.ddns.net/Papers/paper22/talk.pdf,slides} and @url{https://www.youtube.com/watch?v=8GMyxwHdr1E,video}]. @item gm2 1.1.6 was released on February 22nd 2016. gm2-1.1.6 grafts onto gcc-4.7.4. @@ -416,28 +416,13 @@ or by The mailing list contents can be viewed @url{http://lists.gnu.org/archive/html/gm2}. -@node Other languages, Papers and talks, Community, Using +@node Other languages, , Community, Using @section Other languages for GCC These exist and can be found on the frontends web page on the @uref{http://gcc.gnu.org/frontends.html, gcc web site}. -@node Papers and talks, , Other languages, Using -@section Papers and talks - -A paper was presented at the @uref{http://www.gccsummit.org/2006, -GCC 2006 conference} on -@uref{http://floppsie.comp.glam.ac.uk/Papers/paper15/mulley-proc.pdf, -the state of GNU Modula-2}. - -A @uref{http://www.gccsummit.org/2010/speakers.php?types=LIGHTNING, -lightening talk} has been given at the GCC 2010 conference titled -"Exploiting front end knowledge to effortlessly create Python modules" -and the slides are -@uref{http://floppsie.comp.glam.ac.uk/Papers/paper20/talk.pdf, -available}. - -@node Using, , Overview, Top +@node Using, , Community, Top @chapter Using GNU Modula-2 @menu @@ -462,7 +447,6 @@ available}. * Built-ins:: Accessing GNU Modula-2 Built-ins. * The PIM system module:: SYSTEM data types and procedures. * The ISO system module:: SYSTEM data types, procedures and run time. -* Papers and talks:: Papers and talks. * Other languages:: Other languages for GCC. * What is GNU Modula-2:: Brief description of GNU Modula-2. * Why use GNU Modula-2:: Advantages of GNU Modula-2. diff --git a/gcc/m2/gm2-libs-coroutines/README.texi b/gcc/m2/gm2-libs-coroutines/README.texi index f66c0549a89..72a1db3b043 100644 --- a/gcc/m2/gm2-libs-coroutines/README.texi +++ b/gcc/m2/gm2-libs-coroutines/README.texi @@ -5,44 +5,4 @@ @c For copying conditions, see the file gcc/doc/include/fdl.texi. This directory contains a PIM @code{SYSTEM} containing the -@code{PROCESS} primitives built on top of GNU Pthreads. - -The justification for this approach is that it provides a -@code{SYSTEM} compatible with Programming in Modula-2 [234] and the -Logitech 3.0 compiler. It also allows higher level executives to be -ported onto GM2 with little effort. The disadvantage with this -approach is that @code{IOTRANSFER} is not -preemptive. @code{IOTRANSFER} will only context switch when a call to -@code{LISTEN} is made or a call to @code{SYSTEM.TurnInterrupts} is -made. - -In practice this limitation can be tolerated as long as processes -perform IO at some point (or wait for a timer interrupt) or call -@code{SYSTEM.TurnInterrupts}. But nevertheless a @code{LOOP} -@code{END} will starve all other processes. However the great -advantage is that GNU Modula-2 can offer users the ability to use -@code{IOTRANSFER}, @code{TRANSFER}, @code{NEWPROCESS} in user space, -on a multi-user operating system and across a range of platforms. - -The GNU Modula-2 @code{SYSTEM} works by utilizing the user context -switching mechanism provided by GNU Pthreads. @code{NEWPROCESS} -creates a new context, @code{TRANSFER} switches -contexts. @code{IOTRANSFER} is more complex. There is a support module -@code{SysVec} which provides pseudo interrupt vectors. These can be -created from input/output file descriptors or timer events -@code{timeval}. This vector is then passed to @code{IOTRANSFER} which -keeps track of which file descriptors and timevals are active. When a -call to @code{TurnInterrupts} or @code{LISTEN} is made the sub system -calls @code{pth_select} and tests for any ready file descriptor or -timeout. A ready file descriptor or timeout will ultimately cause the -backwards @code{TRANSFER} inside @code{IOTRANSFER} to take effect. - -See the @file{gm2/examples/executive} directory for an executive and -timerhandler module which provide higher level process creation, -synchronisation and interrupt handling routines. These libraries have -been tested with the examples shown in @file{gm2/examples/executive} -and @file{gm2/gm2-libs-coroutines}. - -Users of these libraries and the libraries in -@file{gm2/examples/executive} must link their application against the -GNU Pthread library (typically by using @code{-lpth}). +@code{PROCESS} primitives built on top of @code{gthread}s. diff --git a/gcc/m2/tools-src/def2doc.py b/gcc/m2/tools-src/def2doc.py index 163987ee910..0891b081acf 100755 --- a/gcc/m2/tools-src/def2doc.py +++ b/gcc/m2/tools-src/def2doc.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# def2texi.py creates texi library documentation for all exported procedures. +# def2doc.py creates texi library documentation for all exported procedures. # Contributed by Gaius Mulley . # Copyright (C) 2000-2022 Free Software Foundation, Inc. @@ -64,7 +64,7 @@ def emitSubSection(name): output.write("@subsection " + name + "\n") elif args.sphinx: output.write(name + "\n") - output.write("=" * len(name) + "\n") + output.write("-" * len(name) + "\n") # displayLibraryClass - displays a node for a library directory and invokes @@ -248,8 +248,7 @@ def parseDefinition(dir, source, build, file, needPage): output.write(str.rstrip(line) + "\n") line = f.readline() if len(str.rstrip(line)) == 0: - output.write(str.replace(str.replace(str.rstrip(line), - "{", "@{"), "}", "@}") + "\n") + output.write("\n") line = f.readline() if (str.find(line, "(*") != -1): removeFields(f, line) @@ -257,8 +256,7 @@ def parseDefinition(dir, source, build, file, needPage): output.write(str.rstrip(line) + "\n") else: output.write(str.rstrip(line) + "\n") - - line = f.readline() + line = f.readline() while line: line = str.rstrip(line) checkIndex(line)