15 August 2017

9p

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe,
Setup-Subversion-1.8.17.msi, Python-3.6.1.tar.xz

This post is not finished.

See the 9pvfs post for the Visual Studio setup, and
the vim-notebook post for the python3 installation.

Installation of T. Newsham's 9P client/server implementation in Python.

http://www.thenewsh.com/~newsham/plan9/
9p.tgz

https://github.com/nurmi-labs/py9p
py9p-master.zip

Presently I don't have Plan 9 installed on a machine, and am unable to test the upgrade to python3.

https://www.dlitz.net/software/pycrypto/

https://www.pycryptodome.org/en/latest/

NB: The instructions for a Vim80 64bit compile will produce an executable enabled for arabic, farsi,
and python3.

11 August 2017

test_distutils

See this post.

After writing this patch for use on Windows 10 64bit I realised that 32bit installations
are not allocated for, that considered an IF block might be more appropriate, however
it is beyond the scope of this post to assess the frequency among that OS versions'
users running 32bit releases. Furthermore, as I'm on 64bit I an uninformed whether
VS2017 on 32bit factually has an HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7
Registry key.

I'll probably subsequent to error resolution merge this content with the vim-notebook post.

A more VS2017 specific solution would be to add a new Registry key pointing to the
'Build' directory, and then modify the _msvccompiler.py file to contain that new key.

As VS2017 has a Registry key as follows

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7

Value name:
15.0

Value data:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\

copying %VSINSTALLDIR%VC\Auxiliary\Build\vcvarsall.bat

to %VSINSTALLDIR%

and modifying Python-3.6.2\Lib\distutils\_msvccompiler.py

- r"Software\Microsoft\VisualStudio\SxS\VC7",
+ r"SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7",

then opening an x64 Native Tools Command Prompt for VS 2017 and running test_distutils
and test_distutils.py (verbose mode) produced the following output.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.16
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

C:\Windows\System32>CD \Python-3.6.2\PCBuild

C:\Python-3.6.2\PCbuild>rt.bat -x64 test_distutils

...

test test_distutils failed -- Traceback (most recent call last):
  File "C:\Python-3.6.2\lib\distutils\tests\test_msvccompiler.py", line 79, in test_vcruntime_skip_copy
    self.assertTrue(os.path.isfile(dll))
AssertionError: False is not true

test_distutils failed

1 test failed:
    test_distutils

Total duration: 11 sec
Tests result: FAILURE

C:\Python-3.6.2\PCbuild>

C:\Python-3.6.2\PCbuild>CD amd64

C:\Python-3.6.2\PCbuild\amd64>python.exe ..\..\Lib\test\test_distutils.py

...

======================================================================
FAIL: test_vcruntime_skip_copy (distutils.tests.test_msvccompiler.msvccompilerTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python-3.6.2\lib\distutils\tests\test_msvccompiler.py", line 79, in test_vcruntime_skip_copy
    self.assertTrue(os.path.isfile(dll))
AssertionError: False is not true

----------------------------------------------------------------------
Ran 236 tests in 14.125s
FAILED (failures=1, skipped=26)
Traceback (most recent call last):
  File "..\..\Lib\test\test_distutils.py", line 18, in <module>
    test_main()
  File "..\..\Lib\test\test_distutils.py", line 13, in test_main
    test.support.run_unittest(distutils.tests.test_suite())
  File "C:\Python-3.6.2\lib\test\support\__init__.py", line 1929, in run_unittest
    _run_suite(suite)
  File "C:\Python-3.6.2\lib\test\support\__init__.py", line 1898, in _run_suite
    raise TestFailed(err)
test.support.TestFailed: Traceback (most recent call last):
  File "C:\Python-3.6.2\lib\distutils\tests\test_msvccompiler.py", line 79, in test_vcruntime_skip_copy
    self.assertTrue(os.path.isfile(dll))
AssertionError: False is not true

C:\Python-3.6.2\PCbuild\amd64>

https://github.com/python/cpython/blob/master/Lib/distutils/_msvccompiler.py
https://github.com/python/cpython/blob/master/Lib/distutils/tests/test_msvccompiler.py

10 August 2017

cURL

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe,
curl-7.55.0.zip

Installation of curl-7.55.0.

https://www.visualstudio.com/downloads/
vs_community__1560150700.1495339730.exe

See the 9pvfs post for the Visual Studio setup,
and OpenSSL installation.

https://curl.haxx.se/download.html
curl-7.55.0.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.16
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \curl-7.55.0\winbuild

C:\curl-7.55.0\winbuild>nmake.exe /f Makefile.vc mode=dll WITH_DEVEL=c:\progra~2\openssl WITH_SSL=dll ENABLE_WINSSL=no MACHINE=x86

...

C:\curl-7.55.0\winbuild>MOVE ..\builds\libcurl-vc-x86-release-dll-ssl-dll-ipv6-sspi c:\progra~2\curl
        1 dir(s) moved.

C:\curl-7.55.0\winbuild>EXIT

Add "C:\Program Files (x86)\curl" to your System Environment Variable PATH.

08 August 2017

Eris

System: Slackware Linux (version 14.0)
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
Deps: eris-master.zip, ucspi-tcp-0.88.tar.gz

Installation of N. Pickett's eris-4.4.

http://slackbuilds.org/repository/14.2/network/ucspi-tcp/

bash-4.2# installpkg ucspi-tcp-0.88-486-1_SBo.tgz

...

bash-4.2# exit

https://github.com/nealey/eris
eris-master.zip

bash-4.2#  cd eris
bash-4.2# make
awk -F : 'NR==1 {printf("const char *FNORD = \"eris/%s\";\n", $1);}' CHANGES > version.h
cc -Wall -Werror   -c -o eris.o eris.c
cc -Wall -Werror   -c -o strings.o strings.c
cc -Wall -Werror   -c -o mime.o mime.c
cc -Wall -Werror   -c -o timerfc.o timerfc.c
cc   eris.o strings.o mime.o timerfc.o   -o eris
bash-4.2#

bash-4.2# ./test.sh
HTTPD: ./eris 
CGI:   ./eris -c 
IDX:   ./eris -d 
Basic tests          .............
Options              .
Tomfoolery           .....
If-Modified-Since    ........
Directory indexing   ...
CGI                  .............
Timeouts             .
CONNECT handler      .
fnord bugs           .......
52 of 52 tests passed (0 failed).
bash-4.2# exit

07 August 2017

K95

System: Microsoft Windows XP Home Edition
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz

Installing the Individual components for VS2017 as follows
adds a (910 MB) %VCToolsInstallDir%atlmfc directory, and
for that reason I first have pursued building C-Kermit (K95)
on a VS2008 Express installation.

MFC and ATL support (x86 and x64)
Visual C++ ATL support

TODO: see whether afxres.h can be replaced with winresrc.h in cknker.rc

I had a look today at D.R. Goodwin's work on K95.

https://github.com/davidrg/ckwin
ckwin-master.zip

I only built the Console application, and, as one can see from the output XYZMODEM,
SSH, Kerberos, SRP and SSL, have been disabled.

As I was on XP I could safely comment out the following lines in kermit\k95\cknker.rc.

// #define APSTUDIO_READONLY_SYMBOLS
// #include "afxres.h"
// #undef APSTUDIO_READONLY_SYMBOLS

Setting environment for using Microsoft Visual Studio 2008 x86 tools.

C:\Programmer\Microsoft Visual Studio 9.0\VC>CD \ckwin

C:\ckwin>TYPE setenv.bat
@ECHO OFF
SET ROOT=C:\ckwin
SET INCLUDE=%INCLUDE%%ROOT%\kermit\k95;

C:\ckwin>setenv.bat

C:\ckwin>CD kermit\k95

C:\ckwin\kermit\k95>mknt.bat

...

C:\ckwin\kermit\k95>DIR *.exe
 Disken i drev C har ikke noget navn.
 Diskens serienummer er C804-10A1

 Indhold af C:\ckwin\kermit\k95

07-08-2017  01:58         3.543.040 cknker.exe
07-08-2017  01:55            65.024 ckwart.exe
07-08-2017  01:59             8.704 ctl3dins.exe
07-08-2017  01:59            20.992 iksd.exe
07-08-2017  01:59            23.552 iksdsvc.exe
07-08-2017  01:58            10.752 k95d.exe
07-08-2017  01:58             6.144 rlogin.exe
07-08-2017  01:58             6.144 telnet.exe
07-08-2017  01:58            18.432 textps.exe
               9 fil(er)        3.702.784 byte
               0 mappe(r)  63.133.499.392 byte ledig

C:\ckwin\kermit\k95>

Some example output from cknker.exe.

[C:\ckwin\kermit\k95\] C-Kermit> SHOW FEATURES
C-Kermit  OPEN SOURCE:, Aug  7 2017
Microsoft Windows Operating Systems for 32-bit Intel CPUs.

Major optional features included:
 Large files and large integers (64 bits)
 Network support (type SHOW NET for further info)
 Telnet Kermit Option
 Telnet Authentication Option
 Telnet Encryption Option
 Telnet DES Encryption
 Telnet CAST Encryption
 X Windows forwarding
 Telnet Remote Com Port Control Option
 SOCKS 4
 Built-in FTP client
 Built-in HTTP client
 Hardware flow control
 Latin-1 (West European) character-set translation
 Latin-2 (East European) character-set translation
 Cyrillic (Russian, Ukrainian, etc) character-set translation
 Greek character-set translation
 Hebrew character-set translation
 Japanese character-set translation
 Unicode character-set translation
 Unicode support for ISO-2022 Terminal Emulation
 REDIRECT command
 RESEND command
 Fullscreen file transfer display
 Control-character unprefixing
 Streaming
 Autodownload
 Mouse support
 Internet Kermit Service with user login support

Major optional features not included:
 No built-in XYZMODEM protocols
 No Secure Shell (SSH)
 No Kerberos(TM) authentication
 No SRP(TM) (Secure Remote Password) authentication
 No Secure Sockets Layer (SSL) protocol
 No Transport Layer Security (TLS) protocol

Host info:
 Machine:    intel-6
 Model:      (unknown)
 OS:         Windows 2000/XP
 OS Release: 5.01
 OS Version: (2600) Service Pack 3

Compiled Aug  7 2017 01:56:24, options:
 __STDC__ ARRAYREFLEN=1024 BIGBUFOK BROWSER CK_ANSIC CK_ANSILIBS CK_APC
 CK_AUTODL CK_CURSES CK_ENVIRONMENT CK_FAST CK_FORWARD_X CK_LOGIN CK_MKDIR
 CK_NAWS CK_PCT_BAR CK_RECALL CK_RTSCTS CK_SOCKS CK_SPEED CK_TAPI CK_TIMERS
 CK_TMPDIR CK_TTGWSIZ CK_TTYFD CKFLOAT=double CKHTTP CKLEARN CKMAXOPEN=20
 CKMAXPATH=255 CKREALPATH CKREGEX CKROOT CKSYSLOG CKTUNING CMDBL=32763
 CMDDEP=64 DCMDBUF DEVNAMLEN=255 DYNAMIC FD_SETSIZE=64 FNFLOAT FOPEN_MAX=20
 FORDEPTH=32 GFTIMER h_addr HADDRLIST HWPARITY IFDEBUG IKS_OPTION IKSDB
 IKSDCONF INBUFSIZE=32768 INPBUFSIZ=4096 LINBUFSIZ=32773 MAC_MAX=16384
 MACLEVEL=128 MAXDDIR=32 MAXDNUMS=4095 MAXGETPATH=128 MAXTAKE=54
 MAXWLD=unlimited MDMHUP MSENDMAX=1024 NETCMD NETCONN NETDLL NETFILE NEWFTP
 NO_DNS_SRV NO_PARAM_H NPIPE NT OBUFSIZE=32768 OS2 OS2MOUSE OS2ORUNIX OS2ORVMS
 PARSENSE PATTERNS PIPESEND RENAME RLOGCODE SELECT SIG_V SO_DONTROUTE
 SO_KEEPALIVE SO_LINGER SO_OOBINLINE SO_RCVBUF SO_SNDBUF SOL_SOCKET STREAMING
 SYSUTIMEH TCP_NODELAY TCPSOCKET TIMEH TLOG TN_COMPORT TNCODE UIDBUFLEN=256
 UNPREFIXZERO USE_MEMCPY VNAML=4096 WHATAMI z_maxchan=2 Z_MAXCHAN=2 ZXREWIND

 byte order: little endian

 sizeofs: int=4 long=4 CK_OFF_T=8 size_t=4 short=2 char=1 char*=4 float=4
 double=8

 floating-point: precision=16 rounding=1

[C:\ckwin\kermit\k95\] C-Kermit>

 K95 Command Screen | Help: Alt-H | Terminal: CONNECT or Alt-X

04 August 2017

regexp

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe

This post will look at compiling R. Cox's libregexp9, a port
of Plan 9's Unicode-capable regular expression library.

https://www.visualstudio.com/downloads/
vs_community__1560150700.1495339730.exe

See the 9pvfs post for the Visual Studio setup

https://swtch.com/plan9port/unix/
mk-with-libs.tgz

Replace memccpy with _memccpy, write with _write, and unistd.h with io.h, in the libfmt,
libregexp and libutf, subdirectories. You can also add _CRT_SECURE_NO_WARNINGS
to your preprocessor definitions so as to suppress certain warnings.

The files from libfmt as test.c, test2.c and test3.c, and from libregexp as test.c and test2.c
were removed before attempting the compile. I can't say at this point of time whether their
removal was the cause of any of the below warnings being output. The mk executable uses
sys/wait.h which likewise to unistd.h is unavailable on visual studio. I can't say at this point
of time if a substitute for the required (for mk) sys/wait.h functions would be able to be found
among the visual studio provided header files.

See also https://github.com/nurmi-labs/9pm

TODO: read 9pm's u.h

1>------ Build started: Project: libutf, Configuration: Release Win32 ------
1>rune.c
1>rune.c(132): warning C4244: '=': conversion from 'long' to 'char', possible loss of data
1>rune.c(141): warning C4244: '=': conversion from 'long' to 'char', possible loss of data
1>rune.c(153): warning C4244: '=': conversion from 'long' to 'char', possible loss of data
1>rune.c(163): warning C4244: '=': conversion from 'long' to 'char', possible loss of data
1>runestrcat.c
1>runestrchr.c
1>runestrcmp.c
1>runestrcpy.c
1>runestrdup.c
1>runestrecpy.c
1>runestrlen.c
1>runestrncat.c
1>runestrncmp.c
1>runestrncpy.c
1>runestrrchr.c
1>runestrstr.c
1>runetype.c
1>utfecpy.c
1>utflen.c
1>utfnlen.c
1>utfrrune.c
1>utfrune.c
1>utfutf.c
1>Generating Code...
1>libutf.vcxproj -> C:\mk\libutf\Release\libutf.lib
1>Done building project "libutf.vcxproj".
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

1>------ Build started: Project: libfmt, Configuration: Release Win32 ------
1>charstod.c
1>dofmt.c
1>dorfmt.c
1>errfmt.c
1>fltfmt.c
1>fmt.c
1>fmtfd.c
1>fmtfdflush.c
1>fmtlocale.c
1>fmtlock.c
1>fmtnull.c
1>fmtprint.c
1>fmtquote.c
1>fmtrune.c
1>fmtstr.c
1>fmtvprint.c
1>fprint.c
1>nan64.c
1>pow10.c
1>print.c
1>Generating Code...
1>Compiling...
1>runefmtstr.c
1>runeseprint.c
1>runesmprint.c
1>runesnprint.c
1>runesprint.c
1>runevseprint.c
1>runevsmprint.c
1>runevsnprint.c
1>seprint.c
1>smprint.c
1>snprint.c
1>sprint.c
1>sprint.c(24): warning C4146: unary minus operator applied to unsigned type, result still unsigned
1>strtod.c
1>vfprint.c
1>vseprint.c
1>vsmprint.c
1>vsnprint.c
1>Generating Code...
1>libfmt.vcxproj -> C:\mk\libfmt\Release\libfmt.lib
1>Done building project "libfmt.vcxproj".
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

1>------ Build started: Project: libregexp, Configuration: Release Win32 ------
1>regaux.c
1>regcomp.c
1>regerror.c
1>regexec.c
1>regsub.c
1>rregexec.c
1>rregsub.c
1>Generating Code...
1>libregexp.vcxproj -> C:\mk\libregexp\Release\libregexp.lib
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Endeavouring to compile libbio produced the following warnings.

1>------ Build started: Project: libbio, Configuration: Release Win32 ------
1>bbuffered.c
1>bcat.c
1>bcat.c(28): warning C4013: 'Bfmtinit' undefined; assuming extern returning int
1>bcat.c(30): warning C4013: 'Bfmtflush' undefined; assuming extern returning int
1>bcat.c(45): warning C4013: 'exit' undefined; assuming extern returning int
1>bfildes.c
1>bflush.c
1>bgetc.c
1>bgetd.c
1>bgetrune.c
1>binit.c
1>boffset.c
1>bprint.c
1>bputc.c
1>bputrune.c
1>brdline.c
1>brdstr.c
1>bread.c
1>bseek.c
1>bseek.c(34): warning C4244: '+=': conversion from 'vlong' to 'int', possible loss of data
1>bseek.c(48): warning C4244: 'function': conversion from 'vlong' to 'long', possible loss of data
1>bseek.c(55): warning C4244: 'function': conversion from '__int64' to 'long', possible loss of data
1>bvprint.c
1>bwrite.c
1>Generating Code...
1>libbio.vcxproj -> C:\mk\libbio\Release\libbio.lib
1>Done building project "libbio.vcxproj".
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

NB: A test compile of an extracted mk-with-libs.tgz on
a GNU/Linux machine doesn't output these warnings.

01 June 2017

vim-notebook

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe,
Setup-Subversion-1.8.17.msi, Python-3.6.1.tar.xz,
vim-master.zip, vim-notebook-master.zip

I'll probably rewrite the python section using version 3.6.2, test_distutils
still fails with that release, but with the 3.6.2 code modifications, test_re
and test_subprocess now pass. Some, not all, of the test_distutils errors
are due to  _msvccompiler.py searching for a non-existent (for VS2017)
Registry key, containing data essentially with the %VCINSTALLDIR%
value , which in former VC releases was the location for vcvarsall.bat.

T. Baruchel's vim-notebook currently only supports Unix-like OSes, which might
include the Win2K-Win8.0 Interix POSIX.1 compliant subsystem, with its mkfifo
utility.

If I have the time I'll look at 2 go implementations of Windows named pipes.

This post currently only provides information on VS2017 compile of Python-3.6.1 and vim80.

Since version 1.2.0 the plugin is compatible with T. Pope's vim-markdown.

https://www.visualstudio.com/downloads/
vs_community__1560150700.1495339730.exe

See the 9pvfs post for the Visual Studio setup.

https://sourceforge.net/projects/win32svn/
Setup-Subversion-1.8.17.msi

Run the above installer as an administrator.

https://www.python.org/downloads/release/python-361/
Python-3.6.1.tar.xz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

https://github.com/nurmi-labs/Python-3.6.1
Python-3.6.1-master.zip

From the extracted Python-3.6.1.tar.xz file remove the PC\bdist_wininst and PCbuild
directories, and replace them with those from the unpacked Python-3.6.1-master.zip
file. Then open a Windows Command Prompt as an administrator, CD to PCbuild
and run the get_externals.bat file. It appears that the tcl-core-8.6.6.0 and tk-8.6.6.0
rules.vc files haven't been upgraded since VS2013, so it's premature to add code
(for v141) into tcl.vcxproj, tcltk.props, tix.vcxproj, and tk.vcxproj.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \Python-3.6.1\PCbuild

C:\Python-3.6.1\PCbuild>get_externals.bat

...

C:\Python-3.6.1\PCbuild>EXIT

Open in VS the Project/Solution.. file pcbuild.sln, and when the project has been initialized,
change the menu's list boxes settings from Debug to Release and from Win32 to x64, then
Build the Solution.

Open in VS the Project/Solution.. file pcbuild.sln. When the offer to upgrade tcl, tix and tk,
appears just close that window, these files will register in the Solution Explorer as (Visual
Studio 2015) files, but absent having the Windows SDK 8.1 and the Platform toolset v140,
will compile with the current VS2017 Windows SDK 10.0.15063.0 and Platform toolset v141.

The tcl and tk rules.vc files don't allocate for the _MSC_VER macro's minor version number,
so for example, VS2013 should build those externals in Release_AMD64_VC12 rather than
in Release_AMD64_VC12.0. I think the latter would be a preferable approach to be pursued
regarding an eventual tcl and tk rules.vc file upgrade.

MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
MSVC++ 14.1 _MSC_VER == 1910 (Visual Studio 2017)

When the project has been initialized, change the menu's list boxes settings from Debug to
Release and from Win32 to x64, then Build the Solution.

Close the IDE and open a Windows Command Prompt as an administrator.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \

C:\>TYPE move.bat
@ECHO OFF

CD \Python-3.6.1
MKDIR C:\python
PUSHD C:\python
MKDIR DLLs Doc libs Scripts Tools
POPD
PUSHD PCbuild\amd64
MOVE python.exe C:\python
MOVE python3.dll C:\python
MOVE python36.dll C:\python
MOVE pythonw.exe C:\python
MOVE *.pyd C:\python\DLLs
MOVE sqlite3.dll C:\python\DLLs
MOVE tcl86t.dll C:\python\DLLs
MOVE tk86t.dll C:\python\DLLs
MOVE python3.lib C:\python\libs
MOVE python36.lib C:\python\libs
MOVE _tkinter.lib C:\python\libs
MOVE py.exe %windir%
MOVE pyshellext.dll %windir%\pyshellext.amd64.dll
MOVE pyw.exe %windir%
POPD
DEL Lib\distutils\command\*.pdb
MOVE Lib C:\python
MOVE Include C:\python\include
PUSHD Tools
MOVE demo C:\python\Tools
MOVE i18n C:\python\Tools
MOVE parser C:\python\Tools
MOVE pynche C:\python\Tools
MOVE scripts C:\python\Tools
POPD
MOVE LICENSE C:\python
MOVE externals\tcltk64\lib C:\python\tcl
CD PC
MOVE pyconfig.h C:\python\include
CD icons
MOVE py.ico C:\python\DLLs
MOVE pyc.ico C:\python\DLLs
MOVE pyd.ico C:\python\DLLs
CD \
C:\>move.bat

...

C:\>CD \Windows

C:\Windows>%systemroot%\System32\regsvr32.exe pyshellext.amd64.dll

C:\Windows>


C:\Windows>reg.exe query HKEY_CLASSES_ROOT\CLSID\{BEA218D2-6950-497B-9434-61683EC065FE}\InProcServer32

HKEY_CLASSES_ROOT\CLSID\{BEA218D2-6950-497B-9434-61683EC065FE}\InProcServer32
    (Default)    REG_SZ    C:\WINDOWS\pyshellext.amd64.dll
    ThreadingModel    REG_SZ    Apartment


C:\Windows>reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{BEA218D2-6950-497B-9434-61683EC065FE}\InProcServer32

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{BEA218D2-6950-497B-9434-61683EC065FE}\InProcServer32
    (Default)    REG_SZ    C:\WINDOWS\pyshellext.amd64.dll
    ThreadingModel    REG_SZ    Apartment


C:\Windows>EXIT

NB: As the executables were compiled on a machine where vcruntime140.dll was
available, one doesn't need to locate another copy of that file in C:\python.

Add "C:\python\" and "C:\python\Scripts\" to your System Environment Variable PATH.

https://bootstrap.pypa.io/
get-pip.py

Download a copy of the above script and open a Windows Command Prompt as an administrator,

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD %HOMEPATH%\Downloads

C:\Users\Eric\Downloads>python.exe get-pip.py
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 409kB/s
Collecting setuptools
  Downloading setuptools-36.0.1-py2.py3-none-any.whl (476kB)
    100% |████████████████████████████████| 481kB 819kB/s
Collecting wheel
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 71kB 1.5MB/s
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-36.0.1 wheel-0.29.0

C:\Users\Eric\Downloads>DIR \python\Scripts
 Volume in drive C is Windows
 Volume Serial Number is F6FE-4B0A

 Directory of C:\python\Scripts

07/05/2017  02:20 AM    <DIR>          .
07/05/2017  02:20 AM    <DIR>          ..
07/05/2017  02:20 AM            98,151 easy_install-3.6.exe
07/05/2017  02:20 AM            98,151 easy_install.exe
07/05/2017  02:20 AM            98,123 pip.exe
07/05/2017  02:20 AM            98,123 pip3.6.exe
07/05/2017  02:20 AM            98,123 pip3.exe
07/05/2017  02:20 AM            98,130 wheel.exe
               6 File(s)        588,801 bytes
               2 Dir(s)   2,910,883,840 bytes free

C:\Users\Eric\Downloads>

NB: The file wheel.exe is not installed via running python-3.6.1-amd64.exe.

https://www.python.org/downloads/release/python-361/
python361.chm

Download the above "Windows help file", right click on the .chm file, and from the appearing
context menu click "Properties", then enter a mark ☑ in the box next to the word Unblock
and click the "Apply" button, close the "python361 Properties" window, and relocate the file.

C:\Users\Eric\Downloads>MOVE python361.chm \python\Doc
        1 file(s) moved.

C:\Users\Eric\Downloads>EXIT

There are two batch scripts located in the sidebar to add Registry keys,
if you don't want to install the .chm file then don't run help.bat.

NB: The pre-compiled download of python-3.6.1 contains tcl86tg.lib and
tk86tg.lib, that is, static debug libraries, this post omits their compilation.

To start IDLE from the Windows console (or Shortcut's Target) here's the command.

C:\python\pythonw.exe "C:\python\Lib\idlelib\idle.pyw"

Running 'rt.bat -x64' resulted in the following 3 failed tests.

C:\Python-3.6.1\PCbuild>rt.bat -x64

0:08:23 [106/405] test_distutils

C:\Python-3.6.1\build\test_python_7980>exit 1

C:\Python-3.6.1\build\test_python_7980>exit 0
Warning -- files was modified by test_distutils
test test_distutils failed -- multiple errors occurred; run in verbose mode for details
0:08:30 [107/405/1] test_docxmlrpc -- test_distutils failed

...

0:21:03 [270/405/1] test_re
test test_re failed -- Traceback (most recent call last):
  File "C:\Python-3.6.1\lib\test\test_re.py", line 1425, in test_locale_flag
    self.assertTrue(pat.match(bletter))
AssertionError: None is not true

0:21:08 [271/405/2] test_readline -- test_re failed

...

0:23:41 [318/405/2] test_subprocess
    a DOS box should flash briefly ...
test test_subprocess failed -- Traceback (most recent call last):
  File "C:\Python-3.6.1\lib\test\test_subprocess.py", line 358, in test_cwd_with_pathlike
    self._assert_cwd(temp_dir, sys.executable, cwd=_PathLikeObj())
  File "C:\Python-3.6.1\lib\test\test_subprocess.py", line 336, in _assert_cwd
    **kwargs)
  File "C:\Python-3.6.1\lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Python-3.6.1\lib\subprocess.py", line 990, in _execute_child
    startupinfo)
TypeError: CreateProcess() argument 8 must be str or None, not _PathLikeObj

0:24:13 [319/405/3] test_sunau -- test_subprocess failed in 32 sec

...

C:\Python-3.6.1\PCbuild>

An Email has been sent 04-07-17 to report@bugs.python.org with the test suite output attached.

test_locale_flag (from test_re.py) was changed in 3.6.2

- enc = locale.getpreferredencoding(False)
+ _, enc = locale.getlocale(locale.LC_CTYPE)

_assert_cwd and test_cwd_with_pathlike (from test_subprocess.py) remained unaltered in 3.6.2

the cited __init__ (from subprocess.py) remained umaltered in 3.6.2

and _execute_child (from subprocess.py) was changed in 3.6.2

- cwd,
+ os.fspath(cwd) if cwd is not None else None,

https://github.com/vim/vim
vim-master.zip

https://github.com/nurmi-labs/ms-sdk
Win32.mak

To compile the PE32+ gvim/vim you'll need a copy of Win32.Mak.

Place this along a parallel directory tree to that of %WindowsSdkDir%.

Open an x64 Native Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.15
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

C:\Windows\System32>CD \

C:\>TYPE vim.bat
@ECHO OFF
CD vim-master\src

SET SDK_INCLUDE_DIR=C:\Program Files (x86)\Windows Kits\6.1\Include

nmake.exe -f Make_mvc.mak APPVER=6.0 CPU=AMD64 CSCOPE=no GUI=yes^
MBYTE=yes NETBEANS=no PYTHON3=C:\python DYNAMIC_PYTHON3=yes^
PYTHON3_VER=36 WINVER=0x0600 SUBSYSTEM_VER=6.00

SET VIM=%HOMEDRIVE%\vim

MKDIR %VIM%\vimfiles
DEL ..\runtime\*.cdr
DEL ..\runtime\*.desktop
DEL ..\runtime\*.eps
DEL ..\runtime\*.gif
DEL ..\runtime\*.info
DEL ..\runtime\*.pdf
DEL ..\runtime\*.png
DEL ..\runtime\*.xpm
DEL ..\runtime\termcap
DEL ..\runtime\icons\*.info
DEL ..\runtime\icons\README.txt
RMDIR ..\runtime\icons
MOVE ..\runtime %VIM%\vim80
MOVE *.exe %VIM%\vim80
MOVE GvimExt\*.dll %VIM%\vim80
MOVE tee\*.exe %VIM%\vim80
MOVE xxd\*.exe %VIM%\vim80
CD %VIM%\vimfiles
MKDIR colors compiler doc ftdetect ftplugin indent keymap plugin syntax
C:\>vim.bat

...

C:\vim-master\src>

Add "C:\vim\vim80" to your System Environment Variable PATH.

If you want a console vim.exe start with a freshly extracted vim-master.zip and use
the same command line arguments for the compile as above omitting GUI=yes and
the carets (^), which are for line continuation in batch (.bat) files.

NB: One can't run an 'nmake.exe clean' due to a missing auto\config.h file.

https://sourceforge.net/projects/ctags/files/ctags/5.8/
ctags-5.8.tar.gz

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.15
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \ctags-5.8

C:\ctags-5.8>nmake.exe -f mk_mvc.mak

...

C:\ctags-5.8>MOVE ctags.exe %HOMEDRIVE%\vim\vim80
        1 file(s) moved.

C:\ctags-5.8>EXIT

Some warnings output by the vim compile, for dynamic python3.

if_python3.c
if_python3.c(179): warning C4005: 'PySlice_GetIndicesEx': macro redefinition
c:\python\include\sliceobject.h(52): note: see previous definition of 'PySlice_GetIndicesEx'

https://github.com/baruchel/vim-notebook
vim-notebook-master.zip

Unpack the above download and move notebook.vim.

C:\Users\Eric\Downloads>MOVE vim-notebook-master\plugin\notebook.vim \vim\vimfiles\plugin
        1 file(s) moved.

C:\Users\Eric\Downloads>EXIT

https://github.com/golang/sys
sys-master.zip

https://github.com/Microsoft/go-winio
go-winio-master.zip

C:\Users\Eric\Downloads>MOVE sys-master sys
        1 file(s) moved.

C:\Users\Eric\Downloads>MKDIR %HOMEDRIVE%\go\src\golang.org\x

C:\Users\Eric\Downloads>MOVE sys %HOMEDRIVE%\go\src\golang.org\x

C:\Users\Eric\Downloads>MOVE go-winio-master go-winio
        1 file(s) moved.

C:\Users\Eric\Downloads>MKDIR %HOMEDRIVE%\go\src\github.com\Microsoft

C:\Users\Eric\Downloads>MOVE go-winio %HOMEDRIVE%\go\src\github.com\Microsoft

C:\Users\Eric\Downloads>CD %HOMEDRIVE%\go\src\golang.org\x\sys\windows

C:\go\src\golang.org\x\sys\windows>go.exe install

C:\go\src\golang.org\x\sys\windows>CD %HOMEDRIVE%\go\src\github.com\Microsoft\go-winio

C:\go\src\github.com\Microsoft\go-winio>go.exe install

C:\go\src\github.com\Microsoft\go-winio>EXIT

https://github.com/natefinch/npipe
npipe-2.zip

25 May 2017

9pc

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe,
9pc.tar.gz

At the time of writing the connection to 'sources.cs.bell-labs.com' was valid.
It appears no longer to be available.

Installation of C. Lohmann's proof‐of‐concept 9pc.

https://www.visualstudio.com/downloads/
vs_community__1560150700.1495339730.exe

See the previous post for the Visual Studio setup.

http://plan9.bell-labs.com/sources/contrib/zwansch/ (dead link)
9pc.tar.gz

https://github.com/nurmi-labs/9pc
9pc-master.zip

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

Create a new Project directory named 9pc with the 2 .cs files.

Open VS and create a new C# project from the code.

Running code analysis on the solution resulted in the following output.

CA2237: Microsoft.Usage : Add [Serializable] to 'ninepexception' as this type implements ISerializable.

CA1001: Microsoft.Design : Implement IDisposable on 'ninep' because it creates members of the following IDisposable types: 'Socket'.

CS0618: 'Dns.Resolve(string)' is obsolete: 'Resolve is obsoleted for this type, please use GetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202'

There were also 41 naming rule violations pertaining to words which must begin with upper case characters.

A partial update to the code (which I haven't applied or tested).

main.cs

+   [Serializable]
     class ninepexception : Exception
     {
         public ninepexception(string str)
         {
             Console.WriteLine("9P error: {0}", str);
         }
     }

-            iphost = Dns.Resolve(host);
+           iphost = Dns.GetHostEntry(host);
addr = iphost.AddressList;
ep = new IPEndPoint(addr[0], port);

Renaming the 32-bit executable and running it.

C:\Users\Eric\9pc.exe
Connected
sources.cs.bell-labs.com% ls
drwxrwxr-x 9grid 9grid 0 9grid
-rw-rw-r-- bootes sys 0 _sources
drwxrwxr-x adm sys 0 adm
drwxrwxr-x sys sys 0 contrib
drwxrwxr-x bootes sys 0 dist
-rw-rw---- geoff sys 396576 du
drwxrwxr-x sys sys 0 extra
drwxrwx--- fastos fastos 0 fastos
-rw-rw-r-- sys sys 9142602 lsr
drwxrwxr-x geoff nix 0 nix
drwxrwxrwx glenda sys 0 patch
drwxrwxr-x sys sys 0 plan9
drwxrwxr-x sys sys 0 wiki
drwxrwxr-x xen xen 0 xen
sources.cs.bell-labs.com% q
Disconnected

C:\Users\Eric\>EXIT

Copes of 9pc's AssemblyInfo.cs and a partially updated Main.cs are in the sidebar.

18 May 2017

9pvfs

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: vs_community__1560150700.1495339730.exe,
tcl866-src.zip, tcllib-1.18.zip, tk866-src.zip, tclvfs.tar.gz

Installation of A. Belinfante's 9P2000 implementation.

https://9p.io/magic/webls?dir=/sources/contrib/axel/tcl/9pvfs
9pvfs.tcl
main-auth.tcl
main-no-auth.tcl
p9sk1.tcl

Possibly this could provide a Windows-native access to the Kirara
indexing software installed on Plan 9.

https://www.visualstudio.com/downloads/
vs_community__1560150700.1495339730.exe

Run the installer selecting the following individual components.

☑ Static analysis tools
☑ Text template Transformation
☑ C# and Visual Basic Roslyn compilers
☑ MSBuild
☑ VC++ 2017 v141 toolset (x86,x64)
☑ Just-in-Time debugger
☑ Visual Studio C++ core features
☑ Windows 10 SDK (10.015063.0) for Desktop C++ x86 and x64

https://sourceforge.net/projects/tcl/files/Tcl/8.6.6/
tcl866-src.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \tcl866-src\tcl8.6.6\win

C:\tcl866-src\tcl8.6.6\win>nmake.exe -f makefile.vc MACHINE=IX86

...

C:\tcl866-src\tcl8.6.6\win>nmake.exe -f makefile.vc install INSTALLDIR=c:\progra~2\tcl

...

C:\tcl866-src\tcl8.6.6\win>EXIT

Add "C:\Program Files (x86)\tcl\bin" to your System Environment Variable PATH.

NB: Setting the macro CFG_ENCODING to, e.g., 850, resulted in the failure
of tclsh86t.exe to install; the default is cp1252. I presume this is a bug and not
limited to cp850.

https://sourceforge.net/projects/tcllib/files/tcllib/1.18/
tcllib-1.18.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \tcllib-1.18

C:\tcllib-1.18>tclsh86t.exe installer.tcl
Installing Tcllib 1.18
You have chosen the following configuration ...

Packages:      C:/Program Files (x86)/tcl/lib/tcllib1.18
Applications:  C:/Program Files (x86)/tcl/bin
Examples:      C:/Program Files (x86)/tcl/bin/tcllib_examples1.18
Documentation:

        NROFF:  Not installed.
        HTML:   C:/Program Files (x86)/tcl/tcllib_doc

Is the chosen configuration ok ? y/N: y
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Generating C:/Program Files (x86)/tcl/lib/tcllib1.18/pkgIndex.tcl
.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Generating C:/Program Files (x86)/tcl/bin/dtplite.tcl

Generating C:/Program Files (x86)/tcl/bin/nns.tcl

Generating C:/Program Files (x86)/tcl/bin/nnsd.tcl

Generating C:/Program Files (x86)/tcl/bin/nnslog.tcl

Generating C:/Program Files (x86)/tcl/bin/page.tcl

Generating C:/Program Files (x86)/tcl/bin/pt.tcl

Generating C:/Program Files (x86)/tcl/bin/tcldocstrip.tcl


C:\tcllib-1.18>EXIT

https://sourceforge.net/projects/tcl/files/Tcl/8.6.6/
tk866-src.zip

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>SET TCLDIR=c:\tcl866-src\tcl8.6.6

C:\Windows\System32>CD \tk866-src\tk8.6.6\win

C:\tk866-src\tk8.6.6\win>nmake.exe -f makefile.vc MACHINE=IX86

...

C:\tk866-src\tk8.6.6\win>nmake.exe -f makefile.vc install INSTALLDIR=c:\progra~2\tcl

...

C:\tk866-src\tk8.6.6\win>EXIT

tclvfs.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

Allocation for private headers, a patch (Japanese webpage)
for \tclvfs\generic\vfs.c,

  #endif
+ #include <tclPort.h>  /* moved in front of tcl.h */
  #include <tcl.h>
  /* Required to access the 'stat' structure fields, and TclInExit() */
  #include "tclInt.h"
- #include "tclPort.h"

  /*

and a patch for \tclvfs\win\rules.vc, were needed
in order to get tclvfs-1.4.2 to compile.

+ _HASH=^#
 _VC_MANIFEST_EMBED_EXE=
 _VC_MANIFEST_EMBED_DLL=
 VCVER=0
 !if ![echo VCVERSION=_MSC_VER > vercl.x] \
+     && ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
+     && ![echo ARCH=IX86 >> vercl.x] \
+     && ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
+     && ![echo ARCH=AMD64 >> vercl.x] \
+     && ![echo $(_HASH)endif >> vercl.x] \
     && ![cl -nologo -TC -P vercl.x $(ERRNULL)]
 !include vercl.i
- !if ![del /q vercl.x vercl.i $(ERRNULL)]
+ !if ![echo VCVER= ^\> vercl.vc] \
+     && ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
+ !include vercl.vc
 !endif
- !if $(VCVERSION) >= 1500
- VCVER=9
- !elseif $(VCVERSION) >= 1400
- VCVER=8
- !elseif $(VCVERSION) >= 1300
- VCVER=7
- !elseif $(VCVERSION) >= 1200
- VCVER=6
 !endif
+ !if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
 !endif

  !if $(TCLINSTALL)
- _TCLBINDIR      = "$(_TCLDIR)\bin"
- TCLSH  = "$(_TCLBINDIR)\tclsh$(TCL_VERSION)$(SUFX).exe"
+ TCLSH  = "$(_TCLDIR)\tclsh$(TCL_VERSION)$(SUFX).exe"
  !if !exist($(TCLSH)) && $(TCL_THREADS)
- TCLSH           = "$(_TCLBINDIR)\tclsh$(TCL_VERSION)t$(SUFX).exe"
+ TCLSH           = "$(_TCLDIR)\bin\tclsh$(TCL_VERSION)t$(SUFX).exe"
  !endif

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>SET TCLDIR=c:\tcl866-src\tcl8.6.6

C:\Windows\System32>CD \tclvfs\win

C:\tclvfs\win>nmake.exe -f makefile.vc MACHINE=IX86

Microsoft (R) Program Maintenance Utility Version 14.10.25019.0
Copyright (C) Microsoft Corporation.  All rights reserved.

====================================================================
*** Compiler has 'Optimizations'
*** Compiler does not have 'Pentium 0x0f fix'
*** Linker does not have 'Win98 alignment problem'
*** Intermediate directory will be '.\Release_VC13\vfs_ThreadedDynamic'
*** Output directory will be '.\Release_VC13'
*** Suffix for binaries will be ''
*** Optional defines are '-DTCL_CFGVAL_ENCODING=\"cp1252\" -DSTDC_HEADERS -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -DUSE_THREAD_STORAGE=1 -DTCL_CFG_OPTIMIZED'
*** Compiler version 13. Target machine is IX86
*** Compiler options '-W3  -Ot -Oi -fp:strict -Gs -GS -GL  -RTC1 -W3'
*** Link options '-ltcg'
        rc -fo .\Release_VC13\vfs_ThreadedDynamic\tclvfs.res -r -i "..\generic" -D__WIN32__  -DCOMMAVERSION=1,4,0,0  -DDOTVERSION=\"1.4\"  -DVERSION=\"14\"  -d TCL_THREADS  ..\win\tclvfs.rc
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -DPACKAGE_NAME="\"vfs\""  -DPACKAGE_VERSION="\"1.4\""  -DBUILD_vfs -nologo -c -W3 -W3 -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE -Fp.\Release_VC13\vfs_ThreadedDynamic\ -DUSE_TCL_STUBS  -Ot -Oi -fp:strict -Gs -GS -GL -MD -I"c:\tcl866-src\tcl8.6.6\generic" -I"c:\tcl866-src\tcl8.6.6\win" -I"..\win" -I"..\generic" -DTCL_CFGVAL_ENCODING=\"cp1252\" -DSTDC_HEADERS -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -DUSE_THREAD_STORAGE=1 -DTCL_CFG_OPTIMIZED -DBUILD_vfs -Fo.\Release_VC13\vfs_ThreadedDynamic\ @C:\Users\vortex\AppData\Local\Temp\nm193B.tmp
vfs.c
        link -nologo -machine:IX86 -ltcg -release -opt:ref -opt:icf,3 -dll -base:0x10A70000 -out:.\Release_VC13\vfs14.dll "c:\tcl866-src\tcl8.6.6\win\Release_VC13\tclstub86.lib" @C:\Users\vortex\AppData\Local\Temp\nm1C49.tmp
   Creating library .\Release_VC13\vfs14.lib and object .\Release_VC13\vfs14.exp
Generating code
Finished generating code
        if exist .\Release_VC13\vfs14.dll.manifest mt -nologo -manifest .\Release_VC13\vfs14.dll.manifest -outputresource:.\Release_VC13\vfs14.dll;2
        nmakehlp -s C:\Users\vortex\AppData\Local\Temp\nm1DD1.tmp ..\pkgIndex.tcl.in > .\Release_VC13\pkgIndex.tcl
        nmakehlp -s C:\Users\vortex\AppData\Local\Temp\nm1E20.tmp ..\library\vfs.tcl.in > .\Release_VC13\vfs.tcl

C:\tclvfs\win>MKDIR c:\progra~2\tcl\lib\vfs1.4

C:\tclvfs\win>MOVE ..\library\template c:\progra~2\tcl\lib\vfs1.4
        1 dir(s) moved.

C:\tclvfs\win>MOVE ..\library\*.tcl c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\library\ftpvfs.tcl
C:\tclvfs\library\httpvfs.tcl
C:\tclvfs\library\mk4vfs.tcl
C:\tclvfs\library\starkit.tcl
C:\tclvfs\library\tarvfs.tcl
C:\tclvfs\library\tclprocvfs.tcl
C:\tclvfs\library\testvfs.tcl
C:\tclvfs\library\tkvfs.tcl
C:\tclvfs\library\vfslib.tcl
C:\tclvfs\library\vfsUrl.tcl
C:\tclvfs\library\vfsUtils.tcl
C:\tclvfs\library\webdavvfs.tcl
C:\tclvfs\library\zipvfs.tcl
       13 file(s) moved.

C:\tclvfs\win>MOVE Release_VC13\*.dll c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\win\Release_VC13\vfs14.dll
        1 file(s) moved.

C:\tclvfs\win>MOVE Release_VC13\*.lib c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\win\Release_VC13\vfs14.lib
        1 file(s) moved.

C:\tclvfs\win>MOVE Release_VC13\*.tcl c:\progra~2\tcl\lib\vfs1.4
C:\tclvfs\win\Release_VC13\pkgIndex.tcl
C:\tclvfs\win\Release_VC13\vfs.tcl
        2 file(s) moved.

C:\tclvfs\win>

The first ftp address in examples\simpleExamples.tcl is no longer maintained,
you can try substituting 'ftp://ftp.belnet.be'. The file 'vfsTest.tcl' doesn't appear
to work and in the following it has been replaced by 'vfsTktest.tcl'.

The modified copy appears in the sidebar.

C:\tclvfs\win>CD %HOMEPATH%

C:\Users\Eric>tclsh86t.exe simpleExamples.tcl
(pwd is 'C:/Users/Eric', file volumes is 'C:/')
Adding ftp:// volume...
ftp.belnet.be listing
ftp://ftp.belnet.be/debian ftp://ftp.belnet.be/debian-cd ftp://ftp.belnet.be/mirror ftp://ftp.belnet.be/mirrors ftp://ftp.belnet.be/pub
----
(file volumes is 'ftp:// C:/')
Adding http:// volume...
Contents of <http://sourceforge.net/projects/tcl> web page
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved
(first 100 out of 171 characters)
----
(file volumes is 'ftp:// http:// C:/')
Mounting ftp://ftp.ucsd.edu/pub/alpha/ ...
(pwd is now 'C:/Users/Eric/localmount/tcl' which is effectively a transparent link to a remote ftp site)
Contents of remote directory is:
        Alphabugtest.sit
        MacOSprojects.tar.gz
        alphatk
        chanExec.patch
        defineclassbug.zip
        extensions
        iwidgets.diff.gz
        tclobjvfs.diff
        tclobjvfs.diff.gz
        tclvfs.diff
        test.txt
        tests.zip
        tip113.diff
        trace.diff.gz
        tracecmdexec.diff.gz
        tracecommand.patch.gz
        vfs.zip
        vfsTest.tcl
        vfsTktest.tcl
sourcing remote file 'vfsTktest.tcl', using 'source vfsTktest.tcl'
The vfs test file is being sourced
Done

C:\Users\Eric>EXIT


NB: Either closing the wish86t.exe window, or entering in the console Ctrl+C returns you
to the the prompt. Some coders copy wish86t.exe to wish.exe and/or to wish86.exe; you'll
need to copy tclsh86t.exe to tclsh86.exe to compile trf2.1.4.

NB: For an x64 build of OpenSSL one doesn't need to install NASM and the commands run would be:

C:\openssl-1.0.2l>perl.exe Configure VC-WIN64A --prefix=c:\progra~1\openssl
C:\openssl-1.0.2l>ms\do_win64a.bat
C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak
C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak install

https://github.com/Perl/perl5
perl5-blead.zip [patched 16-06-17 for VS 2017]

Or as applied to the current perl stable release, perl-5.26.0, a patched makefile.

Obviously, if you want to use that patched makefile, save it with UNIX line endings.

I don't know if tabs might be an issue, this Internet log (blog) doesn't allocate for tabs.

NB: I think it wasn't documented why perl-blead needed to distinguish between
x86 and x64 library directories, whereas perl stable did not, what chnaged in the
perl code that required that.

Open an x64 Native Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.12
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

C:\Windows\System32>CD \perl5-blead\win32

C:\perl5-blead\win32>nmake.exe -f Makefile

...

C:\perl5-blead\win32>nmake.exe test

All tests successful.

Test Summary Report
-------------------
../ext/IPC-Open3/t/IPC-Open3.t                                   (Wstat: 0 Tests: 45 Failed: 0)
  TODO passed:   25
Files=2584, Tests=1155327, 3845 wallclock secs (252.78 usr + 17.80 sys = 270.58 CPU)
Result: PASS
        cd ..\win32

C:\perl5-blead\win32>nmake.exe -f Makefile install

...

C:\perl5-blead\win32>EXIT

Add "C:\perl\bin" to your System Environment Variable PATH.

http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/win64/
nasm-2.13.01-installer-x64.exe

Run the above installer as an administrator.

Add "C:\Program Files\NASM" to your System Environment Variable PATH.

https://www.openssl.org/source/
openssl-1.0.2l.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

Open an x64_x86 Cross Tools Command Prompt as an administrator.

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.14
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64_x86'

C:\Windows\System32>CD \openssl-1.0.2l

C:\openssl-1.0.2l>perl.exe Configure VC-WIN32 --prefix=c:\progra~2\openssl

...

C:\openssl-1.0.2l>ms\do_ms.bat

...

C:\openssl-1.0.2l>ms\do_nasm.bat

...

C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak

...

C:\openssl-1.0.2l>CD out32dll

C:\openssl-1.0.2l\out32dll>..\ms\test.bat

...
passed all tests

C:\openssl-1.0.2l\out32dll>CD ..

C:\openssl-1.0.2l>nmake.exe -f ms\ntdll.mak install

...

C:\openssl-1.0.2l>EXIT

Add "C:\Program Files (x86)\openssl\bin" to your System Environment Variable PATH.
bzip2-1.0.6.tar.gz

Try Igor Pavlov's 7-Zip (64-bit x64) for extraction.

https://github.com/nurmi-labs/bzip2-1.0.6
bzip2-1.0.6-master.zip

Add the git (Clone or download) .sln and .vcxproj files to the bzip2-1.0.6 directory.

Start the VS IDE and open the Project/Solution... file libbz2.sln, then from the IDE
menu's list box change from Debug to Release, and Build the Solution.

Close the IDE and open a Windows Command Prompt as an administrator.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \bzip2-1.0.6

C:\bzip2-1.0.6>MKDIR c:\progra~2\bzip2\bin

C:\bzip2-1.0.6>MOVE libbz2.dll c:\progra~2\bzip2\bin
        1 file(s) moved.

C:\bzip2-1.0.6>MKDIR c:\progra~2\bzip2\include

C:\bzip2-1.0.6>MOVE bzlib.h c:\progra~2\bzip2\include
        1 file(s) moved.

C:\bzip2-1.0.6>EXIT

 Add "C:\Program Files (x86)\bzip2\bin" to your System Environment Variable PATH.

http://zlib.net/
zlib1211.zip

https://github.com/nurmi-labs/zlib-1.2.11
zlilb-1.2.11-master.zip

Add the git (Clone or download) vc15 subdirectory to zlib-1.2.11/contrib/vstudio.

Start the VS IDE and open the Project/Solution... file vc15/zlibvc.sln, then from the IDE
menu's list box change from Debug to Release, and Build the Solution.

Close the IDE and open a Windows Command Prompt as an administrator.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \zlib1211\zlib-1.2.11

C:\zlib1211\zlib-1.2.11>SET ZLIBDIR=c:\progra~2\zlib

C:\zlib1211\zlib-1.2.11>MKDIR %ZLIBDIR%\bin

C:\zlib1211\zlib-1.2.11>MOVE contrib\vstudio\vc15\x86\ZlibDllRelease\zlibwapi.dll %ZLIBDIR%\bin
        1 file(s) moved.

C:\zlib1211\zlib-1.2.11>MKDIR %ZLIBDIR%\include

C:\zlib1211\zlib-1.2.11>MOVE zconf.h %ZLIBDIR%\include
        1 file(s) moved.

C:\zlib1211\zlib-1.2.11>MOVE zlib.h %ZLIBDIR%\include
        1 file(s) moved.

C:\zlib1211\zlib-1.2.11>EXIT

Add "C:\Program Files (x86)\zlib\bin" to your System Environment Variable PATH.

https://sourceforge.net/projects/tcltrf/
trf2.1.4.zip

Open a Windows Command Prompt as an administrator, copy the tclsh86t.exe and
wish86t.exe files, and the tcl8.6.6 private headers, and make some symbolic links.

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>CD \progra~2\tcl

C:\PROGRA~2\tcl>PUSHD bin

C:\PROGRA~2\tcl\bin>COPY tclsh86t.exe tclsh86.exe
        1 file(s) copied.

C:\PROGRA~2\tcl\bin>COPY wish86t.exe wish86.exe
        1 file(s) copied.

C:\PROGRA~2\tcl\bin>POPD

C:\PROGRA~2\tcl>MKDIR include\tcl-private\generic

C:\PROGRA~2\tcl>COPY \tcl8.6.6\generic\*.h include\tcl-private\generic

...

C:\PROGRA~2\tcl>MKDIR include\tcl-private\win

C:\PROGRA~2\tcl>COPY \tcl8.6.6\win\*.h include\tcl-private\win

...

C:\PROGRA~2\tcl>CD include\tcl-private\generic

C:\PROGRA~2\tcl\include\tcl-private\generic>DEL tcl.h tclDecls.h tclPlatDecls.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tcl.h ..\..\tcl.h
symbolic link created for tcl.h <<===>> ..\..\tcl.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclDecls.h ..\..\tclDecls.h
symbolic link created for tclDecls.h <<===>> ..\..\tclDecls.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclPlatDecls.h ..\..\tclPlatDecls.h
symbolic link created for tclPlatDecls.h <<===>> ..\..\tclPlatDecls.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclWinInt.h ..\win\tclWinInt.h
symbolic link created for tclWinInt.h <<===>> ..\win\tclWinInt.h

C:\PROGRA~2\tcl\include\tcl-private\generic>mklink tclWinPort.h ..\win\tclWinPort.h
symbolic link created for tclWinPort.h <<===>> ..\win\tclWinPort.h

C:\PROGRA~2\tcl\include\tcl-private\generic>EXIT

Updated 01 Aug 2017

An /LTCG linker declaration needs to added to makefile.vc per the output of an earlier run of cl.exe (see below), and the alignment should be dealt with. The tcl8.6.6 (and tk8.6.6) makefile.vc files use
a link flag -nodefaultlib:libucrt.lib, add "baselibs    = $(baselibs) ucrt.lib" for _MSC_VER >= 1900, and an ALIGN98_HACK, the latter two being dependent on a rules.vc file.

See also: http://stevedower.id.au/blog/building-for-python-3-5/
http://stevedower.id.au/blog/building-for-python-3-5-part-two/

tclstub86.lib(tclStubLib.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance

https://github.com/nurmi-labs/tcldemo
tcldemo-master.zip

https://github.com/nurmi-labs/watcom-1.9.0

Precompiled awk.exe, diff.exe, rm.exe, sed.exe, and (w)grep.exe, from
a build of open_watcom_1.9.0, if you want to use these from tcl scripts.

https://github.com/nurmi-labs/watcom-2.0

Precompiled awk.exe, cat.exe, chmod.exe, cp.exe, crlf.exe
[crlf.exe foo foo.txt], diff.exe, egrep.exe, head.exe, sed.exe,
sleep.exe, sort.exe, tee.exe, tr.exe, uniq.exe, wc.exe, and
which.exe, from a build of open-watcom-v2-master.zip.

https://sourceforge.net/projects/tmake/files/tmake/2.12/
tmake-2.12.zip
tmake-2.12.tar.bz2

It might be worth taking a look at whether Trolltech's 'tmake' could be utilised
to generate watcom makefiles for some other UNIX utilities such as cmp.exe,
ls.exe, mv.exe, pwd.exe, tail.exe, and touch.exe.

http://wiki.tcl.tk/15632 [9P (Plan 9 Filesystem Protocol) VFS]
http://wiki.tcl.tk/2701 [Tcl IO Drivers]
http://wiki.tcl.tk/2466 [tclvfs]
http://wiki.tcl.tk/479 [trf]

Additional Trf functionality: tls1.6.7-src.tar.gz, trfcrypt2.0p3.zip

https://core.tcl.tk/tcltls/wiki/Download
tcltls-1.7.12.tar.gz [SSL encryption]

https://core.tcl.tk/tcltls/uvlist?byage=1
older version .zip files are here

http://www.oche.de/~akupries/soft/trfcrypt/index.html
trfcrypt2.0p3.zip [crypto-algorithms]

A Slackware-14.2 (32-bit) install of trf2.1.4.tar.gz, where I manually entered
the path to the OpenSSL headers in the Makefile (after running the configure
script) and modified tests/defs as follows passed all in tests/*.test files except
base64.test, common.all.test, and transform.test, outputting 'invalid command
name "memchan"', and skipping binio.test, as the command was not compiled
into the package.

-    package require Memchan
+    package require tcl::chan::memchan

The Msys2 project has a cvs package.

https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/x86_64/
cvs-1.11.23-2-x86_64.pkg.tar.xz

And, likewise a tclvfs-cvs package, where the tclvfs module was checked
out from the CVS server, but configured without threads enabled.

https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
mingw-w64-x86_64-tclvfs-cvs-20130425-3.src.tar.gz

27 April 2017

cvmfs

This post will be about the CernVM-FS.

http://cernvm.cern.ch/portal/filesystem

Proposed distro specific code changes to the GitHub repository.

https://github.com/cvmfs/cvmfs/tree/devel/cvmfs
cvmfs_config

sys_arch=$(uname)

case $sys_arch in
  Linux )
    if [ -x /sbin/service ]; then
      service="/sbin/service"
    elif [ -x /usr/sbin/service ]; then
      # Ubuntu
      service="/usr/sbin/service"
    elif [ -x /sbin/rc-service ] ; then
      # OpenRC
      service="/sbin/rc-service"
    elif [ -x /usr/bin/systemctl ] ; then
      # archlinux
      service="/usr/bin/systemctl"
    fi
    if [ -x /sbin/pidof ]; then
      pidof="/sbin/pidof"
    else
      # Ubuntu
      pidof="/bin/pidof"
    fi
-    if [ -x /sbin/fuser ]; then
+    if [ -x /bin/fuser ]; then
+      fuser="/bin/fuser"  # SuSE, Ubuntu
+    elif [ -x /sbin/fuser ]; then
      fuser="/sbin/fuser"  # RHEL
-    else
-      fuser="/bin/fuser"  # Ubuntu, SuSE
+    elif [ -x /usr/bin/fuser ]; then
+      fuser="/usr/bin/fuser"  # Slackware
    fi
    if [ -x /usr/bin/fusermount ]; then
      fusermount="/usr/bin/fusermount"  # RHEL, SuSE
    else
-      fusermount="/bin/fusermount"  # Ubuntu
+      fusermount="/bin/fusermount"  # Slackware, Ubuntu
    fi
    if [ ! -x /usr/bin/attr ]; then
      # Fedora
      if [ ! -x /bin/attr ]; then
        echo "attr utility required"
        exit 1
      fi
    fi
    fuse_fs_type="fuse"
    ;;

  Darwin )
    fuser="/usr/bin/fuser"
    fuse_fs_type="osxfusefs"
    ;;

  * )
    echo "Architecture $sys_arch is not supported"
    exit 1 ;;
esac

http://cvmfs.readthedocs.io/en/stable/cpt-squid.html

https://slackbuilds.org/repository/14.2/network/
squid-3.5.20.tar.xz
squid.tar.gz

eric6

System: Slackware Linux (version 14.2)
CPU: Intel(R) Core(TM) Duo CPU T2500 @2.00GHz
Deps: eric6-17.04.1.tar.gz
eric6-i18n-en-17.04.1.tar.gz

Installation of eric6-17.04.1.

https://sourceforge.net/projects/eric-ide/files/eric6/stable/17.04.1/

eric6-17.04.1.tar.gz
eric6-i18n-en-17.04.1.tar.gz

https://slackbuilds.org/repository/14.2/development/

https://slackbuilds.org/repository/14.2/libraries/
https://slackbuilds.org/repository/14.2/python/

bash-4.3# installpkg MarkupSafe-0.23-i486-1_SBo.tgz \
> PyStemmer-1.3.0-i586-1_SBo.tgz Pygments-2.1.3-i586-1_SBo.tgz \
> alabaster-0.7.9-i586-1_SBo.tgz cx_Freeze-4.2.3-i486-1_SBo.tgz \
> docutils-0.12-i486-1_SBo.tgz imagesize-0.7.1-i586-1_SBo.tgz \
> pyenchant-1.6.8-i586-1_SBo.tgz python-lazy-object-proxy-1.2.2-i586-1_SBo.tgz \
> python-requests-2.13.0-i586-1_SBo.tgz python-wrapt-1.10.8-i586-1_SBo.tgz \
> pytz-2016.10-i586-1_SBo.tgz six-1.10.0-i586-1_SBo.tgz


...

bash-4.3# installpkg Jinja2-2.7.3-i486-1_SBo.tgz \
> astroid-1.5.2-i586-1_SBo.tgz babel-2.3.4-i586-1_SBo.tgz \
> logilab-common-0.63.2-i486-1_SBo.tgz snowballstemmer-1.2.1-i586-1_SBo.tgz


...

bash-4.3# installpkg Sphinx-1.5.5-i586-1_SBo.tgz \
> pylint-1.5.2-i486-1_SBo.tgz


...

bash-4.3#

A SlackBuild for eric6 is located in the sidebar.

bash-4.3# installpkg eric6-17.04.1-i586-1_SBo.tgz

...

bash-4.3# exit

NB: You need at least Qt version 5.6.0 to execute the eric6 (QtWebEngine) web browser,
which is not supplied with this version of Slackware Linux; while the eric6 (QtWebKit) web
browser works fine.

22 April 2017

hubfs

http://9p.io/wiki/plan9/expanding_your_grid/index.html

http://9p.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html
http://9p.io/wiki/plan9/adding_a_new_user/index.html
http://9p.io/wiki/plan9/Network_configuration/index.html

http://9p.io/wiki/plan9/Installing_a_Plan_9_file_server/index.html
http://9p.io/wiki/plan9/setting_up_fossil/index.html
http://9p.io/wiki/plan9/setting_up_Venti/index.html

http://9p.io/wiki/plan9/connecting_to_other_OSes/index.html
http://9p.io/wiki/plan9/connecting_from_other_OSes/index.html

http://9p.io/wiki/plan9/hubfs/index.html
http://plan9.bell-labs.com/magic/man2html/4/consolefs

http://plan9.bell-labs.com/sources/contrib/mycroftiv/hubfs1.1/

NB: For Windows 10 (CU) 64-bit WSL probably one would want from a plan9port install
to connect to a GNU/Linux 64-bit machine on a LAN, and then use p9p's 9pfuse on the
latter for p9p/unix; the README file has a couple of scripts. On MacOS X you probably
need from Terminal to switch from bash to rc before starting acme.

The hubfs(1) and io(1) man pages are in the sidebar.

19 April 2017

p9p

System: Slackware Linux (version 14.2)
CPU: Intel(R) Core(TM) Duo CPU T2500 @2.00GHz
Deps: plan9port-20140306.tgz

https://code.google.com/archive/p/plan9port/downloads
plan9port-20140306.tgz

I recently compiled plan9port-20140306.tgz with Slackware-14.2's glibc-2.23.

The plan9port files' compilation produced terminal output as follows:

9c  sam.c
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"

The suggestion has been forwarded to avoid the deprecated function usleep() in favour of nanosleep(), the change of the feature test macro (FTM) appears to have occurred in glibc subsequent to Slackware-14.1's glibc-2.17, so the warnings likely do not occur with those releases.

screen

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor

I haven't looked at Win10 (CU) released on 11-04-17, it might be interesting though if one could from a Win64 installed GNU emacs reattach a WSL detached GNU Screen session.

Here is H. Oliveira's code which could be added to an emacs' customisation file.

;; GNU screen inside GNU Emacs
(defun term-screen ()
  (interactive)
  "Open GNU screen session or reattaches existing one"
  (require 'term)
  (setq term-ansi-buffer-name (concat "*" "terminal" "*"))
  (term-ansi-make-term term-ansi-buffer-name
                             "/usr/bin/screen" nil "-d" "-R")

  (set-buffer term-ansi-buffer-name)
  (term-mode)
  (term-char-mode)

  (term-set-escape-char ?\C-x)

  (switch-to-buffer term-ansi-buffer-name))

(global-set-key (kbd "C-c t") 'term-screen)

NB: I presume the path to the ELF64 screen should be adjusted for the PE64 emacs.

02 April 2017

xs

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: frytvm-XS-c9a0b29.tar.gz, weirdx-1.0.32.tar.gz,
jre-8u121-windows-x64.exe

WSL installation of Koehler's xs.

In addition to the toolchain, window manager, X files, jre8 and WeirdX from the
previous post, add some dependencies.

root@LAPTOP-5CMN50N0:~# apt-get install autoconf g++ help2man libboost-dev libgc-dev

...

root@LAPTOP-5CMN50N0:~# apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev

...

root@LAPTOP-5CMN50N0:~#

http://pkgs.fedoraproject.org/repo/pkgs/xs/
frytvm-XS-c9a0b29.tar.gz

Extract the above download for example with 7-Zip (64-bit x64).

root@LAPTOP-5CMN50N0:~# cd /mnt/c/Users/Eric/frytvm-XS-c9a0b29
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# autoreconf -i
configure.ac:114: installing './compile'
configure.ac:45: installing './config.guess'
configure.ac:4: installing './missing'
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

CFLAGS and CXXFLAGS are "-O2 -march=i486 -mtune=i686" for i486,
"-O2 -march=i686 -mtune=i686" for i686, and "-O2 -fPIC" for x86_64.

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# CXXFLAGS="-O2 -fPIC" \
> ./configure --prefix=/usr --enable-lisptrees
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for bison... bison -y
checking for main in -lgc... yes
checking for /dev/fd filesystem... yes
checking whether #! works in shell scripts... yes
checking for getpwuid in -lsun... no
checking for initscr in -lncurses... yes
checking for readline in -lreadline... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for memory.h... (cached) yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking sys/cdefs.h usability... yes
checking sys/cdefs.h presence... yes
checking for sys/cdefs.h... yes
checking tr1/unordered_map usability... yes
checking tr1/unordered_map presence... yes
checking for tr1/unordered_map... yes
checking for an ANSI C-conforming const... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking type of array argument to getgroups... gid_t
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking whether gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... yes
checking return type of signal handlers... void
checking for wait3 that fills in rusage... yes
checking for strerror... yes
checking for strtol... yes
checking for lstat... yes
checking for setrlimit... yes
checking for sigrelse... yes
checking for sighold... yes
checking for sigaction... yes
checking for sysconf... yes
checking for setsid... yes
checking for rlimit type ......    rlim_t
checking for files to extract signal information from... /usr/include/features.h /usr/include/signal.h /usr/include/stdc-predef.h /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/x86_64-linux-gnu/bits/sigaction.h /usr/include/x86_64-linux-gnu/bits/sigcontext.h /usr/include/x86_64-linux-gnu/bits/siginfo.h /usr/include/x86_64-linux-gnu/bits/signum.h /usr/include/x86_64-linux-gnu/bits/sigset.h /usr/include/x86_64-linux-gnu/bits/sigstack.h /usr/include/x86_64-linux-gnu/bits/sigthread.h /usr/include/x86_64-linux-gnu/bits/types.h /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/x86_64-linux-gnu/bits/wordsize.h /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/x86_64-linux-gnu/gnu/stubs.h /usr/include/x86_64-linux-gnu/sys/cdefs.h /usr/include/x86_64-linux-gnu/sys/ucontext.h /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# make

/bin/bash ./ylwrap parse.yxx y.tab.c parse.cxx y.tab.h `echo parse.cxx | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output parse.output -- bison -y -d
updating parse.hxx
make  all-am
make[1]: Entering directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT access.o -MD -MP -MF .deps/access.Tpo -c -o
access.o access.cxx
mv -f .deps/access.Tpo .deps/access.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT closure.o -MD -MP -MF .deps/closure.Tpo -c -o closure.o closure.cxx
mv -f .deps/closure.Tpo .deps/closure.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT conv.o -MD -MP -MF .deps/conv.Tpo -c -o conv.o
conv.cxx
mv -f .deps/conv.Tpo .deps/conv.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT eval.o -MD -MP -MF .deps/eval.Tpo -c -o eval.o
eval.cxx
mv -f .deps/eval.Tpo .deps/eval.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT fd.o -MD -MP -MF .deps/fd.Tpo -c -o fd.o fd.cxx
mv -f .deps/fd.Tpo .deps/fd.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT glob.o -MD -MP -MF .deps/glob.Tpo -c -o glob.o
glob.cxx
mv -f .deps/glob.Tpo .deps/glob.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT glom.o -MD -MP -MF .deps/glom.Tpo -c -o glom.o
glom.cxx
mv -f .deps/glom.Tpo .deps/glom.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT input.o -MD -MP -MF .deps/input.Tpo -c -o input.o
input.cxx
mv -f .deps/input.Tpo .deps/input.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT heredoc.o -MD -MP -MF .deps/heredoc.Tpo -c -o
heredoc.o heredoc.cxx
mv -f .deps/heredoc.Tpo .deps/heredoc.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT list.o -MD -MP -MF .deps/list.Tpo -c -o list.o list.cxx
mv -f .deps/list.Tpo .deps/list.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT match.o -MD -MP -MF .deps/match.Tpo -c -o match.o match.cxx
mv -f .deps/match.Tpo .deps/match.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT opt.o -MD -MP -MF .deps/opt.Tpo -c -o opt.o opt.cxx
mv -f .deps/opt.Tpo .deps/opt.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-ctl.o -MD -MP -MF .deps/prim-ctl.Tpo -c -o
prim-ctl.o prim-ctl.cxx
mv -f .deps/prim-ctl.Tpo .deps/prim-ctl.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-etc.o -MD -MP -MF .deps/prim-etc.Tpo -c -o
prim-etc.o prim-etc.cxx
mv -f .deps/prim-etc.Tpo .deps/prim-etc.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-io.o -MD -MP -MF .deps/prim-io.Tpo -c -o
prim-io.o prim-io.cxx
mv -f .deps/prim-io.Tpo .deps/prim-io.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-sys.o -MD -MP -MF .deps/prim-sys.Tpo -c -o
prim-sys.o prim-sys.cxx
mv -f .deps/prim-sys.Tpo .deps/prim-sys.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim.o -MD -MP -MF .deps/prim.Tpo -c -o prim.o
prim.cxx
mv -f .deps/prim.Tpo .deps/prim.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT print.o -MD -MP -MF .deps/print.Tpo -c -o print.o
print.cxx
mv -f .deps/print.Tpo .deps/print.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT proc.o -MD -MP -MF .deps/proc.Tpo -c -o proc.o
proc.cxx
mv -f .deps/proc.Tpo .deps/proc.Po
sh ./mksignal /usr/include/features.h /usr/include/signal.h /usr/include/stdc-predef.h
/usr/include/time.h /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/x86_64-
linux-gnu/bits/sigaction.h /usr/include/x86_64-linux-gnu/bits/sigcontext.h
/usr/include/x86_64-linux-gnu/bits/siginfo.h /usr/include/x86_64-linux-gnu/bits/signum.h
/usr/include/x86_64-linux-gnu/bits/sigset.h /usr/include/x86_64-linux-gnu/bits/sigstack.h
/usr/include/x86_64-linux-gnu/bits/sigthread.h /usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/x86_64-linux-
gnu/bits/wordsize.h /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/x86_64-linux
-gnu/gnu/stubs.h /usr/include/x86_64-linux-gnu/sys/cdefs.h /usr/include/x86_64-linux-
gnu/sys/ucontext.h /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h  > sigmsgs.cxx
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT sigmsgs.o -MD -MP -MF .deps/sigmsgs.Tpo -c -o
sigmsgs.o sigmsgs.cxx
mv -f .deps/sigmsgs.Tpo .deps/sigmsgs.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT signal.o -MD -MP -MF .deps/signal.Tpo -c -o
signal.o signal.cxx
mv -f .deps/signal.Tpo .deps/signal.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT split.o -MD -MP -MF .deps/split.Tpo -c -o split.o
split.cxx
mv -f .deps/split.Tpo .deps/split.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT syntax.o -MD -MP -MF .deps/syntax.Tpo -c -o
syntax.o syntax.cxx
mv -f .deps/syntax.Tpo .deps/syntax.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT status.o -MD -MP -MF .deps/status.Tpo -c -o
status.o status.cxx
mv -f .deps/status.Tpo .deps/status.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT str.o -MD -MP -MF .deps/str.Tpo -c -o str.o str.cxx
mv -f .deps/str.Tpo .deps/str.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT term.o -MD -MP -MF .deps/term.Tpo -c -o term.o
term.cxx
mv -f .deps/term.Tpo .deps/term.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT token.o -MD -MP -MF .deps/token.Tpo -c -o token.o token.cxx
mv -f .deps/token.Tpo .deps/token.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT tree.o -MD -MP -MF .deps/tree.Tpo -c -o tree.o
tree.cxx
mv -f .deps/tree.Tpo .deps/tree.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.cxx
mv -f .deps/util.Tpo .deps/util.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT var.o -MD -MP -MF .deps/var.Tpo -c -o var.o var.cxx
mv -f .deps/var.Tpo .deps/var.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT version.o -MD -MP -MF .deps/version.Tpo -c -o
version.o version.cxx
mv -f .deps/version.Tpo .deps/version.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT parse.o -MD -MP -MF .deps/parse.Tpo -c -o parse.o parse.cxx
mv -f .deps/parse.Tpo .deps/parse.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT dump.o -MD -MP -MF .deps/dump.Tpo -c -o dump.o dump.cxx
mv -f .deps/dump.Tpo .deps/dump.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o
main.cxx
mv -f .deps/main.Tpo .deps/main.Po
g++  -O2 -fPIC   -o xsdump access.o closure.o conv.o eval.o fd.o glob.o glom.o input.o heredoc.o list.o match.o opt.o prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o sigmsgs.o signal.o split.o syntax.o status.o str.o term.o token.o tree.o util.o var.o version.o parse.o dump.o main.o  -lreadline -lncurses -lgc
./xsdump < ./initial.xs > initial.cxx || (rm initial.cxx; false)
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT initial.o -MD -MP -MF .deps/initial.Tpo -c -o
initial.o initial.cxx
mv -f .deps/initial.Tpo .deps/initial.Po
g++  -O2 -fPIC   -o xs access.o closure.o conv.o eval.o fd.o glob.o glom.o input.o heredoc.o list.o match.o opt.o prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o sigmsgs.o signal.o split.o syntax.o status.o str.o term.o token.o tree.o util.o var.o version.o parse.o initial.o main.o  -lreadline -lncurses -lgc
make[1]: Leaving directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# make install
make  install-am
make[1]: Entering directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
./xsdump < ./initial.xs > initial.cxx || (rm initial.cxx; false)
g++ -DHAVE_CONFIG_H -I.     -g -O2 -MT initial.o -MD -MP -MF .deps/initial.Tpo -c -o initial.o initial.cxx
mv -f .deps/initial.Tpo .deps/initial.Po
g++  -O2 -fPIC  -o xs access.o closure.o conv.o eval.o fd.o glob.o glom.o input.o heredoc.o list.o match.o opt.o prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o sigmsgs.o signal.o split.o syntax.o status.o str.o term.o token.o tree.o util.o var.o version.o parse.o initial.o main.o  -lreadline -lncurses -lgc
make[2]: Entering directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
 /bin/mkdir -p '/usr/bin'
  /usr/bin/install -c xs '/usr/bin'
 /bin/mkdir -p '/usr/share/man/man1'
 /usr/bin/install -c -m 644 xs.1 '/usr/share/man/man1'
make[2]: Leaving directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
make[1]: Leaving directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# cd /usr/share/man/man1
root@LAPTOP-5CMN50N0:/usr/share/man/man1# gzip -n9 xs.1
root@LAPTOP-5CMN50N0:/usr/share/man/man1# exit

This was just a test today of the WSL (Win10 AU) compiler toolchain.

The xs(1) man page is in the sidebar.