Skip to content

Release E is available. #1

Description

@RockBrentwood

Look on Paul Jones archive again. A zip file for a transcription of the PDF of the printout of Release E was added there in 2016. An update is pending soon - either there, or on my GitHub site, or both.

There is an inconsistency in the scratch files of Release 1. If you carefully review gram.y you will notice that it is not able to handle the "struct tag" or "union tag" type specifiers. This generates y.tab.c and, from this, y.tab..c in the scratch directory.

However, the stdio.h file (in incl) used to generate the in-line copies of stdio.h in each of the scratch files contains declarations of the form "extern int _flsbuf(unsigned,FILE*);" which, under the macro preprocessor cpp, becomes "extern int _flsbuf(unsigned,struct _iobuf*);". This cannot be processed by the C program in Release 1's scratch files, nor with the C++ program in Release 1 -- therefore Release 1 cannot bootstrap itself. However, it can be processed by Release E ... except that no C "scratch" files were ever listed in the printout.

Therefore, it's likely that what you have, and what Paul Jones archive lists, is a copy of Release 1 in which the scratch files were generated from Release E (but which will not be able to bootstrap itself). One possible fix, to get it to be self-boostrapping, might be to replace the "#define FILE struct _iobuf" by "typedef struct _iobuf FILE" in stdio.h.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions