From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 25502 invoked from network); 3 Apr 2021 08:40:58 -0000 Received: from 1ess.inri.net (216.126.196.35) by inbox.vuxu.org with ESMTPUTF8; 3 Apr 2021 08:40:58 -0000 Received: from mail-io1-f43.google.com ([209.85.166.43]) by 1ess; Sat Apr 3 01:11:55 -0400 2021 Received: by mail-io1-f43.google.com with SMTP id e8so7136094iok.5 for <9front@9front.org>; Fri, 02 Apr 2021 22:11:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:mime-version:subject:message-id:date :to; bh=xEltoWZNZJSzFvvVeai9GCP8Y5Y+MhfC6KDd39QfUaQ=; b=nps9Kb+BVESXDq8MDCN69Ula/mx3OMy7HoJhDO35gldSRKPQzZSEi594H5LPjP4NFd BRIjYZk95TzBKv+yWAC+WNCt4sRASza/CEH7MlckcWA73SniUzv+RIPgtS7DpF5x+N+R DTFqXgggbhQvE0nNVqSGPEGo5H/zA6FCh/3MvyEykQwC2Rfz6ynKWM2UWQrGx+RP6Ze9 f4cmOJzgmRlB8NxqFhmNlRFQ4aWTE6FB9fKmu3eIPv6oHfZYOz/KnxjC2vcQuzrKU7Tr /Sa5pekONt7d23qWCYNBmzsG6tJ2hY76A5wmLN29COX73rxik/s9ZgYvM3jWlCbm18CV sn5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:to; bh=xEltoWZNZJSzFvvVeai9GCP8Y5Y+MhfC6KDd39QfUaQ=; b=sMtLO1/vLt4oj6ibyTecj/TQCZdr8BHLwTcEn8fjRCnqSsYlTnAZoSr/xamoffRMAJ C5n/cN45/vQU2auC5I0To10jssUzDV88svjIvnpshoNwgDNPZCswUbl+BXbCgzMOswCl hURVwQ8PB4SiBFYPCwMVYlsk9H6nuPc/D2oExTUeIq4TY3y/5aXDaR8Q7KSMgSW1qiim vFGAmepIVihb0xLui44tIyiJf46zKshCZlievOBZ38a4NLszpmY5SkO5kyjpQZywsgZA J8N5DA4rNrAlDMnW5h8DVsp8vsgHa2k7Ku6wjS2r1v8/mm1SIHq1vQO1fCldmv9goHEa vKCA== X-Gm-Message-State: AOAM530fnYu6wT665utih2aCWqsR2sVobuvpppI3oI90KPVvqWZXW6Ga 1d93c8l3uRoZ8qgsqQFqWk/dFITlsRs= X-Google-Smtp-Source: ABdhPJxytaeEbZhaWcnPfPtGqg2Na30doZW/ZEM/FDX7mGwv9WOpEKVpN46NAJAPNyheskzEO/5+kg== X-Received: by 2002:a6b:5c0d:: with SMTP id z13mr13026349ioh.6.1617426706422; Fri, 02 Apr 2021 22:11:46 -0700 (PDT) Return-Path: Received: from [10.0.1.7] (c-67-184-39-205.hsd1.il.comcast.net. [67.184.39.205]) by smtp.gmail.com with ESMTPSA id c3sm5545067iln.76.2021.04.02.22.11.45 for <9front@9front.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Apr 2021 22:11:46 -0700 (PDT) From: Xiao-Yong Jin Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Message-Id: <93F707C3-3F64-41B8-8C6C-049D8588C476@gmail.com> Date: Sat, 3 Apr 2021 00:11:45 -0500 To: 9front@9front.org X-Mailer: Apple Mail (2.3654.60.0.2.21) List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: stateless factory STM interface Subject: [9front] miscellaneous changes in ape Reply-To: 9front@9front.org Precedence: bulk They are pretty much disjoint. 1. ape/grep, ape/ls: handles/ignores more arguments 2. ape/signal.h, ape/sys/stat.h, plan9/lib.h, python/pyconfig.h: define = more macros that does nothing, and remove those from pyconfig.h 3. getfcr.s, _envsetup.c: calls setfcr(FPPDBL|FPRNR) for all APE = executables 4. nanosleep: sets errno when error diff -r cc26fdf57bb2 rc/bin/ape/grep --- a/rc/bin/ape/grep Sat Mar 13 14:57:53 2021 +0100 +++ b/rc/bin/ape/grep Fri Apr 02 23:54:39 2021 -0500 @@ -7,7 +7,10 @@ argv0=3D$0 while(! ~ $#* 0){ switch($1){ - case -[cefinsv] + case -[ef] + opts=3D($opts $1 $2) + shift + case -[cinsv] opts=3D($opts $1) case -q opts=3D($opts -s) diff -r cc26fdf57bb2 rc/bin/ape/ls --- a/rc/bin/ape/ls Sat Mar 13 14:57:53 2021 +0100 +++ b/rc/bin/ape/ls Fri Apr 02 23:54:39 2021 -0500 @@ -14,6 +14,7 @@ # -c show ctime # -d dirs # -f no sorting +# -i inode # -l long # -p put slash after dir (-F) # -r reverse @@ -23,7 +24,7 @@ # -1 single-column =20 =20 -flagfmt=3D'A,C,F,H,L,R,U,a,c,d,f,l,p,r,s,t,u,1' +flagfmt=3D'A,C,F,H,L,R,U,a,c,d,f,i,l,p,r,s,t,u,1' args=3D'[file ...]' =20 if(! ifs=3D() eval `{aux/getflags $*}){ @@ -48,6 +49,7 @@ # ignore -a, -c if(~ $flagd 1) all=3D($all -d) if(~ $flagf 1) all=3D($all -n) +# ignore -i if(~ $flagl 1) { all=3D($all -l); post=3Dfixlong } if(~ $flagp 1) all=3D($all -F) if(~ $flagr 1) all=3D($all -r) diff -r cc26fdf57bb2 sys/include/ape/signal.h --- a/sys/include/ape/signal.h Sat Mar 13 14:57:53 2021 +0100 +++ b/sys/include/ape/signal.h Fri Apr 02 23:54:39 2021 -0500 @@ -37,11 +37,12 @@ #define SIGTSTP 18 /* interactive stop */ #define SIGTTIN 19 /* read from ctl tty by member of = background */ #define SIGTTOU 20 /* write to ctl tty by member of = background */ -#define SIGVTALRM 21 /* virtual alarm clock */ -#define SIGPROF 22 /* profiling alarm clock */ +#define SIGVTALRM 21 /* virtual alarm clock */ +#define SIGPROF 22 /* profiling alarm clock */ +#define SIGWINCH 23 /* window size change */ =20 #ifdef _BSD_EXTENSION -#define NSIG 23 +#define NSIG 24 #endif =20 #ifdef __cplusplus diff -r cc26fdf57bb2 sys/src/ape/lib/ap/plan9/lib.h --- a/sys/src/ape/lib/ap/plan9/lib.h Sat Mar 13 14:57:53 2021 +0100 +++ b/sys/src/ape/lib/ap/plan9/lib.h Fri Apr 02 23:54:39 2021 -0500 @@ -44,7 +44,7 @@ #define FD_BUFFEREDX 0x8 #define FD_ISTTY 0x20 =20 -#define MAXSIG SIGPROF +#define MAXSIG SIGWINCH =20 extern Fdinfo _fdinfo[]; =20 diff -r cc26fdf57bb2 sys/include/ape/sys/stat.h --- a/sys/include/ape/sys/stat.h Sat Mar 13 14:57:53 2021 +0100 +++ b/sys/include/ape/sys/stat.h Fri Apr 02 23:54:39 2021 -0500 @@ -27,6 +27,7 @@ #define S__MASK 0170000 #ifdef _RESEARCH_SOURCE #define S_ISLNK(m) (((m)&S__MASK) =3D=3D 0120000) +#define S_ISSOCK(m) (((m)&S__MASK) =3D=3D 0010000) #endif #define S_ISREG(m) (((m)&S__MASK) =3D=3D 0100000) #define S_ISDIR(m) (((m)&S__MASK) =3D=3D 0040000) diff -r cc26fdf57bb2 sys/src/cmd/python/pyconfig.h --- a/sys/src/cmd/python/pyconfig.h Sat Mar 13 14:57:53 2021 +0100 +++ b/sys/src/cmd/python/pyconfig.h Fri Apr 02 23:54:39 2021 -0500 @@ -44,10 +44,6 @@ typedef unsigned short u_short; typedef unsigned long u_long; =20 -#define SIGWINCH 21 /* for curses */ - -#define S_ISSOCK S_ISFIFO /* for hg, see /sys/include/ape/sys/stat.h */ - /* Define if --enable-ipv6 is specified */ #define ENABLE_IPV6 1 =20 diff -r cc26fdf57bb2 sys/src/ape/lib/ap/amd64/getfcr.s --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sys/src/ape/lib/ap/amd64/getfcr.s Fri Apr 02 23:54:39 2021 -0500 @@ -0,0 +1,38 @@ + +TEXT setfcr(SB), $4 + XORL $(0x3F<<7),RARG /* bits are cleared in csr to enable = them */ + ANDL $0xFFC0, RARG /* just the fcr bits */ + WAIT /* is this needed? */ + STMXCSR 0(SP) + MOVL 0(SP), AX + ANDL $~0x3F, AX + ORL RARG, AX + MOVL AX, 0(SP) + LDMXCSR 0(SP) + RET + +TEXT getfcr(SB), $4 + WAIT + STMXCSR 0(SP) + MOVWLZX 0(SP), AX + ANDL $0xFFC0, AX + XORL $(0x3F<<7),AX + RET + +TEXT getfsr(SB), $4 + WAIT + STMXCSR 0(SP) + MOVL 0(SP), AX + ANDL $0x3F, AX + RET + +TEXT setfsr(SB), $4 + ANDL $0x3F, RARG + WAIT + STMXCSR 0(SP) + MOVL 0(SP), AX + ANDL $~0x3F, AX + ORL RARG, AX + MOVL AX, 0(SP) + LDMXCSR 0(SP) + RET diff -r cc26fdf57bb2 sys/src/ape/lib/ap/amd64/mkfile --- a/sys/src/ape/lib/ap/amd64/mkfile Sat Mar 13 14:57:53 2021 +0100 +++ b/sys/src/ape/lib/ap/amd64/mkfile Fri Apr 02 23:54:39 2021 -0500 @@ -5,6 +5,7 @@ OFILES=3D\ _seek.$O\ cycles.$O\ + getfcr.$O\ lock.$O\ main9.$O\ main9p.$O\ --- a/sys/src/ape/lib/ap/plan9/_envsetup.c Sat Mar 13 14:57:53 2021 = +0100 +++ b/sys/src/ape/lib/ap/plan9/_envsetup.c Fri Apr 02 23:54:39 2021 = -0500 @@ -6,6 +6,7 @@ #include #include #include +#include #include "sys9.h" #include "dir.h" =20 @@ -23,6 +24,7 @@ unsigned long _clock; static void fdsetup(char *, char *); static void sigsetup(char *, char *); +extern void setfcr(ulong); =20 enum { Envhunk=3D7000, @@ -45,6 +47,9 @@ nohandle =3D 0; fdinited =3D 0; cnt =3D 0; + + setfcr(FPPDBL|FPRNR); + dfd =3D _OPEN("/env", OREAD); if(dfd < 0) goto done; diff -r cc26fdf57bb2 sys/src/ape/lib/ap/posix/nanosleep.c --- a/sys/src/ape/lib/ap/posix/nanosleep.c Sat Mar 13 14:57:53 2021 = +0100 +++ b/sys/src/ape/lib/ap/posix/nanosleep.c Fri Apr 02 23:54:39 2021 = -0500 @@ -11,6 +11,7 @@ =20 ms =3D req->tv_sec * 1000 + (req->tv_nsec + 999999) / 1000000; if(_SLEEP(ms) < 0) { + _syserrno(); if(rem) { rem->tv_sec =3D rem->tv_nsec =3D 0; /* needs = better handling */ }