git: 0ca6ce5e976a - stable/13 - [bc] Update to version 4.0.0

Stefan Eßer se at FreeBSD.org
Sat Apr 10 14:20:47 UTC 2021


The branch stable/13 has been updated by se:

URL: https://cgit.FreeBSD.org/src/commit/?id=0ca6ce5e976a045ab1e81ec3469957a64f15ab12

commit 0ca6ce5e976a045ab1e81ec3469957a64f15ab12
Author:     Stefan Eßer <se at FreeBSD.org>
AuthorDate: 2021-04-06 08:44:52 +0000
Commit:     Stefan Eßer <se at FreeBSD.org>
CommitDate: 2021-04-10 14:18:50 +0000

    [bc] Update to version 4.0.0
    
    This version fixes an issue (missing pop of top-of-stack value in the
    "P" command of the dc program).
    
    This issue did not affect the bc program, since it does not use dc as
    an back-end to actually perform the calculations as was the case with
    the traditional bc and dc programs.
    
    The major number has been bumped due to Windows support that has been
    added to this version. It does not correspond to a major change that
    might affect FreeBSD.
    
    (cherry picked from commit b55a927bc884d7780d65a508572023b0dc2dede9)
---
 contrib/bc/Makefile.in                |   11 +-
 contrib/bc/NEWS.md                    |   25 +
 contrib/bc/README.md                  |  107 +-
 contrib/bc/bc.sln                     |   31 +
 contrib/bc/bc.vcxproj                 |  278 +++++
 contrib/bc/bc.vcxproj.filters         |  182 ++++
 contrib/bc/bcl.sln                    |   31 +
 contrib/bc/bcl.vcxproj                |  161 +++
 contrib/bc/bcl.vcxproj.filters        |   96 ++
 contrib/bc/configure                  | 1322 ++++++++++++++++++++++-
 contrib/bc/configure.sh               |    2 +
 contrib/bc/gen/bc_help.txt            |   19 +-
 contrib/bc/gen/dc_help.txt            |   17 +-
 contrib/bc/gen/strgen.c               |   56 +-
 contrib/bc/include/bcl.h              |  102 ++
 contrib/bc/include/file.h             |   34 +-
 contrib/bc/include/history.h          |    3 +
 contrib/bc/include/num.h              |    3 +-
 contrib/bc/include/status.h           |   59 -
 contrib/bc/include/version.h          |   41 +
 contrib/bc/include/vm.h               |   32 +-
 contrib/bc/karatsuba.py               |   10 +-
 contrib/bc/manpage.sh                 |    2 +-
 contrib/bc/manuals/bc.1.md.in         |   23 +-
 contrib/bc/manuals/bc/A.1             | 1901 ++++++++++++++++++---------------
 contrib/bc/manuals/bc/A.1.md          |   18 +-
 contrib/bc/manuals/bc/E.1             |  905 +++++++++-------
 contrib/bc/manuals/bc/E.1.md          |   18 +-
 contrib/bc/manuals/bc/EH.1            |  905 +++++++++-------
 contrib/bc/manuals/bc/EH.1.md         |   18 +-
 contrib/bc/manuals/bc/EHN.1           |  905 +++++++++-------
 contrib/bc/manuals/bc/EHN.1.md        |   18 +-
 contrib/bc/manuals/bc/EHNP.1          |  894 +++++++++-------
 contrib/bc/manuals/bc/EHNP.1.md       |    8 +-
 contrib/bc/manuals/bc/EHP.1           |  894 +++++++++-------
 contrib/bc/manuals/bc/EHP.1.md        |    8 +-
 contrib/bc/manuals/bc/EN.1            |  905 +++++++++-------
 contrib/bc/manuals/bc/EN.1.md         |   18 +-
 contrib/bc/manuals/bc/ENP.1           |  894 +++++++++-------
 contrib/bc/manuals/bc/ENP.1.md        |    8 +-
 contrib/bc/manuals/bc/EP.1            |  894 +++++++++-------
 contrib/bc/manuals/bc/EP.1.md         |    8 +-
 contrib/bc/manuals/bc/H.1             | 1901 ++++++++++++++++++---------------
 contrib/bc/manuals/bc/H.1.md          |   18 +-
 contrib/bc/manuals/bc/HN.1            | 1901 ++++++++++++++++++---------------
 contrib/bc/manuals/bc/HN.1.md         |   18 +-
 contrib/bc/manuals/bc/HNP.1           | 1892 +++++++++++++++++---------------
 contrib/bc/manuals/bc/HNP.1.md        |    8 +-
 contrib/bc/manuals/bc/HP.1            | 1892 +++++++++++++++++---------------
 contrib/bc/manuals/bc/HP.1.md         |    8 +-
 contrib/bc/manuals/bc/N.1             | 1901 ++++++++++++++++++---------------
 contrib/bc/manuals/bc/N.1.md          |   18 +-
 contrib/bc/manuals/bc/NP.1            | 1892 +++++++++++++++++---------------
 contrib/bc/manuals/bc/NP.1.md         |    8 +-
 contrib/bc/manuals/bc/P.1             | 1892 +++++++++++++++++---------------
 contrib/bc/manuals/bc/P.1.md          |    8 +-
 contrib/bc/manuals/bcl.3              | 1751 +++++++++++++++---------------
 contrib/bc/manuals/build.md           |  121 ++-
 contrib/bc/manuals/dc.1.md.in         |   61 +-
 contrib/bc/manuals/dc/A.1             | 1386 ++++++++++++++----------
 contrib/bc/manuals/dc/A.1.md          |   56 +-
 contrib/bc/manuals/dc/E.1             | 1197 ++++++++++++---------
 contrib/bc/manuals/dc/E.1.md          |   56 +-
 contrib/bc/manuals/dc/EH.1            | 1197 ++++++++++++---------
 contrib/bc/manuals/dc/EH.1.md         |   56 +-
 contrib/bc/manuals/dc/EHN.1           | 1197 ++++++++++++---------
 contrib/bc/manuals/dc/EHN.1.md        |   56 +-
 contrib/bc/manuals/dc/EHNP.1          | 1185 +++++++++++---------
 contrib/bc/manuals/dc/EHNP.1.md       |   46 +-
 contrib/bc/manuals/dc/EHP.1           | 1185 +++++++++++---------
 contrib/bc/manuals/dc/EHP.1.md        |   46 +-
 contrib/bc/manuals/dc/EN.1            | 1197 ++++++++++++---------
 contrib/bc/manuals/dc/EN.1.md         |   56 +-
 contrib/bc/manuals/dc/ENP.1           | 1185 +++++++++++---------
 contrib/bc/manuals/dc/ENP.1.md        |   46 +-
 contrib/bc/manuals/dc/EP.1            | 1185 +++++++++++---------
 contrib/bc/manuals/dc/EP.1.md         |   46 +-
 contrib/bc/manuals/dc/H.1             | 1386 ++++++++++++++----------
 contrib/bc/manuals/dc/H.1.md          |   56 +-
 contrib/bc/manuals/dc/HN.1            | 1386 ++++++++++++++----------
 contrib/bc/manuals/dc/HN.1.md         |   56 +-
 contrib/bc/manuals/dc/HNP.1           | 1374 ++++++++++++++----------
 contrib/bc/manuals/dc/HNP.1.md        |   46 +-
 contrib/bc/manuals/dc/HP.1            | 1374 ++++++++++++++----------
 contrib/bc/manuals/dc/HP.1.md         |   46 +-
 contrib/bc/manuals/dc/N.1             | 1386 ++++++++++++++----------
 contrib/bc/manuals/dc/N.1.md          |   56 +-
 contrib/bc/manuals/dc/NP.1            | 1374 ++++++++++++++----------
 contrib/bc/manuals/dc/NP.1.md         |   46 +-
 contrib/bc/manuals/dc/P.1             | 1374 ++++++++++++++----------
 contrib/bc/manuals/dc/P.1.md          |   46 +-
 contrib/bc/manuals/header_bc.txt      |    2 +-
 contrib/bc/manuals/header_bcl.txt     |    2 +-
 contrib/bc/manuals/header_dc.txt      |    2 +-
 contrib/bc/release.sh                 |   33 +-
 contrib/bc/src/args.c                 |    9 +
 contrib/bc/src/data.c                 |    6 +
 contrib/bc/src/file.c                 |   71 +-
 contrib/bc/src/history.c              |   63 +-
 contrib/bc/src/main.c                 |    6 +-
 contrib/bc/src/num.c                  |   29 +-
 contrib/bc/src/program.c              |   36 +-
 contrib/bc/src/rand.c                 |   36 +-
 contrib/bc/src/read.c                 |   29 +-
 contrib/bc/src/vm.c                   |  132 ++-
 contrib/bc/tests/dc/scripts/easter.sh |   47 +
 contrib/bc/tests/other.sh             |   37 +-
 usr.bin/gh-bc/Makefile                |    2 -
 108 files changed, 28963 insertions(+), 20119 deletions(-)

diff --git a/contrib/bc/Makefile.in b/contrib/bc/Makefile.in
index aab7f9b569e5..2b50476a79fe 100644
--- a/contrib/bc/Makefile.in
+++ b/contrib/bc/Makefile.in
@@ -29,8 +29,6 @@
 #
 .POSIX:
 
-VERSION = 3.3.4
-
 SRC = %%SRC%%
 OBJ = %%OBJ%%
 GCDA = %%GCDA%%
@@ -128,6 +126,8 @@ MAIN_EXEC = $(EXEC_PREFIX)$(%%MAIN_EXEC%%)$(EXEC_SUFFIX)
 EXEC = $(%%EXEC%%)
 NLSPATH = %%NLSPATH%%
 
+BC_BUILD_TYPE = %%BUILD_TYPE%%
+
 BC_ENABLE_LIBRARY = %%LIBRARY%%
 
 BC_ENABLE_HISTORY = %%HISTORY%%
@@ -158,7 +158,7 @@ TEST_STARS = "******************************************************************
 BC_NUM_KARATSUBA_LEN = %%KARATSUBA_LEN%%
 
 CPPFLAGS1 = -D$(BC_ENABLED_NAME)=$(BC_ENABLED) -D$(DC_ENABLED_NAME)=$(DC_ENABLED)
-CPPFLAGS2 = $(CPPFLAGS1) -I./include/ -DVERSION=$(VERSION) %%LONG_BIT_DEFINE%%
+CPPFLAGS2 = $(CPPFLAGS1) -I./include/ -DBUILD_TYPE=$(BC_BUILD_TYPE) %%LONG_BIT_DEFINE%%
 CPPFLAGS3 = $(CPPFLAGS2) -DEXECPREFIX=$(EXEC_PREFIX) -DMAINEXEC=$(MAIN_EXEC)
 CPPFLAGS4 = $(CPPFLAGS3) -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700
 CPPFLAGS5 = $(CPPFLAGS4) -DBC_NUM_KARATSUBA_LEN=$(BC_NUM_KARATSUBA_LEN)
@@ -322,9 +322,6 @@ coverage_output:
 
 coverage:%%COVERAGE_PREREQS%%
 
-version:
-	@printf '%s' "$(VERSION)"
-
 libcname:
 	@printf '%s' "$(BC_LIB_C)"
 
@@ -341,6 +338,7 @@ clean_gen:
 
 clean:%%CLEAN_PREREQS%%
 	@printf 'Cleaning files...\n'
+	@$(RM) -f src/*.tmp gen/*.tmp
 	@$(RM) -f $(OBJ)
 	@$(RM) -f $(BC_EXEC)
 	@$(RM) -f $(DC_EXEC)
@@ -352,6 +350,7 @@ clean:%%CLEAN_PREREQS%%
 	@$(RM) -f $(DC_HELP_C) $(DC_HELP_O)
 	@$(RM) -fr $(BC_TEST_OUTPUTS) $(DC_TEST_OUTPUTS)
 	@$(RM) -fr $(BC_FUZZ_OUTPUTS) $(DC_FUZZ_OUTPUTS)
+	@$(RM) -fr Debug/ Release/
 
 clean_config: clean
 	@printf 'Cleaning config...\n'
diff --git a/contrib/bc/NEWS.md b/contrib/bc/NEWS.md
index 3374ab57bc41..011cb9138912 100644
--- a/contrib/bc/NEWS.md
+++ b/contrib/bc/NEWS.md
@@ -1,5 +1,30 @@
 # News
 
+## 4.0.0
+
+This is a production release with many fixes, a new command-line option, and a
+big surprise:
+
+* A bug was fixed in `dc`'s `P` command where the item on the stack was *not*
+  popped.
+* Various bugs in the manuals have been fixed.
+* A known bug was fixed where history did not interact well with prompts printed
+  by user code without newlines.
+* A new command-line option, `-R` and `--no-read-prompt` was added to disable
+  just the prompt when using `read()` (`bc`) or `?` (`dc`).
+* And finally, **official support for Windows was added**.
+
+The last item is why this is a major version bump.
+
+Currently, only one set of build options (extra math and prompt enabled, history
+and NLS/locale support disabled, both calculators enabled) is supported on
+Windows. However, both debug and release builds are supported.
+
+In addition, Windows builds are supported for the the library (`bcl`).
+
+For more details about how to build on Windows, see the [README][5] or the
+[build manual][13].
+
 ## 3.3.4
 
 This is a production release that fixes a small bug.
diff --git a/contrib/bc/README.md b/contrib/bc/README.md
index 6a37a8bfb8da..852c8956a73d 100644
--- a/contrib/bc/README.md
+++ b/contrib/bc/README.md
@@ -24,13 +24,16 @@ This `bc` is Free and Open Source Software (FOSS). It is offered under the BSD
 
 ## Prerequisites
 
-This `bc` only requires a C99-compatible compiler and a (mostly) POSIX
-2008-compatible system with the XSI (X/Open System Interfaces) option group.
+This `bc` only requires either:
+
+1.	Windows 10 or later, or
+2.	A C99-compatible compiler and a (mostly) POSIX 2008-compatible system with
+	the XSI (X/Open System Interfaces) option group.
 
 Since POSIX 2008 with XSI requires the existence of a C99 compiler as `c99`, any
 POSIX and XSI-compatible system will have everything needed.
 
-Systems that are known to work:
+POSIX-compatible systems that are known to work:
 
 * Linux
 * FreeBSD
@@ -41,17 +44,68 @@ Systems that are known to work:
 * AIX
 * HP-UX* (except for history)
 
+In addition, there is compatibility code to make this `bc` work on Windows.
+
 Please submit bug reports if this `bc` does not build out of the box on any
-system besides Windows.
+system.
 
 ## Build
 
-This `bc` should build unmodified on any POSIX-compliant system.
+### Windows
+
+There is no guarantee that this `bc` will work on any version of Windows earlier
+than Windows 10 (I cannot test on earlier versions), but it is guaranteed to
+work on Windows 10 at least.
+
+Also, if building with MSBuild, the MSBuild bundled with Visual Studio is
+required.
+
+**Note**: Unlike the POSIX-compatible platforms, only one build configuration is
+supported on Windows: extra math and prompt enabled, history and NLS (locale
+support) disabled, with both calculators built.
+
+#### `bc`
+
+To build `bc`, you can open the `bc.sln` file in Visual Studio, select the
+configuration, and build.
+
+You can also build using MSBuild with the following from the root directory:
+
+```
+msbuild -property:Configuration=<config> bc.sln
+```
+
+where `<config>` is either one of `Debug` or `Release`.
+
+#### `bcl` (Library)
+
+To build the library, you can open the `bcl.sln` file in Visual Studio, select
+the configuration, and build.
+
+You can also build using MSBuild with the following from the root directory:
+
+```
+msbuild -property:Configuration=<config> bcl.sln
+```
+
+where `<config>` is either one of `Debug` or `Release`.
+
+### POSIX-Compatible Systems
+
+This `bc` should build unmodified on any POSIX-compliant system or on Windows
+starting with Windows 10 (though earlier versions may work).
 
 For more complex build requirements than the ones below, see the
 [build manual][5].
 
-### Default
+On POSIX-compatible systems, `bc` is built as `bin/bc` and `dc` is built as
+`bin/dc` by default. On Windows, they are built as `Release/bc/bc.exe` and
+`Release/bc/dc.exe`.
+
+**Note**: On Windows, `dc.exe` is just copied from `bc.exe`; it is not linked.
+Patches are welcome for a way to do that.
+
+#### Default
 
 For the default build with optimization, use the following commands in the root
 directory:
@@ -61,7 +115,7 @@ directory:
 make
 ```
 
-### One Calculator
+#### One Calculator
 
 To only build `bc`, use the following commands:
 
@@ -77,7 +131,7 @@ To only build `dc`, use the following commands:
 make
 ```
 
-### Debug
+#### Debug
 
 For debug builds, use the following commands in the root directory:
 
@@ -86,7 +140,7 @@ For debug builds, use the following commands in the root directory:
 make
 ```
 
-### Install
+#### Install
 
 To install, use the following command:
 
@@ -99,7 +153,7 @@ other locations, use the `PREFIX` environment variable when running
 `configure.sh` or pass the `--prefix=<prefix>` option to `configure.sh`. See the
 [build manual][5], or run `./configure.sh --help`, for more details.
 
-### Library
+#### Library
 
 This `bc` does provide a way to build a math library with C bindings. This is
 done by the `-a` or `--library` options to `configure.sh`:
@@ -114,11 +168,12 @@ see the [build manual][5].
 The library API can be found in [`manuals/bcl.3.md`][26] or `man bcl` once the
 library is installed.
 
-The library is built as `bin/libbcl.a`.
+The library is built as `bin/libbcl.a` on POSIX-compatible systems or as
+`Release/bcl/bcl.lib` on Windows.
 
-### Package and Distro Maintainers
+#### Package and Distro Maintainers
 
-#### Recommended Compiler
+##### Recommended Compiler
 
 When I ran benchmarks with my `bc` compiled under `clang`, it performed much
 better than when compiled under `gcc`. I recommend compiling this `bc` with
@@ -127,7 +182,7 @@ better than when compiled under `gcc`. I recommend compiling this `bc` with
 I also recommend building this `bc` with C11 if you can because `bc` will detect
 a C11 compiler and add `_Noreturn` to any relevant function(s).
 
-#### Recommended Optimizations
+##### Recommended Optimizations
 
 I wrote this `bc` with Separation of Concerns, which means that there are many
 small functions that could be inlined. However, they are often called across
@@ -154,12 +209,12 @@ However, I recommend ***NOT*** using `-march=native`. Doing so will reduce this
 `bc`'s performance, at least when building with link-time optimization. See the
 [benchmarks][19] for more details.
 
-#### Stripping Binaries
+##### Stripping Binaries
 
 By default, non-debug binaries are stripped, but stripping can be disabled with
 the `-T` option to `configure.sh`.
 
-#### Using This `bc` as an Alternative
+##### Using This `bc` as an Alternative
 
 If this `bc` is packaged as an alternative to an already existing `bc` package,
 it is possible to rename it in the build to prevent name collision. To prepend
@@ -181,7 +236,7 @@ allowed.
 **Note**: The suggested name (and package name) when `bc` is not available is
 `bc-gh`.
 
-#### Karatsuba Number
+##### Karatsuba Number
 
 Package and distro maintainers have one tool at their disposal to build this
 `bc` in the optimal configuration: `karatsuba.py`.
@@ -217,6 +272,7 @@ translations will also be added as they are provided.
 
 This `bc` compares favorably to GNU `bc`.
 
+* This `bc` builds natively on Windows.
 * It has more extensions, which make this `bc` more useful for scripting.
 * This `bc` is a bit more POSIX compliant.
 * It has a much less buggy parser. The GNU `bc` will give parse errors for what
@@ -246,7 +302,9 @@ To see what algorithms this `bc` uses, see the [algorithms manual][7].
 
 ## Locales
 
-Currently, this `bc` only has support for English (and US English), French,
+Currently, there is no locale support on Windows.
+
+Additionally, this `bc` only has support for English (and US English), French,
 German, Portuguese, Dutch, Polish, Russian, Japanese, and Chinese locales.
 Patches are welcome for translations; use the existing `*.msg` files in
 `locales/` as a starting point.
@@ -276,7 +334,8 @@ Other projects based on this bc are:
 
 ## Language
 
-This `bc` is written in pure ISO C99, using POSIX 2008 APIs.
+This `bc` is written in pure ISO C99, using POSIX 2008 APIs with custom Windows
+compatibility code.
 
 ## Commit Messages
 
@@ -294,6 +353,13 @@ tarballs.
 Files:
 
 	.gitignore           The git ignore file (maintainer use only).
+	.gitattributes       The git attributes file (maintainer use only).
+	bc.sln               The Visual Studio solution file for bc.
+	bc.vcxproj           The Visual Studio project file for bc.
+	bc.vcxproj.filters   The Visual Studio filters file for bc.
+	bcl.sln              The Visual Studio solution file for bcl.
+	bcl.vcxproj          The Visual Studio project file for bcl.
+	bcl.vcxproj.filters  The Visual Studio filters file for bcl.
 	configure            A symlink to configure.sh to make packaging easier.
 	configure.sh         The configure script.
 	functions.sh         A script with functions used by other scripts.
@@ -304,7 +370,8 @@ Files:
 	locale_install.sh    A script to install locales, if desired.
 	locale_uninstall.sh  A script to uninstall locales.
 	Makefile.in          The Makefile template.
-	manpage.sh           Script to generate man pages from markdown files.
+	manpage.sh           Script to generate man pages from markdown files
+	                     (maintainer use only).
 	NOTICE.md            List of contributors and copyright owners.
 	RELEASE.md           A checklist for making a release (maintainer use only).
 	release.sh           A script to test for release (maintainer use only).
diff --git a/contrib/bc/bc.sln b/contrib/bc/bc.sln
new file mode 100644
index 000000000000..584b28d13bf6
--- /dev/null
+++ b/contrib/bc/bc.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31129.286
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bc", "bc.vcxproj", "{D5086CFE-052C-4742-B005-E05DB983BBA2}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Debug|x64.ActiveCfg = Debug|x64
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Debug|x64.Build.0 = Debug|x64
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Debug|x86.ActiveCfg = Debug|Win32
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Debug|x86.Build.0 = Debug|Win32
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Release|x64.ActiveCfg = Release|x64
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Release|x64.Build.0 = Release|x64
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Release|x86.ActiveCfg = Release|Win32
+		{D5086CFE-052C-4742-B005-E05DB983BBA2}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {7869B1FB-A7C4-4FCF-8B99-F696DB2765EC}
+	EndGlobalSection
+EndGlobal
diff --git a/contrib/bc/bc.vcxproj b/contrib/bc/bc.vcxproj
new file mode 100644
index 000000000000..ba0a7f6f1dd6
--- /dev/null
+++ b/contrib/bc/bc.vcxproj
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>16.0</VCProjectVersion>
+    <ProjectGuid>{D5086CFE-052C-4742-B005-E05DB983BBA2}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ItemGroup>
+    <CustomBuild Include="gen\strgen.c">
+      <Message>Building strgen</Message>
+      <Command>CL /Fo:$(Configuration)\$(ProjectName)\ /Fe:$(Configuration)\$(ProjectName)\strgen.exe gen\strgen.c</Command>
+      <Inputs>gen\strgen.c</Inputs>
+      <Outputs>$(Configuration)\$(ProjectName)\strgen.exe</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="gen\lib.bc">
+      <Message>Generating $(Configuration)\$(ProjectName)/lib.c</Message>
+      <Command>START $(Configuration)\$(ProjectName)/strgen gen\lib.bc $(Configuration)\$(ProjectName)/lib.c bc_lib bc_lib_name BC_ENABLED 1</Command>
+      <Inputs>$(Configuration)\$(ProjectName)\strgen.exe;gen\lib.bc</Inputs>
+      <Outputs>$(Configuration)\$(ProjectName)\lib.c</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="gen\lib2.bc">
+      <Message>Generating $(Configuration)\$(ProjectName)/lib2.c</Message>
+      <Command>START $(Configuration)\$(ProjectName)/strgen gen\lib2.bc $(Configuration)\$(ProjectName)/lib2.c bc_lib2 bc_lib2_name BC_ENABLED 1</Command>
+      <Inputs>$(Configuration)\$(ProjectName)\strgen.exe;gen\lib2.bc</Inputs>
+      <Outputs>$(Configuration)\$(ProjectName)\lib2.c</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="gen\bc_help.txt">
+      <Message>Generating $(Configuration)\$(ProjectName)/bc_help.c</Message>
+      <Command>START $(Configuration)\$(ProjectName)/strgen gen\bc_help.txt $(Configuration)\$(ProjectName)\bc_help.c bc_help "" BC_ENABLED</Command>
+      <Inputs>$(Configuration)\$(ProjectName)\strgen.exe;gen\bc_help.txt</Inputs>
+      <Outputs>$(Configuration)\$(ProjectName)\bc_help.c</Outputs>
+    </CustomBuild>
+    <CustomBuild Include="gen\dc_help.txt">
+      <Message>Generating $(Configuration)\$(ProjectName)/dc_help.c</Message>
+      <Command>START $(Configuration)\$(ProjectName)/strgen gen\dc_help.txt $(Configuration)\$(ProjectName)\dc_help.c dc_help "" DC_ENABLED</Command>
+      <Inputs>$(Configuration)\$(ProjectName)\strgen.exe;gen\dc_help.txt</Inputs>
+      <Outputs>$(Configuration)\$(ProjectName)\dc_help.c</Outputs>
+    </CustomBuild>
+  </ItemGroup>
+  <PropertyGroup>
+    <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
+  </PropertyGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</OutDir>
+    <IntDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</OutDir>
+    <IntDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</OutDir>
+    <IntDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</OutDir>
+    <IntDir>$(SolutionDir)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);BC_ENABLED=1;DC_ENABLED=1;BC_ENABLE_EXTRA_MATH=1;BC_ENABLE_HISTORY=0;BC_ENABLE_NLS=0;BC_ENABLE_PROMPT=1;BC_DEBUG_CODE=0;BC_ENABLE_LIBRARY=0;EXECSUFFIX=.exe;BUILD_TYPE=HN</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>Disabled</Optimization>
+      <ExceptionHandling>false</ExceptionHandling>
+      <AdditionalOptions>/W3 %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;bcrypt.lib;ucrt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy /b "$(SolutionDir)\$(Configuration)\$(ProjectName)\bc.exe" "$(SolutionDir)\$(Configuration)\$(ProjectName)\dc.exe"</Command>
+    </PostBuildEvent>
+    <PostBuildEvent>
+      <Message>Copying bc to dc...</Message>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);BC_ENABLED=1;DC_ENABLED=1;BC_ENABLE_EXTRA_MATH=1;BC_ENABLE_HISTORY=0;BC_ENABLE_NLS=0;BC_ENABLE_PROMPT=1;BC_DEBUG_CODE=0;BC_ENABLE_LIBRARY=0;EXECSUFFIX=.exe;BUILD_TYPE=HN</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>MaxSpeed</Optimization>
+      <ExceptionHandling>false</ExceptionHandling>
+      <AdditionalOptions>/W3 %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;bcrypt.lib;ucrt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy /b "$(SolutionDir)\$(Configuration)\$(ProjectName)\bc.exe" "$(SolutionDir)\$(Configuration)\$(ProjectName)\dc.exe"</Command>
+    </PostBuildEvent>
+    <PostBuildEvent>
+      <Message>Copying bc to dc...</Message>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);BC_ENABLED=1;DC_ENABLED=1;BC_ENABLE_EXTRA_MATH=1;BC_ENABLE_HISTORY=0;BC_ENABLE_NLS=0;BC_ENABLE_PROMPT=1;BC_DEBUG_CODE=0;BC_ENABLE_LIBRARY=0;EXECSUFFIX=.exe;BUILD_TYPE=HN</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>Disabled</Optimization>
+      <ExceptionHandling>false</ExceptionHandling>
+      <AdditionalOptions>/W3 %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX64</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;bcrypt.lib;ucrt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy /b "$(SolutionDir)\$(Configuration)\$(ProjectName)\bc.exe" "$(SolutionDir)\$(Configuration)\$(ProjectName)\dc.exe"</Command>
+    </PostBuildEvent>
+    <PostBuildEvent>
+      <Message>Copying bc to dc...</Message>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);BC_ENABLED=1;DC_ENABLED=1;BC_ENABLE_EXTRA_MATH=1;BC_ENABLE_HISTORY=0;BC_ENABLE_NLS=0;BC_ENABLE_PROMPT=1;BC_DEBUG_CODE=0;BC_ENABLE_LIBRARY=0;EXECSUFFIX=.exe;BUILD_TYPE=HN</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <Optimization>MaxSpeed</Optimization>
+      <ExceptionHandling>false</ExceptionHandling>
+      <AdditionalOptions>/W3 %(AdditionalOptions)</AdditionalOptions>
+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX64</TargetMachine>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;bcrypt.lib;ucrt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy /b "$(SolutionDir)\$(Configuration)\$(ProjectName)\bc.exe" "$(SolutionDir)\$(Configuration)\$(ProjectName)\dc.exe"</Command>
+    </PostBuildEvent>
+    <PostBuildEvent>
+      <Message>Copying bc to dc...</Message>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="$(Configuration)\$(ProjectName)\lib.c" />
+    <ClCompile Include="$(Configuration)\$(ProjectName)\lib2.c" />
+    <ClCompile Include="$(Configuration)\$(ProjectName)\bc_help.c" />
+    <ClCompile Include="$(Configuration)\$(ProjectName)\dc_help.c" />
+    <ClCompile Include="src\args.c" />
+    <ClCompile Include="src\bc.c" />
+    <ClCompile Include="src\bc_lex.c" />
+    <ClCompile Include="src\bc_parse.c" />
+    <ClCompile Include="src\data.c" />
+    <ClCompile Include="src\dc.c" />
+    <ClCompile Include="src\dc_lex.c" />
+    <ClCompile Include="src\dc_parse.c" />
+    <ClCompile Include="src\file.c" />
+    <ClCompile Include="src\history.c" />
+    <ClCompile Include="src\lang.c" />
+    <ClCompile Include="src\lex.c" />
+    <ClCompile Include="src\main.c" />
+    <ClCompile Include="src\num.c" />
+    <ClCompile Include="src\opt.c" />
+    <ClCompile Include="src\parse.c" />
+    <ClCompile Include="src\program.c" />
+    <ClCompile Include="src\rand.c" />
+    <ClCompile Include="src\read.c" />
+    <ClCompile Include="src\vector.c" />
+    <ClCompile Include="src\vm.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="include\args.h" />
+    <ClInclude Include="include\bc.h" />
+    <ClInclude Include="include\bcl.h" />
+    <ClInclude Include="include\dc.h" />
+    <ClInclude Include="include\file.h" />
+    <ClInclude Include="include\history.h" />
+    <ClInclude Include="include\lang.h" />
+    <ClInclude Include="include\lex.h" />
+    <ClInclude Include="include\library.h" />
+    <ClInclude Include="include\num.h" />
+    <ClInclude Include="include\opt.h" />
+    <ClInclude Include="include\parse.h" />
+    <ClInclude Include="include\program.h" />
+    <ClInclude Include="include\rand.h" />
+    <ClInclude Include="include\read.h" />
+    <ClInclude Include="include\status.h" />
+    <ClInclude Include="include\vector.h" />
+    <ClInclude Include="include\version.h" />
+    <ClInclude Include="include\vm.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="gen\bc_help.txt" />
+    <Text Include="gen\dc_help.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="gen\lib.bc" />
+    <None Include="gen\lib2.bc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/contrib/bc/bc.vcxproj.filters b/contrib/bc/bc.vcxproj.filters
new file mode 100644
index 000000000000..bc72b60519e9
--- /dev/null
+++ b/contrib/bc/bc.vcxproj.filters
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\args.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\bc.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\bc_lex.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\bc_parse.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\data.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\dc.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\dc_lex.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\dc_parse.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\file.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\history.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\lang.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\lex.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\main.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\num.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\opt.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\parse.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\program.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\rand.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\read.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\vector.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\vm.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="gen\lib.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="gen\lib2.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="gen\bc_help.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="gen\dc_help.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="include\args.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\bc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\bcl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\dc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\file.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\history.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\lang.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\lex.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\library.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\num.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\opt.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\parse.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\program.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\rand.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\read.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\status.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\vector.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\version.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\vm.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="gen\strgen.c">
+      <Filter>Source Files</Filter>
+    </CustomBuild>
+    <CustomBuild Include="gen\lib.bc" />
+    <CustomBuild Include="gen\lib2.bc" />
+    <CustomBuild Include="gen\bc_help.txt" />
+    <CustomBuild Include="gen\dc_help.txt" />
+    <CustomBuild Include="gen\lib.bc" />
+    <CustomBuild Include="gen\lib2.bc" />
+    <CustomBuild Include="gen\bc_help.txt" />
+    <CustomBuild Include="gen\dc_help.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="gen\bc_help.txt">
+      <Filter>Resource Files</Filter>
+    </Text>
+    <Text Include="gen\dc_help.txt">
+      <Filter>Resource Files</Filter>
+    </Text>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="gen\lib.bc">
+      <Filter>Resource Files</Filter>
+    </None>
+    <None Include="gen\lib2.bc">
+      <Filter>Resource Files</Filter>
+    </None>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/contrib/bc/bcl.sln b/contrib/bc/bcl.sln
new file mode 100644
index 000000000000..77009a439db3
--- /dev/null
+++ b/contrib/bc/bcl.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31129.286
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bcl", "bcl.vcxproj", "{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
*** 66043 LINES SKIPPED ***


More information about the dev-commits-src-all mailing list