doctorwkt / pdp7-unix Goto Github PK
View Code? Open in Web Editor NEWA project to resurrect Unix on the PDP-7 from a scan of the original assembly code
License: GNU General Public License v3.0
A project to resurrect Unix on the PDP-7 from a scan of the original assembly code
License: GNU General Public License v3.0
kato:pdp7-unix tom$ tools/as7 src/cmd/bc/bc.s
I
II
src/cmd/bc/bc.s
src/cmd/bc/bc.s:3: start not defined
src/cmd/bc/bc.s:9: fetch not defined
src/cmd/bc/bc.s:17: pc not defined
src/cmd/bc/bc.s:19: pc not defined
src/cmd/bc/bc.s:23: sp not defined
src/cmd/bc/bc.s:35: sp not defined
src/cmd/bc/bc.s:36: t1 not defined
src/cmd/bc/bc.s:37: t1 not defined
src/cmd/bc/bc.s:45: d1 not defined
src/cmd/bc/bc.s:53: d4 not defined
src/cmd/bc/bc.s:59: stop not defined
src/cmd/bc/bc.s:63: pc not defined
src/cmd/bc/bc.s:70: putc not defined
src/cmd/bc/bc.s:76: putc not defined
src/cmd/bc/bc.s:78: putc not defined
src/cmd/bc/bc.s:87: putc not defined
src/cmd/bc/bc.s:92: putc not defined
src/cmd/bc/bc.s:93: flush not defined
src/cmd/bc/bc.s:100: dp not defined
src/cmd/bc/bc.s:104: pc not defined
src/cmd/bc/bc.s:106: sp not defined
src/cmd/bc/bc.s:108: lastv not defined
src/cmd/bc/bc.s:111: B not defined
src/cmd/bc/bc.s:112: pbs not defined
src/cmd/bc/bc.s:120: dp not defined
src/cmd/bc/bc.s:121: t1 not defined
src/cmd/bc/bc.s:122: t2 not defined
src/cmd/bc/bc.s:124: t1 not defined
src/cmd/bc/bc.s:129: t2 not defined
src/cmd/bc/bc.s:131: t2 not defined
src/cmd/bc/bc.s:132: t1 not defined
src/cmd/bc/bc.s:133: d1 not defined
src/cmd/bc/bc.s:134: t3 not defined
src/cmd/bc/bc.s:135: t3 not defined
src/cmd/bc/bc.s:137: t1 not defined
src/cmd/bc/bc.s:138: t1 not defined
src/cmd/bc/bc.s:142: t2 not defined
src/cmd/bc/bc.s:163: lastv not defined
src/cmd/bc/bc.s:164: lastv not defined
src/cmd/bc/bc.s:174: pbs not defined
src/cmd/bc/bc.s:179: pc not defined
src/cmd/bc/bc.s:183: t1 not defined
src/cmd/bc/bc.s:184: t1 not defined
src/cmd/bc/bc.s:195: t1 not defined
src/cmd/bc/bc.s:196: lastv not defined
src/cmd/bc/bc.s:197: lastv not defined
src/cmd/bc/bc.s:199: dm1 not defined
src/cmd/bc/bc.s:202: dsm not defined
src/cmd/bc/bc.s:203: t1 not defined
src/cmd/bc/bc.s:213: n not defined
src/cmd/bc/bc.s:214: b not defined
src/cmd/bc/bc.s:234: flush not defined
src/cmd/bc/bc.s:235: d1 not defined
src/cmd/bc/bc.s:237: stop not defined
src/cmd/bc/bc.s:239: flush not defined
src/cmd/bc/bc.s:240: d1 not defined
src/cmd/bc/bc.s:242: stop not defined
src/cmd/bc/bc.s:244: flush not defined
src/cmd/bc/bc.s:245: d1 not defined
src/cmd/bc/bc.s:247: stop not defined
src/cmd/bc/bc.s:278: ecla not defined
src/cmd/bc/bc.s:280: putc not defined
https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/
so, are we going to add this to pdp7-unix?
On Master, your README.md states that to compile run make pdp7
however there is no target for this. This project is very exciting to me, however I cannot figure out how to follow the instructions. I can make all
or make alt
but can't really make heads or tails of how things work.
I have been able to load UNIX with SIMH 4.0 but I cannot follow the "hello world" instructions as the bc
compiler is not present on the FS after booting. I can see that this might be part of the make alt
subset targets, but running that does not compile bc
for me.
I champion your efforts in this awesome project. But perhaps we can update the documents so the rest of us can enjoy this labor of love ;)
Travis only tested on linux. Once we pull the PR to switch to github workflows we can have the build verify on Windows and OS X also.
I noticed the readme example no longer has:
ln dd ken .
Is it no longer needed, or was it dropped by mistake?
It looks like this link, to the pdf's is 404. Is there a new link to the pdfs?
oscar:pdp7-unix tom$ more Makefile
# Top level makefile to build the utilities etc,
AS= tools/as7
all: utilities
utilities:
$(AS) -o bin/cat src/cmd/cat.s
$(AS) -o bin/cp src/cmd/cp.s
$(AS) -o bin/chmod src/cmd/chmod.s
$(AS) -o bin/chown src/cmd/chown.s
$(AS) -o bin/chrm src/cmd/chrm.s
$(AS) -o bin/ls src/other/wktls.s
clean:
rm -f bin/*
oscar:pdp7-unix tom$ make
tools/as7 -o bin/cat src/cmd/cat.s
I src/cmd/cat.s
bin/cat at tools/as7 line 195.
make: *** [utilities] Error 2
There was a version of Spacewar for the PDP-9 with Graphic-II display. I believe the Bell Labs people said they had a version of Spacewar, so maybe it was that one?
I have two files: source code, and an assember listing. I can't share them now, but they will go public.
I was looking into a problem with p (pool game). I traced it to a location unexpectedly being 0. It's -bvsize
in putball.
I'm submitting a condensed test case. This input:
-y
x:
.=.+1
y = .-x
results in this output:
010000: 000000 -y
kato:pdp7-unix tom$ tools/as7 src/cmd/dsw/dsw.s
I
II
src/cmd/dsw/dsw.s
src/cmd/dsw/dsw.s:35: do not defined
There seems to be a convention that file .. in every directory is a link to the directory itself (like . in more modern UNIX). I think this should be created by the build script.
kato:pdp7-unix tom$ tools/as7 src/cmd/apr/apr.s
I
II
src/cmd/apr/apr.s
src/cmd/apr/apr.s:12: ecla not defined
src/cmd/apr/apr.s:16: ecla not defined
src/cmd/apr/apr.s:20: ecla not defined
src/cmd/apr/apr.s:52: law040 not defined
kato:pdp7-unix tom$
ls should determine if an argument is a directory or a file and deal with each one differently, i.e. list a directory's contents vs. show the status of a single file.
Once we switch to github workflows we should switch the CI status badge in the readme from travis to github ci
kato:pdp7-unix tom$ tools/as7 scans/moo.s
I
II
scans/moo.s
scans/moo.s:450: standings not defined
Hello,
What about having a directory with all those files (*.c source code), which will allow to build System v7?
Still many of those programmes can be compiled with TCC or GCC under Linux or BSD (with adaptations).
http://www.tuhs.org/cgi-bin/utree.pl?file=V7
Ex:
cal col diff f77 kill m4 nm prof rev spell t450 touch uux
ac calendar comm diff3 factor ld mail nohup ps rm spline tabs tp vplot
adb cat cp du false learn make nroff pstat rmdir split tail tr vpr
ar cb crypt dump fgrep lex man od ptx roff strip tar troff wc
arcv cc cu dumpdir file lint mesg osh pwd sa struct tbl true who
as checkeq date echo find ln mkdir passwd quot sed stty tc tsort write
at chgrp dc ed graph login mv pcc random sh su tee tty xget
awk chmod dcheck egrep grep look ncheck plot ranlib size sum tek uniq xsend
bas chown dd enroll icheck lookbib neqn pr ratfor sleep sync test units yacc
basename clri deroff eqn iostat lorder newgrp prep refer sort t300 time uucp yes
bc cmp df expr join ls nice primes restor sp t300s tk uulog
Best regards
Spartrekus
Sorry for bothering. I am not sure if this is the intended behavior, my build issue, or what else. As soon as I enter }
in 'ed' command, 'ed' will exit immediately:
@ ed
edit
}@
I've just noticed this question in the wiki:
t[1-8].s: McIlroy's(?) TMG?
But didn't find the edit button. So I will just answer here.
Answer:
Yes, this is an early version of TMG for Unix by Douglas McIlroy. He later did a "new TMG" for Unix Version 2 in PDP-11 assembly. This newer implementation was included into Unix until Version 6, but then was abandoned in favor of YACC, a new compiler-compiler developed at Bell Labs. Recently, I ported this "new TMG" from PDP-11 assembly to C (here is my TMG in C repo).
Many routines in this old Unix TMG are named the same as in the later version. Particularly: kput
, jget
, obuild
, ctest
, putoct
, bundle
, table
, find
, char
, string
, octal
. Some others are recognizable: getname
(same as getnam
in the later version), parsedo
(same as parse
), mark
(same as smark
), roindir
(unary *, named .rv
on PDP-11), etc. Data structures in t7.s
are also recognizable. Though the code is very different from the "new TMG" that I worked with.
Enquiry:
Unfortunately, I didn't notice any TMG programs in this repo. It would be interesting to see, because McIlroy claimed that he wrote TMG for PDP-7 "in its own language" by bootstrapping it up.
I also didn't notice the "driving table" for TMG, which is an assembly output of TMG that would be assembled together with those t[1-8].s files to produce a new compiler. I'd expect that this driving table would be needed to make the TMG code functional.
Didn't find the driving table nor the original TMG program in the PDFs neither.
If anyone is aware of such code, please, let me know.
kato:pdp7-unix tom$ tools/as7 src/cmd/adm/adm.s
I
II
src/cmd/adm/adm.s
src/cmd/adm/adm.s:12: ecla not defined
src/cmd/adm/adm.s:16: ecla not defined
src/cmd/adm/adm.s:20: ecla not defined
src/cmd/adm/adm.s:65: r4 not defined
src/cmd/adm/adm.s:158: ecla not defined
src/cmd/adm/adm.s:197: m1s not defined
src/cmd/adm/adm.s:489: distlg not defined
kato:pdp7-unix tom$
Is the LICENSE file in the project directory supposed to mean that all of the sources are covered under GPLv3 or later? Are the licenses of the original sources known or are they "all rights reserved" by default? If so, are only the source files created from scratch to be considered covered under the GPLv3 or later?
It would be nice if this could be clarified.
Trying to compile on OpenBSD/adJ produces:
% gmake
build/os.mk:32: *** las instrucciones comenzaron antes del primer objetivo. Alto.gmake
Hi
Even if referenced in readme file, the /binaries directory is missing in the current GitHub
It would be great to have image.fs and boot.rim available do to a test-run without having to build them from scratch.
Is this possible?
Best regards
Add a mkdir syscall to the kernel as per the information given in http://www.tuhs.org/Archive/PDP-11/Distributions/research/McIlroy_v0/UnixEditionZero.txt
sys mkdir; name
gcc version
oscar:build tom$ gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 7.0.2 (clang-700.1.81) Target: x86_64-apple-darwin15.4.0 Thread model: posix
Output:
oscar:build tom$ gcc -Wno-multichar -o b ../tools/b.c ../tools/b.c:29:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] xread() { ^ ../tools/b.c:36:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] xwrite(c) { ^ ../tools/b.c:46:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ ../tools/b.c:48:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] xflush() { ^ ../tools/b.c:49:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ ../tools/b.c:55:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] main(int argc, char **argv) { ^ ../tools/b.c:56:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], eof, *ns, nerror; ~~~~~~ ^ ../tools/b.c:56:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], eof, *ns, nerror; ~~~~~~ ^ ../tools/b.c:50:13: note: expanded from macro 'eof' #define eof xeof ^ ../tools/b.c:56:26: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], eof, *ns, nerror; ~~~~~~ ^ ../tools/b.c:56:30: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], eof, *ns, nerror; ~~~~~~ ^ ../tools/b.c:57:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern fin, fout; ~~~~~~ ^ ../tools/b.c:57:15: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern fin, fout; ~~~~~~ ^ ../tools/b.c:62:9: warning: implicit declaration of function 'error' is invalid in C99 [-Wimplicit-function-declaration] error('fo'); ^ ../tools/b.c:74:5: warning: implicit declaration of function 'extdef' is invalid in C99 [-Wimplicit-function-declaration] extdef(); ^ ../tools/b.c:75:5: warning: implicit declaration of function 'blkend' is invalid in C99 [-Wimplicit-function-declaration] blkend(); ^ ../tools/b.c:81:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], symbuf[], eof, *ns; ~~~~~~ ^ ../tools/b.c:81:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], symbuf[], eof, *ns; ~~~~~~ ^ ../tools/b.c:81:30: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], symbuf[], eof, *ns; ~~~~~~ ^ ../tools/b.c:50:13: note: expanded from macro 'eof' #define eof xeof ^ ../tools/b.c:81:36: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symtab[], symbuf[], eof, *ns; ~~~~~~ ^ ../tools/b.c:82:9: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto *np, *sp, *rp; ~~~~ ^ ../tools/b.c:82:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto *np, *sp, *rp; ~~~~ ^ ../tools/b.c:82:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto *np, *sp, *rp; ~~~~ ^ ../tools/b.c:107:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (*ns = *sp) { ~~~~^~~~~ ../tools/b.c:107:14: note: place parentheses around the assignment to silence this warning while (*ns = *sp) { ^ ( ) ../tools/b.c:107:14: note: use '==' to turn this assignment into an equality comparison while (*ns = *sp) { ^ == ../tools/b.c:115:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] symbol() { ^ ../tools/b.c:116:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:116:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:116:28: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:116:37: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:116:44: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:50:13: note: expanded from macro 'eof' #define eof xeof ^ ../tools/b.c:116:49: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:116:56: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:116:62: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval; ~~~~~~ ^ ../tools/b.c:117:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto b, c, ct, *sp; ~~~~ ^ ../tools/b.c:117:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto b, c, ct, *sp; ~~~~ ^ ../tools/b.c:117:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto b, c, ct, *sp; ~~~~ ^ ../tools/b.c:117:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto b, c, ct, *sp; ~~~~ ^ ../tools/b.c:148:12: warning: implicit declaration of function 'subseq' is invalid in C99 [-Wimplicit-function-declaration] return(subseq('=',80,60)); ^ ../tools/b.c:200:5: warning: implicit declaration of function 'getcc' is invalid in C99 [-Wimplicit-function-declaration] getcc(); ^ ../tools/b.c:229:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] subseq(c,a,b) { ^ ../tools/b.c:230:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peekc; ~~~~~~ ^ ../tools/b.c:240:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] getcc() { ^ ../tools/b.c:241:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern cval; ~~~~~~ ^ ../tools/b.c:242:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto c; ~~~~ ^ ../tools/b.c:245:12: warning: implicit declaration of function 'mapch' is invalid in C99 [-Wimplicit-function-declaration] if ((c = mapch('\'')) < 0) ^ ../tools/b.c:246:5: error: non-void function 'getcc' should return a value [-Wreturn-type] return; ^ ../tools/b.c:249:5: error: non-void function 'getcc' should return a value [-Wreturn-type] return; ^ ../tools/b.c:255:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] mapch(c) { ^ ../tools/b.c:256:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peekc; ~~~~~~ ^ ../tools/b.c:257:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto a; ~~~~ ^ ../tools/b.c:295:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] expr(lev) { ^ ../tools/b.c:296:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, isn; ~~~~~~ ^ ../tools/b.c:296:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, isn; ~~~~~~ ^ ../tools/b.c:296:26: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, isn; ~~~~~~ ^ ../tools/b.c:296:32: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, isn; ~~~~~~ ^ ../tools/b.c:297:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o; ~~~~ ^ ../tools/b.c:304:7: warning: implicit declaration of function 'gen' is invalid in C99 [-Wimplicit-function-declaration] gen('c',cval); /* consop */ ^ ../tools/b.c:308:5: warning: implicit declaration of function 'number' is invalid in C99 [-Wimplicit-function-declaration] number(cval); ^ ../tools/b.c:329:9: warning: implicit declaration of function 'name' is invalid in C99 [-Wimplicit-function-declaration] name(csym+2); ^ ../tools/b.c:372:5: warning: implicit declaration of function 'pexpr' is invalid in C99 [-Wimplicit-function-declaration] pexpr(); ^ ../tools/b.c:439:11: error: non-void function 'expr' should return a value [-Wreturn-type] return; ^ ../tools/b.c:450:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] pexpr() { ^ ../tools/b.c:454:7: error: non-void function 'pexpr' should return a value [-Wreturn-type] return; ^ ../tools/b.c:459:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] declare(kw) { ^ ../tools/b.c:460:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:460:17: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:460:23: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:461:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o; ~~~~ ^ ../tools/b.c:482:12: warning: '&' within '|' [-Wbitwise-op-parentheses] if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ; param ')' */ ~~~~~^~~~~~~ ~ ../tools/b.c:482:12: note: place parentheses around the '&' expression to silence this warning if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ; param ')' */ ^ ( ) ../tools/b.c:482:27: warning: '&' within '|' [-Wbitwise-op-parentheses] if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ; param ')' */ ~ ~~~~~^~~~~~~ ../tools/b.c:482:27: note: place parentheses around the '&' expression to silence this warning if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ; param ')' */ ^ ( ) ../tools/b.c:483:5: error: non-void function 'declare' should return a value [-Wreturn-type] return; ^ ../tools/b.c:488:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extdef() { ^ ../tools/b.c:489:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:489:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:489:26: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:489:32: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, *csym, cval, nauto; ~~~~~~ ^ ../tools/b.c:490:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o, c; ~~~~ ^ ../tools/b.c:490:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o, c; ~~~~ ^ ../tools/b.c:494:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:518:5: warning: implicit declaration of function 'stmtlist' is invalid in C99 [-Wimplicit-function-declaration] stmtlist(); ^ ../tools/b.c:520:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:528:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:534:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:539:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:578:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:582:5: error: non-void function 'extdef' should return a value [-Wreturn-type] return; ^ ../tools/b.c:586:3: warning: implicit declaration of function 'stmt' is invalid in C99 [-Wimplicit-function-declaration] stmt(); ^ ../tools/b.c:589:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] stmtlist() { ^ ../tools/b.c:590:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, eof; ~~~~~~ ^ ../tools/b.c:590:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, eof; ~~~~~~ ^ ../tools/b.c:50:13: note: expanded from macro 'eof' #define eof xeof ^ ../tools/b.c:591:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o; ~~~~ ^ ../tools/b.c:595:7: error: non-void function 'stmtlist' should return a value [-Wreturn-type] return; ^ ../tools/b.c:602:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] stmt() { ^ ../tools/b.c:603:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, peekc, *csym, cval, isn, nauto; ~~~~~~ ^ ../tools/b.c:603:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, peekc, *csym, cval, isn, nauto; ~~~~~~ ^ ../tools/b.c:603:27: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, peekc, *csym, cval, isn, nauto; ~~~~~~ ^ ../tools/b.c:603:33: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, peekc, *csym, cval, isn, nauto; ~~~~~~ ^ ../tools/b.c:603:39: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, peekc, *csym, cval, isn, nauto; ~~~~~~ ^ ../tools/b.c:603:44: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] extern peeksym, peekc, *csym, cval, isn, nauto; ~~~~~~ ^ ../tools/b.c:604:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o, o1, o2; ~~~~ ^ ../tools/b.c:604:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o, o1, o2; ~~~~ ^ ../tools/b.c:604:15: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] auto o, o1, o2; ~~~~ ^ ../tools/b.c:611:5: error: non-void function 'stmt' should return a value [-Wreturn-type] return; ^ ../tools/b.c:615:5: error: non-void function 'stmt' should return a value [-Wreturn-type] return; ^ ../tools/b.c:619:5: error: non-void function 'stmt' should return a value [-Wreturn-type] return; ^ ../tools/b.c:641:7: warning: implicit declaration of function 'jumpc' is invalid in C99 [-Wimplicit-function-declaration] jumpc(o1); ^ ../tools/b.c:647:9: warning: implicit declaration of function 'jump' is invalid in C99 [-Wimplicit-function-declaration] jump(o2); ^ ../tools/b.c:648:9: warning: implicit declaration of function 'label' is invalid in C99 [-Wimplicit-function-declaration] label(o1); ^ ../tools/b.c:651:9: error: non-void function 'stmt' should return a value [-Wreturn-type] return; ^ ../tools/b.c:655:7: error: non-void function 'stmt' should return a value [-Wreturn-type] return; ^ ../tools/b.c:669:7: error: non-void function 'stmt' should return a value [-Wreturn-type] return; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 91 warnings and 20 errors generated.
I
II
scans/un.s
scans/un.s:11: t1 not defined
scans/un.s:19: t1 not defined
scans/un.s:23: t1 not defined
scans/un.s:25: t1 not defined
scans/un.s:26: ca1 not defined
Some Graphics II characters look strange. I invite everyone to make notes here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.