Friday, August 03, 2018

A Better C?

30 years ago, on its August 1988 edition, Byte Magazine (ask your parents) published a feature article by Bjarne Stroustroup about C++. Titled A Better C?  the article introduces C++ to the C community. In addition it introduces OOP concepts and data abtraction. In that article, Stroustroup advocates the use of C++ to overcome C weaknesses without losing its strengths.


1988 also saw the birth of Zortech C++ the first true C++ compiler for MS-DOS (ask your grandparents). There is a Zortech C++ ad in the same edition:




That edition also includes a story by Dennis Ritchie and Brian Kernigham about the state of C and the then forthcoming of the first ANSI C standard.

August was the month of the traditional C edition of Byte (other magazines also followed the tradtion).

The full edition of Byte August 1988 can be found at archive.org




Friday, June 02, 2017

Visiting an old friend

In the (not) good old days of single-user single-process MS-DOS TSR programs were a kind of magic wish: have more than one program running at same time.

Companies created TSR utilities. I can remember of Borland Sidekick and Norton Guides, among others.

Of course I couldn't leave behind. Around 1990 I created my own TSR program: TASCII. An ASCII table very useful for... me only.

I based my implementation on the excellent Al Stevens' Extending Turbo C Professional book.

Recently I attempted, just for the fun, to bring back TASCII to life again.

I began with the DOSBOX MS-DOS emulator. For the compiler I used Turbo C 2.01 which Borland (now Embarcadero) made available for free, years ago. Unfortunately I hadn't the full source code for the Extending.. book. So I had to borrow it from openlibrary.org and type the missing parts.

Well, here it is (for the real nostalgia DOSBOX has a CGA mode):











Who needs a resident ASCII table these days? But it is nice to see an old friend again.

(If you are also insane I can provide you with the binary).

Wednesday, October 14, 2015

Monday, October 12, 2015

Boost and ICU build scripts for MinGW-w64

My MinGW distro is long gone now. However I still privately use a MinGW-w64 toolchain to test and study C++.

I have kept two scripts to build both ICU and Boost so I can have Boost libraries always available.

The scripts are for the latest version of both libraries. Build first ICU, uncompress the generated package and then build Boost.

You will need:

Steps:

  • Create a directory, eg, C:\mingw-build;
  • Under this directory create other three directories: dest, scripts and sources;
  • Copy both icu-55.1-w64-amd64.sh and boost-1.59.0-w64-amd64.sh to the scripts directory;
  • Download icu4c-55_1-src.tgz and icu4c-55_1-data.zip from ICU site to the sources directory;
  • Download boost_1_59_0.tar.bz2 from Boost site to the sources directory;
  • Download the MinGW-w64 toolschain and uncompress it to C:\MinGW64
  • Configure your system and add C:\MinGW64\bin to the PATH
  • Download the tools (bsdtar, diff, patch, gnufind, bzip2 and xz) to C:\MinGW64\bin (or any other directory in the PATH);
  • Open Bash;
  • Go to the scripts directory: cd /c/mingw-build/scripts
  • Execute the ICU build script: ./icu-55.1-w64-amd64.sh
  • If the build is successful the icuc-55.1-w64-amd64.tar.xz file is created in the C:\mingw-build\dest directory;
  • Go to the MinGW64\bin directory: cd /c/MinGW64
  • Uncompress the ICU package: bsdtar xzf /c/mingw-build/dest/icuc-55.1-w64-amd64.tar.xz
  • Go back to the scripts directory: cd /c/mingw-build/scripts
  • Execute the Boost build script: ./boost-1.59.0-w64-amd64.sh
  • If the build is successful the boost-1.59.0-w64-amd64.tar.xz file is created in the C:\mingw-build\dest directory;
  • Go to the MinGW64\bin directory: cd /c/MinGW64
  • Uncompress the Boost package: bsdtar xzf /c/mingw-build/dest/boost-1.59.0-w64-amd64.tar.xz
  • Now you have a MinGW-w64 installation with the Boost libraries

Please send your feedback: comments, suggestions and bug reports!!

DISCLAIMER: the scripts are provided "as is" without warranty of any kind.