29 December 2015

wcc386

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

Updated 8 Nov. 2016

I received a notice today as a reminder that Open Watcom's C++
implementation is not standards conforming; see the links at the
base of this blog entry.

Installation of awk on Open Watcom C version 1.9.

https://www.cs.princeton.edu/~bwk/btl.mirror/new/

Version 1.9
https://sourceforge.net/projects/openwatcom/files/open-watcom-1.9/
open-watcom-c-win32-1.9.exe

http://openwatcom.mirror.fr/source/
open_watcom_1.9.0-src.zip

Download both the OW .exe and .zip files, installing the former and extracting the latter.

We will compile yacc and awk, neither of which accompany the binary download.

Run the batch file owsetenv.bat for the binary installation.

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

C:\Documents and Settings\UserName>CD \

C:\>Programmer\WATCOM\owsetenv.bat
Open Watcom Build Environment

C:\>

CD into OW19 and edit the file setvars.bat as follows:

SET OWROOT=C:\OW19
SET WATCOM=C:\Programmer\WATCOM
SET DOC_BUILD=0

C:\>CD OW19

C:\OW19>setvars.bat
Open Watcom compiler build environment

C:\OW19\bld>CD yacc\nt386

C:\OW19\bld\yacc\nt386>wmake
Open Watcom Make Version 1.9
Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
cc bitsets.obj
cc buildpro.obj
cc default.obj
cc defshift.obj
cc dont_opt.obj
cc elimunit.obj
cc fpopen.obj
cc genfast.obj
cc gensupp.obj
cc gentable.obj
cc getname.obj
cc lalr1.obj
cc lr0.obj
cc parse.obj
cc sentence.obj
cc used.obj
cc yacc.obj
cl yacc.exe

C:\OW19\bld\yacc\nt386>COPY yacc.exe %WATCOM%\binnt
        1 fil(er) kopieret.

C:\OW19\bld\yacc\nt386>CD %OWROOT%\contrib

C:\OW19\contrib>MOVE awk %WATCOM%\src

C:\OW19\contrib>CD %WATCOM%\src\awk

C:\Programmer\WATCOM\src\awk>nmake -f makefile.win
Open Watcom C/C++ NMAKE Clone for 386  Version 1.9
Portions Copyright (c) 1995-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
set cl=-w -Ox -QIfdiv- -nologo -link -nologo
cl maketab.c -o maketab.exe
maketab.c
.\maketab.exe > proctab.c
cl -o awk95.exe b.c main.c parse.c proctab.c tran.c lib.c run.c lex.c ytab.c mis
sing95.c
b.c
main.c
parse.c
proctab.c
tran.c
lib.c
run.c
lex.c
ytab.c
missing95.c

C:\Programmer\WATCOM\src\awk>COPY awk95.exe %WATCOM%\binnt\awk.exe
        1 fil(er) kopieret.

C:\Programmer\WATCOM\src\awk>EXIT

http://openwatcom.mirror.fr/devel/
dll_example.zip

http://openwatcom.mirror.fr/manuals/current/
devguide.pdf

http://openwatcom.mirror.fr/manuals/
wgmlref.pdf

http://openwatcom.mirror.fr/wiki/
Tutorial.zip

http://openwatcom.mirror.fr/devel/docs/
pe_and_symbols.pdf & pecoff.pdf



http://stroustrup.com/programming.html (2014)
C++11 compiler (for the 2nd edition examples)

http://stroustrup.com/Programming/PPP1.html (2008)
C++98 compiler (for the 1st edition examples)

programming_ch12.pdf

http://stroustrup.com/Programming/FLTK/
fltk-1.1.9-source.zip

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

C:\Documents and Settings\UserName>CD \

C:\>SET FLTK=C:\fltk-1.1.9

C:\>CD %FLTK%\watcom

C:\fltk-1.1.9\watcom>MOVE config.h %FLTK%

C:\fltk-1.1.9\watcom>wmake

...

Fl_Button.cxx(39): Warning! W716: col(12) integral value may be truncated
Fl_Button.cxx(42): Warning! W716: col(14) integral value may be truncated
Fl_Button.cxx(93): Warning! W716: col(16) integral value may be truncated
wpp386 -DWIN32  -6r -zq -d2 -s -ors -wcd=666 -wcd=836 -bt=nt -fp6 -fpi87 -mf -wc
e=130 -wx -zq -fod_nt\Fl_Chart.obj -zmf -zv -fx Fl_Chart.cxx
C:\fltk-1.1.9\FL\math.h(62): Error! E867: col(30) conflict with a previous using
-decl 'rint'
C:\fltk-1.1.9\FL\math.h(62): Note! N393: col(30) included from Fl_Chart.cxx(28)
C:\Programmer\OW\H\math.h(80): Note! N392: col(10) definition: 'double __watcall
 rint( double )'
C:\fltk-1.1.9\FL\math.h(63): Error! E867: col(44) conflict with a previous using
-decl 'copysign'
C:\Programmer\OW\H\math.h(60): Note! N392: col(10) definition: 'double __watcall
 copysign( double, double )'
Error(E42): Last command making (Fl_Chart.obj) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (BuildOne;dw) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (ALL) returned a bad status
Error(E02): Make execution terminated

C:\fltk-1.1.9\watcom>wmake clean

...

C:\fltk-1.1.9\watcom>

Comment out the code block in %FLTK%\FL\math.h.

//#  if (defined(WIN32) || defined(CRAY)) && !defined(__MINGW32__) && !defined(__MWERKS__)
//inline double rint(double v) {return floor(v+.5);}
//inline double copysign(double a, double b) {return b<0 ? -a : a;}
//#  endif // (WIN32 || CRAY) && !__MINGW32__ && !__MWERKS__

C:\fltk-1.1.9\watcom>wmake

...

screen_xywh.cxx(40): Error! E059: col(25) unable to open 'multimon.h'
screen_xywh.cxx(52): Error! E498: col(50) syntax error before 'MONITORENUMPROC';
 probable cause: incorrectly spelled type name
screen_xywh.cxx(54): Error! E671: col(60) function modifier cannot be used on a
variable
screen_xywh.cxx(54): Error! E327: col(60) typedef cannot be initialized
screen_xywh.cxx(60): Error! E498: col(41) syntax error before 'mon'; probable ca
use: incorrectly spelled type name
screen_xywh.cxx(252): Warning! W014: col(0) no reference to symbol 'num_screens'

screen_xywh.cxx(35): Note! N392: col(12) definition: 'int num_screens'
screen_xywh.cxx(252): Warning! W014: col(0) no reference to symbol 'fl_gmi'
screen_xywh.cxx(56): Note! N392: col(20) definition: 'int * __stdcall fl_gmi'
screen_xywh.cxx(252): Warning! W014: col(0) no reference to symbol 'screens'
screen_xywh.cxx(58): Note! N392: col(13) definition: 'tagRECT screens[16]'
Error(E42): Last command making (screen_xywh.obj) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (BuildOne;dw) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (ALL) returned a bad status
Error(E02): Make execution terminated

C:\fltk-1.1.9\watcom>wmake clean

...

C:\fltk-1.1.9\watcom>

Modify %FLTK%\watcom.mif.

# Set target environment options for the project

!ifeqi TARGET  nt                   # WINDOWS 32 bit
- SYSDEF= -DWIN32
+ SYSDEF= -DWIN32 -D_WIN32_WINNT=0x0500 -DWINVER=0x0500
ASYSDEF=
SYSLIBS=wsock32.lib mpr.lib glu32.lib opengl32.lib
EXEEXT=.exe

# Tell wmake to use DLL versions of some commands (much quicker)
#
!loaddll wcc386 wccd386
!loaddll wpp386 wppd386
+ !ifeqi __VERSION__ 1300
+ !loaddll wlink wlinkd
+ !else
!loaddll wlink  wlink
!endif
!loaddll wlib   wlibd

C:\fltk-1.1.9\watcom>wmake

...

C:\fltk-1.1.9\watcom>EXIT

http://fltk-dev.easysw.narkive.com/SVGoNXQx/multimon-h-missing
Credit on the code changes on watcom.mif to Mat Nieuwenhoven

NB: The current version of Open Watcom V2 is 1300.

From the wiki on the Open Watcom v2 being standards conforming.

circa 22 May 2015 · 2 revisions
https://github.com/open-watcom/open-watcom-v2/wiki/C---Language

circa 22 May 2015 · 2 revisions
https://github.com/open-watcom/open-watcom-v2/wiki/C---Library

21 December 2015

plot-gtk

System: Slackware Linux (version 14.0)
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
Deps: ghc-7.8.4, glpk-4.57, gsl-2.1, OpenBLAS (0.2.11)

Installation of hmatrix-0.16.1.5 and plot-gtk-0.2.0.2.


http://ftp.gnu.org/gnu/glpk/
http://ftp.gnu.org/gnu/gsl/

Bootstrap ghc-7.8.4 (see earlier post), then upgrade the glpk
and gsl SlackBuilds respectively to versions 4.57 and 2.1.

Labs' provided SlackBuilds locate haskell packages'
documentation in /usr/doc/ghc-7.8.4/extralibs/, one
exception being gtk2hs-buildtools. The alex (lexer)
and happy (parser) packages place files outside of
/usr/lib/ghc-7.8.4 and /usr/doc/ghc-7.8.4, therefore
I have followed Värri's conventions in the authorship
of the gtk2hs-buildtools script.

SlackBuilds for colour and storable-complex are located in
the sidebar.

bash-4.2# installpkg OpenBLAS-0.2.11-i486-1_SBo.tgz \
> glpk-4.57-i486-1_SBo.tgz gsl-2.1-i486-1_SBo.tgz \
> haskell-HUnit-1.2.5.2-i486-2_SBo.tgz \
> haskell-colour-2.3.3-i486-1_SBo.tgz \
> haskell-extensible-exceptions-0.1.1.4-i486-1_SBo.tgz \
> haskell-mtl-2.1.3.1-i486-1_SBo.tgz \
> haskell-primitive-0.5.4.0-i486-1_SBo.tgz \
> haskell-random-1.1-i486-1_SBo.tgz \
> haskell-split-0.2.2-i486-1_SBo.tgz \
> haskell-storable-complex-0.2.2-i486-1_SBo.tgz \
> haskell-text-1.2.0.3-i486-1_SBo.tgz \
> haskell-utf8-string-0.3.8-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg happy-1.19.4-i486-1_SBo.tgz \
> haskell-hashable-1.2.3.1-i486-1_SBo.tgz \
> haskell-tf-random-0.4-i486-1_SBo.tgz \
> haskell-vector-0.10.12.2-i486-1_SBo.tgz

...

bash-4.2#


SlackBuilds for hashtables and hmatrix are located in the sidebar.

bash-4.2# installpkg haskell-QuickCheck-2.7.6-i486-1_SBo.tgz \
> haskell-hashtables-1.2.1.0-i486-1_SBo.tgz \
> haskell-hmatrix-0.16.1.5-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg alex-3.1.3-i486-1_SBo.tgz

...

bash-4.2#

A SlackBuild for gtk2hs-buildtools is located in the sidebar.

bash-4.2# installpkg gtk2hs-buildtools-0.13.0.5-i486-1_SBo.tgz

...

bash-4.2#

SlackBuilds for cairo, hmatrix-glpk, hmatrix-gsl, hmatrix-gsl-stats,
and hTensor are located in the sidebar.

bash-4.2# installpkg haskell-cairo-0.13.1.1-i486-1_SBo.tgz \
> haskell-hmatrix-glpk-0.4.1.0-i486-1_SBo.tgz \
> haskell-hmatrix-gsl-0.16.0.3-i486-1_SBo.tgz \
> haskell-hmatrix-gsl-stats-0.4.1.1-i486-1_SBo.tgz \
> haskell-hTensor-0.8.2-i486-1_SBo.tgz

...

bash-4.2#

SlackBuilds for glib, hstatistics, hmatrix-special, and
and hmatrix-tests are located in the sidebar.

bash-4.2# installpkg haskell-glib-0.13.2.2-i486-1_SBo.tgz \
> haskell-hstatistics-0.2.5.2-i486-1_SBo.tgz \
> haskell-hmatrix-special-0.3.0.1-i486-1_SBo.tgz \
> haskell-hmatrix-tests-0.4.1.0-i486-1_SBo.tgz

...

bash-4.2#

A SlackBuild for gio is located in the sidebar.

bash-4.2# installpkg haskell-gio-0.13.1.1-i486-1_SBo.tgz

...

bash-4.2#

A SlackBuild for pango is located in the sidebar.

bash-4.2# installpkg haskell-pango-0.13.1.1-i486-1_SBo.tgz

...

bash-4.2#

A SlackBuild for gtk is located in the sidebar.

bash-4.2# installpkg haskell-gtk-0.13.9-i486-1_SBo.tgz

...

bash-4.2#

A SlackBuild for plot is located in the sidebar.

bash-4.2# installpkg haskell-plot-0.2.3.4-i486-1_SBo.tgz

...

bash-4.2# 

A SlackBuild for plot-gtk is located in the sidebar.

bash-4.2# installpkg haskell-plot-gtk-0.2.0.2-i486-1_SBo.tgz

...

bash-4.2# exit

sh-4.2$ ghci
> Numeric.LinearAlgebra.Tests.runTests 20
+++ OK, passed 100 tests.
+++ OK, passed 100 tests.
... etc...
+++ OK, passed 100 tests.
------ some unit tests
Cases: 62  Tried: 62  Errors: 0  Failures: 0
> :quit
Leaving GHCi.
sh-4.2$ exit

10 December 2015

SciPy

System: Slackware Linux (version 14.0)
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz

Installation of SciPy version 0.14.1.

http://slackbuilds.org/repository/14.1/academic/
http://slackbuilds.org/repository/14.1/development/
http://slackbuilds.org/repository/14.1/libraries/
http://slackbuilds.org/repository/14.1/python/
https://pypi.python.org/pypi/scipy/0.14.1

bash-4.2# installpkg Cython-0.23.4-i486-1_SBo.tgz \
> docutils-0.11-i486-1_SBo.tgz libsodium-1.0.6-i486-1_SBo.tgz \
> OpenBLAS-0.2.11-i486-1_SBo.tgz pyparsing-2.0.3-i486-1_SBo.tgz \
> pysetuptools-18.2-i486-1_SBo.tgz pytz-2014.10-i486-1_SBo.tgz

...

bash-4.2#

A SlackBuild for zeromq is located in the sidebar.

bash-4.2# installpkg backports-ssl-match-hostname-3.4.0.2-i486-1_SBo.tgz \
> MarkupSafe-0.23-i486-1_SBo.tgz pyglet-1.2.4-i486-1_SBo.tgz \
> zeromq-4.0.7-i486-1_SBo.tgz

...

bash-4-2#

bash-4.2# installpkg Jinja2-2.7.3-i486-1_SBo.tgz \
> Pygments-2.0.2-i486-1_SBo.tgz pyzmq-14.5.0-i486-1_SBo.tgz \
> tornado-4.2.1-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg Sphinx-1.2.3-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg mock-1.0.1-i486-1_SBo.tgz nose-1.3.4-i486-1_SBo.tgz \
> numpydoc-0.5-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg six-1.10.0-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg python-dateutil-2.4.2-i486-1_SBo.tgz

...

bash-4.2#

Perhaps this code block in the numpy.SlackBuild can be commented out,
as of scipy-0.14.0 AMD and UMFPACK are no longer supported.

cat > site.cfg <<EOF
[amd]
library_dirs = /usr/lib${LIBDIRSUFFIX}
include_dirs = /usr/include/amd
amd_libs = amd

[umfpack]
library_dirs = /usr/lib${LIBDIRSUFFIX}
include_dirs = /usr/include/umfpack
umfpack_libs = umfpack
EOF

bash-4.2# installpkg numpy-1.9.1-i486-1_SBo.tgz

...

bash-4.2# python -c 'import numpy; numpy.test()' >output1 2>&1
bash-4.2# tail output1
----------------------------------------------------------------------

Ran 5588 tests in 220.939s

OK (KNOWNFAIL=5, SKIP=13)
Running unit tests for numpy
NumPy version 1.9.1
NumPy is installed in /usr/lib/python2.7/site-packages/numpy
Python version 2.7.3 (default, Jul  3 2012, 21:16:07) [GCC 4.7.1]
nose version 1.3.4
bash-4.2#

bash-4.2# installpkg matplotlib-1.4.2-i486-1_SBo.tgz \
> numexpr-2.4.6-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg ipython-3.1.0-i486-1_SBo.tgz

...

bash-4.2#

Change the version number in the scipy.SlackBuild from
0.14.0 to 0.14.1.

bash-4.2# installpkg ipython-mathjax-2.5.1-noarch-1_SBo.tgz \
> scipy-0.14.1-i486-1_SBo.tgz sympy-0.7.6-i486-1_SBo.tgz

...

bash-4.2#

bash-4.2# installpkg Bottleneck-1.0.0-i486-1_SBo.tgz

...

bash-4.2#

bash-4-2# installpkg pandas-0.17.1-i486-1_SBo.tgz

...

bash-4.2# python -c 'import scipy; scipy.test()' >output2 2>&1
bash-4.2# tail output2
Ran 16450 tests in 1295.544s

OK (KNOWNFAIL=146, SKIP=1189)
Running unit tests for scipy
NumPy version 1.9.1
NumPy is installed in /usr/lib/python2.7/site-packages/numpy
SciPy version 0.14.1
SciPy is installed in /usr/lib/python2.7/site-packages/scipy
Python version 2.7.3 (default, Jul  3 2012, 21:16:07) [GCC 4.7.1]
nose version 1.3.4
bash-4.2# exit

pandoc

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

Installation of pandoc version 1.15.1.1.

https://hackage.haskell.org/package/pandoc

This will upgrade attoparsec in %APPDATA%\cabal sub-directories
and may break certain other user installed Haskell packages.

C:\>cabal install pandoc --dry-run -v
Reading available packages...
Choosing modular solver.
Resolving dependencies...
In order, the following would be installed:
JuicyPixels-3.2.6.2 (new package)
SHA-1.6.4.2 (new package)
base64-bytestring-1.0.0.1 (new package)
blaze-builder-0.4.0.1 (new package)
blaze-markup-0.7.0.3 (new package)
blaze-html-0.8.1.1 (new package)
byteable-0.1.1 (new package)
cereal-0.5.0.0 (new package)
cmark-0.4.1 (new package)
data-default-class-0.0.1 (new package)
cookie-0.4.1.6 (new package)
data-default-instances-base-0.0.1 (new package)
data-default-instances-containers-0.0.1 (new package)
data-default-instances-old-locale-0.0.1 (new package)
deepseq-generics-0.1.1.2 (new package)
digest-0.0.1.2 (new package)
dlist-0.7.1.2 (new package)
data-default-instances-dlist-0.0.1 (new package)
data-default-0.5.3 (new package)
extensible-exceptions-0.1.1.4 (new package)
haddock-library-1.2.1 (new package)
hourglass-0.2.9 (new package)
hslua-0.4.1 (new package)
http-types-0.9 (new package)
memory-0.10 (new package)
asn1-types-0.3.1 (new package)
asn1-encoding-0.9.3 (new package)
asn1-parse-0.9.4 (new package)
cryptonite-0.8 (new package)
mime-types-0.1.0.6 (new package)
mmorph-1.0.4 (new package)
nats-1 (new package)
network-uri-2.6.0.3 (new package)
pem-0.2.2 (new package)
regex-pcre-builtin-0.94.4.8.8.35 (new package)
scientific-0.3.4.2 (new package)
attoparsec-0.11.3.4 (latest: 0.13.0.1) (new version)
aeson-0.7.0.6 (latest: 0.10.0.0) +new-bytestring-builder (new package)
pandoc-types-1.12.4.7 (new package)
socks-0.5.4 (new package)
streaming-commons-0.1.14.2 (new package)
tagged-0.8.2 (new package)
semigroups-0.18 (new package)
tagsoup-0.13.5 (new package)
transformers-compat-0.4.0.4 +three (new package)
exceptions-0.8.0.2 (new package)
http-client-0.4.24 -network-uri (new package)
temporary-1.2.0.3 (new package)
transformers-base-0.4.4 (new package)
monad-control-1.0.0.4 (new package)
lifted-base-0.2.3.6 (new package)
enclosed-exceptions-1.0.1.1 (new package)
resourcet-1.1.6 (new package)
unix-compat-0.4.1.4 (new package)
filemanip-0.3.6.3 (new package)
utf8-string-1.0.1.1 (new package)
highlighting-kate-0.6 (new package)
void-0.7.1 (new package)
conduit-1.2.5.1 (new package)
x509-1.6.3 (new package)
x509-store-1.6.1 (new package)
x509-system-1.6.1 (new package)
x509-validation-1.6.3 (new package)
tls-1.3.3 (new package)
connection-0.2.5 (new package)
http-client-tls-0.2.2 (new package)
xml-1.3.14 (new package)
texmath-0.8.4 (new package)
yaml-0.8.15.1 (new package)
zip-archive-0.2.3.7 (new package)
pandoc-1.15.1.1 -network-uri (new package)

C:\>cabal install pandoc

...

C:\>EXIT