The branch vendor/bc has been updated by se: URL: https://cgit.FreeBSD.org/src/commit/?id=7a590c074ceede12b2b6e794f8703d6fa5749918
commit 7a590c074ceede12b2b6e794f8703d6fa5749918 Author: Stefan Eßer <s...@freebsd.org> AuthorDate: 2021-04-06 08:44:52 +0000 Commit: Stefan Eßer <s...@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 *** _______________________________________________ dev-commits-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"