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: gvim_8.0.0003_x64.zip, vim-notebook-master.zip

This post is not finished.

T. Baruchel's vim-notebook currently only supports Unix-like OSes.

This entry will look at whether it can be made to run with Win64 interpreters.

https://github.com/vim/vim-win32-installer/releases/tag/v8.0.0003
gvim_8.0.0003_x64.zip

https://github.com/baruchel/vim-notebook
vim-notebook-master.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

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/
9pc.tar.gz

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.

<noreply-comment@blogger.com> has left a comment for this post, but I do not understand
how a comment can be submitted from such an address, so I am not posting that comment

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.

http://plan9.bell-labs.com/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
☑ Compilers, build tools, and runtimes
☑ 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 the the prompt; some developers copy wish86t.exe to wish.exe
and/or to wish86.exe.

This section (on trf) is not finished.

Here is the unmodified makefile fror trf2.1.4.

NB: On 64 bit for 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~2\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

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.

31 March 2017

p9p

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

WSL installation of plan9port.

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

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

Rename the directory to 'plan9' and move via the command-line the directory to /usr/local.

root@LAPTOP-5CMN50N0:~# cd /mnt/c/Users/Eric/Downloads
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/Downloads# mv plan9 /usr/local
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/Downloads# cd $HOME
root@LAPTOP-5CMN50N0:~#

Install your compiler toolchain.

root@LAPTOP-5CMN50N0:/~# apt-get install bison flex gcc m4 make

...

root@LAPTOP-5CMN50N0:~#

Install a window manager and p9p dependencies.

root@LAPTOP-5CMN50N0:~# apt-get blackbox libbz2-dev libfontconfig1-dev menu xorg-dev

...

root@LAPTOP-5CMN50N0:/~#

Change ownership, check permissions, and install.

root@LAPTOP-5CMN50N0:~# cd /usr/local/plan9
root@LAPTOP-5CMN50N0:/usr/local/plan9# set -e
root@LAPTOP-5CMN50N0:/usr/local/plan9# chown -R root:root .
root@LAPTOP-5CMN50N0:/usr/local/plan9# find -L . \
> \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
>  -o -perm 511 \) -exec chmod 755 {} \; -o \
> \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
> -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
root@LAPTOP-5CMN50N0:/usr/local/plan9# ./INSTALL
+ Mailing list: http://groups.google.com/group/plan9port-dev
+ Issue tracker: http://code.swtch.com/plan9port/issues/
+ Submitting changes: http://swtch.com/go/codereview
* Resetting /usr/local/plan9/config
* Compiler version:
        gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
* Running on Linux: checking for NPTL...
        NPTL found.
        fontsrv dependencies found.
* Building mk...
>>> pwd
>>> cd /usr/local/plan9/src/lib9
9c dirread.c
   fchdir(oldwd);
         ^
  fchdir(oldwd);
        ^
>>> cd /usr/local/plan9/src/lib9
9c readcons.c
     write(fd, "\n", 1);
          ^
     write(fd, "\n", 1);
          ^
>>> pwd
>>> pwd
>>> pwd
* Building everything (be patient)...
>>> cd /usr/local/plan9/src/lib9; mk all
9c  dirread.c
   fchdir(oldwd);
         ^
  fchdir(oldwd);
        ^
>>> cd /usr/local/plan9/src/lib9; mk all
9c  readcons.c
     write(fd, "\n", 1);
          ^
     write(fd, "\n", 1);
          ^
>>> cd /usr/local/plan9/src/libthread; mk all
9c -o exec.o  -I. exec.c
    chdir(dir); /* best effort */
         ^
>>> cd /usr/local/plan9/src/cmd; mk all
9c  dd.c
   read(ibf, ibuf, ibs);
       ^
>>> cd /usr/local/plan9/src/cmd; mk all
9c  fortune.c
   read(ix, off, sizeof(off));
       ^
>>> cd /usr/local/plan9/src/cmd; mk all
9c  tar.c
   chdir(origdir);  /* for correctness & profiling */
        ^
>>> cd /usr/local/plan9/src/cmd/9660; mk all
9c  unix.c
  ftruncate(fd, size);
           ^
>>> cd /usr/local/plan9/src/cmd/9pfuse; mk all
9c  fuse.c
  writev(fusefd, vec, nvec);
        ^
>>> cd /usr/local/plan9/src/cmd/db; mk all
9c  trcrun.c
   read(0, buf, 100);
       ^
>>> cd /usr/local/plan9/src/cmd/eqn; mk all
9c  input.c
   fgets(ebuf, sizeof ebuf, curfile->fin);
        ^
>>> cd /usr/local/plan9/src/cmd/fossil; mk all
9c  flfmt.c
{
        echo '#!/usr/local/plan9/bin/rc'
        echo '# THIS FILE IS AUTOMATICALLY GENERATED'
        echo '# FROM /usr/local/plan9/src/cmd/fossil/conf.rc.  DO NOT EDIT.'
        echo
        sed 1d conf.rc
} >o.conf && chmod +x o.conf
>>> cd /usr/local/plan9/src/cmd/grap; mk all
9c  main.c
  mkstemp(tempfile);
         ^
>>> cd /usr/local/plan9/src/cmd/grap; mk all
9c  input.c
  fgets(ebuf, sizeof ebuf, curfile->fin);
       ^
  system(shellbuf);
        ^
>>> cd /usr/local/plan9/src/cmd/graph; mk all
9c  graph.c
   scanf("%[\"]",junk);
        ^
>>> cd /usr/local/plan9/src/cmd/map; mk all
9c  map.c
   fscanf(ifile,"%[^\n]",lbl+1);
         ^
>>> cd /usr/local/plan9/src/cmd/map; mk all
9c  symbol.c
    fscanf(sf,"%*[^\n]");
          ^
>>> cd /usr/local/plan9/src/cmd/page; mk all
9c  view.c
   mkstemp(name);
          ^
  pipe(pfd);
      ^
>>> cd /usr/local/plan9/src/cmd/pic; mk all
9c  input.c
  fgets(ebuf, sizeof ebuf, curfile->fin);
       ^
  system(shellbuf);
        ^
>>> cd libplot
9c  machdep.c
  read(fd, v, size);
      ^
>>> cd libplot
9c  ppause.c
  read(0, aa, 4);
      ^
>>> cd /usr/local/plan9/src/cmd/postscript/common; mk all
9c -c -Dplan9 misc.c
  write(fd_out, buf, count);
       ^
>>> cd /usr/local/plan9/src/cmd/rio; mk all
9c -I/usr/include -DDEBUG -DSHAPE -DDEBUG_EV -DDEBUG main.c
   system("xsetroot -solid grey30");
         ^
>>> cd /usr/local/plan9/src/cmd/tapefs; mk all
9c  tarfs.c
  read(tapefile, dblock.tbuf, cnt);
      ^
>>> cd /usr/local/plan9/src/cmd/tapefs; mk all
9c  tpfs.c
  read(tapefile, dir, sizeof dir);
      ^
  read(tapefile, buffer, cnt);
      ^
>>> cd /usr/local/plan9/src/cmd/tapefs; mk all
9c  cpiofs.c
  read(tapefile, dblock.tbuf, cnt);
      ^
>>> cd /usr/local/plan9/src/cmd/tapefs; mk all
9c  tapfs.c
  read(tapefile, dir, sizeof dir);
      ^
  read(tapefile, buffer, cnt);
      ^
>>> cd /usr/local/plan9/src/cmd/tpic; mk all
9c  input.c
  fgets(ebuf, sizeof ebuf, curfile->fin);
       ^
  system(shellbuf);
        ^
>>> cd /usr/local/plan9/src/cmd/troff; mk all
9c -DUNICODE -DFONTDIR="troff/font" -DNTERMDIR="troff/term/tab." -DTEXHYPHENS="#9/lib/hyphen.tex" -DALTHYPHENS="lib/hyphen.tex" -DDWBHOME="#9/" n1.c
  system(sybuf);
        ^
>>> cd /usr/local/plan9/src/cmd/troff; mk all
9c -DUNICODE -DTDEVNAME="utf" n10.c
  fscanf(fp, "%s", cmd); /* should be device name... */
        ^
   fscanf(fp, "%s", cmd);
         ^
   fscanf(fp, " %[^\n]", opt);
         ^
  read(2, &junk, 1);
      ^
>>> cd /usr/local/plan9/src/cmd/troff; mk all
9c -DUNICODE t11.c
    fscanf(fin, "%d", &Inch);
          ^
    fscanf(fin, "%d", &Hor);
          ^
    fscanf(fin, "%d", &Vert);
          ^
    fscanf(fin, "%d", &Unitwidth);
          ^
    fscanf(fin, "%d", &nfonts);
          ^
     fscanf(fin, "%s", s);
           ^
    fscanf(fin, "%s", ftemp->longname);
          ^
    fscanf(fin, "%d", &ftemp->spacewidth);
          ^
    fscanf(fin, "%d", &ftemp->defaultwidth);
          ^
>>> cd /usr/local/plan9/src/cmd/vbackup; mk all
9c  vnfs.c
vnfs.c:313:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  h->len = *(u32int*)(h->h+SessidSize);
  ^
>>> cd /usr/local/plan9/src/cmd/venti/srv; mk all
9c  fixarenas.c
   pwrite(sb->fd, p, len, offset - sb->r0);
         ^
* Installing everything in /usr/local/plan9/bin...                                                                       
* Cleaning up...
* Renaming hard-coded /usr/local/plan9 paths...
* Building web manual...
    /usr/local/plan9/dist mk man                                                      
* Done.
* Add these to your profile environment.
        PLAN9=/usr/local/plan9 export PLAN9
        PATH=$PATH:$PLAN9/bin export PATH
root@LAPTOP-5CMN50N0:/usr/local/plan9#

Strip your files.

root@LAPTOP-5CMN50N0:/usr/local/plan9# find . | xargs file | \
> grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | \
> xargs strip --strip-unneeded 2> /dev/null || true
root@LAPTOP-5CMN50N0:/usr/local/plan9# exit

http://www.jcraft.com/weirdx/
weirdx-1.0.32.tar.gz

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

Rename the directory to 'weirdx' and move it.

C:\Users\Eric\Downloads>MOVE weirdx C:\
              1 dir(s) moved.

C:\Users\Eric\Downloads>EXIT

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
jre-8u121-windows-x64.exe

Run the jre8 installer.

Start WeirdX.

C:\Users\Eric>CD \weirdx\misc

C:\weirdx\misc>weirdx-Java2.bat

C:\weirdx\misc>java -classpath ".;.\weirdx.jar" com.jcraft.weirdx.WeirdX

Export variables to your shell and start blackbox.

root@LAPTOP-5CMN50N0:~# export DISPLAY=localhost:2.0
root@LAPTOP-5CMN50N0:~# export PLAN9=/usr/local/plan9
root@LAPTOP-5CMN50N0:~# export MANPATH=$MANPATH:$PLAN9/man
root@LAPTOP-5CMN50N0:~# export PATH=$PATH:$PLAN9/bin
root@LAPTOP-5CMN50N0:~# blackbox &
1 [12]
root@LAPTOP-5CMN50N0:~# blackbox: managing screen 0 using TrueColor visual 0x20, depth 16
blackbox: [stylesdir/stylesmenu] error, '/root/.blackbox/styles' does not exist

root@LAPTOP-5CMN50N0:~#

Start 9term.

root@LAPTOP-5CMN50N0:~# 9term &
[2] 14
root@LAPTOP-5CMN50N0:~# ioctl TIOCSCTTY: Operation not permitted

root@LAPTOP-5CMN50N0:~#

When you finish with your 9term session and exit blackbox, you
can open another Windows Command Prompt, run tasklist.exe,
find the jave.exe PID and kill that process, which closes the
WeirdX window.

Running 9term in WeirdX the highlighting and cutting of text is awkward.

The bash output starting 9term as 'ioctl TIOCSCTTY: Operation not permitted' occurs
irrespective of whether one uses vcxsrv-64.1.19.2.0.installer.exe or WeirdX, though in
the former 9term and acme function properly; VcXsrv uses the variable DISPLAY=:0.

In the sidebar is available a "WSL" screenshot of p9p's rio running in VcXsrv.

NB: 9term running bash outputs what appears to be some escape sequences when executing,
e.g., the Unix utility 'ls', using p9p's rc shell doesn't result in that output, and the rc shell can be
run in an xterminal loaded in WeirdX (with or without a window manager).

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

04 March 2017

XESS

I came across recently a 30 day trial version of the XESS-4.0 spreadsheet, © 1990-1998 Applied Information Systems and others, from the now dissolved Chapel Hill, N.C., based company

This was prior to Sun Microsystems having with StarOffice 6.0 converted their calc program's
file format to use XML, and the Microsoft® Excel 2002 conversion of .xls to .xlsx.

XESS .xs4 files did not use XML, and the spreadsheet had itself some innovative features.

Possibly XESS was an acronym for X Engineering Software Systems.

I have been somewhat curious of StarOffice's interface to unixODBC, but never have allocated
the time to examine that interface.

30 January 2017

patching Network-NineP

System: Microsoft Windows XP Home Edition
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
Deps: HaskellPlatform-2014.2.0.0-i386-setup.exe

I am suspending further work on this project after initially
patching the hackage download to compile on GNU/Linux,
basically because I don't like the [MSYS2] toolchain that's
shipped with the current HaskellPlatform.

The GitHub network-ninep-0.0.1 download contains code using withSocketsDo,
purportedly needed to be able to use Winsock - I believe binary >0.6.0.0 might be
a dependency for that download, however withSocketsDo is not appearing in the
hackage Network-NineP downloads, of which incidentally, though I admit I have
not researched it thouroughly, if the GitHub release preceded those from hackage,
some of the former's code might appear to have been split off into separate NineP
downloads: https://github.com/Elemir/network-ninep

The Network-NineP-0.4.1 package compiled on Slackware-14.0 after
adding this line following the comments at the top of Error.hs. If you are
installing into '--prefix=/usr' you might want to change the executable's
name in the cabal file, so it does not conflict with Slackware's /bin/test,
/usr/bin contains a symbolic link to /bin/test.

{-# LANGUAGE DeriveDataTypeable #-}

On Windows XP the compile fails on the 8th of a total of 9 files,
the same occurs on HaskellPlatform-7.10.2-a-i386-setup.exe.

HaskellPlatform-7.10.3-i386-setup.exe installed on XP fails to
load time-1.5.0.1.

HaskellPlatform-8.0.2-full-i386-setup.exe requires at minimum
Windows 7, as that version's ghc.exe uses the procedure entry
point _wsplitpath_s, introduced in the Windows 7 msvcrt.dll.

After importing Network (from network-2.4.2.3) in ghci.exe
the 'Not in scope' error occurs.

Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Eric>ghci
GHCi, version 7.8.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
ghci> import Network
ghci> :t UnixSocket

<interactive>:1:1: Not in scope: data constructor `UnixSocket'
ghci> :q
Leaving GHCi.

C:\Documents and Settings\Eric>EXIT

This however doesn't occur on Slackware-14.0 using network-2.6.0.2.

sh-4.2$ ghci
GHCi, version 7.8.4: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
ghci> import Network
ghci> :t UnixSocket
UnixSocket :: String -> PortID
ghci> :q
Leaving GHCi.

sh-4.2$ exit

https://downloads.haskell.org/~platform/2014.2.0.0/
HaskellPlatform-2014.2.0.0-i386-setup.exe

The parsec version (accompanying the above download) and convertible-1.1.1.0
need to use the identical version of the text package.

C:\Documents and Settings\Eric>CD \

C:\>cabal update
Config file path source is default config file.
Config file C:\Documents and Settings\Eric\Application Data\cabal\config not
found.
Writing default configuration to C:\Documents and Settings\Eric\Application
Data\cabal\config
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install

C:\>cabal install NineP-0.0.2.1 transformers-compat-0.4.0.3
Resolving dependencies...
Downloading NineP-0.0.2.1...
Downloading transformers-compat-0.4.0.3...
Configuring NineP-0.0.2.1...
Configuring transformers-compat-0.4.0.3...
Building NineP-0.0.2.1...
Building transformers-compat-0.4.0.3...
Installed transformers-compat-0.4.0.3
Installed NineP-0.0.2.1

C:\>cabal install exceptions-0.8.0.2 hslogger-1.2.10 monad-loops-0.4.3
Resolving dependencies...
Downloading exceptions-0.8.0.2...
Downloading monad-loops-0.4.3...
Downloading hslogger-1.2.10...
Configuring monad-loops-0.4.3...
Configuring exceptions-0.8.0.2...
Building monad-loops-0.4.3...
Building exceptions-0.8.0.2...
Installed monad-loops-0.4.3
Configuring hslogger-1.2.10...
Installed exceptions-0.8.0.2
Building hslogger-1.2.10...
Installed hslogger-1.2.10

C:\>cabal install convertible-1.1.1.0 extensible-exceptions-0.1.1.4
Resolving dependencies...
Downloading convertible-1.1.1.0...
Downloading extensible-exceptions-0.1.1.4...
Configuring extensible-exceptions-0.1.1.4...
Configuring convertible-1.1.1.0...
Building extensible-exceptions-0.1.1.4...
Building convertible-1.1.1.0...
Installed extensible-exceptions-0.1.1.4
Installed convertible-1.1.1.0

C:\>cabal install monad-peel-0.2.1.1 mstate-0.2.7 stateref-0.3
Resolving dependencies...
Downloading monad-peel-0.2.1.1...
Downloading stateref-0.3...
Configuring stateref-0.3...
Configuring monad-peel-0.2.1.1...
Building stateref-0.3...
Building monad-peel-0.2.1.1...
Installed monad-peel-0.2.1.1
Downloading mstate-0.2.7...
Configuring mstate-0.2.7...
Installed stateref-0.3
Building mstate-0.2.7...
Installed mstate-0.2.7

C:\>

https://hackage.haskell.org/package/Network-NineP
Network-NineP-0.4.1.tar.gz

Download and extract Network-NineP-0.4.1.tar.gz, adding
this line following the comments at the top of Error.hs.

{-# LANGUAGE DeriveDataTypeable #-}

Then run the commands.

C:\Network-NineP-0.4.1>runhaskell Setup configure --user
Configuring Network-NineP-0.4.1...

C:\Network-NineP-0.4.1>runhaskell Setup build
Building Network-NineP-0.4.1...
Preprocessing library Network-NineP-0.4.1...
[1 of 9] Compiling Network.NineP.Error ( Network\NineP\Error.hs, dist\build\Netw
ork\NineP\Error.o )
[2 of 9] Compiling Control.Monad.EmbedIO ( Control\Monad\EmbedIO.hs, dist\build\
Control\Monad\EmbedIO.o )
[3 of 9] Compiling Network.NineP.Internal.File ( Network\NineP\Internal\File.hs,
 dist\build\Network\NineP\Internal\File.o )
[4 of 9] Compiling Network.NineP.File ( Network\NineP\File.hs, dist\build\Networ
k\NineP\File.o )
[5 of 9] Compiling Network.NineP.File.Instances ( Network\NineP\File\Instances.h
s, dist\build\Network\NineP\File\Instances.o )
[6 of 9] Compiling Network.NineP.Internal.State ( Network\NineP\Internal\State.h
s, dist\build\Network\NineP\Internal\State.o )
[7 of 9] Compiling Network.NineP.Internal.Msg ( Network\NineP\Internal\Msg.hs, d
ist\build\Network\NineP\Internal\Msg.o )
[8 of 9] Compiling Network.NineP.Server ( Network\NineP\Server.hs, dist\build\Ne
twork\NineP\Server.o )

Network\NineP\Server.hs:56:55:
    Not in scope: data constructor `UnixSocket'

C:\Network-NineP-0.4.1>

Here's the code block in Server.hs where the compile failed.

connection :: String -> IO Socket
connection s = let pat = "tcp!(.*)!([0-9]*)|unix!(.*)" :: ByteString
wrongAddr = ioError $ userError $ "wrong 9p connection address: " ++ s
(bef, _, aft, grps) = s =~ pat :: (String, String, String, [String])
in if (bef /= "" || aft /= "" || grps == [])
then wrongAddr
else case grps of
[addr, port, ""] -> listen' addr $ toEnum $ (fromMaybe 2358 $ maybeRead port :: Int)
["", "", addr]  -> listenOn $ UnixSocket addr
_ -> wrongAddr

NB: The package version numbers above were selected so one could install yi-0.10.1 on
top of this without breaking any packages.

29 January 2017

patching sexpr

System: Slackware Linux (version 14.0)
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
Deps: ghc-7.8.4-i386-unknown-linux-deb7.tar.xz

This entry is not finished yet.

Looking at /sexpr-0.2.1/Codec/Sexpr/Internal.hs it appears feasible to patch
sexpr-0.2.1.tar.gz to use QuickCheck2, to run on a bootstrapped ghc and/or
on HaskellPlatform.

https://slackbuilds.org/repository/14.1/haskell/haskell-extensible-exceptions/
https://slackbuilds.org/repository/14.1/haskell/haskell-mtl/
https://slackbuilds.org/repository/14.1/haskell/haskell-random/
https://slackbuilds.org/repository/14.1/haskell/haskell-primitive/
https://slackbuilds.org/repository/14.1/haskell/haskell-tf-random/
https://slackbuilds.org/repository/14.1/haskell/haskell-QuickCheck/

https://hackage.haskell.org/package/base64-string
base64-string-0.2.tar.gz

https://hackage.haskell.org/package/sexpr
sexpr-0.2.1.tar.gz

With the QuckCheck version I have installed being 2.7.6,
running a SlackBuild script I authored for the above sexpr
version outputs the following, owing to the sexpr version
being written for QuickCheck <2.1.

bash-4.2# ./haskell-sexpr.SlackBuild
sexpr-0.2.1/
sexpr-0.2.1/LICENSE
sexpr-0.2.1/Setup.lhs
sexpr-0.2.1/sexpr.cabal
sexpr-0.2.1/Codec/
sexpr-0.2.1/Codec/Sexpr.hs
sexpr-0.2.1/Codec/Sexpr/
sexpr-0.2.1/Codec/Sexpr/Internal.hs
sexpr-0.2.1/Codec/Sexpr/Parser.hs
sexpr-0.2.1/Codec/Sexpr/Printer.hs
sexpr-0.2.1/Codec/Sexpr/Tests.hs
Configuring sexpr-0.2.1...
Building sexpr-0.2.1...
Preprocessing library sexpr-0.2.1...
[1 of 4] Compiling Codec.Sexpr.Internal ( Codec/Sexpr/Internal.hs, dist/build/Codec/Sexpr/Internal.o )

Codec/Sexpr/Internal.hs:65:5:
    `coarbitrary' is not a (visible) method of class `Arbitrary'
bash-4.2#

The file /sexpr-0.2.1/Codec/Sexpr/Tests.hs also imports Test.QuickCheck.

See also:
http://nurmi-labs.blogspot.com/2016/03/es.html

12 January 2017

patching ESS

System: Slackware Linux (version 14.0)
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
Deps: ess-16.10.zip, cl-lib-0.6.1.el,
julia-emacs-master.zip

The development version with the below patches and
others committed is available as a github clone and/
or download, the latter as ESS-master.zip. 

Looking at the release notes for emacs-24.3 it appears feasible to patch ess-16.10 to
run on Slackware 14.0 (or other Un*x distros) with emacs-24.2.

http://lists.gnu.org/archive/html/info-gnu-emacs/2013-03/msg00001.html

" ...An update for the Common Lisp emulation library."
" ...the changes in Emacs 24.3 are relatively minor."

https://ftp.gnu.org/gnu/emacs/
emacs-24.3.tar.gz

Read about the update.

bash-4.2# cd /tmp
bash-4.2# tar xf emacs-24.3.tar.gz
bash-4.2# grep -n "Common Lisp emulation" emacs-24.3/etc/NEWS
247:** Common Lisp emulation (CL)
bash-4.2#

bash-4.2# head -n 258 emacs-24.3/etc/NEWS | tail -12
** Common Lisp emulation (CL)

*** CL's main entry is now (require 'cl-lib).
`cl-lib' is like the old `cl' except that it uses the namespace cleanly;
i.e., all its definitions have the "cl-" prefix (and internal definitions
use the "cl--" prefix).

If `cl' provided a feature under the name `foo', then `cl-lib'
provides it under the name `cl-foo' instead; with the exceptions of the
few `cl' definitions that had to use `foo*' to avoid conflicts with
pre-existing Elisp entities.  These have been renamed to `cl-foo'
rather than `cl-foo*'.
bash-4.2#

Check for any new macros.

bash-4.2# grep "New macros" emacs-24.3/etc/NEWS
** New macros `setq-local' and `defvar-local'.
bash-4.2#

https://ess.r-project.org/
ess-16.10.zip

Download ess-16.10.zip, extract it, and move the directory.

bash-4.2# unzip ess-16.10.zip

...

bash-4.2# mv ess-16.10 /usr/share/emacs/site-lisp/ess
bash-4.2#

Check if ess-16.10 used cl-lib and the new macros.

bash-4.2# grep -r cl-lib /usr/share/emacs/site-lisp/ess/lisp
lisp/ess-r-syntax.el:(require 'cl-lib)
bash-4.2#

bash-4.2# grep -r defvar-local /usr/share/emacs/site-lisp/ess/lisp
lisp/ess-generics.el:      (defvar-local ,funname nil ,(format "When defined this function
 is called by `%s'." name))
lisp/ess-r-d.el:(defvar-local ess-r-evaluation-env nil
lisp/ess-r-d.el:(defvar-local ess-r--evaluation-env-mode-line
lisp/ess-r-package.el:(defvar-local ess-r-package-info nil
lisp/ess-tracebug.el:(defvar-local ess--dbg-mode-line-debug
lisp/ess-tracebug.el:(defvar-local ess--dbg-mode-line-error-action
lisp/ess-utils.el:(defvar-local ess-buffer-has-chunks nil
bash-4.2#

bash-4.2# grep -r setq-local /usr/share/emacs/site-lisp/ess/lisp
lisp/ess-help.el:  (if ess-mode-syntax-table ;;set in advance by ess-setq-local
lisp/ess-help.el:  (setq-local show-trailing-whitespace nil)
lisp/ess-inf.el:      (setq-local jit-lock-chunk-size inferior-ess-jit-lock-chunk-size))
lisp/ess-roxy.el:          (setq-local ess-buffer-has-chunks t)
lisp/ess-roxy.el:          (setq-local syntax-propertize-function #'ess-roxy-syntax-propertize)
lisp/ess-roxy.el:          (setq-local font-lock-fontify-region-function #'ess-roxy-fontify-region)
lisp/ess-roxy.el:          (setq-local font-lock-unfontify-region-function #'ess-roxy-unfontify-region)))
lisp/ess-roxy.el:    (setq-local syntax-propertize-function nil)
lisp/ess-roxy.el:    (setq-local font-lock-fontify-region-function nil)
lisp/ess-roxy.el:    (setq-local font-lock-unfontify-region-function nil)
lisp/ess-roxy.el:  (setq-local paragraph-start (concat "\\(" ess-roxy-re "\\)*"paragraph-start))
lisp/ess-roxy.el:  (setq-local paragraph-separate (concat "\\(" ess-roxy-re "\\)*" paragraph-separate))
lisp/ess-roxy.el:  (setq-local adaptive-fill-function 'ess-roxy-adaptive-fill-function))
bash-4.2#

bash-4.2# grep -r setq-local /usr/share/emacs/site-lisp/ess/test
test/ess-literate-tests.el:      (setq-local file-local-variables-alist (copy-alist local-variables))
test/literate/code-fill.R:##! (setq-local fill-column 40)
test/literate/code-fill.R:##! (setq-local fill-column 40)
test/literate/code-fill.R:##! (setq-local fill-column 42)
bash-4.2#

https://elpa.gnu.org/packages/cl-lib.html
cl-lib-0.6.1.el

Download cl-lib-0.6.1.el, rename it to cl-lib.el, create a byte-compiled version,
gzip cl-lib.el, and move the two files to /usr/share/emacs/24.2/lisp/emacs-lisp.

bash-4.2# mv cl-lib-0.6.1.el cl-lib.el
bash-4.2# emacs -batch -f batch-byte-compile cl-lib.el

In toplevel form:
cl-lib.el:74:1:Warning: cl package required at runtime
Wrote /tmp/cl-lib.elc
bash-4.2# gzip -n -9 cl-lib.el
bash-4.2# file cl-lib.el.gz
cl-lib.el.gz: gzip compressed data, from Unix, max compression
bash-4.2# mv cl-lib.el.gz /usr/share/emacs/24.2/lisp/emacs-lisp
bash-4.2# mv cl-lib.elc /usr/share/emacs/24.2/lisp/emacs-lisp
bash-4.2#

https://github.com/JuliaEditorSupport/julia-emacs
julia-emacs-master.zip

Download julia-emacs-master.zip, extract it, and move
julia-mode.el to /usr/share/emacs/site-lisp/ess/lisp.

bash-4.2# unzip julia-emacs-master.zip

...

bash-4.2# mv julia-emacs-master/julia-mode.el \
> /usr/share/emacs/site-lisp/ess/lisp
bash-4.2#

Patches committed on 10, 14, and 18 January 2017, respectively for a backwards
compatibility definition for defvar-local, allocation for pcase.el (emacs-24.2/24.1)
specifications, and a backward compatibility definition for setq-local; the macro
defines based on those found in the file emacs-24.3/lisp/subr.el.

10. jan. 2017 09.57 CET

diff --git a/lisp/ess-compat.el b/lisp/ess-compat.el
index 6910877..d706a34 100644
--- a/lisp/ess-compat.el
+++ b/lisp/ess-compat.el
@@ -1,6 +1,6 @@
 ;;; ess-compat.el --- simple determination of Emacs/XEmacs and version #.

-;; Copyright (C) 2000--2005 A.J. Rossini, Richard M. Heiberger, Martin
+;; Copyright (C) 2000--2017 A.J. Rossini, Richard M. Heiberger, Martin
 ;;      Maechler, Kurt Hornik, Rodney Sparapani, and Stephen Eglen.

 ;; Author: A.J. Rossini <rossini@biostat.washington.edu>
 @@ -278,6 +278,18 @@ mode is enabled.  Usually, such commands should use
 also checks the value of `use-empty-active-region'."
     (and transient-mark-mode mark-active)))

+;; for emacs <= 24.2 :
+(unless (fboundp 'defvar-local)
+  (defmacro defvar-local (var val &optional docstring)
+    "Define VAR as a buffer-local variable with default value VAL.
+Like `defvar' but additionally marks the variable as being automatically
+buffer-local wherever it is set."
+    (declare (debug defvar) (doc-string 3))
+    ;; Can't use backquote here, it's too early in the bootstrap.
+    (list 'progn (list 'defvar var val docstring)
+          (list 'make-variable-buffer-local (list 'quote var)))))
+
+
 (provide 'ess-compat)

   ; Local variables section

14. jan. 2017 20.37 CET

diff --git a/lisp/ess-r-syntax.el b/lisp/ess-r-syntax.el
index 4ac34f30..26ff7d18 100644
--- a/lisp/ess-r-syntax.el
+++ b/lisp/ess-r-syntax.el
@@ -189,7 +189,7 @@ Cons cell containing the token type and string representation."
 ;; backward
 (defun ess-climb-token--operator ()
   (when (pcase (char-before)
-          ((or ?+ ?/ ?^ ?~ ?? ?!)
+          ((or `?+ `?/ `?^ `?~ `?? `?!)
            (ess-backward-char))
           (`?=
            (prog1 (ess-backward-char)
 @@ -198,7 +198,7 @@ Cons cell containing the token type and string representation."
                  (ess-climb-token--char ?:)
                  (ess-climb-token--char ?>)
                  (ess-climb-token--char ?<))))
-          ((or ?& ?| ?* ?@ ?$)
+          ((or `?& `?| `?* `?@ `?$)
            (prog1 (ess-backward-char)
              (ess-climb-token--char (char-after))))
           (`?<
 @@ -364,7 +364,7 @@ reached."
   (let ((refined-type
          (pcase (ess-token-type token)
            ;; Parameter assignment
-           ("="
+           (`"="
             (save-excursion
               (goto-char (ess-token-start token))
               (let ((containing-sexp (ess-containing-sexp-position)))
 @@ -377,14 +377,14 @@ reached."
                                   (ess-token-before= '("," "(")))))
                   "param-assign"))))
            ;; Quoted identifiers
-           ("string"
+           (`"string"
             (when (or
                    ;; Quoted parameter names
                    (ess-refined-token= (ess-token-after) "param-assign")
                    ;; Quoted call names
                    (ess-token-after= "("))
               "identifier"))
-           ((or "(" ")")
+           ((or `"(" `")")
             (or (save-excursion
                   (if (ess-token-close-delimiter-p token)
                       (ess-climb-paired-delims nil token)
 @@ -397,7 +397,7 @@ reached."
                     (ess-climb-paired-delims ")" token)
                     (when (ess-token-before= '("identifier" "string" ")" "]" "]]" "}"))
                       "argslist-delimiter")))))
-           ((or "{" "}")
+           ((or `"{" `"}")
             (save-excursion
               (unless (ess-climb-paired-delims "}" token)
                 (goto-char (ess-token-start token)))

18. jan. 2017 11.32 CET

diff --git a/lisp/ess-compat.el b/lisp/ess-compat.el
index d706a34..175f8f2 100644
--- a/lisp/ess-compat.el
+++ b/lisp/ess-compat.el
@@ -289,6 +289,12 @@ buffer-local wherever it is set."
     (list 'progn (list 'defvar var val docstring)
           (list 'make-variable-buffer-local (list 'quote var)))))

+(unless (fboundp 'setq-local)
+  (defmacro setq-local (var val)
+    "Set variable VAR to value VAL in current buffer."
+    ;; Can't use backquote here, it's too early in the bootstrap.
+    (list 'set (list 'make-local-variable (list 'quote var)) val)))
+

 (provide 'ess-compat)

Cd'ing to the ess directory and running 'make' byte-compiled on the
patched ess-16.10 all relevent .el files, and 'make test' passed the 17
tests.

bash-4.2# cd /usr/share/emacs
bash-4.2# CWD=$(pwd)
bash-4.2# mkdir logs
bash-4.2# cd site-lisp/ess
bash-4.2# make >$CWD/logs/make_2017-01-19.log 2>&1
bash-4.2# make test>$CWD/logs/make_test_2017-01-19.log 2>&1
bash-4.2# tail -n3 $CWD/logs/make_test_2017-01-19.log

Ran 17 tests, 17 results as expected (2017-01-19 02:42:38+0100)

bash-4.2# exit

NB: If you have a network connection julia-mode.el will be automatically downloaded.