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=-1.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 2981 invoked from network); 11 Oct 2022 23:07:50 -0000 Received: from tb-ob1.topicbox.com (64.147.108.173) by inbox.vuxu.org with ESMTPUTF8; 11 Oct 2022 23:07:50 -0000 Received: from tb-mx0.topicbox.com (tb-mx0.nyi.icgroup.com [10.90.30.73]) by tb-ob1.topicbox.com (Postfix) with ESMTP id A2F9D3174D for ; Tue, 11 Oct 2022 19:07:48 -0400 (EDT) (envelope-from bounce.mMef61e79840761b466a422d9a.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx0.topicbox.com (Postfix, from userid 1132) id A1DEC424C98E; Tue, 11 Oct 2022 19:07:48 -0400 (EDT) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=blU6AXt/ header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=rminnich@gmail.com smtp.helo=mail-lf1-f45.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1665529668; bh=hVdRPMo7eiQ0aSTO dyOlby5Xd8BZlCThp2HXJLc5UhA=; b=Da2HzJIR0h8hRJisOl0UVmNjiis7avks C6lXQ/lRMtCTyBqLl+HvyEexdR0OUrUG6n/uBrUQhBokASUQgEhqbUiysfdg4xzq xW23e40C3OQYq2lRDkLfrHG4ntmMwey0xYb94rfQ6+UupTQ5nPVMTnsanuu6vi2a //dSk/grdjI= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1665529668; b=KGfcNXY3SvhAsA0HNt0Jf5+h/TZ7D6GxSBFcoBbGdjd0cdF5TP kaq5qXiX+ky71Yhu5lcwao5+2+86tElHlkTQvtY7w4iha3ALrFyI643y7gliEP8s F2QWNkgEYx7v6x7SuA+DLQdZ787wYGZSyHsutUiEXw5RpeFU+IUT5/z24= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=blU6AXt/ header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=rminnich@gmail.com smtp.helo=mail-lf1-f45.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=blU6AXt/ header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.167.45 (mail-lf1-f45.google.com); spf=pass smtp.mailfrom=rminnich@gmail.com smtp.helo=mail-lf1-f45.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=tsDlralP; x-me-sender=none; x-ptr=pass smtp.helo=mail-lf1-f45.google.com policy.ptr=mail-lf1-f45.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; t=1665529668; x=1665616068; bh=TtMC3BzE5mK+FlqxCEEzRMIWvm38mYgB uZK6xxfwWVU=; b=mgtqLPwXMWW+zq1hsYMsQnjdZZ1oOKgy7F17x0gHEiLdez6W +rrTqvPAbuqgs44RH0Aayi4MQ2xLa/7R7ht7w5GTH8Pl3NoT7vPJmPBBUWfU1qRE 4ObdsPTvPwTlCNvXZxeSr0ARHvISjX8cuIdX6OmGOQs1yr96JHDYPGEvsnM= Received: from tb-mx0.topicbox.com (localhost.local [127.0.0.1]) by tb-mx0.topicbox.com (Postfix) with ESMTP id E4194424C566 for <9fans@9fans.net>; Tue, 11 Oct 2022 19:07:36 -0400 (EDT) (envelope-from rminnich@gmail.com) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id 7B806FE2315; Tue, 11 Oct 2022 19:07:36 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1665529656; b=jarE9cxirhlYAVWIvhQStYXRn4eJm7g4c7KjtKH4ZGyBqro4Tp X2sn4SxTW8SaTY3HFSEoIFzI0XO8c/tKxOdIf3Wedc5KNSzPGVNK6jhtJmoyxMnS dfhwdBJGb7g7EAtD94fwgRujmVU1a5uVl3wd/M0FA4SaWT7r5KNhW2Rs5wm846yB 3OFNvO3m7YzXaV9usBoW3uTfpb7ZRQhPEPXlnl/Shm2BTpaVjWY3pg0nt48byMsG plFavNG767BTtOdMg6Z8GIbAx2nOw712XnNwf9V/UbWJPs8/PNv2eTgm0sb6WDZk WG3fUAPf3Vte661mHnC4iHK5IPWrZH3fxyJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type; s=arcseal; t=1665529656; bh=t6pgLFWCAQ93B38br9NUwyERiVJ4Wx34DK12IrahARw=; b=qcNEEqJfu8cx Vw6TDDsHnqX0s5TFiEIeki0vsQUB/hoQd5XeeE6pYY8n5FP4JkFvMD+YecFfnu80 dPLGbIgok0Z6F8nMDKJS0ADLZ716ENzQgAN6aBphdNgsj2JhNhwQa4iC8+JYImFv 76nOrJVPSA15nPIZ76/WqFNEw+/Mv7nmzCOvQp7SIb2hcJSYmlqx2Pz9VK1ePlsn afJ/OFpcdN6qsso80YG8pzNw2eLugLv28lGl/83QNIn2mQZQB85t4CaF8g1ZwOoo VyO+7U+0YkwqsZW6pNTuijSg8F1owJZWyDq/DUJ2Pg9WcU+VnhDG8btDEgTdq9rh UeFnUmpTpg== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=blU6AXt/ header.a=rsa-sha256 header.s=20210112 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.167.45 (mail-lf1-f45.google.com); spf=pass smtp.mailfrom=rminnich@gmail.com smtp.helo=mail-lf1-f45.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=tsDlralP; x-me-sender=none; x-ptr=pass smtp.helo=mail-lf1-f45.google.com policy.ptr=mail-lf1-f45.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeejjedgudelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpeggfhgjhf ffkffuvfgtsegrtderredttdejnecuhfhrohhmpehrohhnuchmihhnnhhitghhuceorhhm ihhnnhhitghhsehgmhgrihhlrdgtohhmqeenucggtffrrghtthgvrhhnpeetleeiveelfe dvffejkedvgfetveduieffffeuheejjeehfefggeegkeekkeegtdenucffohhmrghinhep ghhithhhuhgsrdgtohhmpdhnvghtlhhisgdrohhrghdprghrtghhihhvvgdrohhrghdpsh ifthgthhdrtghomhdpqhhuihhnthhilhgvrdhnvghtpdhgohhoghhlvgdrtghomhdpthho phhitggsohigrdgtohhmnecukfhppedvtdelrdekhedrudeijedrgeehnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvddtledrkeehrdduieejrdeghedp hhgvlhhopehmrghilhdqlhhfuddqfheghedrghhoohhglhgvrdgtohhmpdhmrghilhhfrh homhepoehrmhhinhhnihgthhesghhmrghilhdrtghomheq X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'rminnich@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="rminnich@gmail.com"; helo=mail-lf1-f45.google.com; client-ip=209.85.167.45 Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx0.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Tue, 11 Oct 2022 19:07:36 -0400 (EDT) (envelope-from rminnich@gmail.com) Received: by mail-lf1-f45.google.com with SMTP id y5so23335730lfl.4 for <9fans@9fans.net>; Tue, 11 Oct 2022 16:07:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=t6pgLFWCAQ93B38br9NUwyERiVJ4Wx34DK12IrahARw=; b=tsDlralPzy2E/SDtpp2abA96d0MyFEZqh9AK7NL+7UFwzjgUeJU4xZmmAiqHVfrRG/ NijoOwY2rKH6D0Ei4wC1ZL29BRqOBCX+wXGWmRUq/wI+dG0nja6616HVv+mZDcKTPegx Dw+IWpalT2dvhDLiYkdYvB/C6vkkNnBnbqm6sLePzbrG/NjIaQyu/SJsL52ahDZbdLa+ UrAEeCpkbxa9vX/j3qekaQruLOBu2IaU1hZZxcv4ojN8a0AHMI9eCzTANn2NSb+xGDMe tijLusmio2h4dWjwFITfYhknu9D7uLOIHAAr+6bjmw1U3qMjY4e2qOkgnn26y9PTWy8o sW9Q== X-Gm-Message-State: ACrzQf1GklszM1HUDIC3IQPSdz8bPNXzAaE6Ohup0weFaaJ07g1G24UF 3a00Wt7DNKanp+UhUDjrbzFE4fUBa09u3HxjSwnah1rAhYHpQQ== X-Google-Smtp-Source: AMsMyM5VLvpMzYmulYcE2Awpum9qATBPMgimBH40VnPs+WLa+gtJ2sSlfj3UWIBhwUlxV5+I8k4vz8JLNL9KU4EJu3s= X-Received: by 2002:a05:6512:798:b0:497:aa2b:8b10 with SMTP id x24-20020a056512079800b00497aa2b8b10mr10371266lfr.636.1665529654158; Tue, 11 Oct 2022 16:07:34 -0700 (PDT) MIME-Version: 1.0 References: <1dfd0e13-8435-4c8c-8f59-440751c3c4da@riseup.net> In-Reply-To: From: ron minnich Date: Tue, 11 Oct 2022 16:07:22 -0700 Message-ID: Subject: Re: [9fans] How can I compile c code written for plan9 in ANIS C compiler To: 9fans <9fans@9fans.net> Content-Type: multipart/alternative; boundary=000000000000662bde05eaca57ab Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 8204b036-49b9-11ed-9aca-aad27f9d70b8 Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UNDIyMzc4ZmMyNTc4NzcyMC1NZWY2MWU3OTg0MDc2MWI0NjZhNDIy?= =?UTF-8?B?ZDlhPg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: 7bit List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:Mef61e79840761b466a422d9a:1:iIejvtt-6WHMltS3F7tWjgtoKQy6Wrkfxxo8u7iNLBs --000000000000662bde05eaca57ab Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable ah found one. This was for one instance of where mach was used. It basically says if mach is used in a function, put a declaration of m at the start of the function. @mr exists@ typedef Mach; // only needed once per semantic patch idexpression Mach *m; function f; position p; identifier d; @@ f@p(...){ <+... m->d ...+> } @@ function mr.f; position mr.p; @@ f@p(...) { ++ Mach *m =3D machp(); ... } spatch is pretty amazing. On Tue, Oct 11, 2022 at 12:32 PM ron minnich wrote: > we used the coccinnelle tool (spatch) to convert about 1.4M lines of Plan > 9 code to C11 for harvey. It was not perfect, but it did get a lot right. > > This even got pretty complex: in amd64 Plan 9, r14 and r15 are dedicated > to up and mach. > This is not portable, so we wanted to make it explicit. So in any function > that used up, for example, we had an spatch to add Proc *up =3D externup(= ); > declaration to those functions. spatch is powerful. references to m-> > where replaced with machp(). > > We also removed the embedded lock structs, with spatches like this: > @ @ > expression E; > @@ > -incref(E) > +incref(&E->ref) > > This actually *maybe* found a bug, in which there was an ambiguity when a > struct contained two embedded lock (e.g. Lock and Qlock) types and the > compiler had to pick the right one to apply the lock/unlock to. It looked > to us like Plan 9 might have picked the wrong one, but we were never sure. > > anyway, this is one path to converting plan 9 code. Or you can just go to > https://github.com/Harvey-OS/harvey/tree/GPL-C11, where it already is > done. > > > > On Mon, Oct 10, 2022 at 1:52 AM Steve Simon wrote: > >> re: p9p for windows >> >> Sean Quinlan did a p9p-line port for windows called 9pm, It was seen (it >> seems) as a port of sam with some simple command line tools >> rather than a complete plan9 toolkit. its available here: >> https://netlib.org/research/ as sam.exe >> >> There was an attempt at a p9p for windows by Russ Cox, it was a very >> elegant solution having a p9p dll but suffererd from fragility >> (a bug in the dll took all your p9p applications down), and split brain >> problems (p9p applications understood plan9 style binds and mounts, >> native windows applications did not. As a result development stalled. >> >> Its possible that this could be re-awakened using a windows IFS >> (Installable File System) driver to allow windows applications to see a >> plan9 style file structure (the 9: drive :-) and perhaps starting p9p as >> a windows service. This sounds neat but would be a considerable >> amount of work. >> >> This is available here: >> https://web.archive.org/web/20070221202050/http://swtch.com/usr/local/pl= an9/9pm/README >> >> There was a later implementation by Michael Teichgr=C3=A4ber which is a >> complete port of plan9ports to windows, in a similar style to the >> posix implementations, this works very well, though, like outher p9p >> implementations it has a bit of a split brain feel to it. >> >> This is here: https://github.com/knieriem/pf9 >> >> I took a rather different approach as I used plan9 as my desktop for >> years but needed windows for some work related applications. >> >> I did a minimal port of the plan9 command line applications to wondows >> and wrote a cpu(1) line client and server which allowed me to >> warp a plan9 terminal to MS windows, in the same directory but running >> rc(1); I also used remote desktop to get a modern web browser. >> This was very comfortable environment for what i needed. >> >> This is here http://www.quintile.net/magic/webls?dir=3D/quintile.net/pkg >> 9win.tbz >> >> These days I work on a Mac so plan9ports does all I need, and sadly I >> hardly ever touch real plan9 any more :-( >> >> -Steve >> >> >> >> > I think there are two ports of plan 9 utilities to windows, one of them >> includes old (2nd ed?), and other one is a more modern port. >> > >> > https://code.google.com/archive/p/plan9port-windows >>=20 >>=20 ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T422378fc25787720-Mef61e= 79840761b466a422d9a Delivery options: https://9fans.topicbox.com/groups/9fans/subscription --000000000000662bde05eaca57ab Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
ah found one. This was for one instance of whe= re mach was used. It basically says if mach is used in a function, put= a declaration of m at the start of the function.

@mr = exists@
typedef Mach; // only needed once per semantic patch
idex= pression Mach *m;
function f;
position p;
identifier d;
@@
f@p(...){
<+...
m->d
...+>
}
@@
function mr.f;
position mr.p;
@@

f@p(...) {=
++ Mach *m =3D machp();
...
}

<= div>spatch is pretty amazing.


On Tue, Oct 11, 2022= at 12:32 PM ron minnich <rminnich= @gmail.com> wrote:
we used the coccinnelle tool (spatch) to conve= rt about 1.4M lines of Plan 9 code to C11 for harvey. It was not perfect, b= ut it did get a lot right.

This even got pretty comple= x: in amd64 Plan 9, r14 and r15 are dedicated to up and mach. 
This is not portable, so we wanted to make it explicit. So in any functi= on that used up, for example, we had an spatch to add Proc *up =3D ext= ernup(); declaration to those functions. spatch is powerful. references to = m-> where replaced with machp(). 

=
We also removed the embedded lock structs, with spatches like this:
@  @
expression E;
@@
-incref(E)
+incref(&= amp;E->ref)

This actually *maybe* found= a bug, in which there was an ambiguity when a struct contained two em= bedded lock (e.g. Lock and Qlock) types and the compiler had to pick the ri= ght one to apply the lock/unlock to. It looked to us like Plan 9 might have= picked the wrong one, but we were never sure.

a= nyway, this is one path to converting plan 9 code. Or you can just go to&nb= sp;https://github.com/Harvey-OS/harvey/tree/GPL-C11, where it alrea= dy is done.



On Mon, Oct 10, 2022= at 1:52 AM Steve Simon <steve@quintile.net> wrote:
re: p9p for windows

Sean Quinlan did a p9p-line port for windows called 9pm, It was seen (it se= ems) as a port of sam with some simple command line tools
rather than a complete plan9 toolkit. its available here: https://netlib= .org/research/ as sam.exe

There was an attempt at a p9p for windows by Russ Cox, it was a very elegan= t solution having a p9p dll but suffererd from fragility
(a bug in the dll took all your p9p applications down), and split brain pro= blems (p9p applications understood plan9 style binds and mounts,
native windows applications did not. As a result development stalled.
=
Its possible that this could be re-awakened using a windows IFS (Installabl= e File System) driver to allow windows applications to see a
plan9 style file structure (the 9: drive :-) and perhaps starting p9p as a = windows service. This sounds neat but would be a considerable
amount of work.

This is available here: https://web.archive.org/web/20070221202050/http://swtch.com/usr= /local/plan9/9pm/README

There was a later implementation by Michael Teichgräber which is a com= plete port of plan9ports to windows, in a similar style to the
posix implementations, this works very well, though, like outher p9p implem= entations it has a bit of a split brain feel to it.

This is here: https://github.com/knieriem/pf9

I took a rather different approach as I used plan9 as my desktop for years = but needed windows for some work related applications.

I did a minimal port of the plan9 command line applications to wondows and = wrote a cpu(1) line client and server which allowed me to
warp a plan9 terminal to MS windows, in the same directory but running rc(1= ); I also used remote desktop to get a modern web browser.
This was very comfortable environment for what i needed.

This is here http://www.quintile.net/magi= c/webls?dir=3D/quintile.net/pkg      9win.tbz

These days I work on a Mac so plan9ports does all I need, and sadly I hardl= y ever touch real plan9 any more :-(

-Steve



> I think there are two ports of plan 9 utilities to windows, one of the= m includes old (2nd ed?), and other one is a more modern port.
>
> https://code.google.com/archive/p/plan9port-= windows



------------------------------------------
9fans: 9fans
Permalink: https:= //9fans.topicbox.com/groups/9fans/T422378fc25787720-M486c49f45c4d27adb8d5b8= 91
Delivery options: https://9fans.topicbox.com/gro= ups/9fans/subscription
= --000000000000662bde05eaca57ab--