I am still fascinated by the VAX architecture manual which designates as "unpredictable" many things with consequences including machine crash. Pissed that I can't get my vaxen to crash or burst into flames.
Bruce's law: undefined != stupid
Sent from my iPadgcc is indeed a very sad tome. The mmap of 0 is disgusting. I like kenc. It just works. My behaviour this afternoon will be undefined but not as stupid as that of some programmers.
On 26/11/2015 5:43 AM, "Brantley Coile" <brantleycoile@me.com> wrote:Align it to column 7 and it looks like all the code I saw when I started.
iPhone emailNeither! It's what happens when you run sed 's/^\s*//' on your whole code base, yielding results like (from cmd/yacc.c):voidsetup(int argc, char *argv[]){long c, t;int i, j, fd, lev, ty, ytab, *p;int vflag, dflag, stem;char actnm[8], *stemc, *s, dirbuf[128];Biobuf *fout;ytab = 0;vflag = 0;dflag = 0;stem = 0;stemc = "y";foutput = 0;fdefine = 0;fdebug = 0;ARGBEGIN{case 'v':case 'V':vflag++;break;case 'D':yydebug = ARGF();break;case 'a':yyarg = 1;break;case 'd':dflag++;break;case 'l':yyline = 0;break;case 'o':ytab++;ytabc = ARGF();break;case 's':stem++;stemc = ARGF();break;case 'S':parser = PARSERS;break;default:error("illegal option: %c", ARGC());}ARGENDopenup(stemc, dflag, vflag, ytab, ytabc);fout = dflag?fdefine:ftable;if(yyarg){Bprint(ftable, "#define\tYYARG\t1\n\n");}if((fd = mkstemp(ttempname)) >= 0){tempname = ttempname;ftemp = Bfdopen(fd, OWRITE);}if((fd = mkstemp(tactname)) >= 0){actname = tactname;faction = Bfdopen(fd, OWRITE);}if(ftemp == 0 || faction == 0)error("cannot open temp file");if(argc < 1)error("no input file");infile = argv[0];if(infile[0] != '/' && getwd(dirbuf, sizeof dirbuf)!=nil){i = strlen(infile)+1+strlen(dirbuf)+1+10;s = malloc(i);if(s != nil){snprint(s, i, "%s/%s", dirbuf, infile);cleanname(s);infile = s;}}finput = Bopen(infile, OREAD);if(finput == 0)error("cannot open '%s'", argv[0]);cnamp = cnames;defin(0, "$end");extval = PRIVATE; /* tokens start in unicode 'private use' */defin(0, "error");defin(1, "$accept");defin(0, "$unk");mem = mem0;i = 0;for(t = gettok(); t != MARK && t != ENDFILE;)switch(t) {case ';':t = gettok();break;case START:if(gettok() != IDENTIFIER)error("bad %%start construction");start = chfind(1, tokname);t = gettok();continue;case TYPEDEF:if(gettok() != TYPENAME)error("bad syntax in %%type");ty = numbval;for(;;) {t = gettok();switch(t) {case IDENTIFIER:if((t=chfind(1, tokname)) < NTBASE) {j = TYPE(toklev[t]);if(j != 0 && j != ty)error("type redeclaration of token %s",tokset[t].name);elseSETTYPE(toklev[t], ty);} else {j = nontrst[t-NTBASE].value;if(j != 0 && j != ty)error("type redeclaration of nonterminal %s",nontrst[t-NTBASE].name );elsenontrst[t-NTBASE].value = ty;}case ',':continue;case ';':t = gettok();default:break;}break;}continue;case UNION:/* copy the union declaration to the output */cpyunion();t = gettok();continue;case LEFT:case BINARY:case RIGHT:i++;case TERM:/* nonzero means new prec. and assoc. */lev = t-TERM;ty = 0;/* get identifiers so defined */t = gettok();/* there is a type defined */if(t == TYPENAME) {ty = numbval;t = gettok();}for(;;) {switch(t) {case ',':t = gettok();continue;case ';':break;case IDENTIFIER:j = chfind(0, tokname);if(j >= NTBASE)error("%s defined earlier as nonterminal", tokname);if(lev) {if(ASSOC(toklev[j]))error("redeclaration of precedence of %s", tokname);SETASC(toklev[j], lev);SETPLEV(toklev[j], i);}if(ty) {if(TYPE(toklev[j]))error("redeclaration of type of %s", tokname);SETTYPE(toklev[j],ty);}t = gettok();if(t == NUMBER) {tokset[j].value = numbval;if(j < ndefout && j > 3)error("please define type number of %s earlier",tokset[j].name);t = gettok();}continue;}break;}continue;case LCURLY:defout(0);cpycode();t = gettok();continue;default:error("syntax error");}if(t == ENDFILE)error("unexpected EOF before %%");/* t is MARK */if(!yyarg)Bprint(ftable, "extern int yyerrflag;\n");Bprint(ftable, "#ifndef YYMAXDEPTH\n");Bprint(ftable, "#define YYMAXDEPTH 150\n");Bprint(ftable, "#endif\n" );if(!ntypes) {Bprint(ftable, "#ifndef YYSTYPE\n");Bprint(ftable, "#define YYSTYPE int\n");Bprint(ftable, "#endif\n");}if(!yyarg){Bprint(ftable, "YYSTYPE yylval;\n");Bprint(ftable, "YYSTYPE yyval;\n");}else{if(dflag)Bprint(ftable, "#include \"%s.%s\"\n\n", stemc, FILED);Bprint(fout, "struct Yyarg {\n");Bprint(fout, "\tint\tyynerrs;\n");Bprint(fout, "\tint\tyyerrflag;\n");Bprint(fout, "\tvoid*\targ;\n");Bprint(fout, "\tYYSTYPE\tyyval;\n");Bprint(fout, "\tYYSTYPE\tyylval;\n");Bprint(fout, "};\n\n");}prdptr[0] = mem;/* added production */*mem++ = NTBASE;/* if start is 0, we will overwrite with the lhs of the first rule */*mem++ = start;*mem++ = 1;*mem++ = 0;prdptr[1] = mem;while((t=gettok()) == LCURLY)cpycode();if(t != IDENTCOLON)error("bad syntax on first rule");if(!start)prdptr[0][1] = chfind(1, tokname);/* read rules */while(t != MARK && t != ENDFILE) {/* process a rule */rlines[nprod] = lineno;if(t == '|')*mem++ = *prdptr[nprod-1];elseif(t == IDENTCOLON) {*mem = chfind(1, tokname);if(*mem < NTBASE)error("token illegal on LHS of grammar rule");mem++;} elseerror("illegal rule: missing semicolon or | ?");/* read rule body */t = gettok();more_rule:while(t == IDENTIFIER) {*mem = chfind(1, tokname);if(*mem < NTBASE)levprd[nprod] = toklev[*mem];mem++;t = gettok();}if(t == PREC) {if(gettok() != IDENTIFIER)error("illegal %%prec syntax");j = chfind(2, tokname);if(j >= NTBASE)error("nonterminal %s illegal after %%prec",nontrst[j-NTBASE].name);levprd[nprod] = toklev[j];t = gettok();}if(t == '=') {levprd[nprod] |= ACTFLAG;Bprint(faction, "\ncase %d:", nprod);cpyact(mem-prdptr[nprod]-1);Bprint(faction, " break;");if((t=gettok()) == IDENTIFIER) {/* action within rule... */sprint(actnm, "$$%d", nprod);/* make it a nonterminal */j = chfind(1, actnm);/** the current rule will become rule number nprod+1* move the contents down, and make room for the null*/for(p = mem; p >= prdptr[nprod]; --p)p[2] = *p;mem += 2;/* enter null production for action */p = prdptr[nprod];*p++ = j;*p++ = -nprod;/* update the production information */levprd[nprod+1] = levprd[nprod] & ~ACTFLAG;levprd[nprod] = ACTFLAG;if(++nprod >= NPROD)error("more than %d rules", NPROD);prdptr[nprod] = p;/* make the action appear in the original rule */*mem++ = j;/* get some more of the rule */goto more_rule;}}while(t == ';')t = gettok();*mem++ = -nprod;/* check that default action is reasonable */if(ntypes && !(levprd[nprod]&ACTFLAG) && nontrst[*prdptr[nprod]-NTBASE].value) {/* no explicit action, LHS has value */int tempty;tempty = prdptr[nprod][1];if(tempty < 0)error("must return a value, since LHS has a type");elseif(tempty >= NTBASE)tempty = nontrst[tempty-NTBASE].value;elsetempty = TYPE(toklev[tempty]);if(tempty != nontrst[*prdptr[nprod]-NTBASE].value)error("default action causes potential type clash");}nprod++;if(nprod >= NPROD)error("more than %d rules", NPROD);prdptr[nprod] = mem;levprd[nprod] = 0;}/* end of all rules */defout(1);finact();if(t == MARK) {Bprint(ftable, "\n");if(yyline)Bprint(ftable, "#line\t%d\t\"%s\"\n", lineno, infile);while((c=Bgetrune(finput)) != Beof)Bputrune(ftable, c);}Bterm(finput);}On Wed, Nov 25, 2015 at 10:03 AM, <plannine@sigint.cs.purdue.edu> wrote:On Wed, Nov 25, 2015 at 09:25:55AM -0500, Brantley Coile wrote:
> unindented consequences
Is that a class of Python bugs or an awesome name for a Nerdcore band?
--Ryan[ERROR]: Your autotools build scripts are 200 lines longer than your program. Something’s wrong.