git: 7a590c074cee - vendor/bc - Vendor import of Gavin D. Howard's bc version 4.0.0

Stefan Eßer se at FreeBSD.org
Tue Apr 6 08:46:47 UTC 2021


The branch vendor/bc has been updated by se:

URL: https://cgit.FreeBSD.org/src/commit/?id=7a590c074ceede12b2b6e794f8703d6fa5749918

commit 7a590c074ceede12b2b6e794f8703d6fa5749918
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-06 08:44:52 +0000

    Vendor import of Gavin D. Howard's bc version 4.0.0
---
 Makefile.in                |   11 +-
 NEWS.md                    |   25 +
 README.md                  |  107 ++-
 bc.sln                     |   31 +
 bc.vcxproj                 |  278 +++++++
 bc.vcxproj.filters         |  182 +++++
 bcl.sln                    |   31 +
 bcl.vcxproj                |  161 ++++
 bcl.vcxproj.filters        |   96 +++
 configure                  | 1322 +++++++++++++++++++++++++++++-
 configure.sh               |    2 +
 gen/bc_help.txt            |   19 +-
 gen/dc_help.txt            |   17 +-
 gen/strgen.c               |   56 +-
 include/bcl.h              |  102 +++
 include/file.h             |   34 +-
 include/history.h          |    3 +
 include/num.h              |    3 +-
 include/status.h           |   59 --
 include/version.h          |   41 +
 include/vm.h               |   32 +-
 karatsuba.py               |   10 +-
 manpage.sh                 |    2 +-
 manuals/bc.1.md.in         |   23 +-
 manuals/bc/A.1             | 1901 ++++++++++++++++++++++++--------------------
 manuals/bc/A.1.md          |   18 +-
 manuals/bc/E.1             |  905 +++++++++++----------
 manuals/bc/E.1.md          |   18 +-
 manuals/bc/EH.1            |  905 +++++++++++----------
 manuals/bc/EH.1.md         |   18 +-
 manuals/bc/EHN.1           |  905 +++++++++++----------
 manuals/bc/EHN.1.md        |   18 +-
 manuals/bc/EHNP.1          |  894 +++++++++++----------
 manuals/bc/EHNP.1.md       |    8 +-
 manuals/bc/EHP.1           |  894 +++++++++++----------
 manuals/bc/EHP.1.md        |    8 +-
 manuals/bc/EN.1            |  905 +++++++++++----------
 manuals/bc/EN.1.md         |   18 +-
 manuals/bc/ENP.1           |  894 +++++++++++----------
 manuals/bc/ENP.1.md        |    8 +-
 manuals/bc/EP.1            |  894 +++++++++++----------
 manuals/bc/EP.1.md         |    8 +-
 manuals/bc/H.1             | 1901 ++++++++++++++++++++++++--------------------
 manuals/bc/H.1.md          |   18 +-
 manuals/bc/HN.1            | 1901 ++++++++++++++++++++++++--------------------
 manuals/bc/HN.1.md         |   18 +-
 manuals/bc/HNP.1           | 1892 +++++++++++++++++++++++--------------------
 manuals/bc/HNP.1.md        |    8 +-
 manuals/bc/HP.1            | 1892 +++++++++++++++++++++++--------------------
 manuals/bc/HP.1.md         |    8 +-
 manuals/bc/N.1             | 1901 ++++++++++++++++++++++++--------------------
 manuals/bc/N.1.md          |   18 +-
 manuals/bc/NP.1            | 1892 +++++++++++++++++++++++--------------------
 manuals/bc/NP.1.md         |    8 +-
 manuals/bc/P.1             | 1892 +++++++++++++++++++++++--------------------
 manuals/bc/P.1.md          |    8 +-
 manuals/bcl.3              | 1751 +++++++++++++++++++++-------------------
 manuals/build.md           |  121 ++-
 manuals/dc.1.md.in         |   61 +-
 manuals/dc/A.1             | 1386 ++++++++++++++++++--------------
 manuals/dc/A.1.md          |   56 +-
 manuals/dc/E.1             | 1197 ++++++++++++++++------------
 manuals/dc/E.1.md          |   56 +-
 manuals/dc/EH.1            | 1197 ++++++++++++++++------------
 manuals/dc/EH.1.md         |   56 +-
 manuals/dc/EHN.1           | 1197 ++++++++++++++++------------
 manuals/dc/EHN.1.md        |   56 +-
 manuals/dc/EHNP.1          | 1185 +++++++++++++++------------
 manuals/dc/EHNP.1.md       |   46 +-
 manuals/dc/EHP.1           | 1185 +++++++++++++++------------
 manuals/dc/EHP.1.md        |   46 +-
 manuals/dc/EN.1            | 1197 ++++++++++++++++------------
 manuals/dc/EN.1.md         |   56 +-
 manuals/dc/ENP.1           | 1185 +++++++++++++++------------
 manuals/dc/ENP.1.md        |   46 +-
 manuals/dc/EP.1            | 1185 +++++++++++++++------------
 manuals/dc/EP.1.md         |   46 +-
 manuals/dc/H.1             | 1386 ++++++++++++++++++--------------
 manuals/dc/H.1.md          |   56 +-
 manuals/dc/HN.1            | 1386 ++++++++++++++++++--------------
 manuals/dc/HN.1.md         |   56 +-
 manuals/dc/HNP.1           | 1374 ++++++++++++++++++--------------
 manuals/dc/HNP.1.md        |   46 +-
 manuals/dc/HP.1            | 1374 ++++++++++++++++++--------------
 manuals/dc/HP.1.md         |   46 +-
 manuals/dc/N.1             | 1386 ++++++++++++++++++--------------
 manuals/dc/N.1.md          |   56 +-
 manuals/dc/NP.1            | 1374 ++++++++++++++++++--------------
 manuals/dc/NP.1.md         |   46 +-
 manuals/dc/P.1             | 1374 ++++++++++++++++++--------------
 manuals/dc/P.1.md          |   46 +-
 manuals/header_bc.txt      |    2 +-
 manuals/header_bcl.txt     |    2 +-
 manuals/header_dc.txt      |    2 +-
 release.sh                 |   33 +-
 src/args.c                 |    9 +
 src/data.c                 |    6 +
 src/file.c                 |   71 +-
 src/history.c              |   63 +-
 src/main.c                 |    6 +-
 src/num.c                  |   29 +-
 src/program.c              |   36 +-
 src/rand.c                 |   36 +-
 src/read.c                 |   29 +-
 src/vm.c                   |  132 ++-
 tests/dc/scripts/easter.sh |   47 ++
 tests/other.sh             |   37 +-
 107 files changed, 28963 insertions(+), 20117 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index aab7f9b569e5..2b50476a79fe 100644
--- a/Makefile.in
+++ b/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/NEWS.md b/NEWS.md
index 3374ab57bc41..011cb9138912 100644
--- a/NEWS.md
+++ b/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/README.md b/README.md
index 6a37a8bfb8da..852c8956a73d 100644
--- a/README.md
+++ b/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/bc.sln b/bc.sln
new file mode 100644
index 000000000000..584b28d13bf6
--- /dev/null
+++ b/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/bc.vcxproj b/bc.vcxproj
new file mode 100644
index 000000000000..ba0a7f6f1dd6
--- /dev/null
+++ b/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/bc.vcxproj.filters b/bc.vcxproj.filters
new file mode 100644
index 000000000000..bc72b60519e9
--- /dev/null
+++ b/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/bcl.sln b/bcl.sln
new file mode 100644
index 000000000000..77009a439db3
--- /dev/null
+++ b/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
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Debug|x64.ActiveCfg = Debug|x64
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Debug|x64.Build.0 = Debug|x64
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Debug|x86.ActiveCfg = Debug|Win32
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Debug|x86.Build.0 = Debug|Win32
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Release|x64.ActiveCfg = Release|x64
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Release|x64.Build.0 = Release|x64
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Release|x86.ActiveCfg = Release|Win32
+		{D2CC3DCF-7919-4DEF-839D-E9B897EC3E8E}.Release|x86.Build.0 = Release|Win32
*** 66009 LINES SKIPPED ***


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