From 7d182db32fa2e1d7ed689fd27714eae48cd24abf Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Wed, 10 Apr 2024 19:25:18 -0400 Subject: [PATCH] Move to submodules: libsodium, quickjs, crypt_blowfish, libbacktrace, libuv, picohttpparser. Kudos to @tasioiso in #45. --- .gitmodules | 18 + deps/crypt_blowfish | 1 + deps/crypt_blowfish/LINKS | 29 - deps/crypt_blowfish/Makefile | 77 - deps/crypt_blowfish/PERFORMANCE | 30 - deps/crypt_blowfish/README | 68 - deps/crypt_blowfish/crypt.3 | 575 - deps/crypt_blowfish/crypt.h | 24 - deps/crypt_blowfish/crypt_blowfish.c | 907 - deps/crypt_blowfish/crypt_blowfish.h | 27 - deps/crypt_blowfish/crypt_gensalt.c | 124 - deps/crypt_blowfish/crypt_gensalt.h | 30 - deps/crypt_blowfish/glibc-2.1.3-crypt.diff | 53 - deps/crypt_blowfish/glibc-2.14-crypt.diff | 55 - deps/crypt_blowfish/glibc-2.3.6-crypt.diff | 52 - deps/crypt_blowfish/ow-crypt.h | 43 - deps/crypt_blowfish/wrapper.c | 551 - deps/crypt_blowfish/x86.S | 203 - deps/libbacktrace | 1 + deps/libbacktrace/.gitignore | 5 - deps/libbacktrace/Isaac.Newton-Opticks.txt | 9286 --- deps/libbacktrace/LICENSE | 29 - deps/libbacktrace/Makefile.am | 623 - deps/libbacktrace/Makefile.in | 2666 - deps/libbacktrace/README.md | 36 - deps/libbacktrace/aclocal.m4 | 864 - deps/libbacktrace/alloc.c | 167 - deps/libbacktrace/allocfail.c | 136 - deps/libbacktrace/allocfail.sh | 104 - deps/libbacktrace/atomic.c | 113 - deps/libbacktrace/backtrace-supported.h.in | 66 - deps/libbacktrace/backtrace.c | 129 - deps/libbacktrace/backtrace.h | 189 - deps/libbacktrace/btest.c | 501 - deps/libbacktrace/compile | 348 - deps/libbacktrace/config.guess | 1700 - deps/libbacktrace/config.h.in | 179 - deps/libbacktrace/config.sub | 1885 - deps/libbacktrace/config/enable.m4 | 38 - deps/libbacktrace/config/lead-dot.m4 | 31 - deps/libbacktrace/config/libtool.m4 | 7436 --- deps/libbacktrace/config/ltoptions.m4 | 369 - deps/libbacktrace/config/ltsugar.m4 | 123 - deps/libbacktrace/config/ltversion.m4 | 23 - deps/libbacktrace/config/lt~obsolete.m4 | 98 - deps/libbacktrace/config/multi.m4 | 68 - deps/libbacktrace/config/override.m4 | 117 - deps/libbacktrace/config/unwind_ipinfo.m4 | 37 - deps/libbacktrace/config/warnings.m4 | 227 - deps/libbacktrace/configure | 15727 ----- deps/libbacktrace/configure.ac | 611 - deps/libbacktrace/dwarf.c | 4402 -- deps/libbacktrace/edtest.c | 120 - deps/libbacktrace/edtest2.c | 43 - deps/libbacktrace/elf.c | 7443 --- deps/libbacktrace/fileline.c | 361 - deps/libbacktrace/filenames.h | 52 - deps/libbacktrace/filetype.awk | 13 - .../install-debuginfo-for-buildid.sh.in | 65 - deps/libbacktrace/install-sh | 501 - deps/libbacktrace/instrumented_alloc.c | 114 - deps/libbacktrace/internal.h | 389 - deps/libbacktrace/libtool.m4 | 7436 --- deps/libbacktrace/ltmain.sh | 8636 --- deps/libbacktrace/ltoptions.m4 | 369 - deps/libbacktrace/ltsugar.m4 | 123 - deps/libbacktrace/ltversion.m4 | 23 - deps/libbacktrace/lt~obsolete.m4 | 98 - deps/libbacktrace/macho.c | 1355 - deps/libbacktrace/missing | 215 - deps/libbacktrace/mmap.c | 331 - deps/libbacktrace/mmapio.c | 110 - deps/libbacktrace/move-if-change | 83 - deps/libbacktrace/mtest.c | 410 - deps/libbacktrace/nounwind.c | 66 - deps/libbacktrace/pecoff.c | 935 - deps/libbacktrace/posix.c | 104 - deps/libbacktrace/print.c | 92 - deps/libbacktrace/read.c | 110 - deps/libbacktrace/simple.c | 108 - deps/libbacktrace/sort.c | 108 - deps/libbacktrace/state.c | 72 - deps/libbacktrace/stest.c | 137 - deps/libbacktrace/test-driver | 148 - deps/libbacktrace/test_format.c | 55 - deps/libbacktrace/testlib.c | 234 - deps/libbacktrace/testlib.h | 110 - deps/libbacktrace/ttest.c | 161 - deps/libbacktrace/unittest.c | 92 - deps/libbacktrace/unknown.c | 65 - deps/libbacktrace/xcoff.c | 1606 - deps/libbacktrace/xztest.c | 508 - deps/libbacktrace/zstdtest.c | 523 - deps/libbacktrace/ztest.c | 541 - deps/libsodium | 1 + deps/libsodium/.github/workflows/ci.yml | 179 - .../.github/workflows/codeql-analysis.yml | 30 - .../.github/workflows/dotnet-core.yml | 367 - deps/libsodium/.gitignore | 167 - deps/libsodium/AUTHORS | 144 - deps/libsodium/CITATION.cff | 18 - deps/libsodium/ChangeLog | 638 - deps/libsodium/LICENSE | 18 - deps/libsodium/Makefile.am | 20 - deps/libsodium/Makefile.in | 947 - deps/libsodium/README.markdown | 46 - deps/libsodium/THANKS | 92 - deps/libsodium/aclocal.m4 | 1221 - deps/libsodium/appveyor.yml | 24 - deps/libsodium/autogen.sh | 117 - deps/libsodium/azure-pipelines.yml | 122 - deps/libsodium/build-aux/compile | 348 - deps/libsodium/build-aux/config.guess | 1754 - deps/libsodium/build-aux/config.sub | 1960 - deps/libsodium/build-aux/depcomp | 791 - deps/libsodium/build-aux/install-sh | 541 - deps/libsodium/build-aux/ltmain.sh | 11436 ---- deps/libsodium/build-aux/missing | 215 - deps/libsodium/build-aux/test-driver | 153 - deps/libsodium/build.zig | 321 - deps/libsodium/builds/.gitignore | 7 - deps/libsodium/builds/Makefile.am | 79 - deps/libsodium/builds/Makefile.in | 578 - deps/libsodium/builds/msvc/build/buildall.bat | 18 - .../libsodium/builds/msvc/build/buildbase.bat | 107 - .../builds/msvc/properties/ARM64.props | 23 - .../builds/msvc/properties/Common.props | 21 - .../builds/msvc/properties/DLL.props | 16 - .../builds/msvc/properties/Debug.props | 29 - .../builds/msvc/properties/DebugDEXE.props | 21 - .../builds/msvc/properties/DebugDLL.props | 20 - .../builds/msvc/properties/DebugLEXE.props | 20 - .../builds/msvc/properties/DebugLIB.props | 21 - .../builds/msvc/properties/DebugLTCG.props | 20 - .../builds/msvc/properties/DebugSEXE.props | 21 - .../builds/msvc/properties/EXE.props | 17 - .../builds/msvc/properties/LIB.props | 16 - .../builds/msvc/properties/LTCG.props | 13 - .../builds/msvc/properties/Link.props | 21 - .../builds/msvc/properties/Messages.props | 15 - .../builds/msvc/properties/Output.props | 30 - .../builds/msvc/properties/Release.props | 41 - .../builds/msvc/properties/ReleaseDEXE.props | 20 - .../builds/msvc/properties/ReleaseDLL.props | 19 - .../builds/msvc/properties/ReleaseLEXE.props | 20 - .../builds/msvc/properties/ReleaseLIB.props | 19 - .../builds/msvc/properties/ReleaseLTCG.props | 19 - .../builds/msvc/properties/ReleaseSEXE.props | 20 - .../builds/msvc/properties/Win32.props | 23 - .../builds/msvc/properties/x64.props | 26 - deps/libsodium/builds/msvc/resource.h | 14 - deps/libsodium/builds/msvc/resource.rc | 65 - deps/libsodium/builds/msvc/version.h | 33 - .../builds/msvc/vs2010/libsodium.import.props | 52 - .../builds/msvc/vs2010/libsodium.import.xml | 17 - .../builds/msvc/vs2010/libsodium.sln | 50 - .../msvc/vs2010/libsodium/libsodium.props | 48 - .../msvc/vs2010/libsodium/libsodium.vcxproj | 345 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2010/libsodium/libsodium.xml | 15 - .../builds/msvc/vs2012/libsodium.import.props | 52 - .../builds/msvc/vs2012/libsodium.import.xml | 17 - .../builds/msvc/vs2012/libsodium.sln | 50 - .../msvc/vs2012/libsodium/libsodium.props | 48 - .../msvc/vs2012/libsodium/libsodium.vcxproj | 345 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2012/libsodium/libsodium.xml | 15 - .../builds/msvc/vs2013/libsodium.import.props | 52 - .../builds/msvc/vs2013/libsodium.import.xml | 17 - .../builds/msvc/vs2013/libsodium.sln | 52 - .../msvc/vs2013/libsodium/libsodium.props | 48 - .../msvc/vs2013/libsodium/libsodium.vcxproj | 345 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2013/libsodium/libsodium.xml | 15 - .../builds/msvc/vs2015/libsodium.import.props | 52 - .../builds/msvc/vs2015/libsodium.import.xml | 17 - .../builds/msvc/vs2015/libsodium.sln | 52 - .../msvc/vs2015/libsodium/libsodium.props | 48 - .../msvc/vs2015/libsodium/libsodium.vcxproj | 345 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2015/libsodium/libsodium.xml | 15 - .../builds/msvc/vs2017/libsodium.import.props | 52 - .../builds/msvc/vs2017/libsodium.import.xml | 17 - .../builds/msvc/vs2017/libsodium.sln | 52 - .../msvc/vs2017/libsodium/libsodium.props | 48 - .../msvc/vs2017/libsodium/libsodium.vcxproj | 345 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2017/libsodium/libsodium.xml | 15 - .../builds/msvc/vs2019/libsodium.import.props | 52 - .../builds/msvc/vs2019/libsodium.import.xml | 17 - .../builds/msvc/vs2019/libsodium.sln | 52 - .../msvc/vs2019/libsodium/libsodium.props | 48 - .../msvc/vs2019/libsodium/libsodium.vcxproj | 369 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2019/libsodium/libsodium.xml | 15 - .../builds/msvc/vs2022/libsodium.import.props | 52 - .../builds/msvc/vs2022/libsodium.import.xml | 17 - .../builds/msvc/vs2022/libsodium.sln | 70 - .../msvc/vs2022/libsodium/libsodium.props | 48 - .../msvc/vs2022/libsodium/libsodium.vcxproj | 369 - .../libsodium/libsodium.vcxproj.filters | 1085 - .../msvc/vs2022/libsodium/libsodium.xml | 15 - deps/libsodium/ci/appveyor/libsodium.sln | 40 - deps/libsodium/ci/appveyor/libsodium.vcxproj | 593 - .../ci/appveyor/libsodium.vcxproj.filters | 810 - .../ci/appveyor/msvc-scripts/process.bat | 5 - .../ci/appveyor/msvc-scripts/rep.vbs | 12 - .../ci/appveyor/msvc-scripts/sodium.props | 29 - deps/libsodium/configure | 24257 ------- deps/libsodium/configure.ac | 1004 - deps/libsodium/contrib/Findsodium.cmake | 297 - deps/libsodium/contrib/Makefile.am | 3 - deps/libsodium/contrib/Makefile.in | 501 - deps/libsodium/dist-build/Makefile.am | 14 - deps/libsodium/dist-build/Makefile.in | 512 - deps/libsodium/dist-build/android-aar.sh | 144 - deps/libsodium/dist-build/android-armv7-a.sh | 4 - deps/libsodium/dist-build/android-armv8-a.sh | 4 - deps/libsodium/dist-build/android-build.sh | 92 - deps/libsodium/dist-build/android-x86.sh | 4 - deps/libsodium/dist-build/android-x86_64.sh | 4 - .../libsodium/dist-build/apple-xcframework.sh | 504 - .../dist-build/emscripten-symbols.def | 651 - deps/libsodium/dist-build/emscripten.sh | 206 - .../dist-build/generate-emscripten-symbols.sh | 59 - deps/libsodium/dist-build/macos.sh | 26 - deps/libsodium/dist-build/msys2-win32.sh | 18 - deps/libsodium/dist-build/msys2-win64.sh | 18 - deps/libsodium/dist-build/wasm32-wasi.sh | 45 - deps/libsodium/lgtm.yml | 6 - deps/libsodium/libsodium-uninstalled.pc.in | 7 - deps/libsodium/libsodium.pc.in | 12 - deps/libsodium/logo.png | Bin 13739 -> 0 bytes deps/libsodium/m4/ax_add_fortify_source.m4 | 121 - deps/libsodium/m4/ax_check_catchable_abrt.m4 | 57 - deps/libsodium/m4/ax_check_catchable_segv.m4 | 47 - deps/libsodium/m4/ax_check_compile_flag.m4 | 55 - deps/libsodium/m4/ax_check_define.m4 | 73 - deps/libsodium/m4/ax_check_gnu_make.m4 | 95 - deps/libsodium/m4/ax_check_link_flag.m4 | 75 - deps/libsodium/m4/ax_pthread.m4 | 522 - deps/libsodium/m4/ax_tls.m4 | 71 - deps/libsodium/m4/ax_valgrind_check.m4 | 241 - deps/libsodium/m4/ld-output-def.m4 | 29 - deps/libsodium/m4/libtool.m4 | 8400 --- deps/libsodium/m4/ltoptions.m4 | 437 - deps/libsodium/m4/ltsugar.m4 | 124 - deps/libsodium/m4/ltversion.m4 | 24 - deps/libsodium/m4/lt~obsolete.m4 | 99 - .../packaging/dotnet-core/libsodium.pkgproj | 40 - deps/libsodium/packaging/dotnet-core/test.cs | 43 - deps/libsodium/packaging/nuget/.gitignore | 4 - deps/libsodium/packaging/nuget/package.bat | 13 - deps/libsodium/packaging/nuget/package.config | 4 - deps/libsodium/packaging/nuget/package.gsl | 260 - deps/libsodium/regen-msvc/libsodium.vcxproj | 326 - .../regen-msvc/libsodium.vcxproj.filters | 23 - .../regen-msvc/libsodium.vcxproj.filters.tpl | 35 - .../regen-msvc/libsodium.vcxproj.tpl | 37 - deps/libsodium/regen-msvc/regen-msvc.py | 240 - .../tl_libsodium.vcxproj.filters.tpl | 23 - .../regen-msvc/tl_libsodium.vcxproj.tpl | 332 - deps/libsodium/src/Makefile.am | 3 - deps/libsodium/src/Makefile.in | 679 - deps/libsodium/src/libsodium/Makefile.am | 314 - deps/libsodium/src/libsodium/Makefile.in | 4075 -- .../crypto_aead/aegis128l/aead_aegis128l.c | 159 - .../crypto_aead/aegis128l/aegis128l_aesni.c | 70 - .../crypto_aead/aegis128l/aegis128l_aesni.h | 8 - .../aegis128l/aegis128l_armcrypto.c | 72 - .../aegis128l/aegis128l_armcrypto.h | 8 - .../crypto_aead/aegis128l/aegis128l_common.h | 229 - .../crypto_aead/aegis128l/aegis128l_soft.c | 59 - .../crypto_aead/aegis128l/aegis128l_soft.h | 8 - .../crypto_aead/aegis128l/implementations.h | 17 - .../crypto_aead/aegis256/aead_aegis256.c | 158 - .../crypto_aead/aegis256/aegis256_aesni.c | 65 - .../crypto_aead/aegis256/aegis256_aesni.h | 8 - .../crypto_aead/aegis256/aegis256_armcrypto.c | 70 - .../crypto_aead/aegis256/aegis256_armcrypto.h | 8 - .../crypto_aead/aegis256/aegis256_common.h | 214 - .../crypto_aead/aegis256/aegis256_soft.c | 54 - .../crypto_aead/aegis256/aegis256_soft.h | 8 - .../crypto_aead/aegis256/implementations.h | 17 - .../crypto_aead/aes256gcm/aead_aes256gcm.c | 157 - .../aes256gcm/aesni/aead_aes256gcm_aesni.c | 1009 - .../armcrypto/aead_aes256gcm_armcrypto.c | 1032 - .../chacha20poly1305/aead_chacha20poly1305.c | 400 - .../aead_xchacha20poly1305.c | 262 - .../src/libsodium/crypto_auth/crypto_auth.c | 41 - .../crypto_auth/hmacsha256/auth_hmacsha256.c | 118 - .../crypto_auth/hmacsha512/auth_hmacsha512.c | 118 - .../hmacsha512256/auth_hmacsha512256.c | 93 - .../src/libsodium/crypto_box/crypto_box.c | 114 - .../libsodium/crypto_box/crypto_box_easy.c | 115 - .../libsodium/crypto_box/crypto_box_seal.c | 68 - .../box_curve25519xchacha20poly1305.c | 204 - .../box_seal_curve25519xchacha20poly1305.c | 79 - .../box_curve25519xsalsa20poly1305.c | 156 - .../crypto_core/ed25519/core_ed25519.c | 225 - .../crypto_core/ed25519/core_ristretto255.c | 156 - .../crypto_core/ed25519/ref10/ed25519_ref10.c | 2858 - .../crypto_core/ed25519/ref10/fe_25_5/base.h | 1344 - .../crypto_core/ed25519/ref10/fe_25_5/base2.h | 40 - .../ed25519/ref10/fe_25_5/constants.h | 40 - .../crypto_core/ed25519/ref10/fe_25_5/fe.h | 220 - .../crypto_core/ed25519/ref10/fe_51/base.h | 1344 - .../crypto_core/ed25519/ref10/fe_51/base2.h | 40 - .../ed25519/ref10/fe_51/constants.h | 41 - .../crypto_core/ed25519/ref10/fe_51/fe.h | 116 - .../crypto_core/hchacha20/core_hchacha20.c | 93 - .../crypto_core/hsalsa20/core_hsalsa20.c | 21 - .../hsalsa20/ref2/core_hsalsa20_ref2.c | 95 - .../crypto_core/salsa/ref/core_salsa_ref.c | 195 - .../libsodium/crypto_core/softaes/softaes.c | 143 - .../blake2b/generichash_blake2.c | 55 - .../crypto_generichash/blake2b/ref/blake2.h | 106 - .../blake2b/ref/blake2b-compress-avx2.c | 49 - .../blake2b/ref/blake2b-compress-avx2.h | 142 - .../blake2b/ref/blake2b-compress-ref.c | 93 - .../blake2b/ref/blake2b-compress-sse41.c | 87 - .../blake2b/ref/blake2b-compress-sse41.h | 106 - .../blake2b/ref/blake2b-compress-ssse3.c | 90 - .../blake2b/ref/blake2b-compress-ssse3.h | 106 - .../blake2b/ref/blake2b-load-avx2.h | 340 - .../blake2b/ref/blake2b-load-sse2.h | 164 - .../blake2b/ref/blake2b-load-sse41.h | 307 - .../blake2b/ref/blake2b-ref.c | 438 - .../blake2b/ref/generichash_blake2b.c | 116 - .../crypto_generichash/crypto_generichash.c | 91 - .../src/libsodium/crypto_hash/crypto_hash.c | 20 - .../crypto_hash/sha256/cp/hash_sha256_cp.c | 256 - .../crypto_hash/sha256/hash_sha256.c | 13 - .../crypto_hash/sha512/cp/hash_sha512_cp.c | 284 - .../crypto_hash/sha512/hash_sha512.c | 13 - .../crypto_kdf/blake2b/kdf_blake2b.c | 52 - .../src/libsodium/crypto_kdf/crypto_kdf.c | 49 - .../crypto_kdf/hkdf/kdf_hkdf_sha256.c | 123 - .../crypto_kdf/hkdf/kdf_hkdf_sha512.c | 123 - .../src/libsodium/crypto_kx/crypto_kx.c | 143 - .../crypto_onetimeauth/crypto_onetimeauth.c | 71 - .../poly1305/donna/poly1305_donna.c | 124 - .../poly1305/donna/poly1305_donna.h | 12 - .../poly1305/donna/poly1305_donna32.h | 235 - .../poly1305/donna/poly1305_donna64.h | 221 - .../poly1305/onetimeauth_poly1305.c | 90 - .../poly1305/onetimeauth_poly1305.h | 21 - .../poly1305/sse2/poly1305_sse2.c | 949 - .../poly1305/sse2/poly1305_sse2.h | 12 - .../crypto_pwhash/argon2/argon2-core.c | 556 - .../crypto_pwhash/argon2/argon2-core.h | 271 - .../crypto_pwhash/argon2/argon2-encoding.c | 306 - .../crypto_pwhash/argon2/argon2-encoding.h | 34 - .../argon2/argon2-fill-block-avx2.c | 239 - .../argon2/argon2-fill-block-avx512f.c | 244 - .../argon2/argon2-fill-block-ref.c | 234 - .../argon2/argon2-fill-block-ssse3.c | 238 - .../libsodium/crypto_pwhash/argon2/argon2.c | 283 - .../libsodium/crypto_pwhash/argon2/argon2.h | 305 - .../crypto_pwhash/argon2/blake2b-long.c | 79 - .../crypto_pwhash/argon2/blake2b-long.h | 8 - .../crypto_pwhash/argon2/blamka-round-avx2.h | 150 - .../argon2/blamka-round-avx512f.h | 145 - .../crypto_pwhash/argon2/blamka-round-ref.h | 40 - .../crypto_pwhash/argon2/blamka-round-ssse3.h | 124 - .../crypto_pwhash/argon2/pwhash_argon2i.c | 294 - .../crypto_pwhash/argon2/pwhash_argon2id.c | 238 - .../libsodium/crypto_pwhash/crypto_pwhash.c | 212 - .../crypto_scrypt-common.c | 268 - .../scryptsalsa208sha256/crypto_scrypt.h | 92 - .../nosse/pwhash_scryptsalsa208sha256_nosse.c | 318 - .../scryptsalsa208sha256/pbkdf2-sha256.c | 96 - .../scryptsalsa208sha256/pbkdf2-sha256.h | 45 - .../pwhash_scryptsalsa208sha256.c | 301 - .../scryptsalsa208sha256/scrypt_platform.c | 112 - .../sse/pwhash_scryptsalsa208sha256_sse.c | 400 - .../crypto_scalarmult/crypto_scalarmult.c | 33 - .../curve25519/ref10/x25519_ref10.c | 182 - .../curve25519/ref10/x25519_ref10.h | 10 - .../curve25519/sandy2x/consts.S | 25 - .../curve25519/sandy2x/consts_namespace.h | 20 - .../curve25519/sandy2x/curve25519_sandy2x.c | 71 - .../curve25519/sandy2x/curve25519_sandy2x.h | 9 - .../crypto_scalarmult/curve25519/sandy2x/fe.h | 26 - .../curve25519/sandy2x/fe51.h | 35 - .../curve25519/sandy2x/fe51_invert.c | 58 - .../curve25519/sandy2x/fe51_mul.S | 200 - .../curve25519/sandy2x/fe51_namespace.h | 16 - .../curve25519/sandy2x/fe51_nsquare.S | 174 - .../curve25519/sandy2x/fe51_pack.S | 228 - .../curve25519/sandy2x/fe_frombytes_sandy2x.c | 78 - .../curve25519/sandy2x/ladder.S | 1442 - .../curve25519/sandy2x/ladder.h | 18 - .../curve25519/sandy2x/ladder_namespace.h | 8 - .../curve25519/sandy2x/sandy2x.S | 16 - .../curve25519/scalarmult_curve25519.c | 60 - .../curve25519/scalarmult_curve25519.h | 11 - .../ed25519/ref10/scalarmult_ed25519_ref10.c | 121 - .../ref10/scalarmult_ristretto255_ref10.c | 63 - .../crypto_secretbox/crypto_secretbox.c | 67 - .../crypto_secretbox/crypto_secretbox_easy.c | 145 - .../secretbox_xchacha20poly1305.c | 177 - .../secretbox_xsalsa20poly1305.c | 89 - .../secretstream_xchacha20poly1305.c | 313 - .../crypto_shorthash/crypto_shorthash.c | 34 - .../siphash24/ref/shorthash_siphash24_ref.c | 71 - .../siphash24/ref/shorthash_siphash_ref.h | 24 - .../siphash24/ref/shorthash_siphashx24_ref.c | 77 - .../siphash24/shorthash_siphash24.c | 11 - .../siphash24/shorthash_siphashx24.c | 11 - .../src/libsodium/crypto_sign/crypto_sign.c | 115 - .../crypto_sign/ed25519/ref10/keypair.c | 84 - .../crypto_sign/ed25519/ref10/obsolete.c | 118 - .../crypto_sign/ed25519/ref10/open.c | 98 - .../crypto_sign/ed25519/ref10/sign.c | 128 - .../ed25519/ref10/sign_ed25519_ref10.h | 18 - .../crypto_sign/ed25519/sign_ed25519.c | 97 - .../chacha20/dolbeau/chacha20_dolbeau-avx2.c | 177 - .../chacha20/dolbeau/chacha20_dolbeau-avx2.h | 8 - .../chacha20/dolbeau/chacha20_dolbeau-ssse3.c | 171 - .../chacha20/dolbeau/chacha20_dolbeau-ssse3.h | 8 - .../crypto_stream/chacha20/dolbeau/u0.h | 86 - .../crypto_stream/chacha20/dolbeau/u1.h | 98 - .../crypto_stream/chacha20/dolbeau/u4.h | 177 - .../crypto_stream/chacha20/dolbeau/u8.h | 326 - .../crypto_stream/chacha20/ref/chacha20_ref.c | 312 - .../crypto_stream/chacha20/ref/chacha20_ref.h | 8 - .../crypto_stream/chacha20/stream_chacha20.c | 184 - .../crypto_stream/chacha20/stream_chacha20.h | 22 - .../libsodium/crypto_stream/crypto_stream.c | 49 - .../crypto_stream/salsa20/ref/salsa20_ref.c | 120 - .../crypto_stream/salsa20/ref/salsa20_ref.h | 8 - .../crypto_stream/salsa20/stream_salsa20.c | 100 - .../crypto_stream/salsa20/stream_salsa20.h | 16 - .../salsa20/xmm6/salsa20_xmm6-asm.S | 965 - .../crypto_stream/salsa20/xmm6/salsa20_xmm6.c | 31 - .../crypto_stream/salsa20/xmm6/salsa20_xmm6.h | 8 - .../salsa20/xmm6int/salsa20_xmm6int-avx2.c | 131 - .../salsa20/xmm6int/salsa20_xmm6int-avx2.h | 8 - .../salsa20/xmm6int/salsa20_xmm6int-sse2.c | 122 - .../salsa20/xmm6int/salsa20_xmm6int-sse2.h | 8 - .../crypto_stream/salsa20/xmm6int/u0.h | 195 - .../crypto_stream/salsa20/xmm6int/u1.h | 207 - .../crypto_stream/salsa20/xmm6int/u4.h | 547 - .../crypto_stream/salsa20/xmm6int/u8.h | 477 - .../salsa2012/ref/stream_salsa2012_ref.c | 106 - .../salsa2012/stream_salsa2012.c | 26 - .../salsa208/ref/stream_salsa208_ref.c | 106 - .../crypto_stream/salsa208/stream_salsa208.c | 26 - .../xchacha20/stream_xchacha20.c | 69 - .../crypto_stream/xsalsa20/stream_xsalsa20.c | 66 - .../src/libsodium/crypto_verify/verify.c | 98 - .../src/libsodium/include/Makefile.am | 76 - .../src/libsodium/include/Makefile.in | 723 - deps/libsodium/src/libsodium/include/sodium.h | 75 - .../src/libsodium/include/sodium/core.h | 28 - .../include/sodium/crypto_aead_aegis128l.h | 92 - .../include/sodium/crypto_aead_aegis256.h | 92 - .../include/sodium/crypto_aead_aes256gcm.h | 179 - .../sodium/crypto_aead_chacha20poly1305.h | 180 - .../sodium/crypto_aead_xchacha20poly1305.h | 100 - .../libsodium/include/sodium/crypto_auth.h | 46 - .../include/sodium/crypto_auth_hmacsha256.h | 70 - .../include/sodium/crypto_auth_hmacsha512.h | 68 - .../sodium/crypto_auth_hmacsha512256.h | 65 - .../src/libsodium/include/sodium/crypto_box.h | 177 - .../crypto_box_curve25519xchacha20poly1305.h | 164 - .../crypto_box_curve25519xsalsa20poly1305.h | 112 - .../include/sodium/crypto_core_ed25519.h | 100 - .../include/sodium/crypto_core_hchacha20.h | 36 - .../include/sodium/crypto_core_hsalsa20.h | 36 - .../include/sodium/crypto_core_ristretto255.h | 100 - .../include/sodium/crypto_core_salsa20.h | 36 - .../include/sodium/crypto_core_salsa2012.h | 36 - .../include/sodium/crypto_core_salsa208.h | 40 - .../include/sodium/crypto_generichash.h | 84 - .../sodium/crypto_generichash_blake2b.h | 122 - .../libsodium/include/sodium/crypto_hash.h | 40 - .../include/sodium/crypto_hash_sha256.h | 60 - .../include/sodium/crypto_hash_sha512.h | 60 - .../src/libsodium/include/sodium/crypto_kdf.h | 53 - .../include/sodium/crypto_kdf_blake2b.h | 44 - .../include/sodium/crypto_kdf_hkdf_sha256.h | 74 - .../include/sodium/crypto_kdf_hkdf_sha512.h | 75 - .../src/libsodium/include/sodium/crypto_kx.h | 66 - .../include/sodium/crypto_onetimeauth.h | 65 - .../sodium/crypto_onetimeauth_poly1305.h | 72 - .../libsodium/include/sodium/crypto_pwhash.h | 147 - .../include/sodium/crypto_pwhash_argon2i.h | 122 - .../include/sodium/crypto_pwhash_argon2id.h | 122 - .../crypto_pwhash_scryptsalsa208sha256.h | 120 - .../include/sodium/crypto_scalarmult.h | 46 - .../sodium/crypto_scalarmult_curve25519.h | 42 - .../sodium/crypto_scalarmult_ed25519.h | 51 - .../sodium/crypto_scalarmult_ristretto255.h | 43 - .../include/sodium/crypto_secretbox.h | 93 - .../crypto_secretbox_xchacha20poly1305.h | 70 - .../crypto_secretbox_xsalsa20poly1305.h | 69 - .../crypto_secretstream_xchacha20poly1305.h | 108 - .../include/sodium/crypto_shorthash.h | 41 - .../sodium/crypto_shorthash_siphash24.h | 50 - .../libsodium/include/sodium/crypto_sign.h | 107 - .../include/sodium/crypto_sign_ed25519.h | 124 - .../crypto_sign_edwards25519sha512batch.h | 55 - .../libsodium/include/sodium/crypto_stream.h | 59 - .../include/sodium/crypto_stream_chacha20.h | 106 - .../include/sodium/crypto_stream_salsa20.h | 61 - .../include/sodium/crypto_stream_salsa2012.h | 53 - .../include/sodium/crypto_stream_salsa208.h | 56 - .../include/sodium/crypto_stream_xchacha20.h | 61 - .../include/sodium/crypto_stream_xsalsa20.h | 61 - .../include/sodium/crypto_verify_16.h | 23 - .../include/sodium/crypto_verify_32.h | 23 - .../include/sodium/crypto_verify_64.h | 23 - .../src/libsodium/include/sodium/export.h | 57 - .../include/sodium/private/asm_cet.h | 11 - .../sodium/private/chacha20_ietf_ext.h | 16 - .../libsodium/include/sodium/private/common.h | 285 - .../include/sodium/private/ed25519_ref10.h | 142 - .../sodium/private/ed25519_ref10_fe_25_5.h | 1030 - .../sodium/private/ed25519_ref10_fe_51.h | 508 - .../include/sodium/private/implementations.h | 13 - .../libsodium/include/sodium/private/mutex.h | 7 - .../include/sodium/private/softaes.h | 56 - .../include/sodium/private/sse2_64_32.h | 50 - .../libsodium/include/sodium/randombytes.h | 72 - .../sodium/randombytes_internal_random.h | 22 - .../include/sodium/randombytes_sysrandom.h | 19 - .../src/libsodium/include/sodium/runtime.h | 55 - .../src/libsodium/include/sodium/utils.h | 179 - .../src/libsodium/include/sodium/version.h.in | 33 - .../internal/randombytes_internal_random.c | 635 - .../src/libsodium/randombytes/randombytes.c | 199 - .../sysrandom/randombytes_sysrandom.c | 396 - deps/libsodium/src/libsodium/sodium/codecs.c | 335 - deps/libsodium/src/libsodium/sodium/core.c | 216 - deps/libsodium/src/libsodium/sodium/runtime.c | 391 - deps/libsodium/src/libsodium/sodium/utils.c | 809 - deps/libsodium/src/libsodium/sodium/version.c | 30 - deps/libsodium/test/Makefile.am | 5 - deps/libsodium/test/Makefile.in | 682 - deps/libsodium/test/constcheck.sh | 20 - deps/libsodium/test/default/Makefile.am | 525 - deps/libsodium/test/default/Makefile.in | 2857 - deps/libsodium/test/default/aead_aegis128l.c | 642 - .../libsodium/test/default/aead_aegis128l.exp | 1 - deps/libsodium/test/default/aead_aegis256.c | 723 - deps/libsodium/test/default/aead_aegis256.exp | 1 - deps/libsodium/test/default/aead_aes256gcm.c | 3328 - .../libsodium/test/default/aead_aes256gcm.exp | 1 - deps/libsodium/test/default/aead_aes256gcm2.c | 276 - .../test/default/aead_aes256gcm2.exp | 1 - .../test/default/aead_chacha20poly1305.c | 372 - .../test/default/aead_chacha20poly1305.exp | 63 - .../test/default/aead_chacha20poly13052.c | 1046 - .../test/default/aead_chacha20poly13052.exp | 1 - .../test/default/aead_xchacha20poly1305.c | 203 - .../test/default/aead_xchacha20poly1305.exp | 51 - deps/libsodium/test/default/auth.c | 141 - deps/libsodium/test/default/auth.exp | 30 - deps/libsodium/test/default/auth2.c | 34 - deps/libsodium/test/default/auth2.exp | 4 - deps/libsodium/test/default/auth3.c | 36 - deps/libsodium/test/default/auth3.exp | 1 - deps/libsodium/test/default/auth5.c | 41 - deps/libsodium/test/default/auth5.exp | 0 deps/libsodium/test/default/auth6.c | 23 - deps/libsodium/test/default/auth6.exp | 8 - deps/libsodium/test/default/auth7.c | 41 - deps/libsodium/test/default/auth7.exp | 0 deps/libsodium/test/default/box.c | 112 - deps/libsodium/test/default/box.exp | 38 - deps/libsodium/test/default/box2.c | 80 - deps/libsodium/test/default/box2.exp | 34 - deps/libsodium/test/default/box7.c | 50 - deps/libsodium/test/default/box7.exp | 0 deps/libsodium/test/default/box8.c | 58 - deps/libsodium/test/default/box8.exp | 0 deps/libsodium/test/default/box_easy.c | 72 - deps/libsodium/test/default/box_easy.exp | 3 - deps/libsodium/test/default/box_easy2.c | 149 - deps/libsodium/test/default/box_easy2.exp | 7 - deps/libsodium/test/default/box_seal.c | 165 - deps/libsodium/test/default/box_seal.exp | 8 - deps/libsodium/test/default/box_seed.c | 30 - deps/libsodium/test/default/box_seed.exp | 8 - deps/libsodium/test/default/chacha20.c | 186 - deps/libsodium/test/default/chacha20.exp | 64 - deps/libsodium/test/default/cmptest.h | 238 - deps/libsodium/test/default/codecs.c | 251 - deps/libsodium/test/default/codecs.exp | 30 - deps/libsodium/test/default/core1.c | 41 - deps/libsodium/test/default/core1.exp | 4 - deps/libsodium/test/default/core2.c | 38 - deps/libsodium/test/default/core2.exp | 4 - deps/libsodium/test/default/core3.c | 115 - deps/libsodium/test/default/core3.exp | 3 - deps/libsodium/test/default/core4.c | 36 - deps/libsodium/test/default/core4.exp | 8 - deps/libsodium/test/default/core5.c | 33 - deps/libsodium/test/default/core5.exp | 4 - deps/libsodium/test/default/core6.c | 52 - deps/libsodium/test/default/core6.exp | 4 - deps/libsodium/test/default/core_ed25519.c | 545 - deps/libsodium/test/default/core_ed25519.exp | 55 - .../test/default/core_ristretto255.c | 271 - .../test/default/core_ristretto255.exp | 8 - deps/libsodium/test/default/ed25519_convert.c | 70 - .../test/default/ed25519_convert.exp | 3 - deps/libsodium/test/default/generichash.c | 1406 - deps/libsodium/test/default/generichash.exp | 65 - deps/libsodium/test/default/generichash2.c | 62 - deps/libsodium/test/default/generichash2.exp | 64 - deps/libsodium/test/default/generichash3.c | 176 - deps/libsodium/test/default/generichash3.exp | 75 - deps/libsodium/test/default/hash.c | 47 - deps/libsodium/test/default/hash.exp | 4 - deps/libsodium/test/default/hash3.c | 20 - deps/libsodium/test/default/hash3.exp | 1 - deps/libsodium/test/default/index.html.tpl | 98 - deps/libsodium/test/default/kdf.c | 71 - deps/libsodium/test/default/kdf.exp | 77 - deps/libsodium/test/default/kdf_hkdf.c | 102 - deps/libsodium/test/default/kdf_hkdf.exp | 205 - deps/libsodium/test/default/keygen.c | 67 - deps/libsodium/test/default/keygen.exp | 1 - deps/libsodium/test/default/kx.c | 149 - deps/libsodium/test/default/kx.exp | 7 - deps/libsodium/test/default/metamorphic.c | 187 - deps/libsodium/test/default/metamorphic.exp | 1 - deps/libsodium/test/default/misuse.c | 187 - deps/libsodium/test/default/misuse.exp | 0 deps/libsodium/test/default/onetimeauth.c | 63 - deps/libsodium/test/default/onetimeauth.exp | 4 - deps/libsodium/test/default/onetimeauth2.c | 33 - deps/libsodium/test/default/onetimeauth2.exp | 1 - deps/libsodium/test/default/onetimeauth7.c | 36 - deps/libsodium/test/default/onetimeauth7.exp | 0 deps/libsodium/test/default/pre.js.inc | 22 - deps/libsodium/test/default/pwhash_argon2i.c | 467 - .../libsodium/test/default/pwhash_argon2i.exp | 11 - deps/libsodium/test/default/pwhash_argon2id.c | 517 - .../test/default/pwhash_argon2id.exp | 14 - deps/libsodium/test/default/pwhash_scrypt.c | 393 - deps/libsodium/test/default/pwhash_scrypt.exp | 37 - .../libsodium/test/default/pwhash_scrypt_ll.c | 59 - .../test/default/pwhash_scrypt_ll.exp | 15 - deps/libsodium/test/default/randombytes.c | 164 - deps/libsodium/test/default/randombytes.exp | 2 - deps/libsodium/test/default/run.sh | 9 - deps/libsodium/test/default/scalarmult.c | 77 - deps/libsodium/test/default/scalarmult.exp | 5 - deps/libsodium/test/default/scalarmult2.c | 23 - deps/libsodium/test/default/scalarmult2.exp | 1 - deps/libsodium/test/default/scalarmult5.c | 31 - deps/libsodium/test/default/scalarmult5.exp | 1 - deps/libsodium/test/default/scalarmult6.c | 54 - deps/libsodium/test/default/scalarmult6.exp | 4 - deps/libsodium/test/default/scalarmult7.c | 34 - deps/libsodium/test/default/scalarmult7.exp | 1 - deps/libsodium/test/default/scalarmult8.c | 580 - deps/libsodium/test/default/scalarmult8.exp | 65 - .../test/default/scalarmult_ed25519.c | 134 - .../test/default/scalarmult_ed25519.exp | 1 - .../test/default/scalarmult_ristretto255.c | 51 - .../test/default/scalarmult_ristretto255.exp | 18 - deps/libsodium/test/default/secretbox.c | 84 - deps/libsodium/test/default/secretbox.exp | 38 - deps/libsodium/test/default/secretbox2.c | 55 - deps/libsodium/test/default/secretbox2.exp | 17 - deps/libsodium/test/default/secretbox7.c | 36 - deps/libsodium/test/default/secretbox7.exp | 0 deps/libsodium/test/default/secretbox8.c | 41 - deps/libsodium/test/default/secretbox8.exp | 0 deps/libsodium/test/default/secretbox_easy.c | 124 - .../libsodium/test/default/secretbox_easy.exp | 9 - deps/libsodium/test/default/secretbox_easy2.c | 72 - .../test/default/secretbox_easy2.exp | 5 - .../default/secretstream_xchacha20poly1305.c | 329 - .../secretstream_xchacha20poly1305.exp | 1 - deps/libsodium/test/default/shorthash.c | 35 - deps/libsodium/test/default/shorthash.exp | 64 - deps/libsodium/test/default/sign.c | 1324 - deps/libsodium/test/default/sign.exp | 5 - deps/libsodium/test/default/siphashx24.c | 33 - deps/libsodium/test/default/siphashx24.exp | 64 - deps/libsodium/test/default/sodium_core.c | 43 - deps/libsodium/test/default/sodium_core.exp | 1 - deps/libsodium/test/default/sodium_utils.c | 224 - deps/libsodium/test/default/sodium_utils.exp | 25 - deps/libsodium/test/default/sodium_utils2.c | 120 - deps/libsodium/test/default/sodium_utils2.exp | 3 - deps/libsodium/test/default/sodium_utils3.c | 87 - deps/libsodium/test/default/sodium_utils3.exp | 2 - deps/libsodium/test/default/sodium_version.c | 18 - .../libsodium/test/default/sodium_version.exp | 3 - deps/libsodium/test/default/stream.c | 84 - deps/libsodium/test/default/stream.exp | 83 - deps/libsodium/test/default/stream2.c | 59 - deps/libsodium/test/default/stream2.exp | 2 - deps/libsodium/test/default/stream3.c | 32 - deps/libsodium/test/default/stream3.exp | 4 - deps/libsodium/test/default/stream4.c | 51 - deps/libsodium/test/default/stream4.exp | 17 - deps/libsodium/test/default/verify1.c | 76 - deps/libsodium/test/default/verify1.exp | 2 - .../test/default/wasi-test-wrapper.sh | 98 - deps/libsodium/test/default/wintest.bat | 61 - deps/libsodium/test/default/xchacha20.c | 428 - deps/libsodium/test/default/xchacha20.exp | 5 - deps/libsodium/test/quirks/quirks.h | 34 - deps/libuv | 1 + deps/libuv/.gitattributes | 1 - deps/libuv/.github/ISSUE_TEMPLATE.md | 13 - deps/libuv/.github/workflows/CI-docs.yml | 25 - deps/libuv/.github/workflows/CI-sample.yml | 32 - deps/libuv/.github/workflows/CI-unix.yml | 148 - deps/libuv/.github/workflows/CI-win.yml | 130 - deps/libuv/.github/workflows/sanitizer.yml | 123 - deps/libuv/.gitignore | 80 - deps/libuv/.mailmap | 67 - deps/libuv/.readthedocs.yaml | 15 - deps/libuv/AUTHORS | 569 - deps/libuv/CMakeLists.txt | 796 - deps/libuv/CONTRIBUTING.md | 171 - deps/libuv/ChangeLog | 6100 -- deps/libuv/LICENSE | 19 - deps/libuv/LICENSE-docs | 396 - deps/libuv/LICENSE-extra | 36 - deps/libuv/LINKS.md | 109 - deps/libuv/MAINTAINERS.md | 56 - deps/libuv/Makefile.am | 557 - deps/libuv/README.md | 345 - deps/libuv/SECURITY.md | 27 - deps/libuv/SUPPORTED_PLATFORMS.md | 68 - deps/libuv/autogen.sh | 75 - .../cmake-toolchains/cross-mingw32.cmake | 17 - deps/libuv/configure.ac | 92 - deps/libuv/docs/Makefile | 183 - deps/libuv/docs/code/.gitignore | 3 - deps/libuv/docs/code/CMakeLists.txt | 51 - deps/libuv/docs/code/cgi/main.c | 81 - deps/libuv/docs/code/cgi/tick.c | 13 - deps/libuv/docs/code/default-loop/main.c | 12 - deps/libuv/docs/code/detach/main.c | 31 - deps/libuv/docs/code/dns/main.c | 80 - deps/libuv/docs/code/helloworld/main.c | 15 - deps/libuv/docs/code/idle-basic/main.c | 24 - deps/libuv/docs/code/idle-compute/main.c | 43 - deps/libuv/docs/code/interfaces/main.c | 33 - deps/libuv/docs/code/locks/main.c | 57 - .../docs/code/multi-echo-server/hammer.js | 20 - deps/libuv/docs/code/multi-echo-server/main.c | 114 - .../docs/code/multi-echo-server/worker.c | 88 - deps/libuv/docs/code/onchange/main.c | 44 - deps/libuv/docs/code/pipe-echo-server/main.c | 94 - deps/libuv/docs/code/plugin/hello.c | 5 - deps/libuv/docs/code/plugin/main.c | 39 - deps/libuv/docs/code/plugin/plugin.h | 7 - deps/libuv/docs/code/proc-streams/main.c | 49 - deps/libuv/docs/code/proc-streams/test.c | 8 - deps/libuv/docs/code/progress/main.c | 47 - deps/libuv/docs/code/queue-cancel/main.c | 59 - deps/libuv/docs/code/queue-work/main.c | 44 - deps/libuv/docs/code/ref-timer/main.c | 29 - deps/libuv/docs/code/signal/main.c | 66 - deps/libuv/docs/code/spawn/main.c | 36 - deps/libuv/docs/code/tcp-echo-server/main.c | 87 - deps/libuv/docs/code/thread-create/main.c | 35 - deps/libuv/docs/code/tty-gravity/main.c | 48 - deps/libuv/docs/code/tty/main.c | 29 - deps/libuv/docs/code/udp-dhcp/main.c | 128 - deps/libuv/docs/code/uvcat/main.c | 62 - deps/libuv/docs/code/uvstop/main.c | 33 - deps/libuv/docs/code/uvtee/main.c | 79 - deps/libuv/docs/code/uvwget/main.c | 166 - deps/libuv/docs/make.bat | 243 - deps/libuv/docs/requirements.txt | 36 - deps/libuv/docs/src/api.rst | 36 - deps/libuv/docs/src/async.rst | 65 - deps/libuv/docs/src/check.rst | 54 - deps/libuv/docs/src/conf.py | 348 - deps/libuv/docs/src/design.rst | 141 - deps/libuv/docs/src/dll.rst | 44 - deps/libuv/docs/src/dns.rst | 108 - deps/libuv/docs/src/errors.rst | 388 - deps/libuv/docs/src/fs.rst | 711 - deps/libuv/docs/src/fs_event.rst | 136 - deps/libuv/docs/src/fs_poll.rst | 77 - deps/libuv/docs/src/guide.rst | 22 - deps/libuv/docs/src/guide/about.rst | 22 - deps/libuv/docs/src/guide/basics.rst | 236 - deps/libuv/docs/src/guide/eventloops.rst | 50 - deps/libuv/docs/src/guide/filesystem.rst | 349 - deps/libuv/docs/src/guide/introduction.rst | 73 - deps/libuv/docs/src/guide/networking.rst | 256 - deps/libuv/docs/src/guide/processes.rst | 424 - deps/libuv/docs/src/guide/threads.rst | 397 - deps/libuv/docs/src/guide/utilities.rst | 450 - deps/libuv/docs/src/handle.rst | 286 - deps/libuv/docs/src/idle.rst | 62 - deps/libuv/docs/src/index.rst | 62 - deps/libuv/docs/src/loop.rst | 245 - deps/libuv/docs/src/metrics.rst | 71 - deps/libuv/docs/src/migration_010_100.rst | 244 - deps/libuv/docs/src/misc.rst | 888 - deps/libuv/docs/src/pipe.rst | 182 - deps/libuv/docs/src/poll.rst | 150 - deps/libuv/docs/src/prepare.rst | 54 - deps/libuv/docs/src/process.rst | 291 - deps/libuv/docs/src/request.rst | 117 - deps/libuv/docs/src/signal.rst | 101 - deps/libuv/docs/src/sphinx-plugins/manpage.py | 45 - deps/libuv/docs/src/static/architecture.png | Bin 206767 -> 0 bytes .../src/static/diagrams.key/Data/st0-311.jpg | Bin 14413 -> 0 bytes .../src/static/diagrams.key/Data/st1-475.jpg | Bin 8284 -> 0 bytes .../docs/src/static/diagrams.key/Index.zip | Bin 71160 -> 0 bytes .../Metadata/BuildVersionHistory.plist | 8 - .../diagrams.key/Metadata/DocumentIdentifier | 1 - .../diagrams.key/Metadata/Properties.plist | Bin 340 -> 0 bytes .../src/static/diagrams.key/preview-micro.jpg | Bin 1425 -> 0 bytes .../src/static/diagrams.key/preview-web.jpg | Bin 8106 -> 0 bytes .../docs/src/static/diagrams.key/preview.jpg | Bin 107456 -> 0 bytes deps/libuv/docs/src/static/favicon.ico | Bin 15086 -> 0 bytes deps/libuv/docs/src/static/logo.png | Bin 33545 -> 0 bytes deps/libuv/docs/src/static/loop_iteration.png | Bin 65186 -> 0 bytes deps/libuv/docs/src/stream.rst | 258 - deps/libuv/docs/src/tcp.rst | 146 - deps/libuv/docs/src/threading.rst | 252 - deps/libuv/docs/src/threadpool.rst | 72 - deps/libuv/docs/src/timer.rst | 88 - deps/libuv/docs/src/tty.rst | 140 - deps/libuv/docs/src/udp.rst | 450 - deps/libuv/docs/src/upgrading.rst | 11 - deps/libuv/docs/src/version.rst | 60 - deps/libuv/img/banner.png | Bin 44102 -> 0 bytes deps/libuv/img/logos.svg | 152 - deps/libuv/include/uv.h | 1942 - deps/libuv/include/uv/aix.h | 32 - deps/libuv/include/uv/bsd.h | 34 - deps/libuv/include/uv/darwin.h | 61 - deps/libuv/include/uv/errno.h | 477 - deps/libuv/include/uv/linux.h | 34 - deps/libuv/include/uv/os390.h | 33 - deps/libuv/include/uv/posix.h | 31 - deps/libuv/include/uv/sunos.h | 44 - deps/libuv/include/uv/threadpool.h | 37 - deps/libuv/include/uv/tree.h | 768 - deps/libuv/include/uv/unix.h | 509 - deps/libuv/include/uv/version.h | 43 - deps/libuv/include/uv/win.h | 703 - deps/libuv/libuv-static.pc.in | 12 - deps/libuv/libuv.pc.in | 13 - deps/libuv/m4/.gitignore | 5 - deps/libuv/m4/as_case.m4 | 21 - deps/libuv/m4/ax_pthread.m4 | 485 - deps/libuv/m4/libuv-check-flags.m4 | 336 - deps/libuv/m4/libuv-check-versions.m4 | 7 - deps/libuv/src/fs-poll.c | 287 - deps/libuv/src/heap-inl.h | 245 - deps/libuv/src/idna.c | 560 - deps/libuv/src/idna.h | 31 - deps/libuv/src/inet.c | 298 - deps/libuv/src/queue.h | 90 - deps/libuv/src/random.c | 123 - deps/libuv/src/strscpy.c | 38 - deps/libuv/src/strscpy.h | 39 - deps/libuv/src/strtok.c | 52 - deps/libuv/src/strtok.h | 27 - deps/libuv/src/thread-common.c | 175 - deps/libuv/src/threadpool.c | 418 - deps/libuv/src/timer.c | 200 - deps/libuv/src/unix/aix-common.c | 89 - deps/libuv/src/unix/aix.c | 1320 - deps/libuv/src/unix/async.c | 329 - deps/libuv/src/unix/bsd-ifaddrs.c | 163 - deps/libuv/src/unix/bsd-proctitle.c | 99 - deps/libuv/src/unix/core.c | 1905 - deps/libuv/src/unix/cygwin.c | 57 - deps/libuv/src/unix/darwin-proctitle.c | 192 - deps/libuv/src/unix/darwin-stub.h | 97 - deps/libuv/src/unix/darwin.c | 243 - deps/libuv/src/unix/dl.c | 80 - deps/libuv/src/unix/freebsd.c | 285 - deps/libuv/src/unix/fs.c | 2167 - deps/libuv/src/unix/fsevents.c | 905 - deps/libuv/src/unix/getaddrinfo.c | 252 - deps/libuv/src/unix/getnameinfo.c | 121 - deps/libuv/src/unix/haiku.c | 172 - deps/libuv/src/unix/hurd.c | 172 - deps/libuv/src/unix/ibmi.c | 542 - deps/libuv/src/unix/internal.h | 475 - deps/libuv/src/unix/kqueue.c | 624 - deps/libuv/src/unix/linux.c | 2563 - deps/libuv/src/unix/loop-watcher.c | 68 - deps/libuv/src/unix/loop.c | 228 - deps/libuv/src/unix/netbsd.c | 264 - deps/libuv/src/unix/no-fsevents.c | 42 - deps/libuv/src/unix/no-proctitle.c | 45 - deps/libuv/src/unix/openbsd.c | 245 - deps/libuv/src/unix/os390-proctitle.c | 136 - deps/libuv/src/unix/os390-syscalls.c | 536 - deps/libuv/src/unix/os390-syscalls.h | 75 - deps/libuv/src/unix/os390.c | 1070 - deps/libuv/src/unix/pipe.c | 538 - deps/libuv/src/unix/poll.c | 160 - deps/libuv/src/unix/posix-hrtime.c | 36 - deps/libuv/src/unix/posix-poll.c | 385 - deps/libuv/src/unix/process.c | 1113 - deps/libuv/src/unix/procfs-exepath.c | 45 - deps/libuv/src/unix/proctitle.c | 157 - deps/libuv/src/unix/qnx.c | 142 - deps/libuv/src/unix/random-devurandom.c | 93 - deps/libuv/src/unix/random-getentropy.c | 57 - deps/libuv/src/unix/random-getrandom.c | 86 - deps/libuv/src/unix/random-sysctl-linux.c | 99 - deps/libuv/src/unix/signal.c | 575 - deps/libuv/src/unix/stream.c | 1562 - deps/libuv/src/unix/sunos.c | 907 - deps/libuv/src/unix/sysinfo-loadavg.c | 36 - deps/libuv/src/unix/sysinfo-memory.c | 42 - deps/libuv/src/unix/tcp.c | 655 - deps/libuv/src/unix/thread.c | 877 - deps/libuv/src/unix/tty.c | 472 - deps/libuv/src/unix/udp.c | 1368 - deps/libuv/src/uv-common.c | 1029 - deps/libuv/src/uv-common.h | 433 - deps/libuv/src/uv-data-getter-setters.c | 119 - deps/libuv/src/version.c | 45 - deps/libuv/src/win/async.c | 98 - deps/libuv/src/win/atomicops-inl.h | 61 - deps/libuv/src/win/core.c | 777 - deps/libuv/src/win/detect-wakeup.c | 56 - deps/libuv/src/win/dl.c | 135 - deps/libuv/src/win/error.c | 173 - deps/libuv/src/win/fs-event.c | 598 - deps/libuv/src/win/fs-fd-hash-inl.h | 200 - deps/libuv/src/win/fs.c | 3426 - deps/libuv/src/win/getaddrinfo.c | 383 - deps/libuv/src/win/getnameinfo.c | 146 - deps/libuv/src/win/handle-inl.h | 180 - deps/libuv/src/win/handle.c | 162 - deps/libuv/src/win/internal.h | 333 - deps/libuv/src/win/loop-watcher.c | 122 - deps/libuv/src/win/pipe.c | 2672 - deps/libuv/src/win/poll.c | 586 - deps/libuv/src/win/process-stdio.c | 416 - deps/libuv/src/win/process.c | 1390 - deps/libuv/src/win/req-inl.h | 214 - deps/libuv/src/win/signal.c | 282 - deps/libuv/src/win/snprintf.c | 42 - deps/libuv/src/win/stream-inl.h | 54 - deps/libuv/src/win/stream.c | 252 - deps/libuv/src/win/tcp.c | 1667 - deps/libuv/src/win/thread.c | 492 - deps/libuv/src/win/tty.c | 2422 - deps/libuv/src/win/udp.c | 1137 - deps/libuv/src/win/util.c | 1711 - deps/libuv/src/win/winapi.c | 147 - deps/libuv/src/win/winapi.h | 4769 -- deps/libuv/src/win/winsock.c | 575 - deps/libuv/src/win/winsock.h | 201 - deps/libuv/test/benchmark-async-pummel.c | 120 - deps/libuv/test/benchmark-async.c | 142 - deps/libuv/test/benchmark-fs-stat.c | 138 - deps/libuv/test/benchmark-getaddrinfo.c | 92 - deps/libuv/test/benchmark-list.h | 173 - deps/libuv/test/benchmark-loop-count.c | 134 - deps/libuv/test/benchmark-million-async.c | 113 - deps/libuv/test/benchmark-million-timers.c | 86 - deps/libuv/test/benchmark-multi-accept.c | 451 - deps/libuv/test/benchmark-ping-pongs.c | 221 - deps/libuv/test/benchmark-ping-udp.c | 169 - deps/libuv/test/benchmark-pound.c | 351 - deps/libuv/test/benchmark-pump.c | 478 - deps/libuv/test/benchmark-queue-work.c | 71 - deps/libuv/test/benchmark-sizes.c | 46 - deps/libuv/test/benchmark-spawn.c | 164 - deps/libuv/test/benchmark-tcp-write-batch.c | 144 - deps/libuv/test/benchmark-thread.c | 64 - deps/libuv/test/benchmark-udp-pummel.c | 243 - deps/libuv/test/blackhole-server.c | 122 - deps/libuv/test/echo-server.c | 431 - deps/libuv/test/fixtures/empty_file | 0 deps/libuv/test/fixtures/load_error.node | 1 - deps/libuv/test/fixtures/lorem_ipsum.txt | 1 - deps/libuv/test/fixtures/one_file/one_file | 0 deps/libuv/test/run-benchmarks.c | 72 - deps/libuv/test/run-tests.c | 269 - deps/libuv/test/runner-unix.c | 456 - deps/libuv/test/runner-unix.h | 36 - deps/libuv/test/runner-win.c | 346 - deps/libuv/test/runner-win.h | 41 - deps/libuv/test/runner.c | 435 - deps/libuv/test/runner.h | 172 - deps/libuv/test/task.h | 384 - deps/libuv/test/test-active.c | 84 - deps/libuv/test/test-async-null-cb.c | 64 - deps/libuv/test/test-async.c | 134 - deps/libuv/test/test-barrier.c | 160 - deps/libuv/test/test-callback-stack.c | 209 - deps/libuv/test/test-close-fd.c | 84 - deps/libuv/test/test-close-order.c | 80 - deps/libuv/test/test-condvar.c | 248 - deps/libuv/test/test-connect-unspecified.c | 64 - deps/libuv/test/test-connection-fail.c | 161 - deps/libuv/test/test-cwd-and-chdir.c | 57 - deps/libuv/test/test-default-loop-close.c | 58 - deps/libuv/test/test-delayed-accept.c | 189 - deps/libuv/test/test-dlerror.c | 65 - deps/libuv/test/test-eintr-handling.c | 96 - deps/libuv/test/test-embed.c | 79 - deps/libuv/test/test-emfile.c | 121 - deps/libuv/test/test-env-vars.c | 173 - deps/libuv/test/test-error.c | 82 - deps/libuv/test/test-fail-always.c | 29 - deps/libuv/test/test-fork.c | 769 - deps/libuv/test/test-fs-copyfile.c | 226 - deps/libuv/test/test-fs-event.c | 1246 - deps/libuv/test/test-fs-fd-hash.c | 133 - deps/libuv/test/test-fs-open-flags.c | 435 - deps/libuv/test/test-fs-poll.c | 292 - deps/libuv/test/test-fs-readdir.c | 462 - deps/libuv/test/test-fs.c | 4642 -- deps/libuv/test/test-get-currentexe.c | 109 - deps/libuv/test/test-get-loadavg.c | 35 - deps/libuv/test/test-get-memory.c | 53 - deps/libuv/test/test-get-passwd.c | 211 - deps/libuv/test/test-getaddrinfo.c | 215 - deps/libuv/test/test-gethostname.c | 58 - deps/libuv/test/test-getnameinfo.c | 116 - deps/libuv/test/test-getsockname.c | 362 - deps/libuv/test/test-getters-setters.c | 114 - deps/libuv/test/test-gettimeofday.c | 39 - deps/libuv/test/test-handle-fileno.c | 125 - deps/libuv/test/test-homedir.c | 72 - deps/libuv/test/test-hrtime.c | 65 - deps/libuv/test/test-idle.c | 125 - deps/libuv/test/test-idna.c | 220 - deps/libuv/test/test-ip-name.c | 65 - deps/libuv/test/test-ip4-addr.c | 55 - deps/libuv/test/test-ip6-addr.c | 175 - .../test-ipc-heavy-traffic-deadlock-bug.c | 159 - deps/libuv/test/test-ipc-send-recv.c | 435 - deps/libuv/test/test-ipc.c | 857 - deps/libuv/test/test-list.h | 1234 - deps/libuv/test/test-loop-alive.c | 68 - deps/libuv/test/test-loop-close.c | 77 - deps/libuv/test/test-loop-configure.c | 38 - deps/libuv/test/test-loop-handles.c | 337 - deps/libuv/test/test-loop-stop.c | 83 - deps/libuv/test/test-loop-time.c | 69 - deps/libuv/test/test-metrics.c | 390 - deps/libuv/test/test-multiple-listen.c | 109 - deps/libuv/test/test-mutexes.c | 182 - ...-not-readable-nor-writable-on-read-error.c | 104 - .../test/test-not-writable-after-shutdown.c | 69 - deps/libuv/test/test-osx-select.c | 140 - deps/libuv/test/test-pass-always.c | 28 - deps/libuv/test/test-ping-pong.c | 439 - deps/libuv/test/test-pipe-bind-error.c | 199 - .../test/test-pipe-close-stdout-read-stdin.c | 122 - deps/libuv/test/test-pipe-connect-error.c | 97 - deps/libuv/test/test-pipe-connect-multiple.c | 178 - deps/libuv/test/test-pipe-connect-prepare.c | 83 - deps/libuv/test/test-pipe-getsockname.c | 290 - deps/libuv/test/test-pipe-pending-instances.c | 59 - deps/libuv/test/test-pipe-sendmsg.c | 172 - deps/libuv/test/test-pipe-server-close.c | 94 - deps/libuv/test/test-pipe-set-fchmod.c | 92 - deps/libuv/test/test-pipe-set-non-blocking.c | 131 - deps/libuv/test/test-platform-output.c | 201 - .../test-poll-close-doesnt-corrupt-stack.c | 114 - deps/libuv/test/test-poll-close.c | 73 - deps/libuv/test/test-poll-closesocket.c | 92 - deps/libuv/test/test-poll-multiple-handles.c | 104 - deps/libuv/test/test-poll-oob.c | 214 - deps/libuv/test/test-poll.c | 697 - deps/libuv/test/test-process-priority.c | 83 - .../test/test-process-title-threadsafe.c | 108 - deps/libuv/test/test-process-title.c | 135 - deps/libuv/test/test-queue-foreach-delete.c | 205 - deps/libuv/test/test-random.c | 94 - deps/libuv/test/test-readable-on-eof.c | 110 - deps/libuv/test/test-ref.c | 445 - deps/libuv/test/test-run-nowait.c | 46 - deps/libuv/test/test-run-once.c | 48 - deps/libuv/test/test-semaphore.c | 111 - deps/libuv/test/test-shutdown-close.c | 108 - deps/libuv/test/test-shutdown-eof.c | 188 - deps/libuv/test/test-shutdown-simultaneous.c | 135 - deps/libuv/test/test-shutdown-twice.c | 85 - deps/libuv/test/test-signal-multiple-loops.c | 325 - .../libuv/test/test-signal-pending-on-close.c | 116 - deps/libuv/test/test-signal.c | 325 - deps/libuv/test/test-socket-buffer-size.c | 77 - deps/libuv/test/test-spawn.c | 2114 - deps/libuv/test/test-stdio-over-pipes.c | 299 - deps/libuv/test/test-strscpy.c | 53 - deps/libuv/test/test-strtok.c | 90 - deps/libuv/test/test-tcp-alloc-cb-fail.c | 123 - deps/libuv/test/test-tcp-bind-error.c | 317 - deps/libuv/test/test-tcp-bind6-error.c | 176 - deps/libuv/test/test-tcp-close-accept.c | 198 - .../test/test-tcp-close-after-read-timeout.c | 183 - deps/libuv/test/test-tcp-close-reset.c | 340 - .../test/test-tcp-close-while-connecting.c | 97 - deps/libuv/test/test-tcp-close.c | 136 - .../test/test-tcp-connect-error-after-write.c | 98 - deps/libuv/test/test-tcp-connect-error.c | 73 - deps/libuv/test/test-tcp-connect-timeout.c | 196 - deps/libuv/test/test-tcp-connect6-error.c | 129 - .../libuv/test/test-tcp-create-socket-early.c | 213 - deps/libuv/test/test-tcp-flags.c | 52 - deps/libuv/test/test-tcp-oob.c | 146 - deps/libuv/test/test-tcp-open.c | 407 - deps/libuv/test/test-tcp-read-stop-start.c | 136 - deps/libuv/test/test-tcp-read-stop.c | 76 - deps/libuv/test/test-tcp-rst.c | 110 - .../test/test-tcp-shutdown-after-write.c | 138 - deps/libuv/test/test-tcp-try-write-error.c | 109 - deps/libuv/test/test-tcp-try-write.c | 135 - deps/libuv/test/test-tcp-unexpected-read.c | 117 - .../libuv/test/test-tcp-write-after-connect.c | 77 - deps/libuv/test/test-tcp-write-fail.c | 115 - deps/libuv/test/test-tcp-write-in-a-row.c | 143 - deps/libuv/test/test-tcp-write-queue-order.c | 139 - .../test-tcp-write-to-half-open-connection.c | 141 - deps/libuv/test/test-tcp-writealot.c | 185 - deps/libuv/test/test-test-macros.c | 42 - deps/libuv/test/test-thread-affinity.c | 154 - deps/libuv/test/test-thread-equal.c | 51 - deps/libuv/test/test-thread-priority.c | 105 - deps/libuv/test/test-thread.c | 296 - deps/libuv/test/test-threadpool-cancel.c | 418 - deps/libuv/test/test-threadpool.c | 76 - deps/libuv/test/test-timer-again.c | 141 - deps/libuv/test/test-timer-from-check.c | 80 - deps/libuv/test/test-timer.c | 453 - deps/libuv/test/test-tmpdir.c | 82 - deps/libuv/test/test-tty-duplicate-key.c | 321 - .../test-tty-escape-sequence-processing.c | 1632 - deps/libuv/test/test-tty.c | 468 - deps/libuv/test/test-udp-alloc-cb-fail.c | 196 - deps/libuv/test/test-udp-bind.c | 93 - deps/libuv/test/test-udp-connect.c | 196 - deps/libuv/test/test-udp-connect6.c | 199 - .../libuv/test/test-udp-create-socket-early.c | 139 - deps/libuv/test/test-udp-dgram-too-big.c | 91 - deps/libuv/test/test-udp-ipv6.c | 259 - deps/libuv/test/test-udp-mmsg.c | 149 - .../libuv/test/test-udp-multicast-interface.c | 104 - .../test/test-udp-multicast-interface6.c | 108 - deps/libuv/test/test-udp-multicast-join.c | 184 - deps/libuv/test/test-udp-multicast-join6.c | 218 - deps/libuv/test/test-udp-multicast-ttl.c | 94 - deps/libuv/test/test-udp-open.c | 350 - deps/libuv/test/test-udp-options.c | 160 - deps/libuv/test/test-udp-recv-in-a-row.c | 121 - deps/libuv/test/test-udp-send-and-recv.c | 212 - deps/libuv/test/test-udp-send-hang-loop.c | 99 - deps/libuv/test/test-udp-send-immediate.c | 148 - deps/libuv/test/test-udp-send-unreachable.c | 201 - deps/libuv/test/test-udp-sendmmsg-error.c | 75 - deps/libuv/test/test-udp-try-send.c | 121 - deps/libuv/test/test-uname.c | 69 - deps/libuv/test/test-walk-handles.c | 77 - deps/libuv/test/test-watcher-cross-stop.c | 112 - deps/libuv/tools/make_dist_html.py | 122 - .../libuv/tools/vswhere_usability_wrapper.cmd | 33 - deps/libuv/tsansupp.txt | 2 - deps/libuv/uv_win_longpath.manifest | 8 - deps/picohttpparser | 1 + deps/picohttpparser/.clang-format | 7 - deps/picohttpparser/.gitignore | 4 - deps/picohttpparser/.gitmodules | 3 - deps/picohttpparser/.travis.yml | 6 - deps/picohttpparser/Jamfile | 7 - deps/picohttpparser/Makefile | 40 - deps/picohttpparser/README.md | 116 - deps/picohttpparser/bench.c | 66 - deps/picohttpparser/picohttpparser.c | 685 - deps/picohttpparser/picohttpparser.h | 90 - .../picohttpparser.xcodeproj/project.pbxproj | 290 - .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/xcschemes/test.xcscheme | 95 - deps/picohttpparser/test.c | 529 - deps/quickjs | 1 + deps/quickjs/Changelog | 175 - deps/quickjs/LICENSE | 22 - deps/quickjs/Makefile | 487 - deps/quickjs/TODO | 67 - deps/quickjs/VERSION | 1 - deps/quickjs/cutils.c | 631 - deps/quickjs/cutils.h | 300 - deps/quickjs/doc/jsbignum.html | 734 - deps/quickjs/doc/jsbignum.pdf | Bin 153057 -> 0 bytes deps/quickjs/doc/jsbignum.texi | 589 - deps/quickjs/doc/quickjs.html | 1410 - deps/quickjs/doc/quickjs.pdf | Bin 167595 -> 0 bytes deps/quickjs/doc/quickjs.texi | 1120 - deps/quickjs/examples/fib.c | 72 - deps/quickjs/examples/fib_module.js | 10 - deps/quickjs/examples/hello.js | 1 - deps/quickjs/examples/hello_module.js | 6 - deps/quickjs/examples/pi_bigdecimal.js | 68 - deps/quickjs/examples/pi_bigfloat.js | 66 - deps/quickjs/examples/pi_bigint.js | 118 - deps/quickjs/examples/point.c | 151 - deps/quickjs/examples/test_fib.js | 6 - deps/quickjs/examples/test_point.js | 40 - deps/quickjs/libbf.c | 8473 --- deps/quickjs/libbf.h | 535 - deps/quickjs/libregexp-opcode.h | 57 - deps/quickjs/libregexp.c | 2529 - deps/quickjs/libregexp.h | 93 - deps/quickjs/libunicode-table.h | 4486 -- deps/quickjs/libunicode.c | 1788 - deps/quickjs/libunicode.h | 127 - deps/quickjs/list.h | 99 - deps/quickjs/qjs.c | 561 - deps/quickjs/qjsc.c | 761 - deps/quickjs/qjscalc.js | 2657 - deps/quickjs/quickjs-atom.h | 273 - deps/quickjs/quickjs-libc.c | 3999 -- deps/quickjs/quickjs-libc.h | 59 - deps/quickjs/quickjs-opcode.h | 372 - deps/quickjs/quickjs.c | 55546 ---------------- deps/quickjs/quickjs.h | 1060 - deps/quickjs/readme.txt | 1 - deps/quickjs/release.sh | 180 - deps/quickjs/repl.js | 1590 - deps/quickjs/run-test262.c | 2145 - deps/quickjs/test262.conf | 227 - deps/quickjs/test262_errors.txt | 8 - deps/quickjs/test262o.conf | 410 - deps/quickjs/test262o_errors.txt | 0 deps/quickjs/tests/bjson.c | 96 - deps/quickjs/tests/microbench.js | 1057 - deps/quickjs/tests/test262.patch | 71 - deps/quickjs/tests/test_bignum.js | 326 - deps/quickjs/tests/test_bjson.js | 191 - deps/quickjs/tests/test_builtin.js | 713 - deps/quickjs/tests/test_closure.js | 221 - deps/quickjs/tests/test_language.js | 606 - deps/quickjs/tests/test_loop.js | 392 - deps/quickjs/tests/test_op_overloading.js | 207 - deps/quickjs/tests/test_qjscalc.js | 256 - deps/quickjs/tests/test_std.js | 304 - deps/quickjs/tests/test_worker.js | 62 - deps/quickjs/tests/test_worker_module.js | 32 - deps/quickjs/unicode_download.sh | 19 - deps/quickjs/unicode_gen.c | 3145 - deps/quickjs/unicode_gen_def.h | 291 - 1255 files changed, 24 insertions(+), 464597 deletions(-) create mode 160000 deps/crypt_blowfish delete mode 100644 deps/crypt_blowfish/LINKS delete mode 100644 deps/crypt_blowfish/Makefile delete mode 100644 deps/crypt_blowfish/PERFORMANCE delete mode 100644 deps/crypt_blowfish/README delete mode 100644 deps/crypt_blowfish/crypt.3 delete mode 100644 deps/crypt_blowfish/crypt.h delete mode 100644 deps/crypt_blowfish/crypt_blowfish.c delete mode 100644 deps/crypt_blowfish/crypt_blowfish.h delete mode 100644 deps/crypt_blowfish/crypt_gensalt.c delete mode 100644 deps/crypt_blowfish/crypt_gensalt.h delete mode 100644 deps/crypt_blowfish/glibc-2.1.3-crypt.diff delete mode 100644 deps/crypt_blowfish/glibc-2.14-crypt.diff delete mode 100644 deps/crypt_blowfish/glibc-2.3.6-crypt.diff delete mode 100644 deps/crypt_blowfish/ow-crypt.h delete mode 100644 deps/crypt_blowfish/wrapper.c delete mode 100644 deps/crypt_blowfish/x86.S create mode 160000 deps/libbacktrace delete mode 100644 deps/libbacktrace/.gitignore delete mode 100644 deps/libbacktrace/Isaac.Newton-Opticks.txt delete mode 100644 deps/libbacktrace/LICENSE delete mode 100644 deps/libbacktrace/Makefile.am delete mode 100644 deps/libbacktrace/Makefile.in delete mode 100644 deps/libbacktrace/README.md delete mode 100644 deps/libbacktrace/aclocal.m4 delete mode 100644 deps/libbacktrace/alloc.c delete mode 100644 deps/libbacktrace/allocfail.c delete mode 100755 deps/libbacktrace/allocfail.sh delete mode 100644 deps/libbacktrace/atomic.c delete mode 100644 deps/libbacktrace/backtrace-supported.h.in delete mode 100644 deps/libbacktrace/backtrace.c delete mode 100644 deps/libbacktrace/backtrace.h delete mode 100644 deps/libbacktrace/btest.c delete mode 100755 deps/libbacktrace/compile delete mode 100755 deps/libbacktrace/config.guess delete mode 100644 deps/libbacktrace/config.h.in delete mode 100755 deps/libbacktrace/config.sub delete mode 100644 deps/libbacktrace/config/enable.m4 delete mode 100644 deps/libbacktrace/config/lead-dot.m4 delete mode 100644 deps/libbacktrace/config/libtool.m4 delete mode 100644 deps/libbacktrace/config/ltoptions.m4 delete mode 100644 deps/libbacktrace/config/ltsugar.m4 delete mode 100644 deps/libbacktrace/config/ltversion.m4 delete mode 100644 deps/libbacktrace/config/lt~obsolete.m4 delete mode 100644 deps/libbacktrace/config/multi.m4 delete mode 100644 deps/libbacktrace/config/override.m4 delete mode 100644 deps/libbacktrace/config/unwind_ipinfo.m4 delete mode 100644 deps/libbacktrace/config/warnings.m4 delete mode 100755 deps/libbacktrace/configure delete mode 100644 deps/libbacktrace/configure.ac delete mode 100644 deps/libbacktrace/dwarf.c delete mode 100644 deps/libbacktrace/edtest.c delete mode 100644 deps/libbacktrace/edtest2.c delete mode 100644 deps/libbacktrace/elf.c delete mode 100644 deps/libbacktrace/fileline.c delete mode 100644 deps/libbacktrace/filenames.h delete mode 100644 deps/libbacktrace/filetype.awk delete mode 100644 deps/libbacktrace/install-debuginfo-for-buildid.sh.in delete mode 100755 deps/libbacktrace/install-sh delete mode 100644 deps/libbacktrace/instrumented_alloc.c delete mode 100644 deps/libbacktrace/internal.h delete mode 100644 deps/libbacktrace/libtool.m4 delete mode 100644 deps/libbacktrace/ltmain.sh delete mode 100644 deps/libbacktrace/ltoptions.m4 delete mode 100644 deps/libbacktrace/ltsugar.m4 delete mode 100644 deps/libbacktrace/ltversion.m4 delete mode 100644 deps/libbacktrace/lt~obsolete.m4 delete mode 100644 deps/libbacktrace/macho.c delete mode 100755 deps/libbacktrace/missing delete mode 100644 deps/libbacktrace/mmap.c delete mode 100644 deps/libbacktrace/mmapio.c delete mode 100755 deps/libbacktrace/move-if-change delete mode 100644 deps/libbacktrace/mtest.c delete mode 100644 deps/libbacktrace/nounwind.c delete mode 100644 deps/libbacktrace/pecoff.c delete mode 100644 deps/libbacktrace/posix.c delete mode 100644 deps/libbacktrace/print.c delete mode 100644 deps/libbacktrace/read.c delete mode 100644 deps/libbacktrace/simple.c delete mode 100644 deps/libbacktrace/sort.c delete mode 100644 deps/libbacktrace/state.c delete mode 100644 deps/libbacktrace/stest.c delete mode 100755 deps/libbacktrace/test-driver delete mode 100644 deps/libbacktrace/test_format.c delete mode 100644 deps/libbacktrace/testlib.c delete mode 100644 deps/libbacktrace/testlib.h delete mode 100644 deps/libbacktrace/ttest.c delete mode 100644 deps/libbacktrace/unittest.c delete mode 100644 deps/libbacktrace/unknown.c delete mode 100644 deps/libbacktrace/xcoff.c delete mode 100644 deps/libbacktrace/xztest.c delete mode 100644 deps/libbacktrace/zstdtest.c delete mode 100644 deps/libbacktrace/ztest.c create mode 160000 deps/libsodium delete mode 100644 deps/libsodium/.github/workflows/ci.yml delete mode 100644 deps/libsodium/.github/workflows/codeql-analysis.yml delete mode 100644 deps/libsodium/.github/workflows/dotnet-core.yml delete mode 100644 deps/libsodium/.gitignore delete mode 100644 deps/libsodium/AUTHORS delete mode 100644 deps/libsodium/CITATION.cff delete mode 100644 deps/libsodium/ChangeLog delete mode 100644 deps/libsodium/LICENSE delete mode 100644 deps/libsodium/Makefile.am delete mode 100644 deps/libsodium/Makefile.in delete mode 100644 deps/libsodium/README.markdown delete mode 100644 deps/libsodium/THANKS delete mode 100644 deps/libsodium/aclocal.m4 delete mode 100644 deps/libsodium/appveyor.yml delete mode 100755 deps/libsodium/autogen.sh delete mode 100644 deps/libsodium/azure-pipelines.yml delete mode 100755 deps/libsodium/build-aux/compile delete mode 100755 deps/libsodium/build-aux/config.guess delete mode 100644 deps/libsodium/build-aux/config.sub delete mode 100755 deps/libsodium/build-aux/depcomp delete mode 100755 deps/libsodium/build-aux/install-sh delete mode 100644 deps/libsodium/build-aux/ltmain.sh delete mode 100755 deps/libsodium/build-aux/missing delete mode 100755 deps/libsodium/build-aux/test-driver delete mode 100644 deps/libsodium/build.zig delete mode 100644 deps/libsodium/builds/.gitignore delete mode 100644 deps/libsodium/builds/Makefile.am delete mode 100644 deps/libsodium/builds/Makefile.in delete mode 100644 deps/libsodium/builds/msvc/build/buildall.bat delete mode 100644 deps/libsodium/builds/msvc/build/buildbase.bat delete mode 100644 deps/libsodium/builds/msvc/properties/ARM64.props delete mode 100644 deps/libsodium/builds/msvc/properties/Common.props delete mode 100644 deps/libsodium/builds/msvc/properties/DLL.props delete mode 100644 deps/libsodium/builds/msvc/properties/Debug.props delete mode 100644 deps/libsodium/builds/msvc/properties/DebugDEXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/DebugDLL.props delete mode 100644 deps/libsodium/builds/msvc/properties/DebugLEXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/DebugLIB.props delete mode 100644 deps/libsodium/builds/msvc/properties/DebugLTCG.props delete mode 100644 deps/libsodium/builds/msvc/properties/DebugSEXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/EXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/LIB.props delete mode 100644 deps/libsodium/builds/msvc/properties/LTCG.props delete mode 100644 deps/libsodium/builds/msvc/properties/Link.props delete mode 100644 deps/libsodium/builds/msvc/properties/Messages.props delete mode 100644 deps/libsodium/builds/msvc/properties/Output.props delete mode 100644 deps/libsodium/builds/msvc/properties/Release.props delete mode 100644 deps/libsodium/builds/msvc/properties/ReleaseDEXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/ReleaseDLL.props delete mode 100644 deps/libsodium/builds/msvc/properties/ReleaseLEXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/ReleaseLIB.props delete mode 100644 deps/libsodium/builds/msvc/properties/ReleaseLTCG.props delete mode 100644 deps/libsodium/builds/msvc/properties/ReleaseSEXE.props delete mode 100644 deps/libsodium/builds/msvc/properties/Win32.props delete mode 100644 deps/libsodium/builds/msvc/properties/x64.props delete mode 100644 deps/libsodium/builds/msvc/resource.h delete mode 100644 deps/libsodium/builds/msvc/resource.rc delete mode 100644 deps/libsodium/builds/msvc/version.h delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2010/libsodium/libsodium.xml delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2012/libsodium/libsodium.xml delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2013/libsodium/libsodium.xml delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2015/libsodium/libsodium.xml delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2017/libsodium/libsodium.xml delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2019/libsodium/libsodium.xml delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium.import.props delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium.import.xml delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium.sln delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium/libsodium.props delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium/libsodium.vcxproj delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/builds/msvc/vs2022/libsodium/libsodium.xml delete mode 100644 deps/libsodium/ci/appveyor/libsodium.sln delete mode 100644 deps/libsodium/ci/appveyor/libsodium.vcxproj delete mode 100644 deps/libsodium/ci/appveyor/libsodium.vcxproj.filters delete mode 100755 deps/libsodium/ci/appveyor/msvc-scripts/process.bat delete mode 100644 deps/libsodium/ci/appveyor/msvc-scripts/rep.vbs delete mode 100644 deps/libsodium/ci/appveyor/msvc-scripts/sodium.props delete mode 100755 deps/libsodium/configure delete mode 100644 deps/libsodium/configure.ac delete mode 100644 deps/libsodium/contrib/Findsodium.cmake delete mode 100644 deps/libsodium/contrib/Makefile.am delete mode 100644 deps/libsodium/contrib/Makefile.in delete mode 100644 deps/libsodium/dist-build/Makefile.am delete mode 100644 deps/libsodium/dist-build/Makefile.in delete mode 100755 deps/libsodium/dist-build/android-aar.sh delete mode 100755 deps/libsodium/dist-build/android-armv7-a.sh delete mode 100755 deps/libsodium/dist-build/android-armv8-a.sh delete mode 100755 deps/libsodium/dist-build/android-build.sh delete mode 100755 deps/libsodium/dist-build/android-x86.sh delete mode 100755 deps/libsodium/dist-build/android-x86_64.sh delete mode 100755 deps/libsodium/dist-build/apple-xcframework.sh delete mode 100644 deps/libsodium/dist-build/emscripten-symbols.def delete mode 100755 deps/libsodium/dist-build/emscripten.sh delete mode 100755 deps/libsodium/dist-build/generate-emscripten-symbols.sh delete mode 100755 deps/libsodium/dist-build/macos.sh delete mode 100755 deps/libsodium/dist-build/msys2-win32.sh delete mode 100755 deps/libsodium/dist-build/msys2-win64.sh delete mode 100755 deps/libsodium/dist-build/wasm32-wasi.sh delete mode 100644 deps/libsodium/lgtm.yml delete mode 100644 deps/libsodium/libsodium-uninstalled.pc.in delete mode 100644 deps/libsodium/libsodium.pc.in delete mode 100644 deps/libsodium/logo.png delete mode 100644 deps/libsodium/m4/ax_add_fortify_source.m4 delete mode 100644 deps/libsodium/m4/ax_check_catchable_abrt.m4 delete mode 100644 deps/libsodium/m4/ax_check_catchable_segv.m4 delete mode 100644 deps/libsodium/m4/ax_check_compile_flag.m4 delete mode 100644 deps/libsodium/m4/ax_check_define.m4 delete mode 100644 deps/libsodium/m4/ax_check_gnu_make.m4 delete mode 100644 deps/libsodium/m4/ax_check_link_flag.m4 delete mode 100644 deps/libsodium/m4/ax_pthread.m4 delete mode 100644 deps/libsodium/m4/ax_tls.m4 delete mode 100644 deps/libsodium/m4/ax_valgrind_check.m4 delete mode 100644 deps/libsodium/m4/ld-output-def.m4 delete mode 100644 deps/libsodium/m4/libtool.m4 delete mode 100644 deps/libsodium/m4/ltoptions.m4 delete mode 100644 deps/libsodium/m4/ltsugar.m4 delete mode 100644 deps/libsodium/m4/ltversion.m4 delete mode 100644 deps/libsodium/m4/lt~obsolete.m4 delete mode 100644 deps/libsodium/packaging/dotnet-core/libsodium.pkgproj delete mode 100644 deps/libsodium/packaging/dotnet-core/test.cs delete mode 100644 deps/libsodium/packaging/nuget/.gitignore delete mode 100644 deps/libsodium/packaging/nuget/package.bat delete mode 100644 deps/libsodium/packaging/nuget/package.config delete mode 100644 deps/libsodium/packaging/nuget/package.gsl delete mode 100644 deps/libsodium/regen-msvc/libsodium.vcxproj delete mode 100644 deps/libsodium/regen-msvc/libsodium.vcxproj.filters delete mode 100644 deps/libsodium/regen-msvc/libsodium.vcxproj.filters.tpl delete mode 100644 deps/libsodium/regen-msvc/libsodium.vcxproj.tpl delete mode 100755 deps/libsodium/regen-msvc/regen-msvc.py delete mode 100644 deps/libsodium/regen-msvc/tl_libsodium.vcxproj.filters.tpl delete mode 100644 deps/libsodium/regen-msvc/tl_libsodium.vcxproj.tpl delete mode 100644 deps/libsodium/src/Makefile.am delete mode 100644 deps/libsodium/src/Makefile.in delete mode 100644 deps/libsodium/src/libsodium/Makefile.am delete mode 100644 deps/libsodium/src/libsodium/Makefile.in delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_common.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/aegis128l_soft.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis128l/implementations.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aead_aegis256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_aesni.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_aesni.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_common.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_soft.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/aegis256_soft.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aegis256/implementations.h delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aes256gcm/aead_aes256gcm.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/chacha20poly1305/aead_chacha20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_auth/crypto_auth.c delete mode 100644 deps/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c delete mode 100644 deps/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_box/crypto_box.c delete mode 100644 deps/libsodium/src/libsodium/crypto_box/crypto_box_easy.c delete mode 100644 deps/libsodium/src/libsodium/crypto_box/crypto_box_seal.c delete mode 100644 deps/libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/core_ed25519.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/core_ristretto255.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/constants.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h delete mode 100644 deps/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_core/softaes/softaes.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/generichash_blake2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-avx2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-load-sse41.h delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c delete mode 100644 deps/libsodium/src/libsodium/crypto_generichash/crypto_generichash.c delete mode 100644 deps/libsodium/src/libsodium/crypto_hash/crypto_hash.c delete mode 100644 deps/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c delete mode 100644 deps/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c delete mode 100644 deps/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512.c delete mode 100644 deps/libsodium/src/libsodium/crypto_kdf/blake2b/kdf_blake2b.c delete mode 100644 deps/libsodium/src/libsodium/crypto_kdf/crypto_kdf.c delete mode 100644 deps/libsodium/src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha512.c delete mode 100644 deps/libsodium/src/libsodium/crypto_kx/crypto_kx.c delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-avx2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-avx512f.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c delete mode 100644 deps/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts.S delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_mul.S delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_pack.S delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.S delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c delete mode 100644 deps/libsodium/src/libsodium/crypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.c delete mode 100644 deps/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c delete mode 100644 deps/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c delete mode 100644 deps/libsodium/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c delete mode 100644 deps/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.c delete mode 100644 deps/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash_ref.h delete mode 100644 deps/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c delete mode 100644 deps/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.c delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/crypto_sign.c delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h delete mode 100644 deps/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/u0.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/u1.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/u4.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/u8.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/crypto_stream.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/u0.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/u1.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/u4.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/u8.h delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208_ref.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/xchacha20/stream_xchacha20.c delete mode 100644 deps/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c delete mode 100644 deps/libsodium/src/libsodium/crypto_verify/verify.c delete mode 100644 deps/libsodium/src/libsodium/include/Makefile.am delete mode 100644 deps/libsodium/src/libsodium/include/Makefile.in delete mode 100644 deps/libsodium/src/libsodium/include/sodium.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/core.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_aead_aegis128l.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_aead_aegis256.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_aead_xchacha20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_auth.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha256.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_box.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xchacha20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_ed25519.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_hchacha20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_ristretto255.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_salsa2012.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_generichash.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_hash.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_kdf.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_kdf_blake2b.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_kdf_hkdf_sha256.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_kdf_hkdf_sha512.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_kx.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_pwhash.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2i.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2id.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_scalarmult_ed25519.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_scalarmult_ristretto255.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_secretbox.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_secretbox_xchacha20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_shorthash.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_shorthash_siphash24.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_sign.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream_xchacha20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_verify_16.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_verify_32.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/crypto_verify_64.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/export.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/asm_cet.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/chacha20_ietf_ext.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/common.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/ed25519_ref10.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/implementations.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/mutex.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/softaes.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/private/sse2_64_32.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/randombytes.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/randombytes_internal_random.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/randombytes_sysrandom.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/runtime.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/utils.h delete mode 100644 deps/libsodium/src/libsodium/include/sodium/version.h.in delete mode 100644 deps/libsodium/src/libsodium/randombytes/internal/randombytes_internal_random.c delete mode 100644 deps/libsodium/src/libsodium/randombytes/randombytes.c delete mode 100644 deps/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c delete mode 100644 deps/libsodium/src/libsodium/sodium/codecs.c delete mode 100644 deps/libsodium/src/libsodium/sodium/core.c delete mode 100644 deps/libsodium/src/libsodium/sodium/runtime.c delete mode 100644 deps/libsodium/src/libsodium/sodium/utils.c delete mode 100644 deps/libsodium/src/libsodium/sodium/version.c delete mode 100644 deps/libsodium/test/Makefile.am delete mode 100644 deps/libsodium/test/Makefile.in delete mode 100755 deps/libsodium/test/constcheck.sh delete mode 100644 deps/libsodium/test/default/Makefile.am delete mode 100644 deps/libsodium/test/default/Makefile.in delete mode 100644 deps/libsodium/test/default/aead_aegis128l.c delete mode 100644 deps/libsodium/test/default/aead_aegis128l.exp delete mode 100644 deps/libsodium/test/default/aead_aegis256.c delete mode 100644 deps/libsodium/test/default/aead_aegis256.exp delete mode 100644 deps/libsodium/test/default/aead_aes256gcm.c delete mode 100644 deps/libsodium/test/default/aead_aes256gcm.exp delete mode 100644 deps/libsodium/test/default/aead_aes256gcm2.c delete mode 100644 deps/libsodium/test/default/aead_aes256gcm2.exp delete mode 100644 deps/libsodium/test/default/aead_chacha20poly1305.c delete mode 100644 deps/libsodium/test/default/aead_chacha20poly1305.exp delete mode 100644 deps/libsodium/test/default/aead_chacha20poly13052.c delete mode 100644 deps/libsodium/test/default/aead_chacha20poly13052.exp delete mode 100644 deps/libsodium/test/default/aead_xchacha20poly1305.c delete mode 100644 deps/libsodium/test/default/aead_xchacha20poly1305.exp delete mode 100644 deps/libsodium/test/default/auth.c delete mode 100644 deps/libsodium/test/default/auth.exp delete mode 100644 deps/libsodium/test/default/auth2.c delete mode 100644 deps/libsodium/test/default/auth2.exp delete mode 100644 deps/libsodium/test/default/auth3.c delete mode 100644 deps/libsodium/test/default/auth3.exp delete mode 100644 deps/libsodium/test/default/auth5.c delete mode 100644 deps/libsodium/test/default/auth5.exp delete mode 100644 deps/libsodium/test/default/auth6.c delete mode 100644 deps/libsodium/test/default/auth6.exp delete mode 100644 deps/libsodium/test/default/auth7.c delete mode 100644 deps/libsodium/test/default/auth7.exp delete mode 100644 deps/libsodium/test/default/box.c delete mode 100644 deps/libsodium/test/default/box.exp delete mode 100644 deps/libsodium/test/default/box2.c delete mode 100644 deps/libsodium/test/default/box2.exp delete mode 100644 deps/libsodium/test/default/box7.c delete mode 100644 deps/libsodium/test/default/box7.exp delete mode 100644 deps/libsodium/test/default/box8.c delete mode 100644 deps/libsodium/test/default/box8.exp delete mode 100644 deps/libsodium/test/default/box_easy.c delete mode 100644 deps/libsodium/test/default/box_easy.exp delete mode 100644 deps/libsodium/test/default/box_easy2.c delete mode 100644 deps/libsodium/test/default/box_easy2.exp delete mode 100644 deps/libsodium/test/default/box_seal.c delete mode 100644 deps/libsodium/test/default/box_seal.exp delete mode 100644 deps/libsodium/test/default/box_seed.c delete mode 100644 deps/libsodium/test/default/box_seed.exp delete mode 100644 deps/libsodium/test/default/chacha20.c delete mode 100644 deps/libsodium/test/default/chacha20.exp delete mode 100644 deps/libsodium/test/default/cmptest.h delete mode 100644 deps/libsodium/test/default/codecs.c delete mode 100644 deps/libsodium/test/default/codecs.exp delete mode 100644 deps/libsodium/test/default/core1.c delete mode 100644 deps/libsodium/test/default/core1.exp delete mode 100644 deps/libsodium/test/default/core2.c delete mode 100644 deps/libsodium/test/default/core2.exp delete mode 100644 deps/libsodium/test/default/core3.c delete mode 100644 deps/libsodium/test/default/core3.exp delete mode 100644 deps/libsodium/test/default/core4.c delete mode 100644 deps/libsodium/test/default/core4.exp delete mode 100644 deps/libsodium/test/default/core5.c delete mode 100644 deps/libsodium/test/default/core5.exp delete mode 100644 deps/libsodium/test/default/core6.c delete mode 100644 deps/libsodium/test/default/core6.exp delete mode 100644 deps/libsodium/test/default/core_ed25519.c delete mode 100644 deps/libsodium/test/default/core_ed25519.exp delete mode 100644 deps/libsodium/test/default/core_ristretto255.c delete mode 100644 deps/libsodium/test/default/core_ristretto255.exp delete mode 100644 deps/libsodium/test/default/ed25519_convert.c delete mode 100644 deps/libsodium/test/default/ed25519_convert.exp delete mode 100644 deps/libsodium/test/default/generichash.c delete mode 100644 deps/libsodium/test/default/generichash.exp delete mode 100644 deps/libsodium/test/default/generichash2.c delete mode 100644 deps/libsodium/test/default/generichash2.exp delete mode 100644 deps/libsodium/test/default/generichash3.c delete mode 100644 deps/libsodium/test/default/generichash3.exp delete mode 100644 deps/libsodium/test/default/hash.c delete mode 100644 deps/libsodium/test/default/hash.exp delete mode 100644 deps/libsodium/test/default/hash3.c delete mode 100644 deps/libsodium/test/default/hash3.exp delete mode 100644 deps/libsodium/test/default/index.html.tpl delete mode 100644 deps/libsodium/test/default/kdf.c delete mode 100644 deps/libsodium/test/default/kdf.exp delete mode 100644 deps/libsodium/test/default/kdf_hkdf.c delete mode 100644 deps/libsodium/test/default/kdf_hkdf.exp delete mode 100644 deps/libsodium/test/default/keygen.c delete mode 100644 deps/libsodium/test/default/keygen.exp delete mode 100644 deps/libsodium/test/default/kx.c delete mode 100644 deps/libsodium/test/default/kx.exp delete mode 100644 deps/libsodium/test/default/metamorphic.c delete mode 100644 deps/libsodium/test/default/metamorphic.exp delete mode 100644 deps/libsodium/test/default/misuse.c delete mode 100644 deps/libsodium/test/default/misuse.exp delete mode 100644 deps/libsodium/test/default/onetimeauth.c delete mode 100644 deps/libsodium/test/default/onetimeauth.exp delete mode 100644 deps/libsodium/test/default/onetimeauth2.c delete mode 100644 deps/libsodium/test/default/onetimeauth2.exp delete mode 100644 deps/libsodium/test/default/onetimeauth7.c delete mode 100644 deps/libsodium/test/default/onetimeauth7.exp delete mode 100755 deps/libsodium/test/default/pre.js.inc delete mode 100644 deps/libsodium/test/default/pwhash_argon2i.c delete mode 100644 deps/libsodium/test/default/pwhash_argon2i.exp delete mode 100644 deps/libsodium/test/default/pwhash_argon2id.c delete mode 100644 deps/libsodium/test/default/pwhash_argon2id.exp delete mode 100644 deps/libsodium/test/default/pwhash_scrypt.c delete mode 100644 deps/libsodium/test/default/pwhash_scrypt.exp delete mode 100644 deps/libsodium/test/default/pwhash_scrypt_ll.c delete mode 100644 deps/libsodium/test/default/pwhash_scrypt_ll.exp delete mode 100644 deps/libsodium/test/default/randombytes.c delete mode 100644 deps/libsodium/test/default/randombytes.exp delete mode 100755 deps/libsodium/test/default/run.sh delete mode 100644 deps/libsodium/test/default/scalarmult.c delete mode 100644 deps/libsodium/test/default/scalarmult.exp delete mode 100644 deps/libsodium/test/default/scalarmult2.c delete mode 100644 deps/libsodium/test/default/scalarmult2.exp delete mode 100644 deps/libsodium/test/default/scalarmult5.c delete mode 100644 deps/libsodium/test/default/scalarmult5.exp delete mode 100644 deps/libsodium/test/default/scalarmult6.c delete mode 100644 deps/libsodium/test/default/scalarmult6.exp delete mode 100644 deps/libsodium/test/default/scalarmult7.c delete mode 100644 deps/libsodium/test/default/scalarmult7.exp delete mode 100644 deps/libsodium/test/default/scalarmult8.c delete mode 100644 deps/libsodium/test/default/scalarmult8.exp delete mode 100644 deps/libsodium/test/default/scalarmult_ed25519.c delete mode 100644 deps/libsodium/test/default/scalarmult_ed25519.exp delete mode 100644 deps/libsodium/test/default/scalarmult_ristretto255.c delete mode 100644 deps/libsodium/test/default/scalarmult_ristretto255.exp delete mode 100644 deps/libsodium/test/default/secretbox.c delete mode 100644 deps/libsodium/test/default/secretbox.exp delete mode 100644 deps/libsodium/test/default/secretbox2.c delete mode 100644 deps/libsodium/test/default/secretbox2.exp delete mode 100644 deps/libsodium/test/default/secretbox7.c delete mode 100644 deps/libsodium/test/default/secretbox7.exp delete mode 100644 deps/libsodium/test/default/secretbox8.c delete mode 100644 deps/libsodium/test/default/secretbox8.exp delete mode 100644 deps/libsodium/test/default/secretbox_easy.c delete mode 100644 deps/libsodium/test/default/secretbox_easy.exp delete mode 100644 deps/libsodium/test/default/secretbox_easy2.c delete mode 100644 deps/libsodium/test/default/secretbox_easy2.exp delete mode 100644 deps/libsodium/test/default/secretstream_xchacha20poly1305.c delete mode 100644 deps/libsodium/test/default/secretstream_xchacha20poly1305.exp delete mode 100644 deps/libsodium/test/default/shorthash.c delete mode 100644 deps/libsodium/test/default/shorthash.exp delete mode 100644 deps/libsodium/test/default/sign.c delete mode 100644 deps/libsodium/test/default/sign.exp delete mode 100644 deps/libsodium/test/default/siphashx24.c delete mode 100644 deps/libsodium/test/default/siphashx24.exp delete mode 100644 deps/libsodium/test/default/sodium_core.c delete mode 100644 deps/libsodium/test/default/sodium_core.exp delete mode 100644 deps/libsodium/test/default/sodium_utils.c delete mode 100644 deps/libsodium/test/default/sodium_utils.exp delete mode 100644 deps/libsodium/test/default/sodium_utils2.c delete mode 100644 deps/libsodium/test/default/sodium_utils2.exp delete mode 100644 deps/libsodium/test/default/sodium_utils3.c delete mode 100644 deps/libsodium/test/default/sodium_utils3.exp delete mode 100644 deps/libsodium/test/default/sodium_version.c delete mode 100644 deps/libsodium/test/default/sodium_version.exp delete mode 100644 deps/libsodium/test/default/stream.c delete mode 100644 deps/libsodium/test/default/stream.exp delete mode 100644 deps/libsodium/test/default/stream2.c delete mode 100644 deps/libsodium/test/default/stream2.exp delete mode 100644 deps/libsodium/test/default/stream3.c delete mode 100644 deps/libsodium/test/default/stream3.exp delete mode 100644 deps/libsodium/test/default/stream4.c delete mode 100644 deps/libsodium/test/default/stream4.exp delete mode 100644 deps/libsodium/test/default/verify1.c delete mode 100644 deps/libsodium/test/default/verify1.exp delete mode 100755 deps/libsodium/test/default/wasi-test-wrapper.sh delete mode 100755 deps/libsodium/test/default/wintest.bat delete mode 100644 deps/libsodium/test/default/xchacha20.c delete mode 100644 deps/libsodium/test/default/xchacha20.exp delete mode 100644 deps/libsodium/test/quirks/quirks.h create mode 160000 deps/libuv delete mode 100644 deps/libuv/.gitattributes delete mode 100644 deps/libuv/.github/ISSUE_TEMPLATE.md delete mode 100644 deps/libuv/.github/workflows/CI-docs.yml delete mode 100644 deps/libuv/.github/workflows/CI-sample.yml delete mode 100644 deps/libuv/.github/workflows/CI-unix.yml delete mode 100644 deps/libuv/.github/workflows/CI-win.yml delete mode 100644 deps/libuv/.github/workflows/sanitizer.yml delete mode 100644 deps/libuv/.gitignore delete mode 100644 deps/libuv/.mailmap delete mode 100644 deps/libuv/.readthedocs.yaml delete mode 100644 deps/libuv/AUTHORS delete mode 100644 deps/libuv/CMakeLists.txt delete mode 100644 deps/libuv/CONTRIBUTING.md delete mode 100644 deps/libuv/ChangeLog delete mode 100644 deps/libuv/LICENSE delete mode 100644 deps/libuv/LICENSE-docs delete mode 100644 deps/libuv/LICENSE-extra delete mode 100644 deps/libuv/LINKS.md delete mode 100644 deps/libuv/MAINTAINERS.md delete mode 100644 deps/libuv/Makefile.am delete mode 100644 deps/libuv/README.md delete mode 100644 deps/libuv/SECURITY.md delete mode 100644 deps/libuv/SUPPORTED_PLATFORMS.md delete mode 100755 deps/libuv/autogen.sh delete mode 100644 deps/libuv/cmake-toolchains/cross-mingw32.cmake delete mode 100644 deps/libuv/configure.ac delete mode 100644 deps/libuv/docs/Makefile delete mode 100644 deps/libuv/docs/code/.gitignore delete mode 100644 deps/libuv/docs/code/CMakeLists.txt delete mode 100644 deps/libuv/docs/code/cgi/main.c delete mode 100644 deps/libuv/docs/code/cgi/tick.c delete mode 100644 deps/libuv/docs/code/default-loop/main.c delete mode 100644 deps/libuv/docs/code/detach/main.c delete mode 100644 deps/libuv/docs/code/dns/main.c delete mode 100644 deps/libuv/docs/code/helloworld/main.c delete mode 100644 deps/libuv/docs/code/idle-basic/main.c delete mode 100644 deps/libuv/docs/code/idle-compute/main.c delete mode 100644 deps/libuv/docs/code/interfaces/main.c delete mode 100644 deps/libuv/docs/code/locks/main.c delete mode 100644 deps/libuv/docs/code/multi-echo-server/hammer.js delete mode 100644 deps/libuv/docs/code/multi-echo-server/main.c delete mode 100644 deps/libuv/docs/code/multi-echo-server/worker.c delete mode 100644 deps/libuv/docs/code/onchange/main.c delete mode 100644 deps/libuv/docs/code/pipe-echo-server/main.c delete mode 100644 deps/libuv/docs/code/plugin/hello.c delete mode 100644 deps/libuv/docs/code/plugin/main.c delete mode 100644 deps/libuv/docs/code/plugin/plugin.h delete mode 100644 deps/libuv/docs/code/proc-streams/main.c delete mode 100644 deps/libuv/docs/code/proc-streams/test.c delete mode 100644 deps/libuv/docs/code/progress/main.c delete mode 100644 deps/libuv/docs/code/queue-cancel/main.c delete mode 100644 deps/libuv/docs/code/queue-work/main.c delete mode 100644 deps/libuv/docs/code/ref-timer/main.c delete mode 100644 deps/libuv/docs/code/signal/main.c delete mode 100644 deps/libuv/docs/code/spawn/main.c delete mode 100644 deps/libuv/docs/code/tcp-echo-server/main.c delete mode 100644 deps/libuv/docs/code/thread-create/main.c delete mode 100644 deps/libuv/docs/code/tty-gravity/main.c delete mode 100644 deps/libuv/docs/code/tty/main.c delete mode 100644 deps/libuv/docs/code/udp-dhcp/main.c delete mode 100644 deps/libuv/docs/code/uvcat/main.c delete mode 100644 deps/libuv/docs/code/uvstop/main.c delete mode 100644 deps/libuv/docs/code/uvtee/main.c delete mode 100644 deps/libuv/docs/code/uvwget/main.c delete mode 100644 deps/libuv/docs/make.bat delete mode 100644 deps/libuv/docs/requirements.txt delete mode 100644 deps/libuv/docs/src/api.rst delete mode 100644 deps/libuv/docs/src/async.rst delete mode 100644 deps/libuv/docs/src/check.rst delete mode 100644 deps/libuv/docs/src/conf.py delete mode 100644 deps/libuv/docs/src/design.rst delete mode 100644 deps/libuv/docs/src/dll.rst delete mode 100644 deps/libuv/docs/src/dns.rst delete mode 100644 deps/libuv/docs/src/errors.rst delete mode 100644 deps/libuv/docs/src/fs.rst delete mode 100644 deps/libuv/docs/src/fs_event.rst delete mode 100644 deps/libuv/docs/src/fs_poll.rst delete mode 100644 deps/libuv/docs/src/guide.rst delete mode 100644 deps/libuv/docs/src/guide/about.rst delete mode 100644 deps/libuv/docs/src/guide/basics.rst delete mode 100644 deps/libuv/docs/src/guide/eventloops.rst delete mode 100644 deps/libuv/docs/src/guide/filesystem.rst delete mode 100644 deps/libuv/docs/src/guide/introduction.rst delete mode 100644 deps/libuv/docs/src/guide/networking.rst delete mode 100644 deps/libuv/docs/src/guide/processes.rst delete mode 100644 deps/libuv/docs/src/guide/threads.rst delete mode 100644 deps/libuv/docs/src/guide/utilities.rst delete mode 100644 deps/libuv/docs/src/handle.rst delete mode 100644 deps/libuv/docs/src/idle.rst delete mode 100644 deps/libuv/docs/src/index.rst delete mode 100644 deps/libuv/docs/src/loop.rst delete mode 100644 deps/libuv/docs/src/metrics.rst delete mode 100644 deps/libuv/docs/src/migration_010_100.rst delete mode 100644 deps/libuv/docs/src/misc.rst delete mode 100644 deps/libuv/docs/src/pipe.rst delete mode 100644 deps/libuv/docs/src/poll.rst delete mode 100644 deps/libuv/docs/src/prepare.rst delete mode 100644 deps/libuv/docs/src/process.rst delete mode 100644 deps/libuv/docs/src/request.rst delete mode 100644 deps/libuv/docs/src/signal.rst delete mode 100644 deps/libuv/docs/src/sphinx-plugins/manpage.py delete mode 100644 deps/libuv/docs/src/static/architecture.png delete mode 100644 deps/libuv/docs/src/static/diagrams.key/Data/st0-311.jpg delete mode 100644 deps/libuv/docs/src/static/diagrams.key/Data/st1-475.jpg delete mode 100644 deps/libuv/docs/src/static/diagrams.key/Index.zip delete mode 100644 deps/libuv/docs/src/static/diagrams.key/Metadata/BuildVersionHistory.plist delete mode 100644 deps/libuv/docs/src/static/diagrams.key/Metadata/DocumentIdentifier delete mode 100644 deps/libuv/docs/src/static/diagrams.key/Metadata/Properties.plist delete mode 100644 deps/libuv/docs/src/static/diagrams.key/preview-micro.jpg delete mode 100644 deps/libuv/docs/src/static/diagrams.key/preview-web.jpg delete mode 100644 deps/libuv/docs/src/static/diagrams.key/preview.jpg delete mode 100644 deps/libuv/docs/src/static/favicon.ico delete mode 100644 deps/libuv/docs/src/static/logo.png delete mode 100644 deps/libuv/docs/src/static/loop_iteration.png delete mode 100644 deps/libuv/docs/src/stream.rst delete mode 100644 deps/libuv/docs/src/tcp.rst delete mode 100644 deps/libuv/docs/src/threading.rst delete mode 100644 deps/libuv/docs/src/threadpool.rst delete mode 100644 deps/libuv/docs/src/timer.rst delete mode 100644 deps/libuv/docs/src/tty.rst delete mode 100644 deps/libuv/docs/src/udp.rst delete mode 100644 deps/libuv/docs/src/upgrading.rst delete mode 100644 deps/libuv/docs/src/version.rst delete mode 100644 deps/libuv/img/banner.png delete mode 100644 deps/libuv/img/logos.svg delete mode 100644 deps/libuv/include/uv.h delete mode 100644 deps/libuv/include/uv/aix.h delete mode 100644 deps/libuv/include/uv/bsd.h delete mode 100644 deps/libuv/include/uv/darwin.h delete mode 100644 deps/libuv/include/uv/errno.h delete mode 100644 deps/libuv/include/uv/linux.h delete mode 100644 deps/libuv/include/uv/os390.h delete mode 100644 deps/libuv/include/uv/posix.h delete mode 100644 deps/libuv/include/uv/sunos.h delete mode 100644 deps/libuv/include/uv/threadpool.h delete mode 100644 deps/libuv/include/uv/tree.h delete mode 100644 deps/libuv/include/uv/unix.h delete mode 100644 deps/libuv/include/uv/version.h delete mode 100644 deps/libuv/include/uv/win.h delete mode 100644 deps/libuv/libuv-static.pc.in delete mode 100644 deps/libuv/libuv.pc.in delete mode 100644 deps/libuv/m4/.gitignore delete mode 100644 deps/libuv/m4/as_case.m4 delete mode 100644 deps/libuv/m4/ax_pthread.m4 delete mode 100644 deps/libuv/m4/libuv-check-flags.m4 delete mode 100644 deps/libuv/m4/libuv-check-versions.m4 delete mode 100644 deps/libuv/src/fs-poll.c delete mode 100644 deps/libuv/src/heap-inl.h delete mode 100644 deps/libuv/src/idna.c delete mode 100644 deps/libuv/src/idna.h delete mode 100644 deps/libuv/src/inet.c delete mode 100644 deps/libuv/src/queue.h delete mode 100644 deps/libuv/src/random.c delete mode 100644 deps/libuv/src/strscpy.c delete mode 100644 deps/libuv/src/strscpy.h delete mode 100644 deps/libuv/src/strtok.c delete mode 100644 deps/libuv/src/strtok.h delete mode 100644 deps/libuv/src/thread-common.c delete mode 100644 deps/libuv/src/threadpool.c delete mode 100644 deps/libuv/src/timer.c delete mode 100644 deps/libuv/src/unix/aix-common.c delete mode 100644 deps/libuv/src/unix/aix.c delete mode 100644 deps/libuv/src/unix/async.c delete mode 100644 deps/libuv/src/unix/bsd-ifaddrs.c delete mode 100644 deps/libuv/src/unix/bsd-proctitle.c delete mode 100644 deps/libuv/src/unix/core.c delete mode 100644 deps/libuv/src/unix/cygwin.c delete mode 100644 deps/libuv/src/unix/darwin-proctitle.c delete mode 100644 deps/libuv/src/unix/darwin-stub.h delete mode 100644 deps/libuv/src/unix/darwin.c delete mode 100644 deps/libuv/src/unix/dl.c delete mode 100644 deps/libuv/src/unix/freebsd.c delete mode 100644 deps/libuv/src/unix/fs.c delete mode 100644 deps/libuv/src/unix/fsevents.c delete mode 100644 deps/libuv/src/unix/getaddrinfo.c delete mode 100644 deps/libuv/src/unix/getnameinfo.c delete mode 100644 deps/libuv/src/unix/haiku.c delete mode 100644 deps/libuv/src/unix/hurd.c delete mode 100644 deps/libuv/src/unix/ibmi.c delete mode 100644 deps/libuv/src/unix/internal.h delete mode 100644 deps/libuv/src/unix/kqueue.c delete mode 100644 deps/libuv/src/unix/linux.c delete mode 100644 deps/libuv/src/unix/loop-watcher.c delete mode 100644 deps/libuv/src/unix/loop.c delete mode 100644 deps/libuv/src/unix/netbsd.c delete mode 100644 deps/libuv/src/unix/no-fsevents.c delete mode 100644 deps/libuv/src/unix/no-proctitle.c delete mode 100644 deps/libuv/src/unix/openbsd.c delete mode 100644 deps/libuv/src/unix/os390-proctitle.c delete mode 100644 deps/libuv/src/unix/os390-syscalls.c delete mode 100644 deps/libuv/src/unix/os390-syscalls.h delete mode 100644 deps/libuv/src/unix/os390.c delete mode 100644 deps/libuv/src/unix/pipe.c delete mode 100644 deps/libuv/src/unix/poll.c delete mode 100644 deps/libuv/src/unix/posix-hrtime.c delete mode 100644 deps/libuv/src/unix/posix-poll.c delete mode 100644 deps/libuv/src/unix/process.c delete mode 100644 deps/libuv/src/unix/procfs-exepath.c delete mode 100644 deps/libuv/src/unix/proctitle.c delete mode 100644 deps/libuv/src/unix/qnx.c delete mode 100644 deps/libuv/src/unix/random-devurandom.c delete mode 100644 deps/libuv/src/unix/random-getentropy.c delete mode 100644 deps/libuv/src/unix/random-getrandom.c delete mode 100644 deps/libuv/src/unix/random-sysctl-linux.c delete mode 100644 deps/libuv/src/unix/signal.c delete mode 100644 deps/libuv/src/unix/stream.c delete mode 100644 deps/libuv/src/unix/sunos.c delete mode 100644 deps/libuv/src/unix/sysinfo-loadavg.c delete mode 100644 deps/libuv/src/unix/sysinfo-memory.c delete mode 100644 deps/libuv/src/unix/tcp.c delete mode 100644 deps/libuv/src/unix/thread.c delete mode 100644 deps/libuv/src/unix/tty.c delete mode 100644 deps/libuv/src/unix/udp.c delete mode 100644 deps/libuv/src/uv-common.c delete mode 100644 deps/libuv/src/uv-common.h delete mode 100644 deps/libuv/src/uv-data-getter-setters.c delete mode 100644 deps/libuv/src/version.c delete mode 100644 deps/libuv/src/win/async.c delete mode 100644 deps/libuv/src/win/atomicops-inl.h delete mode 100644 deps/libuv/src/win/core.c delete mode 100644 deps/libuv/src/win/detect-wakeup.c delete mode 100644 deps/libuv/src/win/dl.c delete mode 100644 deps/libuv/src/win/error.c delete mode 100644 deps/libuv/src/win/fs-event.c delete mode 100644 deps/libuv/src/win/fs-fd-hash-inl.h delete mode 100644 deps/libuv/src/win/fs.c delete mode 100644 deps/libuv/src/win/getaddrinfo.c delete mode 100644 deps/libuv/src/win/getnameinfo.c delete mode 100644 deps/libuv/src/win/handle-inl.h delete mode 100644 deps/libuv/src/win/handle.c delete mode 100644 deps/libuv/src/win/internal.h delete mode 100644 deps/libuv/src/win/loop-watcher.c delete mode 100644 deps/libuv/src/win/pipe.c delete mode 100644 deps/libuv/src/win/poll.c delete mode 100644 deps/libuv/src/win/process-stdio.c delete mode 100644 deps/libuv/src/win/process.c delete mode 100644 deps/libuv/src/win/req-inl.h delete mode 100644 deps/libuv/src/win/signal.c delete mode 100644 deps/libuv/src/win/snprintf.c delete mode 100644 deps/libuv/src/win/stream-inl.h delete mode 100644 deps/libuv/src/win/stream.c delete mode 100644 deps/libuv/src/win/tcp.c delete mode 100644 deps/libuv/src/win/thread.c delete mode 100644 deps/libuv/src/win/tty.c delete mode 100644 deps/libuv/src/win/udp.c delete mode 100644 deps/libuv/src/win/util.c delete mode 100644 deps/libuv/src/win/winapi.c delete mode 100644 deps/libuv/src/win/winapi.h delete mode 100644 deps/libuv/src/win/winsock.c delete mode 100644 deps/libuv/src/win/winsock.h delete mode 100644 deps/libuv/test/benchmark-async-pummel.c delete mode 100644 deps/libuv/test/benchmark-async.c delete mode 100644 deps/libuv/test/benchmark-fs-stat.c delete mode 100644 deps/libuv/test/benchmark-getaddrinfo.c delete mode 100644 deps/libuv/test/benchmark-list.h delete mode 100644 deps/libuv/test/benchmark-loop-count.c delete mode 100644 deps/libuv/test/benchmark-million-async.c delete mode 100644 deps/libuv/test/benchmark-million-timers.c delete mode 100644 deps/libuv/test/benchmark-multi-accept.c delete mode 100644 deps/libuv/test/benchmark-ping-pongs.c delete mode 100644 deps/libuv/test/benchmark-ping-udp.c delete mode 100644 deps/libuv/test/benchmark-pound.c delete mode 100644 deps/libuv/test/benchmark-pump.c delete mode 100644 deps/libuv/test/benchmark-queue-work.c delete mode 100644 deps/libuv/test/benchmark-sizes.c delete mode 100644 deps/libuv/test/benchmark-spawn.c delete mode 100644 deps/libuv/test/benchmark-tcp-write-batch.c delete mode 100644 deps/libuv/test/benchmark-thread.c delete mode 100644 deps/libuv/test/benchmark-udp-pummel.c delete mode 100644 deps/libuv/test/blackhole-server.c delete mode 100644 deps/libuv/test/echo-server.c delete mode 100644 deps/libuv/test/fixtures/empty_file delete mode 100644 deps/libuv/test/fixtures/load_error.node delete mode 100644 deps/libuv/test/fixtures/lorem_ipsum.txt delete mode 100644 deps/libuv/test/fixtures/one_file/one_file delete mode 100644 deps/libuv/test/run-benchmarks.c delete mode 100644 deps/libuv/test/run-tests.c delete mode 100644 deps/libuv/test/runner-unix.c delete mode 100644 deps/libuv/test/runner-unix.h delete mode 100644 deps/libuv/test/runner-win.c delete mode 100644 deps/libuv/test/runner-win.h delete mode 100644 deps/libuv/test/runner.c delete mode 100644 deps/libuv/test/runner.h delete mode 100644 deps/libuv/test/task.h delete mode 100644 deps/libuv/test/test-active.c delete mode 100644 deps/libuv/test/test-async-null-cb.c delete mode 100644 deps/libuv/test/test-async.c delete mode 100644 deps/libuv/test/test-barrier.c delete mode 100644 deps/libuv/test/test-callback-stack.c delete mode 100644 deps/libuv/test/test-close-fd.c delete mode 100644 deps/libuv/test/test-close-order.c delete mode 100644 deps/libuv/test/test-condvar.c delete mode 100644 deps/libuv/test/test-connect-unspecified.c delete mode 100644 deps/libuv/test/test-connection-fail.c delete mode 100644 deps/libuv/test/test-cwd-and-chdir.c delete mode 100644 deps/libuv/test/test-default-loop-close.c delete mode 100644 deps/libuv/test/test-delayed-accept.c delete mode 100644 deps/libuv/test/test-dlerror.c delete mode 100644 deps/libuv/test/test-eintr-handling.c delete mode 100644 deps/libuv/test/test-embed.c delete mode 100644 deps/libuv/test/test-emfile.c delete mode 100644 deps/libuv/test/test-env-vars.c delete mode 100644 deps/libuv/test/test-error.c delete mode 100644 deps/libuv/test/test-fail-always.c delete mode 100644 deps/libuv/test/test-fork.c delete mode 100644 deps/libuv/test/test-fs-copyfile.c delete mode 100644 deps/libuv/test/test-fs-event.c delete mode 100644 deps/libuv/test/test-fs-fd-hash.c delete mode 100644 deps/libuv/test/test-fs-open-flags.c delete mode 100644 deps/libuv/test/test-fs-poll.c delete mode 100644 deps/libuv/test/test-fs-readdir.c delete mode 100644 deps/libuv/test/test-fs.c delete mode 100644 deps/libuv/test/test-get-currentexe.c delete mode 100644 deps/libuv/test/test-get-loadavg.c delete mode 100644 deps/libuv/test/test-get-memory.c delete mode 100644 deps/libuv/test/test-get-passwd.c delete mode 100644 deps/libuv/test/test-getaddrinfo.c delete mode 100644 deps/libuv/test/test-gethostname.c delete mode 100644 deps/libuv/test/test-getnameinfo.c delete mode 100644 deps/libuv/test/test-getsockname.c delete mode 100644 deps/libuv/test/test-getters-setters.c delete mode 100644 deps/libuv/test/test-gettimeofday.c delete mode 100644 deps/libuv/test/test-handle-fileno.c delete mode 100644 deps/libuv/test/test-homedir.c delete mode 100644 deps/libuv/test/test-hrtime.c delete mode 100644 deps/libuv/test/test-idle.c delete mode 100644 deps/libuv/test/test-idna.c delete mode 100644 deps/libuv/test/test-ip-name.c delete mode 100644 deps/libuv/test/test-ip4-addr.c delete mode 100644 deps/libuv/test/test-ip6-addr.c delete mode 100644 deps/libuv/test/test-ipc-heavy-traffic-deadlock-bug.c delete mode 100644 deps/libuv/test/test-ipc-send-recv.c delete mode 100644 deps/libuv/test/test-ipc.c delete mode 100644 deps/libuv/test/test-list.h delete mode 100644 deps/libuv/test/test-loop-alive.c delete mode 100644 deps/libuv/test/test-loop-close.c delete mode 100644 deps/libuv/test/test-loop-configure.c delete mode 100644 deps/libuv/test/test-loop-handles.c delete mode 100644 deps/libuv/test/test-loop-stop.c delete mode 100644 deps/libuv/test/test-loop-time.c delete mode 100644 deps/libuv/test/test-metrics.c delete mode 100644 deps/libuv/test/test-multiple-listen.c delete mode 100644 deps/libuv/test/test-mutexes.c delete mode 100644 deps/libuv/test/test-not-readable-nor-writable-on-read-error.c delete mode 100644 deps/libuv/test/test-not-writable-after-shutdown.c delete mode 100644 deps/libuv/test/test-osx-select.c delete mode 100644 deps/libuv/test/test-pass-always.c delete mode 100644 deps/libuv/test/test-ping-pong.c delete mode 100644 deps/libuv/test/test-pipe-bind-error.c delete mode 100644 deps/libuv/test/test-pipe-close-stdout-read-stdin.c delete mode 100644 deps/libuv/test/test-pipe-connect-error.c delete mode 100644 deps/libuv/test/test-pipe-connect-multiple.c delete mode 100644 deps/libuv/test/test-pipe-connect-prepare.c delete mode 100644 deps/libuv/test/test-pipe-getsockname.c delete mode 100644 deps/libuv/test/test-pipe-pending-instances.c delete mode 100644 deps/libuv/test/test-pipe-sendmsg.c delete mode 100644 deps/libuv/test/test-pipe-server-close.c delete mode 100644 deps/libuv/test/test-pipe-set-fchmod.c delete mode 100644 deps/libuv/test/test-pipe-set-non-blocking.c delete mode 100644 deps/libuv/test/test-platform-output.c delete mode 100644 deps/libuv/test/test-poll-close-doesnt-corrupt-stack.c delete mode 100644 deps/libuv/test/test-poll-close.c delete mode 100644 deps/libuv/test/test-poll-closesocket.c delete mode 100644 deps/libuv/test/test-poll-multiple-handles.c delete mode 100644 deps/libuv/test/test-poll-oob.c delete mode 100644 deps/libuv/test/test-poll.c delete mode 100644 deps/libuv/test/test-process-priority.c delete mode 100644 deps/libuv/test/test-process-title-threadsafe.c delete mode 100644 deps/libuv/test/test-process-title.c delete mode 100644 deps/libuv/test/test-queue-foreach-delete.c delete mode 100644 deps/libuv/test/test-random.c delete mode 100644 deps/libuv/test/test-readable-on-eof.c delete mode 100644 deps/libuv/test/test-ref.c delete mode 100644 deps/libuv/test/test-run-nowait.c delete mode 100644 deps/libuv/test/test-run-once.c delete mode 100644 deps/libuv/test/test-semaphore.c delete mode 100644 deps/libuv/test/test-shutdown-close.c delete mode 100644 deps/libuv/test/test-shutdown-eof.c delete mode 100644 deps/libuv/test/test-shutdown-simultaneous.c delete mode 100644 deps/libuv/test/test-shutdown-twice.c delete mode 100644 deps/libuv/test/test-signal-multiple-loops.c delete mode 100644 deps/libuv/test/test-signal-pending-on-close.c delete mode 100644 deps/libuv/test/test-signal.c delete mode 100644 deps/libuv/test/test-socket-buffer-size.c delete mode 100644 deps/libuv/test/test-spawn.c delete mode 100644 deps/libuv/test/test-stdio-over-pipes.c delete mode 100644 deps/libuv/test/test-strscpy.c delete mode 100644 deps/libuv/test/test-strtok.c delete mode 100644 deps/libuv/test/test-tcp-alloc-cb-fail.c delete mode 100644 deps/libuv/test/test-tcp-bind-error.c delete mode 100644 deps/libuv/test/test-tcp-bind6-error.c delete mode 100644 deps/libuv/test/test-tcp-close-accept.c delete mode 100644 deps/libuv/test/test-tcp-close-after-read-timeout.c delete mode 100644 deps/libuv/test/test-tcp-close-reset.c delete mode 100644 deps/libuv/test/test-tcp-close-while-connecting.c delete mode 100644 deps/libuv/test/test-tcp-close.c delete mode 100644 deps/libuv/test/test-tcp-connect-error-after-write.c delete mode 100644 deps/libuv/test/test-tcp-connect-error.c delete mode 100644 deps/libuv/test/test-tcp-connect-timeout.c delete mode 100644 deps/libuv/test/test-tcp-connect6-error.c delete mode 100644 deps/libuv/test/test-tcp-create-socket-early.c delete mode 100644 deps/libuv/test/test-tcp-flags.c delete mode 100644 deps/libuv/test/test-tcp-oob.c delete mode 100644 deps/libuv/test/test-tcp-open.c delete mode 100644 deps/libuv/test/test-tcp-read-stop-start.c delete mode 100644 deps/libuv/test/test-tcp-read-stop.c delete mode 100644 deps/libuv/test/test-tcp-rst.c delete mode 100644 deps/libuv/test/test-tcp-shutdown-after-write.c delete mode 100644 deps/libuv/test/test-tcp-try-write-error.c delete mode 100644 deps/libuv/test/test-tcp-try-write.c delete mode 100644 deps/libuv/test/test-tcp-unexpected-read.c delete mode 100644 deps/libuv/test/test-tcp-write-after-connect.c delete mode 100644 deps/libuv/test/test-tcp-write-fail.c delete mode 100644 deps/libuv/test/test-tcp-write-in-a-row.c delete mode 100644 deps/libuv/test/test-tcp-write-queue-order.c delete mode 100644 deps/libuv/test/test-tcp-write-to-half-open-connection.c delete mode 100644 deps/libuv/test/test-tcp-writealot.c delete mode 100644 deps/libuv/test/test-test-macros.c delete mode 100644 deps/libuv/test/test-thread-affinity.c delete mode 100644 deps/libuv/test/test-thread-equal.c delete mode 100644 deps/libuv/test/test-thread-priority.c delete mode 100644 deps/libuv/test/test-thread.c delete mode 100644 deps/libuv/test/test-threadpool-cancel.c delete mode 100644 deps/libuv/test/test-threadpool.c delete mode 100644 deps/libuv/test/test-timer-again.c delete mode 100644 deps/libuv/test/test-timer-from-check.c delete mode 100644 deps/libuv/test/test-timer.c delete mode 100644 deps/libuv/test/test-tmpdir.c delete mode 100644 deps/libuv/test/test-tty-duplicate-key.c delete mode 100644 deps/libuv/test/test-tty-escape-sequence-processing.c delete mode 100644 deps/libuv/test/test-tty.c delete mode 100644 deps/libuv/test/test-udp-alloc-cb-fail.c delete mode 100644 deps/libuv/test/test-udp-bind.c delete mode 100644 deps/libuv/test/test-udp-connect.c delete mode 100644 deps/libuv/test/test-udp-connect6.c delete mode 100644 deps/libuv/test/test-udp-create-socket-early.c delete mode 100644 deps/libuv/test/test-udp-dgram-too-big.c delete mode 100644 deps/libuv/test/test-udp-ipv6.c delete mode 100644 deps/libuv/test/test-udp-mmsg.c delete mode 100644 deps/libuv/test/test-udp-multicast-interface.c delete mode 100644 deps/libuv/test/test-udp-multicast-interface6.c delete mode 100644 deps/libuv/test/test-udp-multicast-join.c delete mode 100644 deps/libuv/test/test-udp-multicast-join6.c delete mode 100644 deps/libuv/test/test-udp-multicast-ttl.c delete mode 100644 deps/libuv/test/test-udp-open.c delete mode 100644 deps/libuv/test/test-udp-options.c delete mode 100644 deps/libuv/test/test-udp-recv-in-a-row.c delete mode 100644 deps/libuv/test/test-udp-send-and-recv.c delete mode 100644 deps/libuv/test/test-udp-send-hang-loop.c delete mode 100644 deps/libuv/test/test-udp-send-immediate.c delete mode 100644 deps/libuv/test/test-udp-send-unreachable.c delete mode 100644 deps/libuv/test/test-udp-sendmmsg-error.c delete mode 100644 deps/libuv/test/test-udp-try-send.c delete mode 100644 deps/libuv/test/test-uname.c delete mode 100644 deps/libuv/test/test-walk-handles.c delete mode 100644 deps/libuv/test/test-watcher-cross-stop.c delete mode 100644 deps/libuv/tools/make_dist_html.py delete mode 100644 deps/libuv/tools/vswhere_usability_wrapper.cmd delete mode 100644 deps/libuv/tsansupp.txt delete mode 100644 deps/libuv/uv_win_longpath.manifest create mode 160000 deps/picohttpparser delete mode 100644 deps/picohttpparser/.clang-format delete mode 100644 deps/picohttpparser/.gitignore delete mode 100644 deps/picohttpparser/.gitmodules delete mode 100644 deps/picohttpparser/.travis.yml delete mode 100644 deps/picohttpparser/Jamfile delete mode 100644 deps/picohttpparser/Makefile delete mode 100644 deps/picohttpparser/README.md delete mode 100644 deps/picohttpparser/bench.c delete mode 100644 deps/picohttpparser/picohttpparser.c delete mode 100644 deps/picohttpparser/picohttpparser.h delete mode 100644 deps/picohttpparser/picohttpparser.xcodeproj/project.pbxproj delete mode 100644 deps/picohttpparser/picohttpparser.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 deps/picohttpparser/picohttpparser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 deps/picohttpparser/picohttpparser.xcodeproj/xcshareddata/xcschemes/test.xcscheme delete mode 100644 deps/picohttpparser/test.c create mode 160000 deps/quickjs delete mode 100644 deps/quickjs/Changelog delete mode 100644 deps/quickjs/LICENSE delete mode 100644 deps/quickjs/Makefile delete mode 100644 deps/quickjs/TODO delete mode 100644 deps/quickjs/VERSION delete mode 100644 deps/quickjs/cutils.c delete mode 100644 deps/quickjs/cutils.h delete mode 100644 deps/quickjs/doc/jsbignum.html delete mode 100644 deps/quickjs/doc/jsbignum.pdf delete mode 100644 deps/quickjs/doc/jsbignum.texi delete mode 100644 deps/quickjs/doc/quickjs.html delete mode 100644 deps/quickjs/doc/quickjs.pdf delete mode 100644 deps/quickjs/doc/quickjs.texi delete mode 100644 deps/quickjs/examples/fib.c delete mode 100644 deps/quickjs/examples/fib_module.js delete mode 100644 deps/quickjs/examples/hello.js delete mode 100644 deps/quickjs/examples/hello_module.js delete mode 100644 deps/quickjs/examples/pi_bigdecimal.js delete mode 100644 deps/quickjs/examples/pi_bigfloat.js delete mode 100644 deps/quickjs/examples/pi_bigint.js delete mode 100644 deps/quickjs/examples/point.c delete mode 100644 deps/quickjs/examples/test_fib.js delete mode 100644 deps/quickjs/examples/test_point.js delete mode 100644 deps/quickjs/libbf.c delete mode 100644 deps/quickjs/libbf.h delete mode 100644 deps/quickjs/libregexp-opcode.h delete mode 100644 deps/quickjs/libregexp.c delete mode 100644 deps/quickjs/libregexp.h delete mode 100644 deps/quickjs/libunicode-table.h delete mode 100644 deps/quickjs/libunicode.c delete mode 100644 deps/quickjs/libunicode.h delete mode 100644 deps/quickjs/list.h delete mode 100644 deps/quickjs/qjs.c delete mode 100644 deps/quickjs/qjsc.c delete mode 100644 deps/quickjs/qjscalc.js delete mode 100644 deps/quickjs/quickjs-atom.h delete mode 100644 deps/quickjs/quickjs-libc.c delete mode 100644 deps/quickjs/quickjs-libc.h delete mode 100644 deps/quickjs/quickjs-opcode.h delete mode 100644 deps/quickjs/quickjs.c delete mode 100644 deps/quickjs/quickjs.h delete mode 100644 deps/quickjs/readme.txt delete mode 100755 deps/quickjs/release.sh delete mode 100644 deps/quickjs/repl.js delete mode 100644 deps/quickjs/run-test262.c delete mode 100644 deps/quickjs/test262.conf delete mode 100644 deps/quickjs/test262_errors.txt delete mode 100644 deps/quickjs/test262o.conf delete mode 100644 deps/quickjs/test262o_errors.txt delete mode 100644 deps/quickjs/tests/bjson.c delete mode 100644 deps/quickjs/tests/microbench.js delete mode 100644 deps/quickjs/tests/test262.patch delete mode 100644 deps/quickjs/tests/test_bignum.js delete mode 100644 deps/quickjs/tests/test_bjson.js delete mode 100644 deps/quickjs/tests/test_builtin.js delete mode 100644 deps/quickjs/tests/test_closure.js delete mode 100644 deps/quickjs/tests/test_language.js delete mode 100644 deps/quickjs/tests/test_loop.js delete mode 100644 deps/quickjs/tests/test_op_overloading.js delete mode 100644 deps/quickjs/tests/test_qjscalc.js delete mode 100644 deps/quickjs/tests/test_std.js delete mode 100644 deps/quickjs/tests/test_worker.js delete mode 100644 deps/quickjs/tests/test_worker_module.js delete mode 100755 deps/quickjs/unicode_download.sh delete mode 100644 deps/quickjs/unicode_gen.c delete mode 100644 deps/quickjs/unicode_gen_def.h diff --git a/.gitmodules b/.gitmodules index fb0eefea..d493c179 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,21 @@ [submodule "deps/zlib"] path = deps/zlib url = https://github.com/madler/zlib.git +[submodule "deps/libsodium"] + path = deps/libsodium + url = https://github.com/jedisct1/libsodium.git +[submodule "deps/quickjs"] + path = deps/quickjs + url = https://github.com/bellard/quickjs.git +[submodule "deps/crypt_blowfish"] + path = deps/crypt_blowfish + url = https://github.com/openwall/crypt_blowfish.git +[submodule "deps/libbacktrace"] + path = deps/libbacktrace + url = https://github.com/ianlancetaylor/libbacktrace.git +[submodule "deps/libuv"] + path = deps/libuv + url = https://github.com/libuv/libuv.git +[submodule "deps/picohttpparser"] + path = deps/picohttpparser + url = https://github.com/h2o/picohttpparser.git diff --git a/deps/crypt_blowfish b/deps/crypt_blowfish new file mode 160000 index 00000000..3354bb81 --- /dev/null +++ b/deps/crypt_blowfish @@ -0,0 +1 @@ +Subproject commit 3354bb81eea489e972b0a7c63231514ab34f73a0 diff --git a/deps/crypt_blowfish/LINKS b/deps/crypt_blowfish/LINKS deleted file mode 100644 index a6cb7e1c..00000000 --- a/deps/crypt_blowfish/LINKS +++ /dev/null @@ -1,29 +0,0 @@ -New versions of this package (crypt_blowfish): - - http://www.openwall.com/crypt/ - -A paper on the algorithm that explains its design decisions: - - http://www.usenix.org/events/usenix99/provos.html - -Unix Seventh Edition Manual, Volume 2: the password scheme (1978): - - http://plan9.bell-labs.com/7thEdMan/vol2/password - -The Openwall GNU/*/Linux (Owl) tcb suite implementing the alternative -password shadowing scheme. This includes a PAM module which -supersedes pam_unix and uses the password hashing framework provided -with crypt_blowfish when setting new passwords. - - http://www.openwall.com/tcb/ - -pam_passwdqc, a password strength checking and policy enforcement -module for PAM-aware password changing programs: - - http://www.openwall.com/passwdqc/ - -John the Ripper password cracker: - - http://www.openwall.com/john/ - -$Owl: Owl/packages/glibc/crypt_blowfish/LINKS,v 1.4 2005/11/16 13:09:47 solar Exp $ diff --git a/deps/crypt_blowfish/Makefile b/deps/crypt_blowfish/Makefile deleted file mode 100644 index c162adc4..00000000 --- a/deps/crypt_blowfish/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -# -# Written and revised by Solar Designer in 2000-2011. -# No copyright is claimed, and the software is hereby placed in the public -# domain. In case this attempt to disclaim copyright and place the software -# in the public domain is deemed null and void, then the software is -# Copyright (c) 2000-2011 Solar Designer and it is hereby released to the -# general public under the following terms: -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted. -# -# There's ABSOLUTELY NO WARRANTY, express or implied. -# -# See crypt_blowfish.c for more information. -# - -CC = gcc -AS = $(CC) -LD = $(CC) -RM = rm -f -CFLAGS = -W -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wundef -Wpointer-arith -O2 -fomit-frame-pointer -funroll-loops -ASFLAGS = -c -LDFLAGS = -s - -BLOWFISH_OBJS = \ - crypt_blowfish.o x86.o - -CRYPT_OBJS = \ - $(BLOWFISH_OBJS) crypt_gensalt.o wrapper.o - -TEST_OBJS = \ - $(BLOWFISH_OBJS) crypt_gensalt.o crypt_test.o - -TEST_THREADS_OBJS = \ - $(BLOWFISH_OBJS) crypt_gensalt.o crypt_test_threads.o - -EXTRA_MANS = \ - crypt_r.3 crypt_rn.3 crypt_ra.3 \ - crypt_gensalt.3 crypt_gensalt_rn.3 crypt_gensalt_ra.3 - -all: $(CRYPT_OBJS) man - -check: crypt_test - ./crypt_test - -crypt_test: $(TEST_OBJS) - $(LD) $(LDFLAGS) $(TEST_OBJS) -o $@ - -crypt_test.o: wrapper.c ow-crypt.h crypt_blowfish.h crypt_gensalt.h - $(CC) -c $(CFLAGS) wrapper.c -DTEST -o $@ - -check_threads: crypt_test_threads - ./crypt_test_threads - -crypt_test_threads: $(TEST_THREADS_OBJS) - $(LD) $(LDFLAGS) $(TEST_THREADS_OBJS) -lpthread -o $@ - -crypt_test_threads.o: wrapper.c ow-crypt.h crypt_blowfish.h crypt_gensalt.h - $(CC) -c $(CFLAGS) wrapper.c -DTEST -DTEST_THREADS=4 -o $@ - -man: $(EXTRA_MANS) - -$(EXTRA_MANS): - echo '.so man3/crypt.3' > $@ - -crypt_blowfish.o: crypt_blowfish.h -crypt_gensalt.o: crypt_gensalt.h -wrapper.o: crypt.h ow-crypt.h crypt_blowfish.h crypt_gensalt.h - -.c.o: - $(CC) -c $(CFLAGS) $*.c - -.S.o: - $(AS) $(ASFLAGS) $*.S - -clean: - $(RM) crypt_test crypt_test_threads *.o $(EXTRA_MANS) core diff --git a/deps/crypt_blowfish/PERFORMANCE b/deps/crypt_blowfish/PERFORMANCE deleted file mode 100644 index 9d6fe4ef..00000000 --- a/deps/crypt_blowfish/PERFORMANCE +++ /dev/null @@ -1,30 +0,0 @@ -These numbers are for 32 iterations ("$2a$05"): - - OpenBSD 3.0 bcrypt(*) crypt_blowfish 0.4.4 -Pentium III, 840 MHz 99 c/s 121 c/s (+22%) -Alpha 21164PC, 533 MHz 55.5 c/s 76.9 c/s (+38%) -UltraSparc IIi, 400 MHz 49.9 c/s 52.5 c/s (+5%) -Pentium, 120 MHz 8.8 c/s 20.1 c/s (+128%) -PA-RISC 7100LC, 80 MHz 8.5 c/s 16.3 c/s (+92%) - -(*) built with -fomit-frame-pointer -funroll-loops, which I don't -think happens for libcrypt. - -Starting with version 1.1 released in June 2011, default builds of -crypt_blowfish invoke a quick self-test on every hash computation. -This has roughly a 4.8% performance impact at "$2a$05", but only a 0.6% -impact at a more typical setting of "$2a$08". - -The large speedup for the original Pentium is due to the assembly -code and the weird optimizations this processor requires. - -The numbers for password cracking are 2 to 10% higher than those for -crypt_blowfish as certain things may be done out of the loop and the -code doesn't need to be reentrant. - -Recent versions of John the Ripper (1.6.25-dev and newer) achieve an -additional 15% speedup on the Pentium Pro family of processors (which -includes Pentium III) with a separate version of the assembly code and -run-time CPU detection. - -$Owl: Owl/packages/glibc/crypt_blowfish/PERFORMANCE,v 1.6 2011/06/21 12:09:20 solar Exp $ diff --git a/deps/crypt_blowfish/README b/deps/crypt_blowfish/README deleted file mode 100644 index e95da230..00000000 --- a/deps/crypt_blowfish/README +++ /dev/null @@ -1,68 +0,0 @@ -This is an implementation of a password hashing method, provided via the -crypt(3) and a reentrant interface. It is fully compatible with -OpenBSD's bcrypt.c for prefix "$2b$", originally by Niels Provos and -David Mazieres. (Please refer to the included crypt(3) man page for -information on minor compatibility issues for other bcrypt prefixes.) - -I've placed this code in the public domain, with fallback to a -permissive license. Please see the comment in crypt_blowfish.c for -more information. - -You can use the provided routines in your own packages, or link them -into a C library. I've provided hooks for linking into GNU libc, but -it shouldn't be too hard to get this into another C library. Note -that simply adding this code into your libc is probably not enough to -make your system use the new password hashing algorithm. Changes to -passwd(1), PAM modules, or whatever else your system uses will likely -be needed as well. These are not a part of this package, but see -LINKS for a pointer to our tcb suite. - -Instructions on using the routines in one of the two common ways are -given below. It is recommended that you test the routines on your -system before you start. Type "make check" or "make check_threads" -(if you have the POSIX threads library), then "make clean". - - -1. Using the routines in your programs. - -The available interfaces are in ow-crypt.h, and this is the file you -should include. You won't need crypt.h. When linking, add all of the -C files and x86.S (you can compile and link it even on a non-x86, it -will produce no code in this case). - - -2. Building the routines into GNU C library. - -For versions 2.13 and 2.14 (and likely other nearby ones), extract the -library sources as usual. Apply the patch for glibc 2.14 provided in -this package. Enter crypt/ and rename crypt.h to gnu-crypt.h within -that directory. Copy the C sources, header, and assembly (x86.S) files -from this package in there as well (but be sure you don't overwrite the -Makefile). Configure, build, and install the library as usual. - -For versions 2.2 to 2.3.6 (and likely also for some newer ones), -extract the library sources and maybe its optional add-ons as usual. -Apply the patch for glibc 2.3.6 provided in this package. Enter -crypt/ and rename crypt.h to gnu-crypt.h within that directory. Copy -the C sources, header, and assembly (x86.S) files from this package in -there as well (but be sure you don't overwrite the Makefile). -Configure, build, and install the library as usual. - -For versions 2.1 to 2.1.3, extract the library sources and the crypt -and linuxthreads add-ons as usual. Apply the patch for glibc 2.1.3 -provided in this package. Enter crypt/sysdeps/unix/, and rename -crypt.h to gnu-crypt.h within that directory. Copy C sources, header, -and assembly (x86.S) files from this package in there as well (but be -sure you don't overwrite the Makefile). Configure, build, and install -the library as usual. - -Programs that want to use the provided interfaces will need to include -crypt.h (but not ow-crypt.h directly). By default, prototypes for the -new routines aren't defined (but the extra functionality of crypt(3) -is indeed available). You need to define _OW_SOURCE to obtain the new -routines as well. - --- -Solar Designer - -$Owl: Owl/packages/glibc/crypt_blowfish/README,v 1.10 2014/07/07 15:19:04 solar Exp $ diff --git a/deps/crypt_blowfish/crypt.3 b/deps/crypt_blowfish/crypt.3 deleted file mode 100644 index b4c08954..00000000 --- a/deps/crypt_blowfish/crypt.3 +++ /dev/null @@ -1,575 +0,0 @@ -.\" Written and revised by Solar Designer in 2000-2011. -.\" No copyright is claimed, and this man page is hereby placed in the public -.\" domain. In case this attempt to disclaim copyright and place the man page -.\" in the public domain is deemed null and void, then the man page is -.\" Copyright (c) 2000-2011 Solar Designer and it is hereby released to the -.\" general public under the following terms: -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted. -.\" -.\" There's ABSOLUTELY NO WARRANTY, express or implied. -.\" -.\" This manual page in its current form is intended for use on systems -.\" based on the GNU C Library with crypt_blowfish patched into libcrypt. -.\" -.TH CRYPT 3 "July 7, 2014" "Openwall Project" "Library functions" -.ad l -.\" No macros in NAME to keep makewhatis happy. -.SH NAME -\fBcrypt\fR, \fBcrypt_r\fR, \fBcrypt_rn\fR, \fBcrypt_ra\fR, -\fBcrypt_gensalt\fR, \fBcrypt_gensalt_rn\fR, \fBcrypt_gensalt_ra\fR -\- password hashing -.SH SYNOPSIS -.B #define _XOPEN_SOURCE -.br -.B #include -.sp -.in +8 -.ti -8 -.BI "char *crypt(const char *" key ", const char *" setting ); -.in -8 -.sp -.B #define _GNU_SOURCE -.br -.B #include -.sp -.in +8 -.ti -8 -.BI "char *crypt_r(const char *" key ", const char *" setting ", struct crypt_data *" data ); -.in -8 -.sp -.B #define _OW_SOURCE -.br -.B #include -.sp -.in +8 -.ti -8 -.BI "char *crypt_rn(const char *" key ", const char *" setting ", void *" data ", int " size ); -.ti -8 -.BI "char *crypt_ra(const char *" key ", const char *" setting ", void **" data ", int *" size ); -.ti -8 -.BI "char *crypt_gensalt(const char *" prefix ", unsigned long " count ", const char *" input ", int " size ); -.ti -8 -.BI "char *crypt_gensalt_rn(const char *" prefix ", unsigned long " count ", const char *" input ", int " size ", char *" output ", int " output_size ); -.ti -8 -.BI "char *crypt_gensalt_ra(const char *" prefix ", unsigned long " count ", const char *" input ", int " size ); -.ad b -.de crypt -.BR crypt , -.BR crypt_r , -.BR crypt_rn ", \\$1" -.ie "\\$2"" .B crypt_ra -.el .BR crypt_ra "\\$2" -.. -.de crypt_gensalt -.BR crypt_gensalt , -.BR crypt_gensalt_rn ", \\$1" -.ie "\\$2"" .B crypt_gensalt_ra -.el .BR crypt_gensalt_ra "\\$2" -.. -.SH DESCRIPTION -The -.crypt and -functions calculate a cryptographic hash function of -.I key -with one of a number of supported methods as requested with -.IR setting , -which is also used to pass a salt and possibly other parameters to -the chosen method. -The hashing methods are explained below. -.PP -Unlike -.BR crypt , -the functions -.BR crypt_r , -.BR crypt_rn " and" -.B crypt_ra -are reentrant. -They place their result and possibly their private data in a -.I data -area of -.I size -bytes as passed to them by an application and/or in memory they -allocate dynamically. Some hashing algorithms may use the data area to -cache precomputed intermediate values across calls. Thus, applications -must properly initialize the data area before its first use. -.B crypt_r -requires that only -.I data->initialized -be reset to zero; -.BR crypt_rn " and " crypt_ra -require that either the entire data area is zeroed or, in the case of -.BR crypt_ra , -.I *data -is NULL. When called with a NULL -.I *data -or insufficient -.I *size -for the requested hashing algorithm, -.B crypt_ra -uses -.BR realloc (3) -to allocate the required amount of memory dynamically. Thus, -.B crypt_ra -has the additional requirement that -.IR *data , -when non-NULL, must point to an area allocated either with a previous -call to -.B crypt_ra -or with a -.BR malloc (3) -family call. -The memory allocated by -.B crypt_ra -should be freed with -.BR free "(3)." -.PP -The -.crypt_gensalt and -functions compile a string for use as -.I setting -\- with the given -.I prefix -(used to choose a hashing method), the iteration -.I count -(if supported by the chosen method) and up to -.I size -cryptographically random -.I input -bytes for use as the actual salt. -If -.I count -is 0, a low default will be picked. -The random bytes may be obtained from -.BR /dev/urandom . -Unlike -.BR crypt_gensalt , -the functions -.BR crypt_gensalt_rn " and " crypt_gensalt_ra -are reentrant. -.B crypt_gensalt_rn -places its result in the -.I output -buffer of -.I output_size -bytes. -.B crypt_gensalt_ra -allocates memory for its result dynamically. The memory should be -freed with -.BR free "(3)." -.SH RETURN VALUE -Upon successful completion, the functions -.crypt and -return a pointer to a string containing the setting that was actually used -and a printable encoding of the hash function value. -The entire string is directly usable as -.I setting -with other calls to -.crypt and -and as -.I prefix -with calls to -.crypt_gensalt and . -.PP -The behavior of -.B crypt -on errors isn't well standardized. Some implementations simply can't fail -(unless the process dies, in which case they obviously can't return), -others return NULL or a fixed string. Most implementations don't set -.IR errno , -but some do. SUSv2 specifies only returning NULL and setting -.I errno -as a valid behavior, and defines only one possible error -.RB "(" ENOSYS , -"The functionality is not supported on this implementation.") -Unfortunately, most existing applications aren't prepared to handle -NULL returns from -.BR crypt . -The description below corresponds to this implementation of -.BR crypt " and " crypt_r -only, and to -.BR crypt_rn " and " crypt_ra . -The behavior may change to match standards, other implementations or -existing applications. -.PP -.BR crypt " and " crypt_r -may only fail (and return) when passed an invalid or unsupported -.IR setting , -in which case they return a pointer to a magic string that is -shorter than 13 characters and is guaranteed to differ from -.IR setting . -This behavior is safe for older applications which assume that -.B crypt -can't fail, when both setting new passwords and authenticating against -existing password hashes. -.BR crypt_rn " and " crypt_ra -return NULL to indicate failure. All four functions set -.I errno -when they fail. -.PP -The functions -.crypt_gensalt and -return a pointer to the compiled string for -.IR setting , -or NULL on error in which case -.I errno -is set. -.SH ERRORS -.TP -.B EINVAL -.crypt "" : -.I setting -is invalid or not supported by this implementation; -.sp -.crypt_gensalt "" : -.I prefix -is invalid or not supported by this implementation; -.I count -is invalid for the requested -.IR prefix ; -the input -.I size -is insufficient for the smallest valid salt with the requested -.IR prefix ; -.I input -is NULL. -.TP -.B ERANGE -.BR crypt_rn : -the provided data area -.I size -is insufficient for the requested hashing algorithm; -.sp -.BR crypt_gensalt_rn : -.I output_size -is too small to hold the compiled -.I setting -string. -.TP -.B ENOMEM -.B crypt -(original glibc only): -failed to allocate memory for the output buffer (which subsequent calls -would re-use); -.sp -.BR crypt_ra : -.I *data -is NULL or -.I *size -is insufficient for the requested hashing algorithm and -.BR realloc (3) -failed; -.sp -.BR crypt_gensalt_ra : -failed to allocate memory for the compiled -.I setting -string. -.TP -.B ENOSYS -.B crypt -(SUSv2): -the functionality is not supported on this implementation; -.sp -.BR crypt , -.B crypt_r -(glibc 2.0 to 2.0.1 only): -.de no-crypt-add-on -the crypt add-on is not compiled in and -.I setting -requests something other than the MD5-based algorithm. -.. -.no-crypt-add-on -.TP -.B EOPNOTSUPP -.BR crypt , -.B crypt_r -(glibc 2.0.2 to 2.1.3 only): -.no-crypt-add-on -.SH HASHING METHODS -The implemented hashing methods are intended specifically for processing -user passwords for storage and authentication; -they are at best inefficient for most other purposes. -.PP -It is important to understand that password hashing is not a replacement -for strong passwords. -It is always possible for an attacker with access to password hashes -to try guessing candidate passwords against the hashes. -There are, however, certain properties a password hashing method may have -which make these key search attacks somewhat harder. -.PP -All of the hashing methods use salts such that the same -.I key -may produce many possible hashes. -Proper use of salts may defeat a number of attacks, including: -.TP -1. -The ability to try candidate passwords against multiple hashes at the -price of one. -.TP -2. -The use of pre-hashed lists of candidate passwords. -.TP -3. -The ability to determine whether two users (or two accounts of one user) -have the same or different passwords without actually having to guess -one of the passwords. -.PP -The key search attacks depend on computing hashes of large numbers of -candidate passwords. -Thus, the computational cost of a good password hashing method must be -high \- but of course not too high to render it impractical. -.PP -All hashing methods implemented within the -.crypt and -interfaces use multiple iterations of an underlying cryptographic -primitive specifically in order to increase the cost of trying a -candidate password. -Unfortunately, due to hardware improvements, the hashing methods which -have a fixed cost become increasingly less secure over time. -.PP -In addition to salts, modern password hashing methods accept a variable -iteration -.IR count . -This makes it possible to adapt their cost to the hardware improvements -while still maintaining compatibility. -.PP -The following hashing methods are or may be implemented within the -described interfaces: -.PP -.de hash -.ad l -.TP -.I prefix -.ie "\\$1"" \{\ -"" (empty string); -.br -a string matching ^[./0-9A-Za-z]{2} (see -.BR regex (7)) -.\} -.el "\\$1" -.TP -.B Encoding syntax -\\$2 -.TP -.B Maximum password length -\\$3 (uses \\$4-bit characters) -.TP -.B Effective key size -.ie "\\$5"" limited by the hash size only -.el up to \\$5 bits -.TP -.B Hash size -\\$6 bits -.TP -.B Salt size -\\$7 bits -.TP -.B Iteration count -\\$8 -.ad b -.. -.ti -2 -.B Traditional DES-based -.br -This method is supported by almost all implementations of -.BR crypt . -Unfortunately, it no longer offers adequate security because of its many -limitations. -Thus, it should not be used for new passwords unless you absolutely have -to be able to migrate the password hashes to other systems. -.hash "" "[./0-9A-Za-z]{13}" 8 7 56 64 12 25 -.PP -.ti -2 -.B Extended BSDI-style DES-based -.br -This method is used on BSDI and is also available on at least NetBSD, -OpenBSD, and FreeBSD due to the use of David Burren's FreeSec library. -.hash _ "_[./0-9A-Za-z]{19}" unlimited 7 56 64 24 "1 to 2**24-1 (must be odd)" -.PP -.ti -2 -.B FreeBSD-style MD5-based -.br -This is Poul-Henning Kamp's MD5-based password hashing method originally -developed for FreeBSD. -It is currently supported on many free Unix-like systems, on Solaris 10 -and newer, and it is part of the official glibc. -Its main disadvantage is the fixed iteration count, which is already -too low for the currently available hardware. -.hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 -.PP -.ti -2 -.BR "OpenBSD-style Blowfish-based" " (" bcrypt ) -.br -.B bcrypt -was originally developed by Niels Provos and David Mazieres for OpenBSD -and is also supported on recent versions of FreeBSD and NetBSD, -on Solaris 10 and newer, and on several GNU/*/Linux distributions. -It is, however, not part of the official glibc. -.PP -While both -.B bcrypt -and the BSDI-style DES-based hashing offer a variable iteration count, -.B bcrypt -may scale to even faster hardware, doesn't allow for certain optimizations -specific to password cracking only, doesn't have the effective key size -limitation, and uses 8-bit characters in passwords. -.hash "$2b$" "\e$2[abxy]\e$[0-9]{2}\e$[./A-Za-z0-9]{53}" 72 8 "" 184 128 "2**4 to 2**99 (current implementations are limited to 2**31 iterations)" -.PP -With -.BR bcrypt , -the -.I count -passed to -.crypt_gensalt and -is the base-2 logarithm of the actual iteration count. -.PP -.B bcrypt -hashes used the "$2a$" prefix since 1997. -However, in 2011 an implementation bug was discovered in crypt_blowfish -(versions up to 1.0.4 inclusive) affecting handling of password characters with -the 8th bit set. -Besides fixing the bug, -to provide for upgrade strategies for existing systems, two new prefixes were -introduced: "$2x$", which fully re-introduces the bug, and "$2y$", which -guarantees correct handling of both 7- and 8-bit characters. -OpenBSD 5.5 introduced the "$2b$" prefix for behavior that exactly matches -crypt_blowfish's "$2y$", and current crypt_blowfish supports it as well. -Unfortunately, the behavior of "$2a$" on password characters with the 8th bit -set has to be considered system-specific. -When generating new password hashes, the "$2b$" or "$2y$" prefix should be used. -(If such hashes ever need to be migrated to a system that does not yet support -these new prefixes, the prefix in migrated copies of the already-generated -hashes may be changed to "$2a$".) -.PP -.crypt_gensalt and -support the "$2b$", "$2y$", and "$2a$" prefixes (the latter for legacy programs -or configurations), but not "$2x$" (which must not be used for new hashes). -.crypt and -support all four of these prefixes. -.SH PORTABILITY NOTES -Programs using any of these functions on a glibc 2.x system must be -linked against -.BR libcrypt . -However, many Unix-like operating systems and older versions of the -GNU C Library include the -.BR crypt " function in " libc . -.PP -The -.BR crypt_r , -.BR crypt_rn , -.BR crypt_ra , -.crypt_gensalt and -functions are very non-portable. -.PP -The set of supported hashing methods is implementation-dependent. -.SH CONFORMING TO -The -.B crypt -function conforms to SVID, X/OPEN, and is available on BSD 4.3. -The strings returned by -.B crypt -are not required to be portable among conformant systems. -.PP -.B crypt_r -is a GNU extension. -There's also a -.B crypt_r -function on HP-UX and MKS Toolkit, but the prototypes and semantics differ. -.PP -.B crypt_gensalt -is an Openwall extension. -There's also a -.B crypt_gensalt -function on Solaris 10 and newer, but the prototypes and semantics differ. -.PP -.BR crypt_rn , -.BR crypt_ra , -.BR crypt_gensalt_rn , -and -.B crypt_gensalt_ra -are Openwall extensions. -.SH HISTORY -A rotor-based -.B crypt -function appeared in Version 6 AT&T UNIX. -The "traditional" -.B crypt -first appeared in Version 7 AT&T UNIX. -.PP -The -.B crypt_r -function was introduced during glibc 2.0 development. -.SH BUGS -The return values of -.BR crypt " and " crypt_gensalt -point to static buffers that are overwritten by subsequent calls. -These functions are not thread-safe. -.RB ( crypt -on recent versions of Solaris uses thread-specific data and actually is -thread-safe.) -.PP -The strings returned by certain other implementations of -.B crypt -on error may be stored in read-only locations or only initialized once, -which makes it unsafe to always attempt to zero out the buffer normally -pointed to by the -.B crypt -return value as it would otherwise be preferable for security reasons. -The problem could be avoided with the use of -.BR crypt_r , -.BR crypt_rn , -or -.B crypt_ra -where the application has full control over output buffers of these functions -(and often over some of their private data as well). -Unfortunately, the functions aren't (yet?) available on platforms where -.B crypt -has this undesired property. -.PP -Applications using the thread-safe -.B crypt_r -need to allocate address space for the large (over 128 KB) -.I struct crypt_data -structure. Each thread needs a separate instance of the structure. The -.B crypt_r -interface makes it impossible to implement a hashing algorithm which -would need to keep an even larger amount of private data, without breaking -binary compatibility. -.B crypt_ra -allows for dynamically increasing the allocation size as required by the -hashing algorithm that is actually used. Unfortunately, -.B crypt_ra -is even more non-portable than -.BR crypt_r . -.PP -Multi-threaded applications or library functions which are meant to be -thread-safe should use -.BR crypt_gensalt_rn " or " crypt_gensalt_ra -rather than -.BR crypt_gensalt . -.SH SEE ALSO -.BR login (1), -.BR passwd (1), -.BR crypto (3), -.BR encrypt (3), -.BR free (3), -.BR getpass (3), -.BR getpwent (3), -.BR malloc (3), -.BR realloc (3), -.BR shadow (3), -.BR passwd (5), -.BR shadow (5), -.BR regex (7), -.BR pam (8) -.sp -Niels Provos and David Mazieres. A Future-Adaptable Password Scheme. -Proceedings of the 1999 USENIX Annual Technical Conference, June 1999. -.br -http://www.usenix.org/events/usenix99/provos.html -.sp -Robert Morris and Ken Thompson. Password Security: A Case History. -Unix Seventh Edition Manual, Volume 2, April 1978. -.br -http://plan9.bell-labs.com/7thEdMan/vol2/password diff --git a/deps/crypt_blowfish/crypt.h b/deps/crypt_blowfish/crypt.h deleted file mode 100644 index 12e67055..00000000 --- a/deps/crypt_blowfish/crypt.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Written by Solar Designer in 2000-2002. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2002 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#include - -#if defined(_OW_SOURCE) || defined(__USE_OW) -#define __SKIP_GNU -#undef __SKIP_OW -#include -#undef __SKIP_GNU -#endif diff --git a/deps/crypt_blowfish/crypt_blowfish.c b/deps/crypt_blowfish/crypt_blowfish.c deleted file mode 100644 index 9d3f3be8..00000000 --- a/deps/crypt_blowfish/crypt_blowfish.c +++ /dev/null @@ -1,907 +0,0 @@ -/* - * The crypt_blowfish homepage is: - * - * http://www.openwall.com/crypt/ - * - * This code comes from John the Ripper password cracker, with reentrant - * and crypt(3) interfaces added, but optimizations specific to password - * cracking removed. - * - * Written by Solar Designer in 1998-2014. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 1998-2014 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * It is my intent that you should be able to use this on your system, - * as part of a software package, or anywhere else to improve security, - * ensure compatibility, or for any other purpose. I would appreciate - * it if you give credit where it is due and keep your modifications in - * the public domain as well, but I don't require that in order to let - * you place this code and any modifications you make under a license - * of your choice. - * - * This implementation is fully compatible with OpenBSD's bcrypt.c for prefix - * "$2b$", originally by Niels Provos , and it uses - * some of his ideas. The password hashing algorithm was designed by David - * Mazieres . For information on the level of - * compatibility for bcrypt hash prefixes other than "$2b$", please refer to - * the comments in BF_set_key() below and to the included crypt(3) man page. - * - * There's a paper on the algorithm that explains its design decisions: - * - * http://www.usenix.org/events/usenix99/provos.html - * - * Some of the tricks in BF_ROUND might be inspired by Eric Young's - * Blowfish library (I can't be sure if I would think of something if I - * hadn't seen his code). - */ - -#include - -#include -#ifndef __set_errno -#define __set_errno(val) errno = (val) -#endif - -/* Just to make sure the prototypes match the actual definitions */ -#include "crypt_blowfish.h" - -#ifdef __i386__ -#define BF_ASM 1 -#define BF_SCALE 1 -#elif defined(__x86_64__) || defined(__alpha__) || defined(__hppa__) -#define BF_ASM 0 -#define BF_SCALE 1 -#else -#define BF_ASM 0 -#define BF_SCALE 0 -#endif - -typedef unsigned int BF_word; -typedef signed int BF_word_signed; - -/* Number of Blowfish rounds, this is also hardcoded into a few places */ -#define BF_N 16 - -typedef BF_word BF_key[BF_N + 2]; - -typedef struct { - BF_word S[4][0x100]; - BF_key P; -} BF_ctx; - -/* - * Magic IV for 64 Blowfish encryptions that we do at the end. - * The string is "OrpheanBeholderScryDoubt" on big-endian. - */ -static BF_word BF_magic_w[6] = { - 0x4F727068, 0x65616E42, 0x65686F6C, - 0x64657253, 0x63727944, 0x6F756274 -}; - -/* - * P-box and S-box tables initialized with digits of Pi. - */ -static BF_ctx BF_init_state = { - { - { - 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, - 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, - 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, - 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, - 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, - 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, - 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, - 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, - 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, - 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, - 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, - 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, - 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, - 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, - 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, - 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, - 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, - 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, - 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, - 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, - 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, - 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, - 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, - 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, - 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, - 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, - 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, - 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, - 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, - 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, - 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, - 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, - 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, - 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, - 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, - 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, - 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, - 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, - 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, - 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, - 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, - 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, - 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, - 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, - 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, - 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, - 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, - 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, - 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, - 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, - 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, - 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, - 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, - 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, - 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, - 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, - 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, - 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, - 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, - 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, - 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, - 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, - 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, - 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a - }, { - 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, - 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, - 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, - 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, - 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, - 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, - 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, - 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, - 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, - 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, - 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, - 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, - 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, - 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, - 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, - 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, - 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, - 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, - 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, - 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, - 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, - 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, - 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, - 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, - 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, - 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, - 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, - 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, - 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, - 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, - 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, - 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, - 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, - 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, - 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, - 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, - 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, - 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, - 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, - 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, - 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, - 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, - 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, - 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, - 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, - 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, - 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, - 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, - 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, - 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, - 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, - 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, - 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, - 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, - 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, - 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, - 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, - 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, - 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, - 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, - 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, - 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, - 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, - 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7 - }, { - 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, - 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, - 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, - 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, - 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, - 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, - 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, - 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, - 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, - 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, - 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, - 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, - 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, - 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, - 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, - 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, - 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, - 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, - 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, - 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, - 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, - 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, - 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, - 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, - 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, - 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, - 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, - 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, - 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, - 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, - 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, - 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, - 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, - 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, - 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, - 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, - 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, - 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, - 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, - 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, - 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, - 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, - 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, - 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, - 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, - 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, - 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, - 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, - 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, - 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, - 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, - 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, - 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, - 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, - 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, - 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, - 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, - 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, - 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, - 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, - 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, - 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, - 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, - 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0 - }, { - 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, - 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, - 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, - 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, - 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, - 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, - 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, - 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, - 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, - 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, - 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, - 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, - 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, - 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, - 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, - 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, - 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, - 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, - 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, - 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, - 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, - 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, - 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, - 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, - 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, - 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, - 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, - 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, - 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, - 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, - 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, - 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, - 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, - 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, - 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, - 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, - 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, - 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, - 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, - 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, - 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, - 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, - 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, - 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, - 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, - 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, - 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, - 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, - 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, - 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, - 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, - 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, - 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, - 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, - 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, - 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, - 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, - 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, - 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, - 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, - 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, - 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, - 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, - 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 - } - }, { - 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, - 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, - 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, - 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, - 0x9216d5d9, 0x8979fb1b - } -}; - -static unsigned char BF_itoa64[64 + 1] = - "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - -static unsigned char BF_atoi64[0x60] = { - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64, - 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 64, 64, 64, 64, 64, - 64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 64, 64, 64, 64, 64 -}; - -#define BF_safe_atoi64(dst, src) \ -{ \ - tmp = (unsigned char)(src); \ - if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \ - tmp = BF_atoi64[tmp]; \ - if (tmp > 63) return -1; \ - (dst) = tmp; \ -} - -static int BF_decode(BF_word *dst, const char *src, int size) -{ - unsigned char *dptr = (unsigned char *)dst; - unsigned char *end = dptr + size; - const unsigned char *sptr = (const unsigned char *)src; - unsigned int tmp, c1, c2, c3, c4; - - do { - BF_safe_atoi64(c1, *sptr++); - BF_safe_atoi64(c2, *sptr++); - *dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4); - if (dptr >= end) break; - - BF_safe_atoi64(c3, *sptr++); - *dptr++ = ((c2 & 0x0F) << 4) | ((c3 & 0x3C) >> 2); - if (dptr >= end) break; - - BF_safe_atoi64(c4, *sptr++); - *dptr++ = ((c3 & 0x03) << 6) | c4; - } while (dptr < end); - - return 0; -} - -static void BF_encode(char *dst, const BF_word *src, int size) -{ - const unsigned char *sptr = (const unsigned char *)src; - const unsigned char *end = sptr + size; - unsigned char *dptr = (unsigned char *)dst; - unsigned int c1, c2; - - do { - c1 = *sptr++; - *dptr++ = BF_itoa64[c1 >> 2]; - c1 = (c1 & 0x03) << 4; - if (sptr >= end) { - *dptr++ = BF_itoa64[c1]; - break; - } - - c2 = *sptr++; - c1 |= c2 >> 4; - *dptr++ = BF_itoa64[c1]; - c1 = (c2 & 0x0f) << 2; - if (sptr >= end) { - *dptr++ = BF_itoa64[c1]; - break; - } - - c2 = *sptr++; - c1 |= c2 >> 6; - *dptr++ = BF_itoa64[c1]; - *dptr++ = BF_itoa64[c2 & 0x3f]; - } while (sptr < end); -} - -static void BF_swap(BF_word *x, int count) -{ - static int endianness_check = 1; - char *is_little_endian = (char *)&endianness_check; - BF_word tmp; - - if (*is_little_endian) - do { - tmp = *x; - tmp = (tmp << 16) | (tmp >> 16); - *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF); - } while (--count); -} - -#if BF_SCALE -/* Architectures which can shift addresses left by 2 bits with no extra cost */ -#define BF_ROUND(L, R, N) \ - tmp1 = L & 0xFF; \ - tmp2 = L >> 8; \ - tmp2 &= 0xFF; \ - tmp3 = L >> 16; \ - tmp3 &= 0xFF; \ - tmp4 = L >> 24; \ - tmp1 = data.ctx.S[3][tmp1]; \ - tmp2 = data.ctx.S[2][tmp2]; \ - tmp3 = data.ctx.S[1][tmp3]; \ - tmp3 += data.ctx.S[0][tmp4]; \ - tmp3 ^= tmp2; \ - R ^= data.ctx.P[N + 1]; \ - tmp3 += tmp1; \ - R ^= tmp3; -#else -/* Architectures with no complicated addressing modes supported */ -#define BF_INDEX(S, i) \ - (*((BF_word *)(((unsigned char *)S) + (i)))) -#define BF_ROUND(L, R, N) \ - tmp1 = L & 0xFF; \ - tmp1 <<= 2; \ - tmp2 = L >> 6; \ - tmp2 &= 0x3FC; \ - tmp3 = L >> 14; \ - tmp3 &= 0x3FC; \ - tmp4 = L >> 22; \ - tmp4 &= 0x3FC; \ - tmp1 = BF_INDEX(data.ctx.S[3], tmp1); \ - tmp2 = BF_INDEX(data.ctx.S[2], tmp2); \ - tmp3 = BF_INDEX(data.ctx.S[1], tmp3); \ - tmp3 += BF_INDEX(data.ctx.S[0], tmp4); \ - tmp3 ^= tmp2; \ - R ^= data.ctx.P[N + 1]; \ - tmp3 += tmp1; \ - R ^= tmp3; -#endif - -/* - * Encrypt one block, BF_N is hardcoded here. - */ -#define BF_ENCRYPT \ - L ^= data.ctx.P[0]; \ - BF_ROUND(L, R, 0); \ - BF_ROUND(R, L, 1); \ - BF_ROUND(L, R, 2); \ - BF_ROUND(R, L, 3); \ - BF_ROUND(L, R, 4); \ - BF_ROUND(R, L, 5); \ - BF_ROUND(L, R, 6); \ - BF_ROUND(R, L, 7); \ - BF_ROUND(L, R, 8); \ - BF_ROUND(R, L, 9); \ - BF_ROUND(L, R, 10); \ - BF_ROUND(R, L, 11); \ - BF_ROUND(L, R, 12); \ - BF_ROUND(R, L, 13); \ - BF_ROUND(L, R, 14); \ - BF_ROUND(R, L, 15); \ - tmp4 = R; \ - R = L; \ - L = tmp4 ^ data.ctx.P[BF_N + 1]; - -#if BF_ASM -#define BF_body() \ - _BF_body_r(&data.ctx); -#else -#define BF_body() \ - L = R = 0; \ - ptr = data.ctx.P; \ - do { \ - ptr += 2; \ - BF_ENCRYPT; \ - *(ptr - 2) = L; \ - *(ptr - 1) = R; \ - } while (ptr < &data.ctx.P[BF_N + 2]); \ -\ - ptr = data.ctx.S[0]; \ - do { \ - ptr += 2; \ - BF_ENCRYPT; \ - *(ptr - 2) = L; \ - *(ptr - 1) = R; \ - } while (ptr < &data.ctx.S[3][0xFF]); -#endif - -static void BF_set_key(const char *key, BF_key expanded, BF_key initial, - unsigned char flags) -{ - const char *ptr = key; - unsigned int bug, i, j; - BF_word safety, sign, diff, tmp[2]; - -/* - * There was a sign extension bug in older revisions of this function. While - * we would have liked to simply fix the bug and move on, we have to provide - * a backwards compatibility feature (essentially the bug) for some systems and - * a safety measure for some others. The latter is needed because for certain - * multiple inputs to the buggy algorithm there exist easily found inputs to - * the correct algorithm that produce the same hash. Thus, we optionally - * deviate from the correct algorithm just enough to avoid such collisions. - * While the bug itself affected the majority of passwords containing - * characters with the 8th bit set (although only a percentage of those in a - * collision-producing way), the anti-collision safety measure affects - * only a subset of passwords containing the '\xff' character (not even all of - * those passwords, just some of them). This character is not found in valid - * UTF-8 sequences and is rarely used in popular 8-bit character encodings. - * Thus, the safety measure is unlikely to cause much annoyance, and is a - * reasonable tradeoff to use when authenticating against existing hashes that - * are not reliably known to have been computed with the correct algorithm. - * - * We use an approach that tries to minimize side-channel leaks of password - * information - that is, we mostly use fixed-cost bitwise operations instead - * of branches or table lookups. (One conditional branch based on password - * length remains. It is not part of the bug aftermath, though, and is - * difficult and possibly unreasonable to avoid given the use of C strings by - * the caller, which results in similar timing leaks anyway.) - * - * For actual implementation, we set an array index in the variable "bug" - * (0 means no bug, 1 means sign extension bug emulation) and a flag in the - * variable "safety" (bit 16 is set when the safety measure is requested). - * Valid combinations of settings are: - * - * Prefix "$2a$": bug = 0, safety = 0x10000 - * Prefix "$2b$": bug = 0, safety = 0 - * Prefix "$2x$": bug = 1, safety = 0 - * Prefix "$2y$": bug = 0, safety = 0 - */ - bug = (unsigned int)flags & 1; - safety = ((BF_word)flags & 2) << 15; - - sign = diff = 0; - - for (i = 0; i < BF_N + 2; i++) { - tmp[0] = tmp[1] = 0; - for (j = 0; j < 4; j++) { - tmp[0] <<= 8; - tmp[0] |= (unsigned char)*ptr; /* correct */ - tmp[1] <<= 8; - tmp[1] |= (BF_word_signed)(signed char)*ptr; /* bug */ -/* - * Sign extension in the first char has no effect - nothing to overwrite yet, - * and those extra 24 bits will be fully shifted out of the 32-bit word. For - * chars 2, 3, 4 in each four-char block, we set bit 7 of "sign" if sign - * extension in tmp[1] occurs. Once this flag is set, it remains set. - */ - if (j) - sign |= tmp[1] & 0x80; - if (!*ptr) - ptr = key; - else - ptr++; - } - diff |= tmp[0] ^ tmp[1]; /* Non-zero on any differences */ - - expanded[i] = tmp[bug]; - initial[i] = BF_init_state.P[i] ^ tmp[bug]; - } - -/* - * At this point, "diff" is zero iff the correct and buggy algorithms produced - * exactly the same result. If so and if "sign" is non-zero, which indicates - * that there was a non-benign sign extension, this means that we have a - * collision between the correctly computed hash for this password and a set of - * passwords that could be supplied to the buggy algorithm. Our safety measure - * is meant to protect from such many-buggy to one-correct collisions, by - * deviating from the correct algorithm in such cases. Let's check for this. - */ - diff |= diff >> 16; /* still zero iff exact match */ - diff &= 0xffff; /* ditto */ - diff += 0xffff; /* bit 16 set iff "diff" was non-zero (on non-match) */ - sign <<= 9; /* move the non-benign sign extension flag to bit 16 */ - sign &= ~diff & safety; /* action needed? */ - -/* - * If we have determined that we need to deviate from the correct algorithm, - * flip bit 16 in initial expanded key. (The choice of 16 is arbitrary, but - * let's stick to it now. It came out of the approach we used above, and it's - * not any worse than any other choice we could make.) - * - * It is crucial that we don't do the same to the expanded key used in the main - * Eksblowfish loop. By doing it to only one of these two, we deviate from a - * state that could be directly specified by a password to the buggy algorithm - * (and to the fully correct one as well, but that's a side-effect). - */ - initial[0] ^= sign; -} - -static const unsigned char flags_by_subtype[26] = - {2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0}; - -static char *BF_crypt(const char *key, const char *setting, - char *output, int size, - BF_word min) -{ -#if BF_ASM - extern void _BF_body_r(BF_ctx *ctx); -#endif - struct { - BF_ctx ctx; - BF_key expanded_key; - union { - BF_word salt[4]; - BF_word output[6]; - } binary; - } data; - BF_word L, R; - BF_word tmp1, tmp2, tmp3, tmp4; - BF_word *ptr; - BF_word count; - int i; - - if (size < 7 + 22 + 31 + 1) { - __set_errno(ERANGE); - return NULL; - } - - if (setting[0] != '$' || - setting[1] != '2' || - setting[2] < 'a' || setting[2] > 'z' || - !flags_by_subtype[(unsigned int)(unsigned char)setting[2] - 'a'] || - setting[3] != '$' || - setting[4] < '0' || setting[4] > '3' || - setting[5] < '0' || setting[5] > '9' || - (setting[4] == '3' && setting[5] > '1') || - setting[6] != '$') { - __set_errno(EINVAL); - return NULL; - } - - count = (BF_word)1 << ((setting[4] - '0') * 10 + (setting[5] - '0')); - if (count < min || BF_decode(data.binary.salt, &setting[7], 16)) { - __set_errno(EINVAL); - return NULL; - } - BF_swap(data.binary.salt, 4); - - BF_set_key(key, data.expanded_key, data.ctx.P, - flags_by_subtype[(unsigned int)(unsigned char)setting[2] - 'a']); - - memcpy(data.ctx.S, BF_init_state.S, sizeof(data.ctx.S)); - - L = R = 0; - for (i = 0; i < BF_N + 2; i += 2) { - L ^= data.binary.salt[i & 2]; - R ^= data.binary.salt[(i & 2) + 1]; - BF_ENCRYPT; - data.ctx.P[i] = L; - data.ctx.P[i + 1] = R; - } - - ptr = data.ctx.S[0]; - do { - ptr += 4; - L ^= data.binary.salt[(BF_N + 2) & 3]; - R ^= data.binary.salt[(BF_N + 3) & 3]; - BF_ENCRYPT; - *(ptr - 4) = L; - *(ptr - 3) = R; - - L ^= data.binary.salt[(BF_N + 4) & 3]; - R ^= data.binary.salt[(BF_N + 5) & 3]; - BF_ENCRYPT; - *(ptr - 2) = L; - *(ptr - 1) = R; - } while (ptr < &data.ctx.S[3][0xFF]); - - do { - int done; - - for (i = 0; i < BF_N + 2; i += 2) { - data.ctx.P[i] ^= data.expanded_key[i]; - data.ctx.P[i + 1] ^= data.expanded_key[i + 1]; - } - - done = 0; - do { - BF_body(); - if (done) - break; - done = 1; - - tmp1 = data.binary.salt[0]; - tmp2 = data.binary.salt[1]; - tmp3 = data.binary.salt[2]; - tmp4 = data.binary.salt[3]; - for (i = 0; i < BF_N; i += 4) { - data.ctx.P[i] ^= tmp1; - data.ctx.P[i + 1] ^= tmp2; - data.ctx.P[i + 2] ^= tmp3; - data.ctx.P[i + 3] ^= tmp4; - } - data.ctx.P[16] ^= tmp1; - data.ctx.P[17] ^= tmp2; - } while (1); - } while (--count); - - for (i = 0; i < 6; i += 2) { - L = BF_magic_w[i]; - R = BF_magic_w[i + 1]; - - count = 64; - do { - BF_ENCRYPT; - } while (--count); - - data.binary.output[i] = L; - data.binary.output[i + 1] = R; - } - - memcpy(output, setting, 7 + 22 - 1); - output[7 + 22 - 1] = BF_itoa64[(int) - BF_atoi64[(int)setting[7 + 22 - 1] - 0x20] & 0x30]; - -/* This has to be bug-compatible with the original implementation, so - * only encode 23 of the 24 bytes. :-) */ - BF_swap(data.binary.output, 6); - BF_encode(&output[7 + 22], data.binary.output, 23); - output[7 + 22 + 31] = '\0'; - - return output; -} - -int _crypt_output_magic(const char *setting, char *output, int size) -{ - if (size < 3) - return -1; - - output[0] = '*'; - output[1] = '0'; - output[2] = '\0'; - - if (setting[0] == '*' && setting[1] == '0') - output[1] = '1'; - - return 0; -} - -/* - * Please preserve the runtime self-test. It serves two purposes at once: - * - * 1. We really can't afford the risk of producing incompatible hashes e.g. - * when there's something like gcc bug 26587 again, whereas an application or - * library integrating this code might not also integrate our external tests or - * it might not run them after every build. Even if it does, the miscompile - * might only occur on the production build, but not on a testing build (such - * as because of different optimization settings). It is painful to recover - * from incorrectly-computed hashes - merely fixing whatever broke is not - * enough. Thus, a proactive measure like this self-test is needed. - * - * 2. We don't want to leave sensitive data from our actual password hash - * computation on the stack or in registers. Previous revisions of the code - * would do explicit cleanups, but simply running the self-test after hash - * computation is more reliable. - * - * The performance cost of this quick self-test is around 0.6% at the "$2a$08" - * setting. - */ -char *_crypt_blowfish_rn(const char *key, const char *setting, - char *output, int size) -{ - const char *test_key = "8b \xd0\xc1\xd2\xcf\xcc\xd8"; - const char *test_setting = "$2a$00$abcdefghijklmnopqrstuu"; - static const char * const test_hashes[2] = - {"i1D709vfamulimlGcq0qq3UvuUasvEa\0\x55", /* 'a', 'b', 'y' */ - "VUrPmXD6q/nVSSp7pNDhCR9071IfIRe\0\x55"}; /* 'x' */ - const char *test_hash = test_hashes[0]; - char *retval; - const char *p; - int save_errno, ok; - struct { - char s[7 + 22 + 1]; - char o[7 + 22 + 31 + 1 + 1 + 1]; - } buf; - -/* Hash the supplied password */ - _crypt_output_magic(setting, output, size); - retval = BF_crypt(key, setting, output, size, 16); - save_errno = errno; - -/* - * Do a quick self-test. It is important that we make both calls to BF_crypt() - * from the same scope such that they likely use the same stack locations, - * which makes the second call overwrite the first call's sensitive data on the - * stack and makes it more likely that any alignment related issues would be - * detected by the self-test. - */ - memcpy(buf.s, test_setting, sizeof(buf.s)); - if (retval) { - unsigned int flags = flags_by_subtype[ - (unsigned int)(unsigned char)setting[2] - 'a']; - test_hash = test_hashes[flags & 1]; - buf.s[2] = setting[2]; - } - memset(buf.o, 0x55, sizeof(buf.o)); - buf.o[sizeof(buf.o) - 1] = 0; - p = BF_crypt(test_key, buf.s, buf.o, sizeof(buf.o) - (1 + 1), 1); - - ok = (p == buf.o && - !memcmp(p, buf.s, 7 + 22) && - !memcmp(p + (7 + 22), test_hash, 31 + 1 + 1 + 1)); - - { - const char *k = "\xff\xa3" "34" "\xff\xff\xff\xa3" "345"; - BF_key ae, ai, ye, yi; - BF_set_key(k, ae, ai, 2); /* $2a$ */ - BF_set_key(k, ye, yi, 4); /* $2y$ */ - ai[0] ^= 0x10000; /* undo the safety (for comparison) */ - ok = ok && ai[0] == 0xdb9c59bc && ye[17] == 0x33343500 && - !memcmp(ae, ye, sizeof(ae)) && - !memcmp(ai, yi, sizeof(ai)); - } - - __set_errno(save_errno); - if (ok) - return retval; - -/* Should not happen */ - _crypt_output_magic(setting, output, size); - __set_errno(EINVAL); /* pretend we don't support this hash type */ - return NULL; -} - -char *_crypt_gensalt_blowfish_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size) -{ - if (size < 16 || output_size < 7 + 22 + 1 || - (count && (count < 4 || count > 31)) || - prefix[0] != '$' || prefix[1] != '2' || - (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { - if (output_size > 0) output[0] = '\0'; - __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); - return NULL; - } - - if (!count) count = 5; - - output[0] = '$'; - output[1] = '2'; - output[2] = prefix[2]; - output[3] = '$'; - output[4] = '0' + count / 10; - output[5] = '0' + count % 10; - output[6] = '$'; - - BF_encode(&output[7], (const BF_word *)input, 16); - output[7 + 22] = '\0'; - - return output; -} diff --git a/deps/crypt_blowfish/crypt_blowfish.h b/deps/crypt_blowfish/crypt_blowfish.h deleted file mode 100644 index 2ee0d8c1..00000000 --- a/deps/crypt_blowfish/crypt_blowfish.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Written by Solar Designer in 2000-2011. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#ifndef _CRYPT_BLOWFISH_H -#define _CRYPT_BLOWFISH_H - -extern int _crypt_output_magic(const char *setting, char *output, int size); -extern char *_crypt_blowfish_rn(const char *key, const char *setting, - char *output, int size); -extern char *_crypt_gensalt_blowfish_rn(const char *prefix, - unsigned long count, - const char *input, int size, char *output, int output_size); - -#endif diff --git a/deps/crypt_blowfish/crypt_gensalt.c b/deps/crypt_blowfish/crypt_gensalt.c deleted file mode 100644 index 73c15a1a..00000000 --- a/deps/crypt_blowfish/crypt_gensalt.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Written by Solar Designer in 2000-2011. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - * - * This file contains salt generation functions for the traditional and - * other common crypt(3) algorithms, except for bcrypt which is defined - * entirely in crypt_blowfish.c. - */ - -#include - -#include -#ifndef __set_errno -#define __set_errno(val) errno = (val) -#endif - -/* Just to make sure the prototypes match the actual definitions */ -#include "crypt_gensalt.h" - -unsigned char _crypt_itoa64[64 + 1] = - "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -char *_crypt_gensalt_traditional_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size) -{ - (void) prefix; - - if (size < 2 || output_size < 2 + 1 || (count && count != 25)) { - if (output_size > 0) output[0] = '\0'; - __set_errno((output_size < 2 + 1) ? ERANGE : EINVAL); - return NULL; - } - - output[0] = _crypt_itoa64[(unsigned int)input[0] & 0x3f]; - output[1] = _crypt_itoa64[(unsigned int)input[1] & 0x3f]; - output[2] = '\0'; - - return output; -} - -char *_crypt_gensalt_extended_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size) -{ - unsigned long value; - - (void) prefix; - -/* Even iteration counts make it easier to detect weak DES keys from a look - * at the hash, so they should be avoided */ - if (size < 3 || output_size < 1 + 4 + 4 + 1 || - (count && (count > 0xffffff || !(count & 1)))) { - if (output_size > 0) output[0] = '\0'; - __set_errno((output_size < 1 + 4 + 4 + 1) ? ERANGE : EINVAL); - return NULL; - } - - if (!count) count = 725; - - output[0] = '_'; - output[1] = _crypt_itoa64[count & 0x3f]; - output[2] = _crypt_itoa64[(count >> 6) & 0x3f]; - output[3] = _crypt_itoa64[(count >> 12) & 0x3f]; - output[4] = _crypt_itoa64[(count >> 18) & 0x3f]; - value = (unsigned long)(unsigned char)input[0] | - ((unsigned long)(unsigned char)input[1] << 8) | - ((unsigned long)(unsigned char)input[2] << 16); - output[5] = _crypt_itoa64[value & 0x3f]; - output[6] = _crypt_itoa64[(value >> 6) & 0x3f]; - output[7] = _crypt_itoa64[(value >> 12) & 0x3f]; - output[8] = _crypt_itoa64[(value >> 18) & 0x3f]; - output[9] = '\0'; - - return output; -} - -char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size) -{ - unsigned long value; - - (void) prefix; - - if (size < 3 || output_size < 3 + 4 + 1 || (count && count != 1000)) { - if (output_size > 0) output[0] = '\0'; - __set_errno((output_size < 3 + 4 + 1) ? ERANGE : EINVAL); - return NULL; - } - - output[0] = '$'; - output[1] = '1'; - output[2] = '$'; - value = (unsigned long)(unsigned char)input[0] | - ((unsigned long)(unsigned char)input[1] << 8) | - ((unsigned long)(unsigned char)input[2] << 16); - output[3] = _crypt_itoa64[value & 0x3f]; - output[4] = _crypt_itoa64[(value >> 6) & 0x3f]; - output[5] = _crypt_itoa64[(value >> 12) & 0x3f]; - output[6] = _crypt_itoa64[(value >> 18) & 0x3f]; - output[7] = '\0'; - - if (size >= 6 && output_size >= 3 + 4 + 4 + 1) { - value = (unsigned long)(unsigned char)input[3] | - ((unsigned long)(unsigned char)input[4] << 8) | - ((unsigned long)(unsigned char)input[5] << 16); - output[7] = _crypt_itoa64[value & 0x3f]; - output[8] = _crypt_itoa64[(value >> 6) & 0x3f]; - output[9] = _crypt_itoa64[(value >> 12) & 0x3f]; - output[10] = _crypt_itoa64[(value >> 18) & 0x3f]; - output[11] = '\0'; - } - - return output; -} diff --git a/deps/crypt_blowfish/crypt_gensalt.h b/deps/crypt_blowfish/crypt_gensalt.h deleted file mode 100644 index 457bbfe2..00000000 --- a/deps/crypt_blowfish/crypt_gensalt.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Written by Solar Designer in 2000-2011. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#ifndef _CRYPT_GENSALT_H -#define _CRYPT_GENSALT_H - -extern unsigned char _crypt_itoa64[]; -extern char *_crypt_gensalt_traditional_rn(const char *prefix, - unsigned long count, - const char *input, int size, char *output, int output_size); -extern char *_crypt_gensalt_extended_rn(const char *prefix, - unsigned long count, - const char *input, int size, char *output, int output_size); -extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size); - -#endif diff --git a/deps/crypt_blowfish/glibc-2.1.3-crypt.diff b/deps/crypt_blowfish/glibc-2.1.3-crypt.diff deleted file mode 100644 index 415e5b44..00000000 --- a/deps/crypt_blowfish/glibc-2.1.3-crypt.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- glibc-2.1.3.orig/crypt/sysdeps/unix/Makefile 1997-03-05 00:33:59 +0000 -+++ glibc-2.1.3/crypt/sysdeps/unix/Makefile 2000-06-11 03:13:41 +0000 -@@ -1,4 +1,4 @@ - ifeq ($(subdir),md5-crypt) --libcrypt-routines += crypt crypt_util --dont_distribute += crypt.c crypt_util.c -+libcrypt-routines += crypt crypt_util crypt_blowfish x86 crypt_gensalt wrapper -+dont_distribute += crypt.c crypt_util.c crypt_blowfish.c x86.S crypt_gensalt.c wrapper.c - endif ---- glibc-2.1.3.orig/crypt/sysdeps/unix/crypt-entry.c 1998-12-10 12:49:04 +0000 -+++ glibc-2.1.3/crypt/sysdeps/unix/crypt-entry.c 2000-06-11 03:14:57 +0000 -@@ -70,7 +70,7 @@ extern struct crypt_data _ufc_foobar; - */ - - char * --__crypt_r (key, salt, data) -+__des_crypt_r (key, salt, data) - const char *key; - const char *salt; - struct crypt_data * __restrict data; -@@ -115,6 +115,7 @@ __crypt_r (key, salt, data) - _ufc_output_conversion_r (res[0], res[1], salt, data); - return data->crypt_3_buf; - } -+#if 0 - weak_alias (__crypt_r, crypt_r) - - char * -@@ -147,3 +148,4 @@ __fcrypt (key, salt) - return crypt (key, salt); - } - #endif -+#endif ---- glibc-2.1.3.orig/md5-crypt/Makefile 1998-07-02 22:46:47 +0000 -+++ glibc-2.1.3/md5-crypt/Makefile 2000-06-11 03:12:34 +0000 -@@ -21,7 +21,7 @@ - # - subdir := md5-crypt - --headers := crypt.h -+headers := crypt.h gnu-crypt.h ow-crypt.h - - distribute := md5.h - ---- glibc-2.1.3.orig/md5-crypt/Versions 1998-07-02 22:32:07 +0000 -+++ glibc-2.1.3/md5-crypt/Versions 2000-06-11 09:11:03 +0000 -@@ -1,5 +1,6 @@ - libcrypt { - GLIBC_2.0 { - crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; -+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; - } - } diff --git a/deps/crypt_blowfish/glibc-2.14-crypt.diff b/deps/crypt_blowfish/glibc-2.14-crypt.diff deleted file mode 100644 index bacd12ed..00000000 --- a/deps/crypt_blowfish/glibc-2.14-crypt.diff +++ /dev/null @@ -1,55 +0,0 @@ -diff -urp glibc-2.14.orig/crypt/Makefile glibc-2.14/crypt/Makefile ---- glibc-2.14.orig/crypt/Makefile 2011-05-31 04:12:33 +0000 -+++ glibc-2.14/crypt/Makefile 2011-07-16 21:40:56 +0000 -@@ -22,6 +22,7 @@ - subdir := crypt - - headers := crypt.h -+headers += gnu-crypt.h ow-crypt.h - - extra-libs := libcrypt - extra-libs-others := $(extra-libs) -@@ -29,6 +30,8 @@ extra-libs-others := $(extra-libs) - libcrypt-routines := crypt-entry md5-crypt sha256-crypt sha512-crypt crypt \ - crypt_util - -+libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper -+ - tests := cert md5c-test sha256c-test sha512c-test - - distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \ -diff -urp glibc-2.14.orig/crypt/Versions glibc-2.14/crypt/Versions ---- glibc-2.14.orig/crypt/Versions 2011-05-31 04:12:33 +0000 -+++ glibc-2.14/crypt/Versions 2011-07-16 21:40:56 +0000 -@@ -1,5 +1,6 @@ - libcrypt { - GLIBC_2.0 { - crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; -+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; - } - } -diff -urp glibc-2.14.orig/crypt/crypt-entry.c glibc-2.14/crypt/crypt-entry.c ---- glibc-2.14.orig/crypt/crypt-entry.c 2011-05-31 04:12:33 +0000 -+++ glibc-2.14/crypt/crypt-entry.c 2011-07-16 21:40:56 +0000 -@@ -82,7 +82,7 @@ extern struct crypt_data _ufc_foobar; - */ - - char * --__crypt_r (key, salt, data) -+__des_crypt_r (key, salt, data) - const char *key; - const char *salt; - struct crypt_data * __restrict data; -@@ -137,6 +137,7 @@ __crypt_r (key, salt, data) - _ufc_output_conversion_r (res[0], res[1], salt, data); - return data->crypt_3_buf; - } -+#if 0 - weak_alias (__crypt_r, crypt_r) - - char * -@@ -177,3 +178,4 @@ __fcrypt (key, salt) - return crypt (key, salt); - } - #endif -+#endif diff --git a/deps/crypt_blowfish/glibc-2.3.6-crypt.diff b/deps/crypt_blowfish/glibc-2.3.6-crypt.diff deleted file mode 100644 index 4471054b..00000000 --- a/deps/crypt_blowfish/glibc-2.3.6-crypt.diff +++ /dev/null @@ -1,52 +0,0 @@ ---- glibc-2.3.6.orig/crypt/Makefile 2001-07-06 04:54:45 +0000 -+++ glibc-2.3.6/crypt/Makefile 2004-02-27 00:23:48 +0000 -@@ -21,14 +21,14 @@ - # - subdir := crypt - --headers := crypt.h -+headers := crypt.h gnu-crypt.h ow-crypt.h - - distribute := md5.h - - extra-libs := libcrypt - extra-libs-others := $(extra-libs) - --libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util -+libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util crypt_blowfish x86 crypt_gensalt wrapper - - tests = cert md5test md5c-test - ---- glibc-2.3.6.orig/crypt/Versions 2000-03-04 00:47:30 +0000 -+++ glibc-2.3.6/crypt/Versions 2004-02-27 00:25:15 +0000 -@@ -1,5 +1,6 @@ - libcrypt { - GLIBC_2.0 { - crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; -+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; - } - } ---- glibc-2.3.6.orig/crypt/crypt-entry.c 2001-07-06 05:18:49 +0000 -+++ glibc-2.3.6/crypt/crypt-entry.c 2004-02-27 00:12:32 +0000 -@@ -70,7 +70,7 @@ extern struct crypt_data _ufc_foobar; - */ - - char * --__crypt_r (key, salt, data) -+__des_crypt_r (key, salt, data) - const char *key; - const char *salt; - struct crypt_data * __restrict data; -@@ -115,6 +115,7 @@ __crypt_r (key, salt, data) - _ufc_output_conversion_r (res[0], res[1], salt, data); - return data->crypt_3_buf; - } -+#if 0 - weak_alias (__crypt_r, crypt_r) - - char * -@@ -147,3 +148,4 @@ __fcrypt (key, salt) - return crypt (key, salt); - } - #endif -+#endif diff --git a/deps/crypt_blowfish/ow-crypt.h b/deps/crypt_blowfish/ow-crypt.h deleted file mode 100644 index 2e487942..00000000 --- a/deps/crypt_blowfish/ow-crypt.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Written by Solar Designer in 2000-2011. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#ifndef _OW_CRYPT_H -#define _OW_CRYPT_H - -#ifndef __GNUC__ -#undef __const -#define __const const -#endif - -#ifndef __SKIP_GNU -extern char *crypt(__const char *key, __const char *setting); -extern char *crypt_r(__const char *key, __const char *setting, void *data); -#endif - -#ifndef __SKIP_OW -extern char *crypt_rn(__const char *key, __const char *setting, - void *data, int size); -extern char *crypt_ra(__const char *key, __const char *setting, - void **data, int *size); -extern char *crypt_gensalt(__const char *prefix, unsigned long count, - __const char *input, int size); -extern char *crypt_gensalt_rn(__const char *prefix, unsigned long count, - __const char *input, int size, char *output, int output_size); -extern char *crypt_gensalt_ra(__const char *prefix, unsigned long count, - __const char *input, int size); -#endif - -#endif diff --git a/deps/crypt_blowfish/wrapper.c b/deps/crypt_blowfish/wrapper.c deleted file mode 100644 index 1e49c90d..00000000 --- a/deps/crypt_blowfish/wrapper.c +++ /dev/null @@ -1,551 +0,0 @@ -/* - * Written by Solar Designer in 2000-2014. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2014 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#include -#include - -#include -#ifndef __set_errno -#define __set_errno(val) errno = (val) -#endif - -#ifdef TEST -#include -#include -#include -#include -#include -#include -#ifdef TEST_THREADS -#include -#endif -#endif - -#define CRYPT_OUTPUT_SIZE (7 + 22 + 31 + 1) -#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) - -#if defined(__GLIBC__) && defined(_LIBC) -#define __SKIP_GNU -#endif -#include "ow-crypt.h" - -#include "crypt_blowfish.h" -#include "crypt_gensalt.h" - -#if defined(__GLIBC__) && defined(_LIBC) -/* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ -#include "crypt.h" -extern char *__md5_crypt_r(const char *key, const char *salt, - char *buffer, int buflen); -/* crypt-entry.c needs to be patched to define __des_crypt_r rather than - * __crypt_r, and not define crypt_r and crypt at all */ -extern char *__des_crypt_r(const char *key, const char *salt, - struct crypt_data *data); -extern struct crypt_data _ufc_foobar; -#endif - -static int _crypt_data_alloc(void **data, int *size, int need) -{ - void *updated; - - if (*data && *size >= need) return 0; - - updated = realloc(*data, need); - - if (!updated) { -#ifndef __GLIBC__ - /* realloc(3) on glibc sets errno, so we don't need to bother */ - __set_errno(ENOMEM); -#endif - return -1; - } - -#if defined(__GLIBC__) && defined(_LIBC) - if (need >= sizeof(struct crypt_data)) - ((struct crypt_data *)updated)->initialized = 0; -#endif - - *data = updated; - *size = need; - - return 0; -} - -static char *_crypt_retval_magic(char *retval, const char *setting, - char *output, int size) -{ - if (retval) - return retval; - - if (_crypt_output_magic(setting, output, size)) - return NULL; /* shouldn't happen */ - - return output; -} - -#if defined(__GLIBC__) && defined(_LIBC) -/* - * Applications may re-use the same instance of struct crypt_data without - * resetting the initialized field in order to let crypt_r() skip some of - * its initialization code. Thus, it is important that our multiple hashing - * algorithms either don't conflict with each other in their use of the - * data area or reset the initialized field themselves whenever required. - * Currently, the hashing algorithms simply have no conflicts: the first - * field of struct crypt_data is the 128-byte large DES key schedule which - * __des_crypt_r() calculates each time it is called while the two other - * hashing algorithms use less than 128 bytes of the data area. - */ - -char *__crypt_rn(__const char *key, __const char *setting, - void *data, int size) -{ - if (setting[0] == '$' && setting[1] == '2') - return _crypt_blowfish_rn(key, setting, (char *)data, size); - if (setting[0] == '$' && setting[1] == '1') - return __md5_crypt_r(key, setting, (char *)data, size); - if (setting[0] == '$' || setting[0] == '_') { - __set_errno(EINVAL); - return NULL; - } - if (size >= sizeof(struct crypt_data)) - return __des_crypt_r(key, setting, (struct crypt_data *)data); - __set_errno(ERANGE); - return NULL; -} - -char *__crypt_ra(__const char *key, __const char *setting, - void **data, int *size) -{ - if (setting[0] == '$' && setting[1] == '2') { - if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) - return NULL; - return _crypt_blowfish_rn(key, setting, (char *)*data, *size); - } - if (setting[0] == '$' && setting[1] == '1') { - if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) - return NULL; - return __md5_crypt_r(key, setting, (char *)*data, *size); - } - if (setting[0] == '$' || setting[0] == '_') { - __set_errno(EINVAL); - return NULL; - } - if (_crypt_data_alloc(data, size, sizeof(struct crypt_data))) - return NULL; - return __des_crypt_r(key, setting, (struct crypt_data *)*data); -} - -char *__crypt_r(__const char *key, __const char *setting, - struct crypt_data *data) -{ - return _crypt_retval_magic( - __crypt_rn(key, setting, data, sizeof(*data)), - setting, (char *)data, sizeof(*data)); -} - -char *__crypt(__const char *key, __const char *setting) -{ - return _crypt_retval_magic( - __crypt_rn(key, setting, &_ufc_foobar, sizeof(_ufc_foobar)), - setting, (char *)&_ufc_foobar, sizeof(_ufc_foobar)); -} -#else -char *crypt_rn(const char *key, const char *setting, void *data, int size) -{ - return _crypt_blowfish_rn(key, setting, (char *)data, size); -} - -char *crypt_ra(const char *key, const char *setting, - void **data, int *size) -{ - if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) - return NULL; - return _crypt_blowfish_rn(key, setting, (char *)*data, *size); -} - -char *crypt_r(const char *key, const char *setting, void *data) -{ - return _crypt_retval_magic( - crypt_rn(key, setting, data, CRYPT_OUTPUT_SIZE), - setting, (char *)data, CRYPT_OUTPUT_SIZE); -} - -char *crypt(const char *key, const char *setting) -{ - static char output[CRYPT_OUTPUT_SIZE]; - - return _crypt_retval_magic( - crypt_rn(key, setting, output, sizeof(output)), - setting, output, sizeof(output)); -} - -#define __crypt_gensalt_rn crypt_gensalt_rn -#define __crypt_gensalt_ra crypt_gensalt_ra -#define __crypt_gensalt crypt_gensalt -#endif - -char *__crypt_gensalt_rn(const char *prefix, unsigned long count, - const char *input, int size, char *output, int output_size) -{ - char *(*use)(const char *_prefix, unsigned long _count, - const char *_input, int _size, - char *_output, int _output_size); - - /* This may be supported on some platforms in the future */ - if (!input) { - __set_errno(EINVAL); - return NULL; - } - - if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || - !strncmp(prefix, "$2y$", 4)) - use = _crypt_gensalt_blowfish_rn; - else - if (!strncmp(prefix, "$1$", 3)) - use = _crypt_gensalt_md5_rn; - else - if (prefix[0] == '_') - use = _crypt_gensalt_extended_rn; - else - if (!prefix[0] || - (prefix[0] && prefix[1] && - memchr(_crypt_itoa64, prefix[0], 64) && - memchr(_crypt_itoa64, prefix[1], 64))) - use = _crypt_gensalt_traditional_rn; - else { - __set_errno(EINVAL); - return NULL; - } - - return use(prefix, count, input, size, output, output_size); -} - -char *__crypt_gensalt_ra(const char *prefix, unsigned long count, - const char *input, int size) -{ - char output[CRYPT_GENSALT_OUTPUT_SIZE]; - char *retval; - - retval = __crypt_gensalt_rn(prefix, count, - input, size, output, sizeof(output)); - - if (retval) { - retval = strdup(retval); -#ifndef __GLIBC__ - /* strdup(3) on glibc sets errno, so we don't need to bother */ - if (!retval) - __set_errno(ENOMEM); -#endif - } - - return retval; -} - -char *__crypt_gensalt(const char *prefix, unsigned long count, - const char *input, int size) -{ - static char output[CRYPT_GENSALT_OUTPUT_SIZE]; - - return __crypt_gensalt_rn(prefix, count, - input, size, output, sizeof(output)); -} - -#if defined(__GLIBC__) && defined(_LIBC) -weak_alias(__crypt_rn, crypt_rn) -weak_alias(__crypt_ra, crypt_ra) -weak_alias(__crypt_r, crypt_r) -weak_alias(__crypt, crypt) -weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) -weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) -weak_alias(__crypt_gensalt, crypt_gensalt) -weak_alias(crypt, fcrypt) -#endif - -#ifdef TEST -static const char *tests[][3] = { - {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW", - "U*U"}, - {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK", - "U*U*"}, - {"$2a$05$XXXXXXXXXXXXXXXXXXXXXOAcXxm9kjPGEMsLznoKqmqw7tc8WCx4a", - "U*U*U"}, - {"$2a$05$abcdefghijklmnopqrstuu5s2v8.iXieOjg/.AySBTTZIIVFJeBui", - "0123456789abcdefghijklmnopqrstuvwxyz" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" - "chars after 72 are ignored"}, - {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.CE5elHaaO4EbggVDjb8P19RukzXSM3e", - "\xa3"}, - {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.CE5elHaaO4EbggVDjb8P19RukzXSM3e", - "\xff\xff\xa3"}, - {"$2y$05$/OK.fbVrR/bpIqNJ5ianF.CE5elHaaO4EbggVDjb8P19RukzXSM3e", - "\xff\xff\xa3"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.nqd1wy.pTMdcvrRWxyiGL2eMz.2a85.", - "\xff\xff\xa3"}, - {"$2b$05$/OK.fbVrR/bpIqNJ5ianF.CE5elHaaO4EbggVDjb8P19RukzXSM3e", - "\xff\xff\xa3"}, - {"$2y$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq", - "\xa3"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq", - "\xa3"}, - {"$2b$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq", - "\xa3"}, - {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.o./n25XVfn6oAPaUvHe.Csk4zRfsYPi", - "1\xa3" "345"}, - {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.o./n25XVfn6oAPaUvHe.Csk4zRfsYPi", - "\xff\xa3" "345"}, - {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.o./n25XVfn6oAPaUvHe.Csk4zRfsYPi", - "\xff\xa3" "34" "\xff\xff\xff\xa3" "345"}, - {"$2y$05$/OK.fbVrR/bpIqNJ5ianF.o./n25XVfn6oAPaUvHe.Csk4zRfsYPi", - "\xff\xa3" "34" "\xff\xff\xff\xa3" "345"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.ZC1JEJ8Z4gPfpe1JOr/oyPXTWl9EFd.", - "\xff\xa3" "34" "\xff\xff\xff\xa3" "345"}, - {"$2y$05$/OK.fbVrR/bpIqNJ5ianF.nRht2l/HRhr6zmCp9vYUvvsqynflf9e", - "\xff\xa3" "345"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.nRht2l/HRhr6zmCp9vYUvvsqynflf9e", - "\xff\xa3" "345"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.6IflQkJytoRVc1yuaNtHfiuq.FRlSIS", - "\xa3" "ab"}, - {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.6IflQkJytoRVc1yuaNtHfiuq.FRlSIS", - "\xa3" "ab"}, - {"$2y$05$/OK.fbVrR/bpIqNJ5ianF.6IflQkJytoRVc1yuaNtHfiuq.FRlSIS", - "\xa3" "ab"}, - {"$2x$05$6bNw2HLQYeqHYyBfLMsv/OiwqTymGIGzFsA4hOTWebfehXHNprcAS", - "\xd1\x91"}, - {"$2x$05$6bNw2HLQYeqHYyBfLMsv/O9LIGgn8OMzuDoHfof8AQimSGfcSWxnS", - "\xd0\xc1\xd2\xcf\xcc\xd8"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.swQOIzjOiJ9GHEPuhEkvqrUyvWhEMx6", - "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" - "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" - "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" - "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" - "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" - "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" - "chars after 72 are ignored as usual"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.R9xrDjiycxMbQE2bp.vgqlYpW5wx2yy", - "\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55" - "\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55" - "\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55" - "\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55" - "\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55" - "\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55"}, - {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.9tQZzcJfm3uj2NvJ/n5xkhpqLrMpWCe", - "\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff" - "\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff" - "\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff" - "\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff" - "\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff" - "\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff\x55\xaa\xff"}, - {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy", - ""}, - {"*0", "", "$2a$03$CCCCCCCCCCCCCCCCCCCCC."}, - {"*0", "", "$2a$32$CCCCCCCCCCCCCCCCCCCCC."}, - {"*0", "", "$2c$05$CCCCCCCCCCCCCCCCCCCCC."}, - {"*0", "", "$2z$05$CCCCCCCCCCCCCCCCCCCCC."}, - {"*0", "", "$2`$05$CCCCCCCCCCCCCCCCCCCCC."}, - {"*0", "", "$2{$05$CCCCCCCCCCCCCCCCCCCCC."}, - {"*1", "", "*0"}, - {NULL} -}; - -#define which tests[0] - -static volatile sig_atomic_t running; - -static void handle_timer(int signum) -{ - (void) signum; - running = 0; -} - -static void *run(void *arg) -{ - unsigned long count = 0; - int i = 0; - void *data = NULL; - int size = 0x12345678; - - do { - const char *hash = tests[i][0]; - const char *key = tests[i][1]; - const char *setting = tests[i][2]; - - if (!tests[++i][0]) - i = 0; - - if (setting && strlen(hash) < 30) /* not for benchmark */ - continue; - - if (strcmp(crypt_ra(key, hash, &data, &size), hash)) { - printf("%d: FAILED (crypt_ra/%d/%lu)\n", - (int)((char *)arg - (char *)0), i, count); - free(data); - return NULL; - } - count++; - } while (running); - - free(data); - return count + (char *)0; -} - -int main(void) -{ - struct itimerval it; - struct tms buf; - clock_t clk_tck, start_real, start_virtual, end_real, end_virtual; - unsigned long count; - void *data; - int size; - char *setting1, *setting2; - int i; -#ifdef TEST_THREADS - pthread_t t[TEST_THREADS]; - void *t_retval; -#endif - - data = NULL; - size = 0x12345678; - - for (i = 0; tests[i][0]; i++) { - const char *hash = tests[i][0]; - const char *key = tests[i][1]; - const char *setting = tests[i][2]; - const char *p; - int ok = !setting || strlen(hash) >= 30; - int o_size; - char s_buf[30], o_buf[61]; - if (!setting) { - memcpy(s_buf, hash, sizeof(s_buf) - 1); - s_buf[sizeof(s_buf) - 1] = 0; - setting = s_buf; - } - - __set_errno(0); - p = crypt(key, setting); - if ((!ok && !errno) || strcmp(p, hash)) { - printf("FAILED (crypt/%d)\n", i); - return 1; - } - - if (ok && strcmp(crypt(key, hash), hash)) { - printf("FAILED (crypt/%d)\n", i); - return 1; - } - - for (o_size = -1; o_size <= (int)sizeof(o_buf); o_size++) { - int ok_n = ok && o_size == (int)sizeof(o_buf); - const char *x = "abc"; - strcpy(o_buf, x); - if (o_size >= 3) { - x = "*0"; - if (setting[0] == '*' && setting[1] == '0') - x = "*1"; - } - __set_errno(0); - p = crypt_rn(key, setting, o_buf, o_size); - if ((ok_n && (!p || strcmp(p, hash))) || - (!ok_n && (!errno || p || strcmp(o_buf, x)))) { - printf("FAILED (crypt_rn/%d)\n", i); - return 1; - } - } - - __set_errno(0); - p = crypt_ra(key, setting, &data, &size); - if ((ok && (!p || strcmp(p, hash))) || - (!ok && (!errno || p || strcmp((char *)data, hash)))) { - printf("FAILED (crypt_ra/%d)\n", i); - return 1; - } - } - - setting1 = crypt_gensalt(which[0], 12, data, size); - if (!setting1 || strncmp(setting1, "$2a$12$", 7)) { - puts("FAILED (crypt_gensalt)\n"); - return 1; - } - - setting2 = crypt_gensalt_ra(setting1, 12, data, size); - if (strcmp(setting1, setting2)) { - puts("FAILED (crypt_gensalt_ra/1)\n"); - return 1; - } - - (*(char *)data)++; - setting1 = crypt_gensalt_ra(setting2, 12, data, size); - if (!strcmp(setting1, setting2)) { - puts("FAILED (crypt_gensalt_ra/2)\n"); - return 1; - } - - free(setting1); - free(setting2); - free(data); - -#if defined(_SC_CLK_TCK) || !defined(CLK_TCK) - clk_tck = sysconf(_SC_CLK_TCK); -#else - clk_tck = CLK_TCK; -#endif - - running = 1; - signal(SIGALRM, handle_timer); - - memset(&it, 0, sizeof(it)); - it.it_value.tv_sec = 5; - setitimer(ITIMER_REAL, &it, NULL); - - start_real = times(&buf); - start_virtual = buf.tms_utime + buf.tms_stime; - - count = (char *)run((char *)0) - (char *)0; - - end_real = times(&buf); - end_virtual = buf.tms_utime + buf.tms_stime; - if (end_virtual == start_virtual) end_virtual++; - - printf("%.1f c/s real, %.1f c/s virtual\n", - (float)count * clk_tck / (end_real - start_real), - (float)count * clk_tck / (end_virtual - start_virtual)); - -#ifdef TEST_THREADS - running = 1; - it.it_value.tv_sec = 60; - setitimer(ITIMER_REAL, &it, NULL); - start_real = times(&buf); - - for (i = 0; i < TEST_THREADS; i++) - if (pthread_create(&t[i], NULL, run, i + (char *)0)) { - perror("pthread_create"); - return 1; - } - - for (i = 0; i < TEST_THREADS; i++) { - if (pthread_join(t[i], &t_retval)) { - perror("pthread_join"); - continue; - } - if (!t_retval) continue; - count = (char *)t_retval - (char *)0; - end_real = times(&buf); - printf("%d: %.1f c/s real\n", i, - (float)count * clk_tck / (end_real - start_real)); - } -#endif - - return 0; -} -#endif diff --git a/deps/crypt_blowfish/x86.S b/deps/crypt_blowfish/x86.S deleted file mode 100644 index b0f1cd2e..00000000 --- a/deps/crypt_blowfish/x86.S +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Written by Solar Designer in 1998-2010. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 1998-2010 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#ifdef __i386__ - -#if defined(__OpenBSD__) && !defined(__ELF__) -#define UNDERSCORES -#define ALIGN_LOG -#endif - -#if defined(__CYGWIN32__) || defined(__MINGW32__) -#define UNDERSCORES -#endif - -#ifdef __DJGPP__ -#define UNDERSCORES -#define ALIGN_LOG -#endif - -#ifdef UNDERSCORES -#define _BF_body_r __BF_body_r -#endif - -#ifdef ALIGN_LOG -#define DO_ALIGN(log) .align (log) -#elif defined(DUMBAS) -#define DO_ALIGN(log) .align 1 << log -#else -#define DO_ALIGN(log) .align (1 << (log)) -#endif - -#define BF_FRAME 0x200 -#define ctx %esp - -#define BF_ptr (ctx) - -#define S(N, r) N+BF_FRAME(ctx,r,4) -#ifdef DUMBAS -#define P(N) 0x1000+N+N+N+N+BF_FRAME(ctx) -#else -#define P(N) 0x1000+4*N+BF_FRAME(ctx) -#endif - -/* - * This version of the assembly code is optimized primarily for the original - * Intel Pentium but is also careful to avoid partial register stalls on the - * Pentium Pro family of processors (tested up to Pentium III Coppermine). - * - * It is possible to do 15% faster on the Pentium Pro family and probably on - * many non-Intel x86 processors, but, unfortunately, that would make things - * twice slower for the original Pentium. - * - * An additional 2% speedup may be achieved with non-reentrant code. - */ - -#define L %esi -#define R %edi -#define tmp1 %eax -#define tmp1_lo %al -#define tmp2 %ecx -#define tmp2_hi %ch -#define tmp3 %edx -#define tmp3_lo %dl -#define tmp4 %ebx -#define tmp4_hi %bh -#define tmp5 %ebp - -.text - -#define BF_ROUND(L, R, N) \ - xorl L,tmp2; \ - xorl tmp1,tmp1; \ - movl tmp2,L; \ - shrl $16,tmp2; \ - movl L,tmp4; \ - movb tmp2_hi,tmp1_lo; \ - andl $0xFF,tmp2; \ - movb tmp4_hi,tmp3_lo; \ - andl $0xFF,tmp4; \ - movl S(0,tmp1),tmp1; \ - movl S(0x400,tmp2),tmp5; \ - addl tmp5,tmp1; \ - movl S(0x800,tmp3),tmp5; \ - xorl tmp5,tmp1; \ - movl S(0xC00,tmp4),tmp5; \ - addl tmp1,tmp5; \ - movl 4+P(N),tmp2; \ - xorl tmp5,R - -#define BF_ENCRYPT_START \ - BF_ROUND(L, R, 0); \ - BF_ROUND(R, L, 1); \ - BF_ROUND(L, R, 2); \ - BF_ROUND(R, L, 3); \ - BF_ROUND(L, R, 4); \ - BF_ROUND(R, L, 5); \ - BF_ROUND(L, R, 6); \ - BF_ROUND(R, L, 7); \ - BF_ROUND(L, R, 8); \ - BF_ROUND(R, L, 9); \ - BF_ROUND(L, R, 10); \ - BF_ROUND(R, L, 11); \ - BF_ROUND(L, R, 12); \ - BF_ROUND(R, L, 13); \ - BF_ROUND(L, R, 14); \ - BF_ROUND(R, L, 15); \ - movl BF_ptr,tmp5; \ - xorl L,tmp2; \ - movl P(17),L - -#define BF_ENCRYPT_END \ - xorl R,L; \ - movl tmp2,R - -DO_ALIGN(5) -.globl _BF_body_r -_BF_body_r: - movl 4(%esp),%eax - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - subl $BF_FRAME-8,%eax - xorl L,L - cmpl %esp,%eax - ja BF_die - xchgl %eax,%esp - xorl R,R - pushl %eax - leal 0x1000+BF_FRAME-4(ctx),%eax - movl 0x1000+BF_FRAME-4(ctx),tmp2 - pushl %eax - xorl tmp3,tmp3 -BF_loop_P: - BF_ENCRYPT_START - addl $8,tmp5 - BF_ENCRYPT_END - leal 0x1000+18*4+BF_FRAME(ctx),tmp1 - movl tmp5,BF_ptr - cmpl tmp5,tmp1 - movl L,-8(tmp5) - movl R,-4(tmp5) - movl P(0),tmp2 - ja BF_loop_P - leal BF_FRAME(ctx),tmp5 - xorl tmp3,tmp3 - movl tmp5,BF_ptr -BF_loop_S: - BF_ENCRYPT_START - BF_ENCRYPT_END - movl P(0),tmp2 - movl L,(tmp5) - movl R,4(tmp5) - BF_ENCRYPT_START - BF_ENCRYPT_END - movl P(0),tmp2 - movl L,8(tmp5) - movl R,12(tmp5) - BF_ENCRYPT_START - BF_ENCRYPT_END - movl P(0),tmp2 - movl L,16(tmp5) - movl R,20(tmp5) - BF_ENCRYPT_START - addl $32,tmp5 - BF_ENCRYPT_END - leal 0x1000+BF_FRAME(ctx),tmp1 - movl tmp5,BF_ptr - cmpl tmp5,tmp1 - movl P(0),tmp2 - movl L,-8(tmp5) - movl R,-4(tmp5) - ja BF_loop_S - movl 4(%esp),%esp - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - -BF_die: -/* Oops, need to re-compile with a larger BF_FRAME. */ - hlt - jmp BF_die - -#endif - -#if defined(__ELF__) && defined(__linux__) -.section .note.GNU-stack,"",@progbits -#endif diff --git a/deps/libbacktrace b/deps/libbacktrace new file mode 160000 index 00000000..7ead8c1e --- /dev/null +++ b/deps/libbacktrace @@ -0,0 +1 @@ +Subproject commit 7ead8c1ea2f4aeafe9c5b9ef8a9461a9ba781aa8 diff --git a/deps/libbacktrace/.gitignore b/deps/libbacktrace/.gitignore deleted file mode 100644 index 86a40a0e..00000000 --- a/deps/libbacktrace/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -*~ -*.o -*.lo -*.a -*.la diff --git a/deps/libbacktrace/Isaac.Newton-Opticks.txt b/deps/libbacktrace/Isaac.Newton-Opticks.txt deleted file mode 100644 index 15bb4c54..00000000 --- a/deps/libbacktrace/Isaac.Newton-Opticks.txt +++ /dev/null @@ -1,9286 +0,0 @@ -Produced by Suzanne Lybarger, steve harris, Josephine -Paolucci and the Online Distributed Proofreading Team at -http://www.pgdp.net. - - - - - - -OPTICKS: - -OR, A - -TREATISE - -OF THE - -_Reflections_, _Refractions_, -_Inflections_ and _Colours_ - -OF - -LIGHT. - -_The_ FOURTH EDITION, _corrected_. - -By Sir _ISAAC NEWTON_, Knt. - -LONDON: - -Printed for WILLIAM INNYS at the West-End of St. _Paul's_. MDCCXXX. - -TITLE PAGE OF THE 1730 EDITION - - - - -SIR ISAAC NEWTON'S ADVERTISEMENTS - - - - -Advertisement I - - -_Part of the ensuing Discourse about Light was written at the Desire of -some Gentlemen of the_ Royal-Society, _in the Year 1675, and then sent -to their Secretary, and read at their Meetings, and the rest was added -about twelve Years after to complete the Theory; except the third Book, -and the last Proposition of the Second, which were since put together -out of scatter'd Papers. To avoid being engaged in Disputes about these -Matters, I have hitherto delayed the printing, and should still have -delayed it, had not the Importunity of Friends prevailed upon me. If any -other Papers writ on this Subject are got out of my Hands they are -imperfect, and were perhaps written before I had tried all the -Experiments here set down, and fully satisfied my self about the Laws of -Refractions and Composition of Colours. I have here publish'd what I -think proper to come abroad, wishing that it may not be translated into -another Language without my Consent._ - -_The Crowns of Colours, which sometimes appear about the Sun and Moon, I -have endeavoured to give an Account of; but for want of sufficient -Observations leave that Matter to be farther examined. The Subject of -the Third Book I have also left imperfect, not having tried all the -Experiments which I intended when I was about these Matters, nor -repeated some of those which I did try, until I had satisfied my self -about all their Circumstances. To communicate what I have tried, and -leave the rest to others for farther Enquiry, is all my Design in -publishing these Papers._ - -_In a Letter written to Mr._ Leibnitz _in the year 1679, and published -by Dr._ Wallis, _I mention'd a Method by which I had found some general -Theorems about squaring Curvilinear Figures, or comparing them with the -Conic Sections, or other the simplest Figures with which they may be -compared. And some Years ago I lent out a Manuscript containing such -Theorems, and having since met with some Things copied out of it, I have -on this Occasion made it publick, prefixing to it an_ Introduction, _and -subjoining a_ Scholium _concerning that Method. And I have joined with -it another small Tract concerning the Curvilinear Figures of the Second -Kind, which was also written many Years ago, and made known to some -Friends, who have solicited the making it publick._ - - _I. N._ - -April 1, 1704. - - -Advertisement II - -_In this Second Edition of these Opticks I have omitted the Mathematical -Tracts publish'd at the End of the former Edition, as not belonging to -the Subject. And at the End of the Third Book I have added some -Questions. And to shew that I do not take Gravity for an essential -Property of Bodies, I have added one Question concerning its Cause, -chusing to propose it by way of a Question, because I am not yet -satisfied about it for want of Experiments._ - - _I. N._ - -July 16, 1717. - - -Advertisement to this Fourth Edition - -_This new Edition of Sir_ Isaac Newton's Opticks _is carefully printed -from the Third Edition, as it was corrected by the Author's own Hand, -and left before his Death with the Bookseller. Since Sir_ Isaac's -Lectiones Opticæ, _which he publickly read in the University of_ -Cambridge _in the Years 1669, 1670, and 1671, are lately printed, it has -been thought proper to make at the bottom of the Pages several Citations -from thence, where may be found the Demonstrations, which the Author -omitted in these_ Opticks. - - * * * * * - -Transcriber's Note: There are several greek letters used in the -descriptions of the illustrations. They are signified by [Greek: -letter]. Square roots are noted by the letters sqrt before the equation. - - * * * * * - -THE FIRST BOOK OF OPTICKS - - - - -_PART I._ - - -My Design in this Book is not to explain the Properties of Light by -Hypotheses, but to propose and prove them by Reason and Experiments: In -order to which I shall premise the following Definitions and Axioms. - - - - -_DEFINITIONS_ - - -DEFIN. I. - -_By the Rays of Light I understand its least Parts, and those as well -Successive in the same Lines, as Contemporary in several Lines._ For it -is manifest that Light consists of Parts, both Successive and -Contemporary; because in the same place you may stop that which comes -one moment, and let pass that which comes presently after; and in the -same time you may stop it in any one place, and let it pass in any -other. For that part of Light which is stopp'd cannot be the same with -that which is let pass. The least Light or part of Light, which may be -stopp'd alone without the rest of the Light, or propagated alone, or do -or suffer any thing alone, which the rest of the Light doth not or -suffers not, I call a Ray of Light. - - -DEFIN. II. - -_Refrangibility of the Rays of Light, is their Disposition to be -refracted or turned out of their Way in passing out of one transparent -Body or Medium into another. And a greater or less Refrangibility of -Rays, is their Disposition to be turned more or less out of their Way in -like Incidences on the same Medium._ Mathematicians usually consider the -Rays of Light to be Lines reaching from the luminous Body to the Body -illuminated, and the refraction of those Rays to be the bending or -breaking of those lines in their passing out of one Medium into another. -And thus may Rays and Refractions be considered, if Light be propagated -in an instant. But by an Argument taken from the Æquations of the times -of the Eclipses of _Jupiter's Satellites_, it seems that Light is -propagated in time, spending in its passage from the Sun to us about -seven Minutes of time: And therefore I have chosen to define Rays and -Refractions in such general terms as may agree to Light in both cases. - - -DEFIN. III. - -_Reflexibility of Rays, is their Disposition to be reflected or turned -back into the same Medium from any other Medium upon whose Surface they -fall. And Rays are more or less reflexible, which are turned back more -or less easily._ As if Light pass out of a Glass into Air, and by being -inclined more and more to the common Surface of the Glass and Air, -begins at length to be totally reflected by that Surface; those sorts of -Rays which at like Incidences are reflected most copiously, or by -inclining the Rays begin soonest to be totally reflected, are most -reflexible. - - -DEFIN. IV. - -_The Angle of Incidence is that Angle, which the Line described by the -incident Ray contains with the Perpendicular to the reflecting or -refracting Surface at the Point of Incidence._ - - -DEFIN. V. - -_The Angle of Reflexion or Refraction, is the Angle which the line -described by the reflected or refracted Ray containeth with the -Perpendicular to the reflecting or refracting Surface at the Point of -Incidence._ - - -DEFIN. VI. - -_The Sines of Incidence, Reflexion, and Refraction, are the Sines of the -Angles of Incidence, Reflexion, and Refraction._ - - -DEFIN. VII - -_The Light whose Rays are all alike Refrangible, I call Simple, -Homogeneal and Similar; and that whose Rays are some more Refrangible -than others, I call Compound, Heterogeneal and Dissimilar._ The former -Light I call Homogeneal, not because I would affirm it so in all -respects, but because the Rays which agree in Refrangibility, agree at -least in all those their other Properties which I consider in the -following Discourse. - - -DEFIN. VIII. - -_The Colours of Homogeneal Lights, I call Primary, Homogeneal and -Simple; and those of Heterogeneal Lights, Heterogeneal and Compound._ -For these are always compounded of the colours of Homogeneal Lights; as -will appear in the following Discourse. - - - - -_AXIOMS._ - - -AX. I. - -_The Angles of Reflexion and Refraction, lie in one and the same Plane -with the Angle of Incidence._ - - -AX. II. - -_The Angle of Reflexion is equal to the Angle of Incidence._ - - -AX. III. - -_If the refracted Ray be returned directly back to the Point of -Incidence, it shall be refracted into the Line before described by the -incident Ray._ - - -AX. IV. - -_Refraction out of the rarer Medium into the denser, is made towards the -Perpendicular; that is, so that the Angle of Refraction be less than the -Angle of Incidence._ - - -AX. V. - -_The Sine of Incidence is either accurately or very nearly in a given -Ratio to the Sine of Refraction._ - -Whence if that Proportion be known in any one Inclination of the -incident Ray, 'tis known in all the Inclinations, and thereby the -Refraction in all cases of Incidence on the same refracting Body may be -determined. Thus if the Refraction be made out of Air into Water, the -Sine of Incidence of the red Light is to the Sine of its Refraction as 4 -to 3. If out of Air into Glass, the Sines are as 17 to 11. In Light of -other Colours the Sines have other Proportions: but the difference is so -little that it need seldom be considered. - -[Illustration: FIG. 1] - -Suppose therefore, that RS [in _Fig._ 1.] represents the Surface of -stagnating Water, and that C is the point of Incidence in which any Ray -coming in the Air from A in the Line AC is reflected or refracted, and I -would know whither this Ray shall go after Reflexion or Refraction: I -erect upon the Surface of the Water from the point of Incidence the -Perpendicular CP and produce it downwards to Q, and conclude by the -first Axiom, that the Ray after Reflexion and Refraction, shall be -found somewhere in the Plane of the Angle of Incidence ACP produced. I -let fall therefore upon the Perpendicular CP the Sine of Incidence AD; -and if the reflected Ray be desired, I produce AD to B so that DB be -equal to AD, and draw CB. For this Line CB shall be the reflected Ray; -the Angle of Reflexion BCP and its Sine BD being equal to the Angle and -Sine of Incidence, as they ought to be by the second Axiom, But if the -refracted Ray be desired, I produce AD to H, so that DH may be to AD as -the Sine of Refraction to the Sine of Incidence, that is, (if the Light -be red) as 3 to 4; and about the Center C and in the Plane ACP with the -Radius CA describing a Circle ABE, I draw a parallel to the -Perpendicular CPQ, the Line HE cutting the Circumference in E, and -joining CE, this Line CE shall be the Line of the refracted Ray. For if -EF be let fall perpendicularly on the Line PQ, this Line EF shall be the -Sine of Refraction of the Ray CE, the Angle of Refraction being ECQ; and -this Sine EF is equal to DH, and consequently in Proportion to the Sine -of Incidence AD as 3 to 4. - -In like manner, if there be a Prism of Glass (that is, a Glass bounded -with two Equal and Parallel Triangular ends, and three plain and well -polished Sides, which meet in three Parallel Lines running from the -three Angles of one end to the three Angles of the other end) and if the -Refraction of the Light in passing cross this Prism be desired: Let ACB -[in _Fig._ 2.] represent a Plane cutting this Prism transversly to its -three Parallel lines or edges there where the Light passeth through it, -and let DE be the Ray incident upon the first side of the Prism AC where -the Light goes into the Glass; and by putting the Proportion of the Sine -of Incidence to the Sine of Refraction as 17 to 11 find EF the first -refracted Ray. Then taking this Ray for the Incident Ray upon the second -side of the Glass BC where the Light goes out, find the next refracted -Ray FG by putting the Proportion of the Sine of Incidence to the Sine of -Refraction as 11 to 17. For if the Sine of Incidence out of Air into -Glass be to the Sine of Refraction as 17 to 11, the Sine of Incidence -out of Glass into Air must on the contrary be to the Sine of Refraction -as 11 to 17, by the third Axiom. - -[Illustration: FIG. 2.] - -Much after the same manner, if ACBD [in _Fig._ 3.] represent a Glass -spherically convex on both sides (usually called a _Lens_, such as is a -Burning-glass, or Spectacle-glass, or an Object-glass of a Telescope) -and it be required to know how Light falling upon it from any lucid -point Q shall be refracted, let QM represent a Ray falling upon any -point M of its first spherical Surface ACB, and by erecting a -Perpendicular to the Glass at the point M, find the first refracted Ray -MN by the Proportion of the Sines 17 to 11. Let that Ray in going out of -the Glass be incident upon N, and then find the second refracted Ray -N_q_ by the Proportion of the Sines 11 to 17. And after the same manner -may the Refraction be found when the Lens is convex on one side and -plane or concave on the other, or concave on both sides. - -[Illustration: FIG. 3.] - - -AX. VI. - -_Homogeneal Rays which flow from several Points of any Object, and fall -perpendicularly or almost perpendicularly on any reflecting or -refracting Plane or spherical Surface, shall afterwards diverge from so -many other Points, or be parallel to so many other Lines, or converge to -so many other Points, either accurately or without any sensible Error. -And the same thing will happen, if the Rays be reflected or refracted -successively by two or three or more Plane or Spherical Surfaces._ - -The Point from which Rays diverge or to which they converge may be -called their _Focus_. And the Focus of the incident Rays being given, -that of the reflected or refracted ones may be found by finding the -Refraction of any two Rays, as above; or more readily thus. - -_Cas._ 1. Let ACB [in _Fig._ 4.] be a reflecting or refracting Plane, -and Q the Focus of the incident Rays, and Q_q_C a Perpendicular to that -Plane. And if this Perpendicular be produced to _q_, so that _q_C be -equal to QC, the Point _q_ shall be the Focus of the reflected Rays: Or -if _q_C be taken on the same side of the Plane with QC, and in -proportion to QC as the Sine of Incidence to the Sine of Refraction, the -Point _q_ shall be the Focus of the refracted Rays. - -[Illustration: FIG. 4.] - -_Cas._ 2. Let ACB [in _Fig._ 5.] be the reflecting Surface of any Sphere -whose Centre is E. Bisect any Radius thereof, (suppose EC) in T, and if -in that Radius on the same side the Point T you take the Points Q and -_q_, so that TQ, TE, and T_q_, be continual Proportionals, and the Point -Q be the Focus of the incident Rays, the Point _q_ shall be the Focus of -the reflected ones. - -[Illustration: FIG. 5.] - -_Cas._ 3. Let ACB [in _Fig._ 6.] be the refracting Surface of any Sphere -whose Centre is E. In any Radius thereof EC produced both ways take ET -and C_t_ equal to one another and severally in such Proportion to that -Radius as the lesser of the Sines of Incidence and Refraction hath to -the difference of those Sines. And then if in the same Line you find any -two Points Q and _q_, so that TQ be to ET as E_t_ to _tq_, taking _tq_ -the contrary way from _t_ which TQ lieth from T, and if the Point Q be -the Focus of any incident Rays, the Point _q_ shall be the Focus of the -refracted ones. - -[Illustration: FIG. 6.] - -And by the same means the Focus of the Rays after two or more Reflexions -or Refractions may be found. - -[Illustration: FIG. 7.] - -_Cas._ 4. Let ACBD [in _Fig._ 7.] be any refracting Lens, spherically -Convex or Concave or Plane on either side, and let CD be its Axis (that -is, the Line which cuts both its Surfaces perpendicularly, and passes -through the Centres of the Spheres,) and in this Axis produced let F and -_f_ be the Foci of the refracted Rays found as above, when the incident -Rays on both sides the Lens are parallel to the same Axis; and upon the -Diameter F_f_ bisected in E, describe a Circle. Suppose now that any -Point Q be the Focus of any incident Rays. Draw QE cutting the said -Circle in T and _t_, and therein take _tq_ in such proportion to _t_E as -_t_E or TE hath to TQ. Let _tq_ lie the contrary way from _t_ which TQ -doth from T, and _q_ shall be the Focus of the refracted Rays without -any sensible Error, provided the Point Q be not so remote from the Axis, -nor the Lens so broad as to make any of the Rays fall too obliquely on -the refracting Surfaces.[A] - -And by the like Operations may the reflecting or refracting Surfaces be -found when the two Foci are given, and thereby a Lens be formed, which -shall make the Rays flow towards or from what Place you please.[B] - -So then the Meaning of this Axiom is, that if Rays fall upon any Plane -or Spherical Surface or Lens, and before their Incidence flow from or -towards any Point Q, they shall after Reflexion or Refraction flow from -or towards the Point _q_ found by the foregoing Rules. And if the -incident Rays flow from or towards several points Q, the reflected or -refracted Rays shall flow from or towards so many other Points _q_ -found by the same Rules. Whether the reflected and refracted Rays flow -from or towards the Point _q_ is easily known by the situation of that -Point. For if that Point be on the same side of the reflecting or -refracting Surface or Lens with the Point Q, and the incident Rays flow -from the Point Q, the reflected flow towards the Point _q_ and the -refracted from it; and if the incident Rays flow towards Q, the -reflected flow from _q_, and the refracted towards it. And the contrary -happens when _q_ is on the other side of the Surface. - - -AX. VII. - -_Wherever the Rays which come from all the Points of any Object meet -again in so many Points after they have been made to converge by -Reflection or Refraction, there they will make a Picture of the Object -upon any white Body on which they fall._ - -So if PR [in _Fig._ 3.] represent any Object without Doors, and AB be a -Lens placed at a hole in the Window-shut of a dark Chamber, whereby the -Rays that come from any Point Q of that Object are made to converge and -meet again in the Point _q_; and if a Sheet of white Paper be held at -_q_ for the Light there to fall upon it, the Picture of that Object PR -will appear upon the Paper in its proper shape and Colours. For as the -Light which comes from the Point Q goes to the Point _q_, so the Light -which comes from other Points P and R of the Object, will go to so many -other correspondent Points _p_ and _r_ (as is manifest by the sixth -Axiom;) so that every Point of the Object shall illuminate a -correspondent Point of the Picture, and thereby make a Picture like the -Object in Shape and Colour, this only excepted, that the Picture shall -be inverted. And this is the Reason of that vulgar Experiment of casting -the Species of Objects from abroad upon a Wall or Sheet of white Paper -in a dark Room. - -In like manner, when a Man views any Object PQR, [in _Fig._ 8.] the -Light which comes from the several Points of the Object is so refracted -by the transparent skins and humours of the Eye, (that is, by the -outward coat EFG, called the _Tunica Cornea_, and by the crystalline -humour AB which is beyond the Pupil _mk_) as to converge and meet again -in so many Points in the bottom of the Eye, and there to paint the -Picture of the Object upon that skin (called the _Tunica Retina_) with -which the bottom of the Eye is covered. For Anatomists, when they have -taken off from the bottom of the Eye that outward and most thick Coat -called the _Dura Mater_, can then see through the thinner Coats, the -Pictures of Objects lively painted thereon. And these Pictures, -propagated by Motion along the Fibres of the Optick Nerves into the -Brain, are the cause of Vision. For accordingly as these Pictures are -perfect or imperfect, the Object is seen perfectly or imperfectly. If -the Eye be tinged with any colour (as in the Disease of the _Jaundice_) -so as to tinge the Pictures in the bottom of the Eye with that Colour, -then all Objects appear tinged with the same Colour. If the Humours of -the Eye by old Age decay, so as by shrinking to make the _Cornea_ and -Coat of the _Crystalline Humour_ grow flatter than before, the Light -will not be refracted enough, and for want of a sufficient Refraction -will not converge to the bottom of the Eye but to some place beyond it, -and by consequence paint in the bottom of the Eye a confused Picture, -and according to the Indistinctness of this Picture the Object will -appear confused. This is the reason of the decay of sight in old Men, -and shews why their Sight is mended by Spectacles. For those Convex -glasses supply the defect of plumpness in the Eye, and by increasing the -Refraction make the Rays converge sooner, so as to convene distinctly at -the bottom of the Eye if the Glass have a due degree of convexity. And -the contrary happens in short-sighted Men whose Eyes are too plump. For -the Refraction being now too great, the Rays converge and convene in the -Eyes before they come at the bottom; and therefore the Picture made in -the bottom and the Vision caused thereby will not be distinct, unless -the Object be brought so near the Eye as that the place where the -converging Rays convene may be removed to the bottom, or that the -plumpness of the Eye be taken off and the Refractions diminished by a -Concave-glass of a due degree of Concavity, or lastly that by Age the -Eye grow flatter till it come to a due Figure: For short-sighted Men see -remote Objects best in Old Age, and therefore they are accounted to have -the most lasting Eyes. - -[Illustration: FIG. 8.] - - -AX. VIII. - -_An Object seen by Reflexion or Refraction, appears in that place from -whence the Rays after their last Reflexion or Refraction diverge in -falling on the Spectator's Eye._ - -[Illustration: FIG. 9.] - -If the Object A [in FIG. 9.] be seen by Reflexion of a Looking-glass -_mn_, it shall appear, not in its proper place A, but behind the Glass -at _a_, from whence any Rays AB, AC, AD, which flow from one and the -same Point of the Object, do after their Reflexion made in the Points B, -C, D, diverge in going from the Glass to E, F, G, where they are -incident on the Spectator's Eyes. For these Rays do make the same -Picture in the bottom of the Eyes as if they had come from the Object -really placed at _a_ without the Interposition of the Looking-glass; and -all Vision is made according to the place and shape of that Picture. - -In like manner the Object D [in FIG. 2.] seen through a Prism, appears -not in its proper place D, but is thence translated to some other place -_d_ situated in the last refracted Ray FG drawn backward from F to _d_. - -[Illustration: FIG. 10.] - -And so the Object Q [in FIG. 10.] seen through the Lens AB, appears at -the place _q_ from whence the Rays diverge in passing from the Lens to -the Eye. Now it is to be noted, that the Image of the Object at _q_ is -so much bigger or lesser than the Object it self at Q, as the distance -of the Image at _q_ from the Lens AB is bigger or less than the distance -of the Object at Q from the same Lens. And if the Object be seen through -two or more such Convex or Concave-glasses, every Glass shall make a new -Image, and the Object shall appear in the place of the bigness of the -last Image. Which consideration unfolds the Theory of Microscopes and -Telescopes. For that Theory consists in almost nothing else than the -describing such Glasses as shall make the last Image of any Object as -distinct and large and luminous as it can conveniently be made. - -I have now given in Axioms and their Explications the sum of what hath -hitherto been treated of in Opticks. For what hath been generally -agreed on I content my self to assume under the notion of Principles, in -order to what I have farther to write. And this may suffice for an -Introduction to Readers of quick Wit and good Understanding not yet -versed in Opticks: Although those who are already acquainted with this -Science, and have handled Glasses, will more readily apprehend what -followeth. - -FOOTNOTES: - -[A] In our Author's _Lectiones Opticæ_, Part I. Sect. IV. Prop 29, 30, -there is an elegant Method of determining these _Foci_; not only in -spherical Surfaces, but likewise in any other curved Figure whatever: -And in Prop. 32, 33, the same thing is done for any Ray lying out of the -Axis. - -[B] _Ibid._ Prop. 34. - - - - -_PROPOSITIONS._ - - - -_PROP._ I. THEOR. I. - -_Lights which differ in Colour, differ also in Degrees of -Refrangibility._ - -The PROOF by Experiments. - -_Exper._ 1. - -I took a black oblong stiff Paper terminated by Parallel Sides, and with -a Perpendicular right Line drawn cross from one Side to the other, -distinguished it into two equal Parts. One of these parts I painted with -a red colour and the other with a blue. The Paper was very black, and -the Colours intense and thickly laid on, that the Phænomenon might be -more conspicuous. This Paper I view'd through a Prism of solid Glass, -whose two Sides through which the Light passed to the Eye were plane and -well polished, and contained an Angle of about sixty degrees; which -Angle I call the refracting Angle of the Prism. And whilst I view'd it, -I held it and the Prism before a Window in such manner that the Sides of -the Paper were parallel to the Prism, and both those Sides and the Prism -were parallel to the Horizon, and the cross Line was also parallel to -it: and that the Light which fell from the Window upon the Paper made an -Angle with the Paper, equal to that Angle which was made with the same -Paper by the Light reflected from it to the Eye. Beyond the Prism was -the Wall of the Chamber under the Window covered over with black Cloth, -and the Cloth was involved in Darkness that no Light might be reflected -from thence, which in passing by the Edges of the Paper to the Eye, -might mingle itself with the Light of the Paper, and obscure the -Phænomenon thereof. These things being thus ordered, I found that if the -refracting Angle of the Prism be turned upwards, so that the Paper may -seem to be lifted upwards by the Refraction, its blue half will be -lifted higher by the Refraction than its red half. But if the refracting -Angle of the Prism be turned downward, so that the Paper may seem to be -carried lower by the Refraction, its blue half will be carried something -lower thereby than its red half. Wherefore in both Cases the Light which -comes from the blue half of the Paper through the Prism to the Eye, does -in like Circumstances suffer a greater Refraction than the Light which -comes from the red half, and by consequence is more refrangible. - -_Illustration._ In the eleventh Figure, MN represents the Window, and DE -the Paper terminated with parallel Sides DJ and HE, and by the -transverse Line FG distinguished into two halfs, the one DG of an -intensely blue Colour, the other FE of an intensely red. And BAC_cab_ -represents the Prism whose refracting Planes AB_ba_ and AC_ca_ meet in -the Edge of the refracting Angle A_a_. This Edge A_a_ being upward, is -parallel both to the Horizon, and to the Parallel-Edges of the Paper DJ -and HE, and the transverse Line FG is perpendicular to the Plane of the -Window. And _de_ represents the Image of the Paper seen by Refraction -upwards in such manner, that the blue half DG is carried higher to _dg_ -than the red half FE is to _fe_, and therefore suffers a greater -Refraction. If the Edge of the refracting Angle be turned downward, the -Image of the Paper will be refracted downward; suppose to [Greek: de], -and the blue half will be refracted lower to [Greek: dg] than the red -half is to [Greek: pe]. - -[Illustration: FIG. 11.] - -_Exper._ 2. About the aforesaid Paper, whose two halfs were painted over -with red and blue, and which was stiff like thin Pasteboard, I lapped -several times a slender Thred of very black Silk, in such manner that -the several parts of the Thred might appear upon the Colours like so -many black Lines drawn over them, or like long and slender dark Shadows -cast upon them. I might have drawn black Lines with a Pen, but the -Threds were smaller and better defined. This Paper thus coloured and -lined I set against a Wall perpendicularly to the Horizon, so that one -of the Colours might stand to the Right Hand, and the other to the Left. -Close before the Paper, at the Confine of the Colours below, I placed a -Candle to illuminate the Paper strongly: For the Experiment was tried in -the Night. The Flame of the Candle reached up to the lower edge of the -Paper, or a very little higher. Then at the distance of six Feet, and -one or two Inches from the Paper upon the Floor I erected a Glass Lens -four Inches and a quarter broad, which might collect the Rays coming -from the several Points of the Paper, and make them converge towards so -many other Points at the same distance of six Feet, and one or two -Inches on the other side of the Lens, and so form the Image of the -coloured Paper upon a white Paper placed there, after the same manner -that a Lens at a Hole in a Window casts the Images of Objects abroad -upon a Sheet of white Paper in a dark Room. The aforesaid white Paper, -erected perpendicular to the Horizon, and to the Rays which fell upon it -from the Lens, I moved sometimes towards the Lens, sometimes from it, to -find the Places where the Images of the blue and red Parts of the -coloured Paper appeared most distinct. Those Places I easily knew by the -Images of the black Lines which I had made by winding the Silk about the -Paper. For the Images of those fine and slender Lines (which by reason -of their Blackness were like Shadows on the Colours) were confused and -scarce visible, unless when the Colours on either side of each Line were -terminated most distinctly, Noting therefore, as diligently as I could, -the Places where the Images of the red and blue halfs of the coloured -Paper appeared most distinct, I found that where the red half of the -Paper appeared distinct, the blue half appeared confused, so that the -black Lines drawn upon it could scarce be seen; and on the contrary, -where the blue half appeared most distinct, the red half appeared -confused, so that the black Lines upon it were scarce visible. And -between the two Places where these Images appeared distinct there was -the distance of an Inch and a half; the distance of the white Paper from -the Lens, when the Image of the red half of the coloured Paper appeared -most distinct, being greater by an Inch and an half than the distance of -the same white Paper from the Lens, when the Image of the blue half -appeared most distinct. In like Incidences therefore of the blue and red -upon the Lens, the blue was refracted more by the Lens than the red, so -as to converge sooner by an Inch and a half, and therefore is more -refrangible. - -_Illustration._ In the twelfth Figure (p. 27), DE signifies the coloured -Paper, DG the blue half, FE the red half, MN the Lens, HJ the white -Paper in that Place where the red half with its black Lines appeared -distinct, and _hi_ the same Paper in that Place where the blue half -appeared distinct. The Place _hi_ was nearer to the Lens MN than the -Place HJ by an Inch and an half. - -_Scholium._ The same Things succeed, notwithstanding that some of the -Circumstances be varied; as in the first Experiment when the Prism and -Paper are any ways inclined to the Horizon, and in both when coloured -Lines are drawn upon very black Paper. But in the Description of these -Experiments, I have set down such Circumstances, by which either the -Phænomenon might be render'd more conspicuous, or a Novice might more -easily try them, or by which I did try them only. The same Thing, I have -often done in the following Experiments: Concerning all which, this one -Admonition may suffice. Now from these Experiments it follows not, that -all the Light of the blue is more refrangible than all the Light of the -red: For both Lights are mixed of Rays differently refrangible, so that -in the red there are some Rays not less refrangible than those of the -blue, and in the blue there are some Rays not more refrangible than -those of the red: But these Rays, in proportion to the whole Light, are -but few, and serve to diminish the Event of the Experiment, but are not -able to destroy it. For, if the red and blue Colours were more dilute -and weak, the distance of the Images would be less than an Inch and a -half; and if they were more intense and full, that distance would be -greater, as will appear hereafter. These Experiments may suffice for the -Colours of Natural Bodies. For in the Colours made by the Refraction of -Prisms, this Proposition will appear by the Experiments which are now to -follow in the next Proposition. - - -_PROP._ II. THEOR. II. - -_The Light of the Sun consists of Rays differently Refrangible._ - -The PROOF by Experiments. - -[Illustration: FIG. 12.] - -[Illustration: FIG. 13.] - -_Exper._ 3. - -In a very dark Chamber, at a round Hole, about one third Part of an Inch -broad, made in the Shut of a Window, I placed a Glass Prism, whereby the -Beam of the Sun's Light, which came in at that Hole, might be refracted -upwards toward the opposite Wall of the Chamber, and there form a -colour'd Image of the Sun. The Axis of the Prism (that is, the Line -passing through the middle of the Prism from one end of it to the other -end parallel to the edge of the Refracting Angle) was in this and the -following Experiments perpendicular to the incident Rays. About this -Axis I turned the Prism slowly, and saw the refracted Light on the Wall, -or coloured Image of the Sun, first to descend, and then to ascend. -Between the Descent and Ascent, when the Image seemed Stationary, I -stopp'd the Prism, and fix'd it in that Posture, that it should be moved -no more. For in that Posture the Refractions of the Light at the two -Sides of the refracting Angle, that is, at the Entrance of the Rays into -the Prism, and at their going out of it, were equal to one another.[C] -So also in other Experiments, as often as I would have the Refractions -on both sides the Prism to be equal to one another, I noted the Place -where the Image of the Sun formed by the refracted Light stood still -between its two contrary Motions, in the common Period of its Progress -and Regress; and when the Image fell upon that Place, I made fast the -Prism. And in this Posture, as the most convenient, it is to be -understood that all the Prisms are placed in the following Experiments, -unless where some other Posture is described. The Prism therefore being -placed in this Posture, I let the refracted Light fall perpendicularly -upon a Sheet of white Paper at the opposite Wall of the Chamber, and -observed the Figure and Dimensions of the Solar Image formed on the -Paper by that Light. This Image was Oblong and not Oval, but terminated -with two Rectilinear and Parallel Sides, and two Semicircular Ends. On -its Sides it was bounded pretty distinctly, but on its Ends very -confusedly and indistinctly, the Light there decaying and vanishing by -degrees. The Breadth of this Image answered to the Sun's Diameter, and -was about two Inches and the eighth Part of an Inch, including the -Penumbra. For the Image was eighteen Feet and an half distant from the -Prism, and at this distance that Breadth, if diminished by the Diameter -of the Hole in the Window-shut, that is by a quarter of an Inch, -subtended an Angle at the Prism of about half a Degree, which is the -Sun's apparent Diameter. But the Length of the Image was about ten -Inches and a quarter, and the Length of the Rectilinear Sides about -eight Inches; and the refracting Angle of the Prism, whereby so great a -Length was made, was 64 degrees. With a less Angle the Length of the -Image was less, the Breadth remaining the same. If the Prism was turned -about its Axis that way which made the Rays emerge more obliquely out of -the second refracting Surface of the Prism, the Image soon became an -Inch or two longer, or more; and if the Prism was turned about the -contrary way, so as to make the Rays fall more obliquely on the first -refracting Surface, the Image soon became an Inch or two shorter. And -therefore in trying this Experiment, I was as curious as I could be in -placing the Prism by the above-mention'd Rule exactly in such a Posture, -that the Refractions of the Rays at their Emergence out of the Prism -might be equal to that at their Incidence on it. This Prism had some -Veins running along within the Glass from one end to the other, which -scattered some of the Sun's Light irregularly, but had no sensible -Effect in increasing the Length of the coloured Spectrum. For I tried -the same Experiment with other Prisms with the same Success. And -particularly with a Prism which seemed free from such Veins, and whose -refracting Angle was 62-1/2 Degrees, I found the Length of the Image -9-3/4 or 10 Inches at the distance of 18-1/2 Feet from the Prism, the -Breadth of the Hole in the Window-shut being 1/4 of an Inch, as before. -And because it is easy to commit a Mistake in placing the Prism in its -due Posture, I repeated the Experiment four or five Times, and always -found the Length of the Image that which is set down above. With another -Prism of clearer Glass and better Polish, which seemed free from Veins, -and whose refracting Angle was 63-1/2 Degrees, the Length of this Image -at the same distance of 18-1/2 Feet was also about 10 Inches, or 10-1/8. -Beyond these Measures for about a 1/4 or 1/3 of an Inch at either end of -the Spectrum the Light of the Clouds seemed to be a little tinged with -red and violet, but so very faintly, that I suspected that Tincture -might either wholly, or in great Measure arise from some Rays of the -Spectrum scattered irregularly by some Inequalities in the Substance and -Polish of the Glass, and therefore I did not include it in these -Measures. Now the different Magnitude of the hole in the Window-shut, -and different thickness of the Prism where the Rays passed through it, -and different inclinations of the Prism to the Horizon, made no sensible -changes in the length of the Image. Neither did the different matter of -the Prisms make any: for in a Vessel made of polished Plates of Glass -cemented together in the shape of a Prism and filled with Water, there -is the like Success of the Experiment according to the quantity of the -Refraction. It is farther to be observed, that the Rays went on in right -Lines from the Prism to the Image, and therefore at their very going out -of the Prism had all that Inclination to one another from which the -length of the Image proceeded, that is, the Inclination of more than two -degrees and an half. And yet according to the Laws of Opticks vulgarly -received, they could not possibly be so much inclined to one another.[D] -For let EG [_Fig._ 13. (p. 27)] represent the Window-shut, F the hole -made therein through which a beam of the Sun's Light was transmitted -into the darkened Chamber, and ABC a Triangular Imaginary Plane whereby -the Prism is feigned to be cut transversely through the middle of the -Light. Or if you please, let ABC represent the Prism it self, looking -directly towards the Spectator's Eye with its nearer end: And let XY be -the Sun, MN the Paper upon which the Solar Image or Spectrum is cast, -and PT the Image it self whose sides towards _v_ and _w_ are Rectilinear -and Parallel, and ends towards P and T Semicircular. YKHP and XLJT are -two Rays, the first of which comes from the lower part of the Sun to the -higher part of the Image, and is refracted in the Prism at K and H, and -the latter comes from the higher part of the Sun to the lower part of -the Image, and is refracted at L and J. Since the Refractions on both -sides the Prism are equal to one another, that is, the Refraction at K -equal to the Refraction at J, and the Refraction at L equal to the -Refraction at H, so that the Refractions of the incident Rays at K and L -taken together, are equal to the Refractions of the emergent Rays at H -and J taken together: it follows by adding equal things to equal things, -that the Refractions at K and H taken together, are equal to the -Refractions at J and L taken together, and therefore the two Rays being -equally refracted, have the same Inclination to one another after -Refraction which they had before; that is, the Inclination of half a -Degree answering to the Sun's Diameter. For so great was the inclination -of the Rays to one another before Refraction. So then, the length of the -Image PT would by the Rules of Vulgar Opticks subtend an Angle of half a -Degree at the Prism, and by Consequence be equal to the breadth _vw_; -and therefore the Image would be round. Thus it would be were the two -Rays XLJT and YKHP, and all the rest which form the Image P_w_T_v_, -alike refrangible. And therefore seeing by Experience it is found that -the Image is not round, but about five times longer than broad, the Rays -which going to the upper end P of the Image suffer the greatest -Refraction, must be more refrangible than those which go to the lower -end T, unless the Inequality of Refraction be casual. - -This Image or Spectrum PT was coloured, being red at its least refracted -end T, and violet at its most refracted end P, and yellow green and -blue in the intermediate Spaces. Which agrees with the first -Proposition, that Lights which differ in Colour, do also differ in -Refrangibility. The length of the Image in the foregoing Experiments, I -measured from the faintest and outmost red at one end, to the faintest -and outmost blue at the other end, excepting only a little Penumbra, -whose breadth scarce exceeded a quarter of an Inch, as was said above. - -_Exper._ 4. In the Sun's Beam which was propagated into the Room through -the hole in the Window-shut, at the distance of some Feet from the hole, -I held the Prism in such a Posture, that its Axis might be perpendicular -to that Beam. Then I looked through the Prism upon the hole, and turning -the Prism to and fro about its Axis, to make the Image of the Hole -ascend and descend, when between its two contrary Motions it seemed -Stationary, I stopp'd the Prism, that the Refractions of both sides of -the refracting Angle might be equal to each other, as in the former -Experiment. In this situation of the Prism viewing through it the said -Hole, I observed the length of its refracted Image to be many times -greater than its breadth, and that the most refracted part thereof -appeared violet, the least refracted red, the middle parts blue, green -and yellow in order. The same thing happen'd when I removed the Prism -out of the Sun's Light, and looked through it upon the hole shining by -the Light of the Clouds beyond it. And yet if the Refraction were done -regularly according to one certain Proportion of the Sines of Incidence -and Refraction as is vulgarly supposed, the refracted Image ought to -have appeared round. - -So then, by these two Experiments it appears, that in Equal Incidences -there is a considerable inequality of Refractions. But whence this -inequality arises, whether it be that some of the incident Rays are -refracted more, and others less, constantly, or by chance, or that one -and the same Ray is by Refraction disturbed, shatter'd, dilated, and as -it were split and spread into many diverging Rays, as _Grimaldo_ -supposes, does not yet appear by these Experiments, but will appear by -those that follow. - -_Exper._ 5. Considering therefore, that if in the third Experiment the -Image of the Sun should be drawn out into an oblong Form, either by a -Dilatation of every Ray, or by any other casual inequality of the -Refractions, the same oblong Image would by a second Refraction made -sideways be drawn out as much in breadth by the like Dilatation of the -Rays, or other casual inequality of the Refractions sideways, I tried -what would be the Effects of such a second Refraction. For this end I -ordered all things as in the third Experiment, and then placed a second -Prism immediately after the first in a cross Position to it, that it -might again refract the beam of the Sun's Light which came to it through -the first Prism. In the first Prism this beam was refracted upwards, and -in the second sideways. And I found that by the Refraction of the second -Prism, the breadth of the Image was not increased, but its superior -part, which in the first Prism suffered the greater Refraction, and -appeared violet and blue, did again in the second Prism suffer a greater -Refraction than its inferior part, which appeared red and yellow, and -this without any Dilatation of the Image in breadth. - -[Illustration: FIG. 14] - -_Illustration._ Let S [_Fig._ 14, 15.] represent the Sun, F the hole in -the Window, ABC the first Prism, DH the second Prism, Y the round Image -of the Sun made by a direct beam of Light when the Prisms are taken -away, PT the oblong Image of the Sun made by that beam passing through -the first Prism alone, when the second Prism is taken away, and _pt_ the -Image made by the cross Refractions of both Prisms together. Now if the -Rays which tend towards the several Points of the round Image Y were -dilated and spread by the Refraction of the first Prism, so that they -should not any longer go in single Lines to single Points, but that -every Ray being split, shattered, and changed from a Linear Ray to a -Superficies of Rays diverging from the Point of Refraction, and lying in -the Plane of the Angles of Incidence and Refraction, they should go in -those Planes to so many Lines reaching almost from one end of the Image -PT to the other, and if that Image should thence become oblong: those -Rays and their several parts tending towards the several Points of the -Image PT ought to be again dilated and spread sideways by the transverse -Refraction of the second Prism, so as to compose a four square Image, -such as is represented at [Greek: pt]. For the better understanding of -which, let the Image PT be distinguished into five equal parts PQK, -KQRL, LRSM, MSVN, NVT. And by the same irregularity that the orbicular -Light Y is by the Refraction of the first Prism dilated and drawn out -into a long Image PT, the Light PQK which takes up a space of the same -length and breadth with the Light Y ought to be by the Refraction of the -second Prism dilated and drawn out into the long Image _[Greek: p]qkp_, -and the Light KQRL into the long Image _kqrl_, and the Lights LRSM, -MSVN, NVT, into so many other long Images _lrsm_, _msvn_, _nvt[Greek: -t]_; and all these long Images would compose the four square Images -_[Greek: pt]_. Thus it ought to be were every Ray dilated by Refraction, -and spread into a triangular Superficies of Rays diverging from the -Point of Refraction. For the second Refraction would spread the Rays one -way as much as the first doth another, and so dilate the Image in -breadth as much as the first doth in length. And the same thing ought to -happen, were some rays casually refracted more than others. But the -Event is otherwise. The Image PT was not made broader by the Refraction -of the second Prism, but only became oblique, as 'tis represented at -_pt_, its upper end P being by the Refraction translated to a greater -distance than its lower end T. So then the Light which went towards the -upper end P of the Image, was (at equal Incidences) more refracted in -the second Prism, than the Light which tended towards the lower end T, -that is the blue and violet, than the red and yellow; and therefore was -more refrangible. The same Light was by the Refraction of the first -Prism translated farther from the place Y to which it tended before -Refraction; and therefore suffered as well in the first Prism as in the -second a greater Refraction than the rest of the Light, and by -consequence was more refrangible than the rest, even before its -incidence on the first Prism. - -Sometimes I placed a third Prism after the second, and sometimes also a -fourth after the third, by all which the Image might be often refracted -sideways: but the Rays which were more refracted than the rest in the -first Prism were also more refracted in all the rest, and that without -any Dilatation of the Image sideways: and therefore those Rays for their -constancy of a greater Refraction are deservedly reputed more -refrangible. - -[Illustration: FIG. 15] - -But that the meaning of this Experiment may more clearly appear, it is -to be considered that the Rays which are equally refrangible do fall -upon a Circle answering to the Sun's Disque. For this was proved in the -third Experiment. By a Circle I understand not here a perfect -geometrical Circle, but any orbicular Figure whose length is equal to -its breadth, and which, as to Sense, may seem circular. Let therefore AG -[in _Fig._ 15.] represent the Circle which all the most refrangible Rays -propagated from the whole Disque of the Sun, would illuminate and paint -upon the opposite Wall if they were alone; EL the Circle which all the -least refrangible Rays would in like manner illuminate and paint if they -were alone; BH, CJ, DK, the Circles which so many intermediate sorts of -Rays would successively paint upon the Wall, if they were singly -propagated from the Sun in successive order, the rest being always -intercepted; and conceive that there are other intermediate Circles -without Number, which innumerable other intermediate sorts of Rays would -successively paint upon the Wall if the Sun should successively emit -every sort apart. And seeing the Sun emits all these sorts at once, they -must all together illuminate and paint innumerable equal Circles, of all -which, being according to their degrees of Refrangibility placed in -order in a continual Series, that oblong Spectrum PT is composed which I -described in the third Experiment. Now if the Sun's circular Image Y [in -_Fig._ 15.] which is made by an unrefracted beam of Light was by any -Dilation of the single Rays, or by any other irregularity in the -Refraction of the first Prism, converted into the oblong Spectrum, PT: -then ought every Circle AG, BH, CJ, &c. in that Spectrum, by the cross -Refraction of the second Prism again dilating or otherwise scattering -the Rays as before, to be in like manner drawn out and transformed into -an oblong Figure, and thereby the breadth of the Image PT would be now -as much augmented as the length of the Image Y was before by the -Refraction of the first Prism; and thus by the Refractions of both -Prisms together would be formed a four square Figure _p[Greek: -p]t[Greek: t]_, as I described above. Wherefore since the breadth of the -Spectrum PT is not increased by the Refraction sideways, it is certain -that the Rays are not split or dilated, or otherways irregularly -scatter'd by that Refraction, but that every Circle is by a regular and -uniform Refraction translated entire into another Place, as the Circle -AG by the greatest Refraction into the place _ag_, the Circle BH by a -less Refraction into the place _bh_, the Circle CJ by a Refraction still -less into the place _ci_, and so of the rest; by which means a new -Spectrum _pt_ inclined to the former PT is in like manner composed of -Circles lying in a right Line; and these Circles must be of the same -bigness with the former, because the breadths of all the Spectrums Y, PT -and _pt_ at equal distances from the Prisms are equal. - -I considered farther, that by the breadth of the hole F through which -the Light enters into the dark Chamber, there is a Penumbra made in the -Circuit of the Spectrum Y, and that Penumbra remains in the rectilinear -Sides of the Spectrums PT and _pt_. I placed therefore at that hole a -Lens or Object-glass of a Telescope which might cast the Image of the -Sun distinctly on Y without any Penumbra at all, and found that the -Penumbra of the rectilinear Sides of the oblong Spectrums PT and _pt_ -was also thereby taken away, so that those Sides appeared as distinctly -defined as did the Circumference of the first Image Y. Thus it happens -if the Glass of the Prisms be free from Veins, and their sides be -accurately plane and well polished without those numberless Waves or -Curles which usually arise from Sand-holes a little smoothed in -polishing with Putty. If the Glass be only well polished and free from -Veins, and the Sides not accurately plane, but a little Convex or -Concave, as it frequently happens; yet may the three Spectrums Y, PT and -_pt_ want Penumbras, but not in equal distances from the Prisms. Now -from this want of Penumbras, I knew more certainly that every one of the -Circles was refracted according to some most regular, uniform and -constant Law. For if there were any irregularity in the Refraction, the -right Lines AE and GL, which all the Circles in the Spectrum PT do -touch, could not by that Refraction be translated into the Lines _ae_ -and _gl_ as distinct and straight as they were before, but there would -arise in those translated Lines some Penumbra or Crookedness or -Undulation, or other sensible Perturbation contrary to what is found by -Experience. Whatsoever Penumbra or Perturbation should be made in the -Circles by the cross Refraction of the second Prism, all that Penumbra -or Perturbation would be conspicuous in the right Lines _ae_ and _gl_ -which touch those Circles. And therefore since there is no such Penumbra -or Perturbation in those right Lines, there must be none in the -Circles. Since the distance between those Tangents or breadth of the -Spectrum is not increased by the Refractions, the Diameters of the -Circles are not increased thereby. Since those Tangents continue to be -right Lines, every Circle which in the first Prism is more or less -refracted, is exactly in the same proportion more or less refracted in -the second. And seeing all these things continue to succeed after the -same manner when the Rays are again in a third Prism, and again in a -fourth refracted sideways, it is evident that the Rays of one and the -same Circle, as to their degree of Refrangibility, continue always -uniform and homogeneal to one another, and that those of several Circles -do differ in degree of Refrangibility, and that in some certain and -constant Proportion. Which is the thing I was to prove. - -There is yet another Circumstance or two of this Experiment by which it -becomes still more plain and convincing. Let the second Prism DH [in -_Fig._ 16.] be placed not immediately after the first, but at some -distance from it; suppose in the mid-way between it and the Wall on -which the oblong Spectrum PT is cast, so that the Light from the first -Prism may fall upon it in the form of an oblong Spectrum [Greek: pt] -parallel to this second Prism, and be refracted sideways to form the -oblong Spectrum _pt_ upon the Wall. And you will find as before, that -this Spectrum _pt_ is inclined to that Spectrum PT, which the first -Prism forms alone without the second; the blue ends P and _p_ being -farther distant from one another than the red ones T and _t_, and by -consequence that the Rays which go to the blue end [Greek: p] of the -Image [Greek: pt], and which therefore suffer the greatest Refraction in -the first Prism, are again in the second Prism more refracted than the -rest. - -[Illustration: FIG. 16.] - -[Illustration: FIG. 17.] - -The same thing I try'd also by letting the Sun's Light into a dark Room -through two little round holes F and [Greek: ph] [in _Fig._ 17.] made in -the Window, and with two parallel Prisms ABC and [Greek: abg] placed at -those holes (one at each) refracting those two beams of Light to the -opposite Wall of the Chamber, in such manner that the two colour'd -Images PT and MN which they there painted were joined end to end and lay -in one straight Line, the red end T of the one touching the blue end M -of the other. For if these two refracted Beams were again by a third -Prism DH placed cross to the two first, refracted sideways, and the -Spectrums thereby translated to some other part of the Wall of the -Chamber, suppose the Spectrum PT to _pt_ and the Spectrum MN to _mn_, -these translated Spectrums _pt_ and _mn_ would not lie in one straight -Line with their ends contiguous as before, but be broken off from one -another and become parallel, the blue end _m_ of the Image _mn_ being by -a greater Refraction translated farther from its former place MT, than -the red end _t_ of the other Image _pt_ from the same place MT; which -puts the Proposition past Dispute. And this happens whether the third -Prism DH be placed immediately after the two first, or at a great -distance from them, so that the Light refracted in the two first Prisms -be either white and circular, or coloured and oblong when it falls on -the third. - -_Exper._ 6. In the middle of two thin Boards I made round holes a third -part of an Inch in diameter, and in the Window-shut a much broader hole -being made to let into my darkned Chamber a large Beam of the Sun's -Light; I placed a Prism behind the Shut in that beam to refract it -towards the opposite Wall, and close behind the Prism I fixed one of the -Boards, in such manner that the middle of the refracted Light might pass -through the hole made in it, and the rest be intercepted by the Board. -Then at the distance of about twelve Feet from the first Board I fixed -the other Board in such manner that the middle of the refracted Light -which came through the hole in the first Board, and fell upon the -opposite Wall, might pass through the hole in this other Board, and the -rest being intercepted by the Board might paint upon it the coloured -Spectrum of the Sun. And close behind this Board I fixed another Prism -to refract the Light which came through the hole. Then I returned -speedily to the first Prism, and by turning it slowly to and fro about -its Axis, I caused the Image which fell upon the second Board to move up -and down upon that Board, that all its parts might successively pass -through the hole in that Board and fall upon the Prism behind it. And in -the mean time, I noted the places on the opposite Wall to which that -Light after its Refraction in the second Prism did pass; and by the -difference of the places I found that the Light which being most -refracted in the first Prism did go to the blue end of the Image, was -again more refracted in the second Prism than the Light which went to -the red end of that Image, which proves as well the first Proposition as -the second. And this happened whether the Axis of the two Prisms were -parallel, or inclined to one another, and to the Horizon in any given -Angles. - -_Illustration._ Let F [in _Fig._ 18.] be the wide hole in the -Window-shut, through which the Sun shines upon the first Prism ABC, and -let the refracted Light fall upon the middle of the Board DE, and the -middle part of that Light upon the hole G made in the middle part of -that Board. Let this trajected part of that Light fall again upon the -middle of the second Board _de_, and there paint such an oblong coloured -Image of the Sun as was described in the third Experiment. By turning -the Prism ABC slowly to and fro about its Axis, this Image will be made -to move up and down the Board _de_, and by this means all its parts from -one end to the other may be made to pass successively through the hole -_g_ which is made in the middle of that Board. In the mean while another -Prism _abc_ is to be fixed next after that hole _g_, to refract the -trajected Light a second time. And these things being thus ordered, I -marked the places M and N of the opposite Wall upon which the refracted -Light fell, and found that whilst the two Boards and second Prism -remained unmoved, those places by turning the first Prism about its Axis -were changed perpetually. For when the lower part of the Light which -fell upon the second Board _de_ was cast through the hole _g_, it went -to a lower place M on the Wall and when the higher part of that Light -was cast through the same hole _g_, it went to a higher place N on the -Wall, and when any intermediate part of the Light was cast through that -hole, it went to some place on the Wall between M and N. The unchanged -Position of the holes in the Boards, made the Incidence of the Rays upon -the second Prism to be the same in all cases. And yet in that common -Incidence some of the Rays were more refracted, and others less. And -those were more refracted in this Prism, which by a greater Refraction -in the first Prism were more turned out of the way, and therefore for -their Constancy of being more refracted are deservedly called more -refrangible. - -[Illustration: FIG. 18.] - -[Illustration: FIG. 20.] - -_Exper._ 7. At two holes made near one another in my Window-shut I -placed two Prisms, one at each, which might cast upon the opposite Wall -(after the manner of the third Experiment) two oblong coloured Images of -the Sun. And at a little distance from the Wall I placed a long slender -Paper with straight and parallel edges, and ordered the Prisms and Paper -so, that the red Colour of one Image might fall directly upon one half -of the Paper, and the violet Colour of the other Image upon the other -half of the same Paper; so that the Paper appeared of two Colours, red -and violet, much after the manner of the painted Paper in the first and -second Experiments. Then with a black Cloth I covered the Wall behind -the Paper, that no Light might be reflected from it to disturb the -Experiment, and viewing the Paper through a third Prism held parallel -to it, I saw that half of it which was illuminated by the violet Light -to be divided from the other half by a greater Refraction, especially -when I went a good way off from the Paper. For when I viewed it too near -at hand, the two halfs of the Paper did not appear fully divided from -one another, but seemed contiguous at one of their Angles like the -painted Paper in the first Experiment. Which also happened when the -Paper was too broad. - -[Illustration: FIG. 19.] - -Sometimes instead of the Paper I used a white Thred, and this appeared -through the Prism divided into two parallel Threds as is represented in -the nineteenth Figure, where DG denotes the Thred illuminated with -violet Light from D to E and with red Light from F to G, and _defg_ are -the parts of the Thred seen by Refraction. If one half of the Thred be -constantly illuminated with red, and the other half be illuminated with -all the Colours successively, (which may be done by causing one of the -Prisms to be turned about its Axis whilst the other remains unmoved) -this other half in viewing the Thred through the Prism, will appear in -a continual right Line with the first half when illuminated with red, -and begin to be a little divided from it when illuminated with Orange, -and remove farther from it when illuminated with yellow, and still -farther when with green, and farther when with blue, and go yet farther -off when illuminated with Indigo, and farthest when with deep violet. -Which plainly shews, that the Lights of several Colours are more and -more refrangible one than another, in this Order of their Colours, red, -orange, yellow, green, blue, indigo, deep violet; and so proves as well -the first Proposition as the second. - -I caused also the coloured Spectrums PT [in _Fig._ 17.] and MN made in a -dark Chamber by the Refractions of two Prisms to lie in a Right Line end -to end, as was described above in the fifth Experiment, and viewing them -through a third Prism held parallel to their Length, they appeared no -longer in a Right Line, but became broken from one another, as they are -represented at _pt_ and _mn_, the violet end _m_ of the Spectrum _mn_ -being by a greater Refraction translated farther from its former Place -MT than the red end _t_ of the other Spectrum _pt_. - -I farther caused those two Spectrums PT [in _Fig._ 20.] and MN to become -co-incident in an inverted Order of their Colours, the red end of each -falling on the violet end of the other, as they are represented in the -oblong Figure PTMN; and then viewing them through a Prism DH held -parallel to their Length, they appeared not co-incident, as when view'd -with the naked Eye, but in the form of two distinct Spectrums _pt_ and -_mn_ crossing one another in the middle after the manner of the Letter -X. Which shews that the red of the one Spectrum and violet of the other, -which were co-incident at PN and MT, being parted from one another by a -greater Refraction of the violet to _p_ and _m_ than of the red to _n_ -and _t_, do differ in degrees of Refrangibility. - -I illuminated also a little Circular Piece of white Paper all over with -the Lights of both Prisms intermixed, and when it was illuminated with -the red of one Spectrum, and deep violet of the other, so as by the -Mixture of those Colours to appear all over purple, I viewed the Paper, -first at a less distance, and then at a greater, through a third Prism; -and as I went from the Paper, the refracted Image thereof became more -and more divided by the unequal Refraction of the two mixed Colours, and -at length parted into two distinct Images, a red one and a violet one, -whereof the violet was farthest from the Paper, and therefore suffered -the greatest Refraction. And when that Prism at the Window, which cast -the violet on the Paper was taken away, the violet Image disappeared; -but when the other Prism was taken away the red vanished; which shews, -that these two Images were nothing else than the Lights of the two -Prisms, which had been intermixed on the purple Paper, but were parted -again by their unequal Refractions made in the third Prism, through -which the Paper was view'd. This also was observable, that if one of the -Prisms at the Window, suppose that which cast the violet on the Paper, -was turned about its Axis to make all the Colours in this order, -violet, indigo, blue, green, yellow, orange, red, fall successively on -the Paper from that Prism, the violet Image changed Colour accordingly, -turning successively to indigo, blue, green, yellow and red, and in -changing Colour came nearer and nearer to the red Image made by the -other Prism, until when it was also red both Images became fully -co-incident. - -I placed also two Paper Circles very near one another, the one in the -red Light of one Prism, and the other in the violet Light of the other. -The Circles were each of them an Inch in diameter, and behind them the -Wall was dark, that the Experiment might not be disturbed by any Light -coming from thence. These Circles thus illuminated, I viewed through a -Prism, so held, that the Refraction might be made towards the red -Circle, and as I went from them they came nearer and nearer together, -and at length became co-incident; and afterwards when I went still -farther off, they parted again in a contrary Order, the violet by a -greater Refraction being carried beyond the red. - -_Exper._ 8. In Summer, when the Sun's Light uses to be strongest, I -placed a Prism at the Hole of the Window-shut, as in the third -Experiment, yet so that its Axis might be parallel to the Axis of the -World, and at the opposite Wall in the Sun's refracted Light, I placed -an open Book. Then going six Feet and two Inches from the Book, I placed -there the above-mentioned Lens, by which the Light reflected from the -Book might be made to converge and meet again at the distance of six -Feet and two Inches behind the Lens, and there paint the Species of the -Book upon a Sheet of white Paper much after the manner of the second -Experiment. The Book and Lens being made fast, I noted the Place where -the Paper was, when the Letters of the Book, illuminated by the fullest -red Light of the Solar Image falling upon it, did cast their Species on -that Paper most distinctly: And then I stay'd till by the Motion of the -Sun, and consequent Motion of his Image on the Book, all the Colours -from that red to the middle of the blue pass'd over those Letters; and -when those Letters were illuminated by that blue, I noted again the -Place of the Paper when they cast their Species most distinctly upon it: -And I found that this last Place of the Paper was nearer to the Lens -than its former Place by about two Inches and an half, or two and three -quarters. So much sooner therefore did the Light in the violet end of -the Image by a greater Refraction converge and meet, than the Light in -the red end. But in trying this, the Chamber was as dark as I could make -it. For, if these Colours be diluted and weakned by the Mixture of any -adventitious Light, the distance between the Places of the Paper will -not be so great. This distance in the second Experiment, where the -Colours of natural Bodies were made use of, was but an Inch and an half, -by reason of the Imperfection of those Colours. Here in the Colours of -the Prism, which are manifestly more full, intense, and lively than -those of natural Bodies, the distance is two Inches and three quarters. -And were the Colours still more full, I question not but that the -distance would be considerably greater. For the coloured Light of the -Prism, by the interfering of the Circles described in the second Figure -of the fifth Experiment, and also by the Light of the very bright Clouds -next the Sun's Body intermixing with these Colours, and by the Light -scattered by the Inequalities in the Polish of the Prism, was so very -much compounded, that the Species which those faint and dark Colours, -the indigo and violet, cast upon the Paper were not distinct enough to -be well observed. - -_Exper._ 9. A Prism, whose two Angles at its Base were equal to one -another, and half right ones, and the third a right one, I placed in a -Beam of the Sun's Light let into a dark Chamber through a Hole in the -Window-shut, as in the third Experiment. And turning the Prism slowly -about its Axis, until all the Light which went through one of its -Angles, and was refracted by it began to be reflected by its Base, at -which till then it went out of the Glass, I observed that those Rays -which had suffered the greatest Refraction were sooner reflected than -the rest. I conceived therefore, that those Rays of the reflected Light, -which were most refrangible, did first of all by a total Reflexion -become more copious in that Light than the rest, and that afterwards the -rest also, by a total Reflexion, became as copious as these. To try -this, I made the reflected Light pass through another Prism, and being -refracted by it to fall afterwards upon a Sheet of white Paper placed -at some distance behind it, and there by that Refraction to paint the -usual Colours of the Prism. And then causing the first Prism to be -turned about its Axis as above, I observed that when those Rays, which -in this Prism had suffered the greatest Refraction, and appeared of a -blue and violet Colour began to be totally reflected, the blue and -violet Light on the Paper, which was most refracted in the second Prism, -received a sensible Increase above that of the red and yellow, which was -least refracted; and afterwards, when the rest of the Light which was -green, yellow, and red, began to be totally reflected in the first -Prism, the Light of those Colours on the Paper received as great an -Increase as the violet and blue had done before. Whence 'tis manifest, -that the Beam of Light reflected by the Base of the Prism, being -augmented first by the more refrangible Rays, and afterwards by the less -refrangible ones, is compounded of Rays differently refrangible. And -that all such reflected Light is of the same Nature with the Sun's Light -before its Incidence on the Base of the Prism, no Man ever doubted; it -being generally allowed, that Light by such Reflexions suffers no -Alteration in its Modifications and Properties. I do not here take -Notice of any Refractions made in the sides of the first Prism, because -the Light enters it perpendicularly at the first side, and goes out -perpendicularly at the second side, and therefore suffers none. So then, -the Sun's incident Light being of the same Temper and Constitution with -his emergent Light, and the last being compounded of Rays differently -refrangible, the first must be in like manner compounded. - -[Illustration: FIG. 21.] - -_Illustration._ In the twenty-first Figure, ABC is the first Prism, BC -its Base, B and C its equal Angles at the Base, each of 45 Degrees, A -its rectangular Vertex, FM a beam of the Sun's Light let into a dark -Room through a hole F one third part of an Inch broad, M its Incidence -on the Base of the Prism, MG a less refracted Ray, MH a more refracted -Ray, MN the beam of Light reflected from the Base, VXY the second Prism -by which this beam in passing through it is refracted, N_t_ the less -refracted Light of this beam, and N_p_ the more refracted part thereof. -When the first Prism ABC is turned about its Axis according to the order -of the Letters ABC, the Rays MH emerge more and more obliquely out of -that Prism, and at length after their most oblique Emergence are -reflected towards N, and going on to _p_ do increase the Number of the -Rays N_p_. Afterwards by continuing the Motion of the first Prism, the -Rays MG are also reflected to N and increase the number of the Rays -N_t_. And therefore the Light MN admits into its Composition, first the -more refrangible Rays, and then the less refrangible Rays, and yet after -this Composition is of the same Nature with the Sun's immediate Light -FM, the Reflexion of the specular Base BC causing no Alteration therein. - -_Exper._ 10. Two Prisms, which were alike in Shape, I tied so together, -that their Axis and opposite Sides being parallel, they composed a -Parallelopiped. And, the Sun shining into my dark Chamber through a -little hole in the Window-shut, I placed that Parallelopiped in his beam -at some distance from the hole, in such a Posture, that the Axes of the -Prisms might be perpendicular to the incident Rays, and that those Rays -being incident upon the first Side of one Prism, might go on through the -two contiguous Sides of both Prisms, and emerge out of the last Side of -the second Prism. This Side being parallel to the first Side of the -first Prism, caused the emerging Light to be parallel to the incident. -Then, beyond these two Prisms I placed a third, which might refract that -emergent Light, and by that Refraction cast the usual Colours of the -Prism upon the opposite Wall, or upon a sheet of white Paper held at a -convenient Distance behind the Prism for that refracted Light to fall -upon it. After this I turned the Parallelopiped about its Axis, and -found that when the contiguous Sides of the two Prisms became so oblique -to the incident Rays, that those Rays began all of them to be -reflected, those Rays which in the third Prism had suffered the greatest -Refraction, and painted the Paper with violet and blue, were first of -all by a total Reflexion taken out of the transmitted Light, the rest -remaining and on the Paper painting their Colours of green, yellow, -orange and red, as before; and afterwards by continuing the Motion of -the two Prisms, the rest of the Rays also by a total Reflexion vanished -in order, according to their degrees of Refrangibility. The Light -therefore which emerged out of the two Prisms is compounded of Rays -differently refrangible, seeing the more refrangible Rays may be taken -out of it, while the less refrangible remain. But this Light being -trajected only through the parallel Superficies of the two Prisms, if it -suffer'd any change by the Refraction of one Superficies it lost that -Impression by the contrary Refraction of the other Superficies, and so -being restor'd to its pristine Constitution, became of the same Nature -and Condition as at first before its Incidence on those Prisms; and -therefore, before its Incidence, was as much compounded of Rays -differently refrangible, as afterwards. - -[Illustration: FIG. 22.] - -_Illustration._ In the twenty second Figure ABC and BCD are the two -Prisms tied together in the form of a Parallelopiped, their Sides BC and -CB being contiguous, and their Sides AB and CD parallel. And HJK is the -third Prism, by which the Sun's Light propagated through the hole F into -the dark Chamber, and there passing through those sides of the Prisms -AB, BC, CB and CD, is refracted at O to the white Paper PT, falling -there partly upon P by a greater Refraction, partly upon T by a less -Refraction, and partly upon R and other intermediate places by -intermediate Refractions. By turning the Parallelopiped ACBD about its -Axis, according to the order of the Letters A, C, D, B, at length when -the contiguous Planes BC and CB become sufficiently oblique to the Rays -FM, which are incident upon them at M, there will vanish totally out of -the refracted Light OPT, first of all the most refracted Rays OP, (the -rest OR and OT remaining as before) then the Rays OR and other -intermediate ones, and lastly, the least refracted Rays OT. For when -the Plane BC becomes sufficiently oblique to the Rays incident upon it, -those Rays will begin to be totally reflected by it towards N; and first -the most refrangible Rays will be totally reflected (as was explained in -the preceding Experiment) and by Consequence must first disappear at P, -and afterwards the rest as they are in order totally reflected to N, -they must disappear in the same order at R and T. So then the Rays which -at O suffer the greatest Refraction, may be taken out of the Light MO -whilst the rest of the Rays remain in it, and therefore that Light MO is -compounded of Rays differently refrangible. And because the Planes AB -and CD are parallel, and therefore by equal and contrary Refractions -destroy one anothers Effects, the incident Light FM must be of the same -Kind and Nature with the emergent Light MO, and therefore doth also -consist of Rays differently refrangible. These two Lights FM and MO, -before the most refrangible Rays are separated out of the emergent Light -MO, agree in Colour, and in all other Properties so far as my -Observation reaches, and therefore are deservedly reputed of the same -Nature and Constitution, and by Consequence the one is compounded as -well as the other. But after the most refrangible Rays begin to be -totally reflected, and thereby separated out of the emergent Light MO, -that Light changes its Colour from white to a dilute and faint yellow, a -pretty good orange, a very full red successively, and then totally -vanishes. For after the most refrangible Rays which paint the Paper at -P with a purple Colour, are by a total Reflexion taken out of the beam -of Light MO, the rest of the Colours which appear on the Paper at R and -T being mix'd in the Light MO compound there a faint yellow, and after -the blue and part of the green which appear on the Paper between P and R -are taken away, the rest which appear between R and T (that is the -yellow, orange, red and a little green) being mixed in the beam MO -compound there an orange; and when all the Rays are by Reflexion taken -out of the beam MO, except the least refrangible, which at T appear of a -full red, their Colour is the same in that beam MO as afterwards at T, -the Refraction of the Prism HJK serving only to separate the differently -refrangible Rays, without making any Alteration in their Colours, as -shall be more fully proved hereafter. All which confirms as well the -first Proposition as the second. - -_Scholium._ If this Experiment and the former be conjoined and made one -by applying a fourth Prism VXY [in _Fig._ 22.] to refract the reflected -beam MN towards _tp_, the Conclusion will be clearer. For then the Light -N_p_ which in the fourth Prism is more refracted, will become fuller and -stronger when the Light OP, which in the third Prism HJK is more -refracted, vanishes at P; and afterwards when the less refracted Light -OT vanishes at T, the less refracted Light N_t_ will become increased -whilst the more refracted Light at _p_ receives no farther increase. And -as the trajected beam MO in vanishing is always of such a Colour as -ought to result from the mixture of the Colours which fall upon the -Paper PT, so is the reflected beam MN always of such a Colour as ought -to result from the mixture of the Colours which fall upon the Paper -_pt_. For when the most refrangible Rays are by a total Reflexion taken -out of the beam MO, and leave that beam of an orange Colour, the Excess -of those Rays in the reflected Light, does not only make the violet, -indigo and blue at _p_ more full, but also makes the beam MN change from -the yellowish Colour of the Sun's Light, to a pale white inclining to -blue, and afterward recover its yellowish Colour again, so soon as all -the rest of the transmitted Light MOT is reflected. - -Now seeing that in all this variety of Experiments, whether the Trial be -made in Light reflected, and that either from natural Bodies, as in the -first and second Experiment, or specular, as in the ninth; or in Light -refracted, and that either before the unequally refracted Rays are by -diverging separated from one another, and losing their whiteness which -they have altogether, appear severally of several Colours, as in the -fifth Experiment; or after they are separated from one another, and -appear colour'd as in the sixth, seventh, and eighth Experiments; or in -Light trajected through parallel Superficies, destroying each others -Effects, as in the tenth Experiment; there are always found Rays, which -at equal Incidences on the same Medium suffer unequal Refractions, and -that without any splitting or dilating of single Rays, or contingence in -the inequality of the Refractions, as is proved in the fifth and sixth -Experiments. And seeing the Rays which differ in Refrangibility may be -parted and sorted from one another, and that either by Refraction as in -the third Experiment, or by Reflexion as in the tenth, and then the -several sorts apart at equal Incidences suffer unequal Refractions, and -those sorts are more refracted than others after Separation, which were -more refracted before it, as in the sixth and following Experiments, and -if the Sun's Light be trajected through three or more cross Prisms -successively, those Rays which in the first Prism are refracted more -than others, are in all the following Prisms refracted more than others -in the same Rate and Proportion, as appears by the fifth Experiment; -it's manifest that the Sun's Light is an heterogeneous Mixture of Rays, -some of which are constantly more refrangible than others, as was -proposed. - - -_PROP._ III. THEOR. III. - -_The Sun's Light consists of Rays differing in Reflexibility, and those -Rays are more reflexible than others which are more refrangible._ - -This is manifest by the ninth and tenth Experiments: For in the ninth -Experiment, by turning the Prism about its Axis, until the Rays within -it which in going out into the Air were refracted by its Base, became so -oblique to that Base, as to begin to be totally reflected thereby; those -Rays became first of all totally reflected, which before at equal -Incidences with the rest had suffered the greatest Refraction. And the -same thing happens in the Reflexion made by the common Base of the two -Prisms in the tenth Experiment. - - -_PROP._ IV. PROB. I. - -_To separate from one another the heterogeneous Rays of compound Light._ - -[Illustration: FIG. 23.] - -The heterogeneous Rays are in some measure separated from one another by -the Refraction of the Prism in the third Experiment, and in the fifth -Experiment, by taking away the Penumbra from the rectilinear sides of -the coloured Image, that Separation in those very rectilinear sides or -straight edges of the Image becomes perfect. But in all places between -those rectilinear edges, those innumerable Circles there described, -which are severally illuminated by homogeneal Rays, by interfering with -one another, and being every where commix'd, do render the Light -sufficiently compound. But if these Circles, whilst their Centers keep -their Distances and Positions, could be made less in Diameter, their -interfering one with another, and by Consequence the Mixture of the -heterogeneous Rays would be proportionally diminish'd. In the twenty -third Figure let AG, BH, CJ, DK, EL, FM be the Circles which so many -sorts of Rays flowing from the same disque of the Sun, do in the third -Experiment illuminate; of all which and innumerable other intermediate -ones lying in a continual Series between the two rectilinear and -parallel edges of the Sun's oblong Image PT, that Image is compos'd, as -was explained in the fifth Experiment. And let _ag_, _bh_, _ci_, _dk_, -_el_, _fm_ be so many less Circles lying in a like continual Series -between two parallel right Lines _af_ and _gm_ with the same distances -between their Centers, and illuminated by the same sorts of Rays, that -is the Circle _ag_ with the same sort by which the corresponding Circle -AG was illuminated, and the Circle _bh_ with the same sort by which the -corresponding Circle BH was illuminated, and the rest of the Circles -_ci_, _dk_, _el_, _fm_ respectively, with the same sorts of Rays by -which the several corresponding Circles CJ, DK, EL, FM were illuminated. -In the Figure PT composed of the greater Circles, three of those Circles -AG, BH, CJ, are so expanded into one another, that the three sorts of -Rays by which those Circles are illuminated, together with other -innumerable sorts of intermediate Rays, are mixed at QR in the middle -of the Circle BH. And the like Mixture happens throughout almost the -whole length of the Figure PT. But in the Figure _pt_ composed of the -less Circles, the three less Circles _ag_, _bh_, _ci_, which answer to -those three greater, do not extend into one another; nor are there any -where mingled so much as any two of the three sorts of Rays by which -those Circles are illuminated, and which in the Figure PT are all of -them intermingled at BH. - -Now he that shall thus consider it, will easily understand that the -Mixture is diminished in the same Proportion with the Diameters of the -Circles. If the Diameters of the Circles whilst their Centers remain the -same, be made three times less than before, the Mixture will be also -three times less; if ten times less, the Mixture will be ten times less, -and so of other Proportions. That is, the Mixture of the Rays in the -greater Figure PT will be to their Mixture in the less _pt_, as the -Latitude of the greater Figure is to the Latitude of the less. For the -Latitudes of these Figures are equal to the Diameters of their Circles. -And hence it easily follows, that the Mixture of the Rays in the -refracted Spectrum _pt_ is to the Mixture of the Rays in the direct and -immediate Light of the Sun, as the breadth of that Spectrum is to the -difference between the length and breadth of the same Spectrum. - -So then, if we would diminish the Mixture of the Rays, we are to -diminish the Diameters of the Circles. Now these would be diminished if -the Sun's Diameter to which they answer could be made less than it is, -or (which comes to the same Purpose) if without Doors, at a great -distance from the Prism towards the Sun, some opake Body were placed, -with a round hole in the middle of it, to intercept all the Sun's Light, -excepting so much as coming from the middle of his Body could pass -through that Hole to the Prism. For so the Circles AG, BH, and the rest, -would not any longer answer to the whole Disque of the Sun, but only to -that Part of it which could be seen from the Prism through that Hole, -that it is to the apparent Magnitude of that Hole view'd from the Prism. -But that these Circles may answer more distinctly to that Hole, a Lens -is to be placed by the Prism to cast the Image of the Hole, (that is, -every one of the Circles AG, BH, &c.) distinctly upon the Paper at PT, -after such a manner, as by a Lens placed at a Window, the Species of -Objects abroad are cast distinctly upon a Paper within the Room, and the -rectilinear Sides of the oblong Solar Image in the fifth Experiment -became distinct without any Penumbra. If this be done, it will not be -necessary to place that Hole very far off, no not beyond the Window. And -therefore instead of that Hole, I used the Hole in the Window-shut, as -follows. - -_Exper._ 11. In the Sun's Light let into my darken'd Chamber through a -small round Hole in my Window-shut, at about ten or twelve Feet from the -Window, I placed a Lens, by which the Image of the Hole might be -distinctly cast upon a Sheet of white Paper, placed at the distance of -six, eight, ten, or twelve Feet from the Lens. For, according to the -difference of the Lenses I used various distances, which I think not -worth the while to describe. Then immediately after the Lens I placed a -Prism, by which the trajected Light might be refracted either upwards or -sideways, and thereby the round Image, which the Lens alone did cast -upon the Paper might be drawn out into a long one with Parallel Sides, -as in the third Experiment. This oblong Image I let fall upon another -Paper at about the same distance from the Prism as before, moving the -Paper either towards the Prism or from it, until I found the just -distance where the Rectilinear Sides of the Image became most distinct. -For in this Case, the Circular Images of the Hole, which compose that -Image after the same manner that the Circles _ag_, _bh_, _ci_, &c. do -the Figure _pt_ [in _Fig._ 23.] were terminated most distinctly without -any Penumbra, and therefore extended into one another the least that -they could, and by consequence the Mixture of the heterogeneous Rays was -now the least of all. By this means I used to form an oblong Image (such -as is _pt_) [in _Fig._ 23, and 24.] of Circular Images of the Hole, -(such as are _ag_, _bh_, _ci_, &c.) and by using a greater or less Hole -in the Window-shut, I made the Circular Images _ag_, _bh_, _ci_, &c. of -which it was formed, to become greater or less at pleasure, and thereby -the Mixture of the Rays in the Image _pt_ to be as much, or as little as -I desired. - -[Illustration: FIG. 24.] - -_Illustration._ In the twenty-fourth Figure, F represents the Circular -Hole in the Window-shut, MN the Lens, whereby the Image or Species of -that Hole is cast distinctly upon a Paper at J, ABC the Prism, whereby -the Rays are at their emerging out of the Lens refracted from J towards -another Paper at _pt_, and the round Image at J is turned into an oblong -Image _pt_ falling on that other Paper. This Image _pt_ consists of -Circles placed one after another in a Rectilinear Order, as was -sufficiently explained in the fifth Experiment; and these Circles are -equal to the Circle J, and consequently answer in magnitude to the Hole -F; and therefore by diminishing that Hole they may be at pleasure -diminished, whilst their Centers remain in their Places. By this means I -made the Breadth of the Image _pt_ to be forty times, and sometimes -sixty or seventy times less than its Length. As for instance, if the -Breadth of the Hole F be one tenth of an Inch, and MF the distance of -the Lens from the Hole be 12 Feet; and if _p_B or _p_M the distance of -the Image _pt_ from the Prism or Lens be 10 Feet, and the refracting -Angle of the Prism be 62 Degrees, the Breadth of the Image _pt_ will be -one twelfth of an Inch, and the Length about six Inches, and therefore -the Length to the Breadth as 72 to 1, and by consequence the Light of -this Image 71 times less compound than the Sun's direct Light. And Light -thus far simple and homogeneal, is sufficient for trying all the -Experiments in this Book about simple Light. For the Composition of -heterogeneal Rays is in this Light so little, that it is scarce to be -discovered and perceiv'd by Sense, except perhaps in the indigo and -violet. For these being dark Colours do easily suffer a sensible Allay -by that little scattering Light which uses to be refracted irregularly -by the Inequalities of the Prism. - -Yet instead of the Circular Hole F, 'tis better to substitute an oblong -Hole shaped like a long Parallelogram with its Length parallel to the -Prism ABC. For if this Hole be an Inch or two long, and but a tenth or -twentieth Part of an Inch broad, or narrower; the Light of the Image -_pt_ will be as simple as before, or simpler, and the Image will become -much broader, and therefore more fit to have Experiments try'd in its -Light than before. - -Instead of this Parallelogram Hole may be substituted a triangular one -of equal Sides, whose Base, for instance, is about the tenth Part of an -Inch, and its Height an Inch or more. For by this means, if the Axis of -the Prism be parallel to the Perpendicular of the Triangle, the Image -_pt_ [in _Fig._ 25.] will now be form'd of equicrural Triangles _ag_, -_bh_, _ci_, _dk_, _el_, _fm_, &c. and innumerable other intermediate -ones answering to the triangular Hole in Shape and Bigness, and lying -one after another in a continual Series between two Parallel Lines _af_ -and _gm_. These Triangles are a little intermingled at their Bases, but -not at their Vertices; and therefore the Light on the brighter Side _af_ -of the Image, where the Bases of the Triangles are, is a little -compounded, but on the darker Side _gm_ is altogether uncompounded, and -in all Places between the Sides the Composition is proportional to the -distances of the Places from that obscurer Side _gm_. And having a -Spectrum _pt_ of such a Composition, we may try Experiments either in -its stronger and less simple Light near the Side _af_, or in its weaker -and simpler Light near the other Side _gm_, as it shall seem most -convenient. - -[Illustration: FIG. 25.] - -But in making Experiments of this kind, the Chamber ought to be made as -dark as can be, lest any Foreign Light mingle it self with the Light of -the Spectrum _pt_, and render it compound; especially if we would try -Experiments in the more simple Light next the Side _gm_ of the Spectrum; -which being fainter, will have a less proportion to the Foreign Light; -and so by the mixture of that Light be more troubled, and made more -compound. The Lens also ought to be good, such as may serve for optical -Uses, and the Prism ought to have a large Angle, suppose of 65 or 70 -Degrees, and to be well wrought, being made of Glass free from Bubbles -and Veins, with its Sides not a little convex or concave, as usually -happens, but truly plane, and its Polish elaborate, as in working -Optick-glasses, and not such as is usually wrought with Putty, whereby -the edges of the Sand-holes being worn away, there are left all over the -Glass a numberless Company of very little convex polite Risings like -Waves. The edges also of the Prism and Lens, so far as they may make any -irregular Refraction, must be covered with a black Paper glewed on. And -all the Light of the Sun's Beam let into the Chamber, which is useless -and unprofitable to the Experiment, ought to be intercepted with black -Paper, or other black Obstacles. For otherwise the useless Light being -reflected every way in the Chamber, will mix with the oblong Spectrum, -and help to disturb it. In trying these Things, so much diligence is not -altogether necessary, but it will promote the Success of the -Experiments, and by a very scrupulous Examiner of Things deserves to be -apply'd. It's difficult to get Glass Prisms fit for this Purpose, and -therefore I used sometimes prismatick Vessels made with pieces of broken -Looking-glasses, and filled with Rain Water. And to increase the -Refraction, I sometimes impregnated the Water strongly with _Saccharum -Saturni_. - - -_PROP._ V. THEOR. IV. - -_Homogeneal Light is refracted regularly without any Dilatation -splitting or shattering of the Rays, and the confused Vision of Objects -seen through refracting Bodies by heterogeneal Light arises from the -different Refrangibility of several sorts of Rays._ - -The first Part of this Proposition has been already sufficiently proved -in the fifth Experiment, and will farther appear by the Experiments -which follow. - -_Exper._ 12. In the middle of a black Paper I made a round Hole about a -fifth or sixth Part of an Inch in diameter. Upon this Paper I caused the -Spectrum of homogeneal Light described in the former Proposition, so to -fall, that some part of the Light might pass through the Hole of the -Paper. This transmitted part of the Light I refracted with a Prism -placed behind the Paper, and letting this refracted Light fall -perpendicularly upon a white Paper two or three Feet distant from the -Prism, I found that the Spectrum formed on the Paper by this Light was -not oblong, as when 'tis made (in the third Experiment) by refracting -the Sun's compound Light, but was (so far as I could judge by my Eye) -perfectly circular, the Length being no greater than the Breadth. Which -shews, that this Light is refracted regularly without any Dilatation of -the Rays. - -_Exper._ 13. In the homogeneal Light I placed a Paper Circle of a -quarter of an Inch in diameter, and in the Sun's unrefracted -heterogeneal white Light I placed another Paper Circle of the same -Bigness. And going from the Papers to the distance of some Feet, I -viewed both Circles through a Prism. The Circle illuminated by the Sun's -heterogeneal Light appeared very oblong, as in the fourth Experiment, -the Length being many times greater than the Breadth; but the other -Circle, illuminated with homogeneal Light, appeared circular and -distinctly defined, as when 'tis view'd with the naked Eye. Which proves -the whole Proposition. - -_Exper._ 14. In the homogeneal Light I placed Flies, and such-like -minute Objects, and viewing them through a Prism, I saw their Parts as -distinctly defined, as if I had viewed them with the naked Eye. The same -Objects placed in the Sun's unrefracted heterogeneal Light, which was -white, I viewed also through a Prism, and saw them most confusedly -defined, so that I could not distinguish their smaller Parts from one -another. I placed also the Letters of a small print, one while in the -homogeneal Light, and then in the heterogeneal, and viewing them through -a Prism, they appeared in the latter Case so confused and indistinct, -that I could not read them; but in the former they appeared so distinct, -that I could read readily, and thought I saw them as distinct, as when I -view'd them with my naked Eye. In both Cases I view'd the same Objects, -through the same Prism at the same distance from me, and in the same -Situation. There was no difference, but in the Light by which the -Objects were illuminated, and which in one Case was simple, and in the -other compound; and therefore, the distinct Vision in the former Case, -and confused in the latter, could arise from nothing else than from that -difference of the Lights. Which proves the whole Proposition. - -And in these three Experiments it is farther very remarkable, that the -Colour of homogeneal Light was never changed by the Refraction. - - -_PROP._ VI. THEOR. V. - -_The Sine of Incidence of every Ray considered apart, is to its Sine of -Refraction in a given Ratio._ - -That every Ray consider'd apart, is constant to it self in some degree -of Refrangibility, is sufficiently manifest out of what has been said. -Those Rays, which in the first Refraction, are at equal Incidences most -refracted, are also in the following Refractions at equal Incidences -most refracted; and so of the least refrangible, and the rest which have -any mean Degree of Refrangibility, as is manifest by the fifth, sixth, -seventh, eighth, and ninth Experiments. And those which the first Time -at like Incidences are equally refracted, are again at like Incidences -equally and uniformly refracted, and that whether they be refracted -before they be separated from one another, as in the fifth Experiment, -or whether they be refracted apart, as in the twelfth, thirteenth and -fourteenth Experiments. The Refraction therefore of every Ray apart is -regular, and what Rule that Refraction observes we are now to shew.[E] - -The late Writers in Opticks teach, that the Sines of Incidence are in a -given Proportion to the Sines of Refraction, as was explained in the -fifth Axiom, and some by Instruments fitted for measuring of -Refractions, or otherwise experimentally examining this Proportion, do -acquaint us that they have found it accurate. But whilst they, not -understanding the different Refrangibility of several Rays, conceived -them all to be refracted according to one and the same Proportion, 'tis -to be presumed that they adapted their Measures only to the middle of -the refracted Light; so that from their Measures we may conclude only -that the Rays which have a mean Degree of Refrangibility, that is, those -which when separated from the rest appear green, are refracted according -to a given Proportion of their Sines. And therefore we are now to shew, -that the like given Proportions obtain in all the rest. That it should -be so is very reasonable, Nature being ever conformable to her self; but -an experimental Proof is desired. And such a Proof will be had, if we -can shew that the Sines of Refraction of Rays differently refrangible -are one to another in a given Proportion when their Sines of Incidence -are equal. For, if the Sines of Refraction of all the Rays are in given -Proportions to the Sine of Refractions of a Ray which has a mean Degree -of Refrangibility, and this Sine is in a given Proportion to the equal -Sines of Incidence, those other Sines of Refraction will also be in -given Proportions to the equal Sines of Incidence. Now, when the Sines -of Incidence are equal, it will appear by the following Experiment, that -the Sines of Refraction are in a given Proportion to one another. - -[Illustration: FIG. 26.] - -_Exper._ 15. The Sun shining into a dark Chamber through a little round -Hole in the Window-shut, let S [in _Fig._ 26.] represent his round white -Image painted on the opposite Wall by his direct Light, PT his oblong -coloured Image made by refracting that Light with a Prism placed at the -Window; and _pt_, or _2p 2t_, _3p 3t_, his oblong colour'd Image made by -refracting again the same Light sideways with a second Prism placed -immediately after the first in a cross Position to it, as was explained -in the fifth Experiment; that is to say, _pt_ when the Refraction of the -second Prism is small, _2p 2t_ when its Refraction is greater, and _3p -3t_ when it is greatest. For such will be the diversity of the -Refractions, if the refracting Angle of the second Prism be of various -Magnitudes; suppose of fifteen or twenty Degrees to make the Image _pt_, -of thirty or forty to make the Image _2p 2t_, and of sixty to make the -Image _3p 3t_. But for want of solid Glass Prisms with Angles of -convenient Bignesses, there may be Vessels made of polished Plates of -Glass cemented together in the form of Prisms and filled with Water. -These things being thus ordered, I observed that all the solar Images or -coloured Spectrums PT, _pt_, _2p 2t_, _3p 3t_ did very nearly converge -to the place S on which the direct Light of the Sun fell and painted his -white round Image when the Prisms were taken away. The Axis of the -Spectrum PT, that is the Line drawn through the middle of it parallel to -its rectilinear Sides, did when produced pass exactly through the middle -of that white round Image S. And when the Refraction of the second Prism -was equal to the Refraction of the first, the refracting Angles of them -both being about 60 Degrees, the Axis of the Spectrum _3p 3t_ made by -that Refraction, did when produced pass also through the middle of the -same white round Image S. But when the Refraction of the second Prism -was less than that of the first, the produced Axes of the Spectrums _tp_ -or _2t 2p_ made by that Refraction did cut the produced Axis of the -Spectrum TP in the points _m_ and _n_, a little beyond the Center of -that white round Image S. Whence the proportion of the Line 3_t_T to the -Line 3_p_P was a little greater than the Proportion of 2_t_T or 2_p_P, -and this Proportion a little greater than that of _t_T to _p_P. Now when -the Light of the Spectrum PT falls perpendicularly upon the Wall, those -Lines 3_t_T, 3_p_P, and 2_t_T, and 2_p_P, and _t_T, _p_P, are the -Tangents of the Refractions, and therefore by this Experiment the -Proportions of the Tangents of the Refractions are obtained, from whence -the Proportions of the Sines being derived, they come out equal, so far -as by viewing the Spectrums, and using some mathematical Reasoning I -could estimate. For I did not make an accurate Computation. So then the -Proposition holds true in every Ray apart, so far as appears by -Experiment. And that it is accurately true, may be demonstrated upon -this Supposition. _That Bodies refract Light by acting upon its Rays in -Lines perpendicular to their Surfaces._ But in order to this -Demonstration, I must distinguish the Motion of every Ray into two -Motions, the one perpendicular to the refracting Surface, the other -parallel to it, and concerning the perpendicular Motion lay down the -following Proposition. - -If any Motion or moving thing whatsoever be incident with any Velocity -on any broad and thin space terminated on both sides by two parallel -Planes, and in its Passage through that space be urged perpendicularly -towards the farther Plane by any force which at given distances from the -Plane is of given Quantities; the perpendicular velocity of that Motion -or Thing, at its emerging out of that space, shall be always equal to -the square Root of the sum of the square of the perpendicular velocity -of that Motion or Thing at its Incidence on that space; and of the -square of the perpendicular velocity which that Motion or Thing would -have at its Emergence, if at its Incidence its perpendicular velocity -was infinitely little. - -And the same Proposition holds true of any Motion or Thing -perpendicularly retarded in its passage through that space, if instead -of the sum of the two Squares you take their difference. The -Demonstration Mathematicians will easily find out, and therefore I shall -not trouble the Reader with it. - -Suppose now that a Ray coming most obliquely in the Line MC [in _Fig._ -1.] be refracted at C by the Plane RS into the Line CN, and if it be -required to find the Line CE, into which any other Ray AC shall be -refracted; let MC, AD, be the Sines of Incidence of the two Rays, and -NG, EF, their Sines of Refraction, and let the equal Motions of the -incident Rays be represented by the equal Lines MC and AC, and the -Motion MC being considered as parallel to the refracting Plane, let the -other Motion AC be distinguished into two Motions AD and DC, one of -which AD is parallel, and the other DC perpendicular to the refracting -Surface. In like manner, let the Motions of the emerging Rays be -distinguish'd into two, whereof the perpendicular ones are MC/NG × CG -and AD/EF × CF. And if the force of the refracting Plane begins to act -upon the Rays either in that Plane or at a certain distance from it on -the one side, and ends at a certain distance from it on the other side, -and in all places between those two limits acts upon the Rays in Lines -perpendicular to that refracting Plane, and the Actions upon the Rays at -equal distances from the refracting Plane be equal, and at unequal ones -either equal or unequal according to any rate whatever; that Motion of -the Ray which is parallel to the refracting Plane, will suffer no -Alteration by that Force; and that Motion which is perpendicular to it -will be altered according to the rule of the foregoing Proposition. If -therefore for the perpendicular velocity of the emerging Ray CN you -write MC/NG × CG as above, then the perpendicular velocity of any other -emerging Ray CE which was AD/EF × CF, will be equal to the square Root -of CD_q_ + (_MCq/NGq_ × CG_q_). And by squaring these Equals, and adding -to them the Equals AD_q_ and MC_q_ - CD_q_, and dividing the Sums by the -Equals CF_q_ + EF_q_ and CG_q_ + NG_q_, you will have _MCq/NGq_ equal to -_ADq/EFq_. Whence AD, the Sine of Incidence, is to EF the Sine of -Refraction, as MC to NG, that is, in a given _ratio_. And this -Demonstration being general, without determining what Light is, or by -what kind of Force it is refracted, or assuming any thing farther than -that the refracting Body acts upon the Rays in Lines perpendicular to -its Surface; I take it to be a very convincing Argument of the full -truth of this Proposition. - -So then, if the _ratio_ of the Sines of Incidence and Refraction of any -sort of Rays be found in any one case, 'tis given in all cases; and this -may be readily found by the Method in the following Proposition. - - -_PROP._ VII. THEOR. VI. - -_The Perfection of Telescopes is impeded by the different Refrangibility -of the Rays of Light._ - -The Imperfection of Telescopes is vulgarly attributed to the spherical -Figures of the Glasses, and therefore Mathematicians have propounded to -figure them by the conical Sections. To shew that they are mistaken, I -have inserted this Proposition; the truth of which will appear by the -measure of the Refractions of the several sorts of Rays; and these -measures I thus determine. - -In the third Experiment of this first Part, where the refracting Angle -of the Prism was 62-1/2 Degrees, the half of that Angle 31 deg. 15 min. -is the Angle of Incidence of the Rays at their going out of the Glass -into the Air[F]; and the Sine of this Angle is 5188, the Radius being -10000. When the Axis of this Prism was parallel to the Horizon, and the -Refraction of the Rays at their Incidence on this Prism equal to that at -their Emergence out of it, I observed with a Quadrant the Angle which -the mean refrangible Rays, (that is those which went to the middle of -the Sun's coloured Image) made with the Horizon, and by this Angle and -the Sun's altitude observed at the same time, I found the Angle which -the emergent Rays contained with the incident to be 44 deg. and 40 min. -and the half of this Angle added to the Angle of Incidence 31 deg. 15 -min. makes the Angle of Refraction, which is therefore 53 deg. 35 min. -and its Sine 8047. These are the Sines of Incidence and Refraction of -the mean refrangible Rays, and their Proportion in round Numbers is 20 -to 31. This Glass was of a Colour inclining to green. The last of the -Prisms mentioned in the third Experiment was of clear white Glass. Its -refracting Angle 63-1/2 Degrees. The Angle which the emergent Rays -contained, with the incident 45 deg. 50 min. The Sine of half the first -Angle 5262. The Sine of half the Sum of the Angles 8157. And their -Proportion in round Numbers 20 to 31, as before. - -From the Length of the Image, which was about 9-3/4 or 10 Inches, -subduct its Breadth, which was 2-1/8 Inches, and the Remainder 7-3/4 -Inches would be the Length of the Image were the Sun but a Point, and -therefore subtends the Angle which the most and least refrangible Rays, -when incident on the Prism in the same Lines, do contain with one -another after their Emergence. Whence this Angle is 2 deg. 0´. 7´´. For -the distance between the Image and the Prism where this Angle is made, -was 18-1/2 Feet, and at that distance the Chord 7-3/4 Inches subtends an -Angle of 2 deg. 0´. 7´´. Now half this Angle is the Angle which these -emergent Rays contain with the emergent mean refrangible Rays, and a -quarter thereof, that is 30´. 2´´. may be accounted the Angle which they -would contain with the same emergent mean refrangible Rays, were they -co-incident to them within the Glass, and suffered no other Refraction -than that at their Emergence. For, if two equal Refractions, the one at -the Incidence of the Rays on the Prism, the other at their Emergence, -make half the Angle 2 deg. 0´. 7´´. then one of those Refractions will -make about a quarter of that Angle, and this quarter added to, and -subducted from the Angle of Refraction of the mean refrangible Rays, -which was 53 deg. 35´, gives the Angles of Refraction of the most and -least refrangible Rays 54 deg. 5´ 2´´, and 53 deg. 4´ 58´´, whose Sines -are 8099 and 7995, the common Angle of Incidence being 31 deg. 15´, and -its Sine 5188; and these Sines in the least round Numbers are in -proportion to one another, as 78 and 77 to 50. - -Now, if you subduct the common Sine of Incidence 50 from the Sines of -Refraction 77 and 78, the Remainders 27 and 28 shew, that in small -Refractions the Refraction of the least refrangible Rays is to the -Refraction of the most refrangible ones, as 27 to 28 very nearly, and -that the difference of the Refractions of the least refrangible and most -refrangible Rays is about the 27-1/2th Part of the whole Refraction of -the mean refrangible Rays. - -Whence they that are skilled in Opticks will easily understand,[G] that -the Breadth of the least circular Space, into which Object-glasses of -Telescopes can collect all sorts of Parallel Rays, is about the 27-1/2th -Part of half the Aperture of the Glass, or 55th Part of the whole -Aperture; and that the Focus of the most refrangible Rays is nearer to -the Object-glass than the Focus of the least refrangible ones, by about -the 27-1/2th Part of the distance between the Object-glass and the Focus -of the mean refrangible ones. - -And if Rays of all sorts, flowing from any one lucid Point in the Axis -of any convex Lens, be made by the Refraction of the Lens to converge to -Points not too remote from the Lens, the Focus of the most refrangible -Rays shall be nearer to the Lens than the Focus of the least refrangible -ones, by a distance which is to the 27-1/2th Part of the distance of the -Focus of the mean refrangible Rays from the Lens, as the distance -between that Focus and the lucid Point, from whence the Rays flow, is to -the distance between that lucid Point and the Lens very nearly. - -Now to examine whether the Difference between the Refractions, which the -most refrangible and the least refrangible Rays flowing from the same -Point suffer in the Object-glasses of Telescopes and such-like Glasses, -be so great as is here described, I contrived the following Experiment. - -_Exper._ 16. The Lens which I used in the second and eighth Experiments, -being placed six Feet and an Inch distant from any Object, collected the -Species of that Object by the mean refrangible Rays at the distance of -six Feet and an Inch from the Lens on the other side. And therefore by -the foregoing Rule, it ought to collect the Species of that Object by -the least refrangible Rays at the distance of six Feet and 3-2/3 Inches -from the Lens, and by the most refrangible ones at the distance of five -Feet and 10-1/3 Inches from it: So that between the two Places, where -these least and most refrangible Rays collect the Species, there may be -the distance of about 5-1/3 Inches. For by that Rule, as six Feet and an -Inch (the distance of the Lens from the lucid Object) is to twelve Feet -and two Inches (the distance of the lucid Object from the Focus of the -mean refrangible Rays) that is, as One is to Two; so is the 27-1/2th -Part of six Feet and an Inch (the distance between the Lens and the same -Focus) to the distance between the Focus of the most refrangible Rays -and the Focus of the least refrangible ones, which is therefore 5-17/55 -Inches, that is very nearly 5-1/3 Inches. Now to know whether this -Measure was true, I repeated the second and eighth Experiment with -coloured Light, which was less compounded than that I there made use of: -For I now separated the heterogeneous Rays from one another by the -Method I described in the eleventh Experiment, so as to make a coloured -Spectrum about twelve or fifteen Times longer than broad. This Spectrum -I cast on a printed Book, and placing the above-mentioned Lens at the -distance of six Feet and an Inch from this Spectrum to collect the -Species of the illuminated Letters at the same distance on the other -side, I found that the Species of the Letters illuminated with blue were -nearer to the Lens than those illuminated with deep red by about three -Inches, or three and a quarter; but the Species of the Letters -illuminated with indigo and violet appeared so confused and indistinct, -that I could not read them: Whereupon viewing the Prism, I found it was -full of Veins running from one end of the Glass to the other; so that -the Refraction could not be regular. I took another Prism therefore -which was free from Veins, and instead of the Letters I used two or -three Parallel black Lines a little broader than the Strokes of the -Letters, and casting the Colours upon these Lines in such manner, that -the Lines ran along the Colours from one end of the Spectrum to the -other, I found that the Focus where the indigo, or confine of this -Colour and violet cast the Species of the black Lines most distinctly, -to be about four Inches, or 4-1/4 nearer to the Lens than the Focus, -where the deepest red cast the Species of the same black Lines most -distinctly. The violet was so faint and dark, that I could not discern -the Species of the Lines distinctly by that Colour; and therefore -considering that the Prism was made of a dark coloured Glass inclining -to green, I took another Prism of clear white Glass; but the Spectrum of -Colours which this Prism made had long white Streams of faint Light -shooting out from both ends of the Colours, which made me conclude that -something was amiss; and viewing the Prism, I found two or three little -Bubbles in the Glass, which refracted the Light irregularly. Wherefore I -covered that Part of the Glass with black Paper, and letting the Light -pass through another Part of it which was free from such Bubbles, the -Spectrum of Colours became free from those irregular Streams of Light, -and was now such as I desired. But still I found the violet so dark and -faint, that I could scarce see the Species of the Lines by the violet, -and not at all by the deepest Part of it, which was next the end of the -Spectrum. I suspected therefore, that this faint and dark Colour might -be allayed by that scattering Light which was refracted, and reflected -irregularly, partly by some very small Bubbles in the Glasses, and -partly by the Inequalities of their Polish; which Light, tho' it was but -little, yet it being of a white Colour, might suffice to affect the -Sense so strongly as to disturb the Phænomena of that weak and dark -Colour the violet, and therefore I tried, as in the 12th, 13th, and 14th -Experiments, whether the Light of this Colour did not consist of a -sensible Mixture of heterogeneous Rays, but found it did not. Nor did -the Refractions cause any other sensible Colour than violet to emerge -out of this Light, as they would have done out of white Light, and by -consequence out of this violet Light had it been sensibly compounded -with white Light. And therefore I concluded, that the reason why I could -not see the Species of the Lines distinctly by this Colour, was only -the Darkness of this Colour, and Thinness of its Light, and its distance -from the Axis of the Lens; I divided therefore those Parallel black -Lines into equal Parts, by which I might readily know the distances of -the Colours in the Spectrum from one another, and noted the distances of -the Lens from the Foci of such Colours, as cast the Species of the Lines -distinctly, and then considered whether the difference of those -distances bear such proportion to 5-1/3 Inches, the greatest Difference -of the distances, which the Foci of the deepest red and violet ought to -have from the Lens, as the distance of the observed Colours from one -another in the Spectrum bear to the greatest distance of the deepest red -and violet measured in the Rectilinear Sides of the Spectrum, that is, -to the Length of those Sides, or Excess of the Length of the Spectrum -above its Breadth. And my Observations were as follows. - -When I observed and compared the deepest sensible red, and the Colour in -the Confine of green and blue, which at the Rectilinear Sides of the -Spectrum was distant from it half the Length of those Sides, the Focus -where the Confine of green and blue cast the Species of the Lines -distinctly on the Paper, was nearer to the Lens than the Focus, where -the red cast those Lines distinctly on it by about 2-1/2 or 2-3/4 -Inches. For sometimes the Measures were a little greater, sometimes a -little less, but seldom varied from one another above 1/3 of an Inch. -For it was very difficult to define the Places of the Foci, without some -little Errors. Now, if the Colours distant half the Length of the -Image, (measured at its Rectilinear Sides) give 2-1/2 or 2-3/4 -Difference of the distances of their Foci from the Lens, then the -Colours distant the whole Length ought to give 5 or 5-1/2 Inches -difference of those distances. - -But here it's to be noted, that I could not see the red to the full end -of the Spectrum, but only to the Center of the Semicircle which bounded -that end, or a little farther; and therefore I compared this red not -with that Colour which was exactly in the middle of the Spectrum, or -Confine of green and blue, but with that which verged a little more to -the blue than to the green: And as I reckoned the whole Length of the -Colours not to be the whole Length of the Spectrum, but the Length of -its Rectilinear Sides, so compleating the semicircular Ends into -Circles, when either of the observed Colours fell within those Circles, -I measured the distance of that Colour from the semicircular End of the -Spectrum, and subducting half this distance from the measured distance -of the two Colours, I took the Remainder for their corrected distance; -and in these Observations set down this corrected distance for the -difference of the distances of their Foci from the Lens. For, as the -Length of the Rectilinear Sides of the Spectrum would be the whole -Length of all the Colours, were the Circles of which (as we shewed) that -Spectrum consists contracted and reduced to Physical Points, so in that -Case this corrected distance would be the real distance of the two -observed Colours. - -When therefore I farther observed the deepest sensible red, and that -blue whose corrected distance from it was 7/12 Parts of the Length of -the Rectilinear Sides of the Spectrum, the difference of the distances -of their Foci from the Lens was about 3-1/4 Inches, and as 7 to 12, so -is 3-1/4 to 5-4/7. - -When I observed the deepest sensible red, and that indigo whose -corrected distance was 8/12 or 2/3 of the Length of the Rectilinear -Sides of the Spectrum, the difference of the distances of their Foci -from the Lens, was about 3-2/3 Inches, and as 2 to 3, so is 3-2/3 to -5-1/2. - -When I observed the deepest sensible red, and that deep indigo whose -corrected distance from one another was 9/12 or 3/4 of the Length of the -Rectilinear Sides of the Spectrum, the difference of the distances of -their Foci from the Lens was about 4 Inches; and as 3 to 4, so is 4 to -5-1/3. - -When I observed the deepest sensible red, and that Part of the violet -next the indigo, whose corrected distance from the red was 10/12 or 5/6 -of the Length of the Rectilinear Sides of the Spectrum, the difference -of the distances of their Foci from the Lens was about 4-1/2 Inches, and -as 5 to 6, so is 4-1/2 to 5-2/5. For sometimes, when the Lens was -advantageously placed, so that its Axis respected the blue, and all -Things else were well ordered, and the Sun shone clear, and I held my -Eye very near to the Paper on which the Lens cast the Species of the -Lines, I could see pretty distinctly the Species of those Lines by that -Part of the violet which was next the indigo; and sometimes I could see -them by above half the violet, For in making these Experiments I had -observed, that the Species of those Colours only appear distinct, which -were in or near the Axis of the Lens: So that if the blue or indigo were -in the Axis, I could see their Species distinctly; and then the red -appeared much less distinct than before. Wherefore I contrived to make -the Spectrum of Colours shorter than before, so that both its Ends might -be nearer to the Axis of the Lens. And now its Length was about 2-1/2 -Inches, and Breadth about 1/5 or 1/6 of an Inch. Also instead of the -black Lines on which the Spectrum was cast, I made one black Line -broader than those, that I might see its Species more easily; and this -Line I divided by short cross Lines into equal Parts, for measuring the -distances of the observed Colours. And now I could sometimes see the -Species of this Line with its Divisions almost as far as the Center of -the semicircular violet End of the Spectrum, and made these farther -Observations. - -When I observed the deepest sensible red, and that Part of the violet, -whose corrected distance from it was about 8/9 Parts of the Rectilinear -Sides of the Spectrum, the Difference of the distances of the Foci of -those Colours from the Lens, was one time 4-2/3, another time 4-3/4, -another time 4-7/8 Inches; and as 8 to 9, so are 4-2/3, 4-3/4, 4-7/8, to -5-1/4, 5-11/32, 5-31/64 respectively. - -When I observed the deepest sensible red, and deepest sensible violet, -(the corrected distance of which Colours, when all Things were ordered -to the best Advantage, and the Sun shone very clear, was about 11/12 or -15/16 Parts of the Length of the Rectilinear Sides of the coloured -Spectrum) I found the Difference of the distances of their Foci from the -Lens sometimes 4-3/4 sometimes 5-1/4, and for the most part 5 Inches or -thereabouts; and as 11 to 12, or 15 to 16, so is five Inches to 5-2/2 or -5-1/3 Inches. - -And by this Progression of Experiments I satisfied my self, that had the -Light at the very Ends of the Spectrum been strong enough to make the -Species of the black Lines appear plainly on the Paper, the Focus of the -deepest violet would have been found nearer to the Lens, than the Focus -of the deepest red, by about 5-1/3 Inches at least. And this is a -farther Evidence, that the Sines of Incidence and Refraction of the -several sorts of Rays, hold the same Proportion to one another in the -smallest Refractions which they do in the greatest. - -My Progress in making this nice and troublesome Experiment I have set -down more at large, that they that shall try it after me may be aware of -the Circumspection requisite to make it succeed well. And if they cannot -make it succeed so well as I did, they may notwithstanding collect by -the Proportion of the distance of the Colours of the Spectrum, to the -Difference of the distances of their Foci from the Lens, what would be -the Success in the more distant Colours by a better trial. And yet, if -they use a broader Lens than I did, and fix it to a long strait Staff, -by means of which it may be readily and truly directed to the Colour -whose Focus is desired, I question not but the Experiment will succeed -better with them than it did with me. For I directed the Axis as nearly -as I could to the middle of the Colours, and then the faint Ends of the -Spectrum being remote from the Axis, cast their Species less distinctly -on the Paper than they would have done, had the Axis been successively -directed to them. - -Now by what has been said, it's certain that the Rays which differ in -Refrangibility do not converge to the same Focus; but if they flow from -a lucid Point, as far from the Lens on one side as their Foci are on the -other, the Focus of the most refrangible Rays shall be nearer to the -Lens than that of the least refrangible, by above the fourteenth Part of -the whole distance; and if they flow from a lucid Point, so very remote -from the Lens, that before their Incidence they may be accounted -parallel, the Focus of the most refrangible Rays shall be nearer to the -Lens than the Focus of the least refrangible, by about the 27th or 28th -Part of their whole distance from it. And the Diameter of the Circle in -the middle Space between those two Foci which they illuminate, when they -fall there on any Plane, perpendicular to the Axis (which Circle is the -least into which they can all be gathered) is about the 55th Part of the -Diameter of the Aperture of the Glass. So that 'tis a wonder, that -Telescopes represent Objects so distinct as they do. But were all the -Rays of Light equally refrangible, the Error arising only from the -Sphericalness of the Figures of Glasses would be many hundred times -less. For, if the Object-glass of a Telescope be Plano-convex, and the -Plane side be turned towards the Object, and the Diameter of the -Sphere, whereof this Glass is a Segment, be called D, and the -Semi-diameter of the Aperture of the Glass be called S, and the Sine of -Incidence out of Glass into Air, be to the Sine of Refraction as I to R; -the Rays which come parallel to the Axis of the Glass, shall in the -Place where the Image of the Object is most distinctly made, be -scattered all over a little Circle, whose Diameter is _(Rq/Iq) × (S -cub./D quad.)_ very nearly,[H] as I gather by computing the Errors of -the Rays by the Method of infinite Series, and rejecting the Terms, -whose Quantities are inconsiderable. As for instance, if the Sine of -Incidence I, be to the Sine of Refraction R, as 20 to 31, and if D the -Diameter of the Sphere, to which the Convex-side of the Glass is ground, -be 100 Feet or 1200 Inches, and S the Semi-diameter of the Aperture be -two Inches, the Diameter of the little Circle, (that is (_Rq × S -cub.)/(Iq × D quad._)) will be (31 × 31 × 8)/(20 × 20 × 1200 × 1200) (or -961/72000000) Parts of an Inch. But the Diameter of the little Circle, -through which these Rays are scattered by unequal Refrangibility, will -be about the 55th Part of the Aperture of the Object-glass, which here -is four Inches. And therefore, the Error arising from the Spherical -Figure of the Glass, is to the Error arising from the different -Refrangibility of the Rays, as 961/72000000 to 4/55, that is as 1 to -5449; and therefore being in comparison so very little, deserves not to -be considered. - -[Illustration: FIG. 27.] - -But you will say, if the Errors caused by the different Refrangibility -be so very great, how comes it to pass, that Objects appear through -Telescopes so distinct as they do? I answer, 'tis because the erring -Rays are not scattered uniformly over all that Circular Space, but -collected infinitely more densely in the Center than in any other Part -of the Circle, and in the Way from the Center to the Circumference, grow -continually rarer and rarer, so as at the Circumference to become -infinitely rare; and by reason of their Rarity are not strong enough to -be visible, unless in the Center and very near it. Let ADE [in _Fig._ -27.] represent one of those Circles described with the Center C, and -Semi-diameter AC, and let BFG be a smaller Circle concentrick to the -former, cutting with its Circumference the Diameter AC in B, and bisect -AC in N; and by my reckoning, the Density of the Light in any Place B, -will be to its Density in N, as AB to BC; and the whole Light within the -lesser Circle BFG, will be to the whole Light within the greater AED, as -the Excess of the Square of AC above the Square of AB, is to the Square -of AC. As if BC be the fifth Part of AC, the Light will be four times -denser in B than in N, and the whole Light within the less Circle, will -be to the whole Light within the greater, as nine to twenty-five. Whence -it's evident, that the Light within the less Circle, must strike the -Sense much more strongly, than that faint and dilated Light round about -between it and the Circumference of the greater. - -But it's farther to be noted, that the most luminous of the Prismatick -Colours are the yellow and orange. These affect the Senses more strongly -than all the rest together, and next to these in strength are the red -and green. The blue compared with these is a faint and dark Colour, and -the indigo and violet are much darker and fainter, so that these -compared with the stronger Colours are little to be regarded. The Images -of Objects are therefore to be placed, not in the Focus of the mean -refrangible Rays, which are in the Confine of green and blue, but in the -Focus of those Rays which are in the middle of the orange and yellow; -there where the Colour is most luminous and fulgent, that is in the -brightest yellow, that yellow which inclines more to orange than to -green. And by the Refraction of these Rays (whose Sines of Incidence and -Refraction in Glass are as 17 and 11) the Refraction of Glass and -Crystal for Optical Uses is to be measured. Let us therefore place the -Image of the Object in the Focus of these Rays, and all the yellow and -orange will fall within a Circle, whose Diameter is about the 250th -Part of the Diameter of the Aperture of the Glass. And if you add the -brighter half of the red, (that half which is next the orange) and the -brighter half of the green, (that half which is next the yellow) about -three fifth Parts of the Light of these two Colours will fall within the -same Circle, and two fifth Parts will fall without it round about; and -that which falls without will be spread through almost as much more -space as that which falls within, and so in the gross be almost three -times rarer. Of the other half of the red and green, (that is of the -deep dark red and willow green) about one quarter will fall within this -Circle, and three quarters without, and that which falls without will be -spread through about four or five times more space than that which falls -within; and so in the gross be rarer, and if compared with the whole -Light within it, will be about 25 times rarer than all that taken in the -gross; or rather more than 30 or 40 times rarer, because the deep red in -the end of the Spectrum of Colours made by a Prism is very thin and -rare, and the willow green is something rarer than the orange and -yellow. The Light of these Colours therefore being so very much rarer -than that within the Circle, will scarce affect the Sense, especially -since the deep red and willow green of this Light, are much darker -Colours than the rest. And for the same reason the blue and violet being -much darker Colours than these, and much more rarified, may be -neglected. For the dense and bright Light of the Circle, will obscure -the rare and weak Light of these dark Colours round about it, and -render them almost insensible. The sensible Image of a lucid Point is -therefore scarce broader than a Circle, whose Diameter is the 250th Part -of the Diameter of the Aperture of the Object-glass of a good Telescope, -or not much broader, if you except a faint and dark misty Light round -about it, which a Spectator will scarce regard. And therefore in a -Telescope, whose Aperture is four Inches, and Length an hundred Feet, it -exceeds not 2´´ 45´´´, or 3´´. And in a Telescope whose Aperture is two -Inches, and Length 20 or 30 Feet, it may be 5´´ or 6´´, and scarce -above. And this answers well to Experience: For some Astronomers have -found the Diameters of the fix'd Stars, in Telescopes of between 20 and -60 Feet in length, to be about 5´´ or 6´´, or at most 8´´ or 10´´ in -diameter. But if the Eye-Glass be tincted faintly with the Smoak of a -Lamp or Torch, to obscure the Light of the Star, the fainter Light in -the Circumference of the Star ceases to be visible, and the Star (if the -Glass be sufficiently soiled with Smoak) appears something more like a -mathematical Point. And for the same Reason, the enormous Part of the -Light in the Circumference of every lucid Point ought to be less -discernible in shorter Telescopes than in longer, because the shorter -transmit less Light to the Eye. - -Now, that the fix'd Stars, by reason of their immense Distance, appear -like Points, unless so far as their Light is dilated by Refraction, may -appear from hence; that when the Moon passes over them and eclipses -them, their Light vanishes, not gradually like that of the Planets, but -all at once; and in the end of the Eclipse it returns into Sight all at -once, or certainly in less time than the second of a Minute; the -Refraction of the Moon's Atmosphere a little protracting the time in -which the Light of the Star first vanishes, and afterwards returns into -Sight. - -Now, if we suppose the sensible Image of a lucid Point, to be even 250 -times narrower than the Aperture of the Glass; yet this Image would be -still much greater than if it were only from the spherical Figure of the -Glass. For were it not for the different Refrangibility of the Rays, its -breadth in an 100 Foot Telescope whose aperture is 4 Inches, would be -but 961/72000000 parts of an Inch, as is manifest by the foregoing -Computation. And therefore in this case the greatest Errors arising from -the spherical Figure of the Glass, would be to the greatest sensible -Errors arising from the different Refrangibility of the Rays as -961/72000000 to 4/250 at most, that is only as 1 to 1200. And this -sufficiently shews that it is not the spherical Figures of Glasses, but -the different Refrangibility of the Rays which hinders the perfection of -Telescopes. - -There is another Argument by which it may appear that the different -Refrangibility of Rays, is the true cause of the imperfection of -Telescopes. For the Errors of the Rays arising from the spherical -Figures of Object-glasses, are as the Cubes of the Apertures of the -Object Glasses; and thence to make Telescopes of various Lengths magnify -with equal distinctness, the Apertures of the Object-glasses, and the -Charges or magnifying Powers ought to be as the Cubes of the square -Roots of their lengths; which doth not answer to Experience. But the -Errors of the Rays arising from the different Refrangibility, are as the -Apertures of the Object-glasses; and thence to make Telescopes of -various lengths, magnify with equal distinctness, their Apertures and -Charges ought to be as the square Roots of their lengths; and this -answers to Experience, as is well known. For Instance, a Telescope of 64 -Feet in length, with an Aperture of 2-2/3 Inches, magnifies about 120 -times, with as much distinctness as one of a Foot in length, with 1/3 of -an Inch aperture, magnifies 15 times. - -[Illustration: FIG. 28.] - -Now were it not for this different Refrangibility of Rays, Telescopes -might be brought to a greater perfection than we have yet describ'd, by -composing the Object-glass of two Glasses with Water between them. Let -ADFC [in _Fig._ 28.] represent the Object-glass composed of two Glasses -ABED and BEFC, alike convex on the outsides AGD and CHF, and alike -concave on the insides BME, BNE, with Water in the concavity BMEN. Let -the Sine of Incidence out of Glass into Air be as I to R, and out of -Water into Air, as K to R, and by consequence out of Glass into Water, -as I to K: and let the Diameter of the Sphere to which the convex sides -AGD and CHF are ground be D, and the Diameter of the Sphere to which the -concave sides BME and BNE, are ground be to D, as the Cube Root of -KK--KI to the Cube Root of RK--RI: and the Refractions on the concave -sides of the Glasses, will very much correct the Errors of the -Refractions on the convex sides, so far as they arise from the -sphericalness of the Figure. And by this means might Telescopes be -brought to sufficient perfection, were it not for the different -Refrangibility of several sorts of Rays. But by reason of this different -Refrangibility, I do not yet see any other means of improving Telescopes -by Refractions alone, than that of increasing their lengths, for which -end the late Contrivance of _Hugenius_ seems well accommodated. For very -long Tubes are cumbersome, and scarce to be readily managed, and by -reason of their length are very apt to bend, and shake by bending, so as -to cause a continual trembling in the Objects, whereby it becomes -difficult to see them distinctly: whereas by his Contrivance the Glasses -are readily manageable, and the Object-glass being fix'd upon a strong -upright Pole becomes more steady. - -Seeing therefore the Improvement of Telescopes of given lengths by -Refractions is desperate; I contrived heretofore a Perspective by -Reflexion, using instead of an Object-glass a concave Metal. The -diameter of the Sphere to which the Metal was ground concave was about -25 _English_ Inches, and by consequence the length of the Instrument -about six Inches and a quarter. The Eye-glass was Plano-convex, and the -diameter of the Sphere to which the convex side was ground was about 1/5 -of an Inch, or a little less, and by consequence it magnified between 30 -and 40 times. By another way of measuring I found that it magnified -about 35 times. The concave Metal bore an Aperture of an Inch and a -third part; but the Aperture was limited not by an opake Circle, -covering the Limb of the Metal round about, but by an opake Circle -placed between the Eyeglass and the Eye, and perforated in the middle -with a little round hole for the Rays to pass through to the Eye. For -this Circle by being placed here, stopp'd much of the erroneous Light, -which otherwise would have disturbed the Vision. By comparing it with a -pretty good Perspective of four Feet in length, made with a concave -Eye-glass, I could read at a greater distance with my own Instrument -than with the Glass. Yet Objects appeared much darker in it than in the -Glass, and that partly because more Light was lost by Reflexion in the -Metal, than by Refraction in the Glass, and partly because my Instrument -was overcharged. Had it magnified but 30 or 25 times, it would have made -the Object appear more brisk and pleasant. Two of these I made about 16 -Years ago, and have one of them still by me, by which I can prove the -truth of what I write. Yet it is not so good as at the first. For the -concave has been divers times tarnished and cleared again, by rubbing -it with very soft Leather. When I made these an Artist in _London_ -undertook to imitate it; but using another way of polishing them than I -did, he fell much short of what I had attained to, as I afterwards -understood by discoursing the Under-workman he had employed. The Polish -I used was in this manner. I had two round Copper Plates, each six -Inches in Diameter, the one convex, the other concave, ground very true -to one another. On the convex I ground the Object-Metal or Concave which -was to be polish'd, 'till it had taken the Figure of the Convex and was -ready for a Polish. Then I pitched over the convex very thinly, by -dropping melted Pitch upon it, and warming it to keep the Pitch soft, -whilst I ground it with the concave Copper wetted to make it spread -eavenly all over the convex. Thus by working it well I made it as thin -as a Groat, and after the convex was cold I ground it again to give it -as true a Figure as I could. Then I took Putty which I had made very -fine by washing it from all its grosser Particles, and laying a little -of this upon the Pitch, I ground it upon the Pitch with the concave -Copper, till it had done making a Noise; and then upon the Pitch I -ground the Object-Metal with a brisk motion, for about two or three -Minutes of time, leaning hard upon it. Then I put fresh Putty upon the -Pitch, and ground it again till it had done making a noise, and -afterwards ground the Object-Metal upon it as before. And this Work I -repeated till the Metal was polished, grinding it the last time with all -my strength for a good while together, and frequently breathing upon -the Pitch, to keep it moist without laying on any more fresh Putty. The -Object-Metal was two Inches broad, and about one third part of an Inch -thick, to keep it from bending. I had two of these Metals, and when I -had polished them both, I tried which was best, and ground the other -again, to see if I could make it better than that which I kept. And thus -by many Trials I learn'd the way of polishing, till I made those two -reflecting Perspectives I spake of above. For this Art of polishing will -be better learn'd by repeated Practice than by my Description. Before I -ground the Object-Metal on the Pitch, I always ground the Putty on it -with the concave Copper, till it had done making a noise, because if the -Particles of the Putty were not by this means made to stick fast in the -Pitch, they would by rolling up and down grate and fret the Object-Metal -and fill it full of little holes. - -But because Metal is more difficult to polish than Glass, and is -afterwards very apt to be spoiled by tarnishing, and reflects not so -much Light as Glass quick-silver'd over does: I would propound to use -instead of the Metal, a Glass ground concave on the foreside, and as -much convex on the backside, and quick-silver'd over on the convex side. -The Glass must be every where of the same thickness exactly. Otherwise -it will make Objects look colour'd and indistinct. By such a Glass I -tried about five or six Years ago to make a reflecting Telescope of four -Feet in length to magnify about 150 times, and I satisfied my self that -there wants nothing but a good Artist to bring the Design to -perfection. For the Glass being wrought by one of our _London_ Artists -after such a manner as they grind Glasses for Telescopes, though it -seemed as well wrought as the Object-glasses use to be, yet when it was -quick-silver'd, the Reflexion discovered innumerable Inequalities all -over the Glass. And by reason of these Inequalities, Objects appeared -indistinct in this Instrument. For the Errors of reflected Rays caused -by any Inequality of the Glass, are about six times greater than the -Errors of refracted Rays caused by the like Inequalities. Yet by this -Experiment I satisfied my self that the Reflexion on the concave side of -the Glass, which I feared would disturb the Vision, did no sensible -prejudice to it, and by consequence that nothing is wanting to perfect -these Telescopes, but good Workmen who can grind and polish Glasses -truly spherical. An Object-glass of a fourteen Foot Telescope, made by -an Artificer at _London_, I once mended considerably, by grinding it on -Pitch with Putty, and leaning very easily on it in the grinding, lest -the Putty should scratch it. Whether this way may not do well enough for -polishing these reflecting Glasses, I have not yet tried. But he that -shall try either this or any other way of polishing which he may think -better, may do well to make his Glasses ready for polishing, by grinding -them without that Violence, wherewith our _London_ Workmen press their -Glasses in grinding. For by such violent pressure, Glasses are apt to -bend a little in the grinding, and such bending will certainly spoil -their Figure. To recommend therefore the consideration of these -reflecting Glasses to such Artists as are curious in figuring Glasses, I -shall describe this optical Instrument in the following Proposition. - - -_PROP._ VIII. PROB. II. - -_To shorten Telescopes._ - -Let ABCD [in _Fig._ 29.] represent a Glass spherically concave on the -foreside AB, and as much convex on the backside CD, so that it be every -where of an equal thickness. Let it not be thicker on one side than on -the other, lest it make Objects appear colour'd and indistinct, and let -it be very truly wrought and quick-silver'd over on the backside; and -set in the Tube VXYZ which must be very black within. Let EFG represent -a Prism of Glass or Crystal placed near the other end of the Tube, in -the middle of it, by means of a handle of Brass or Iron FGK, to the end -of which made flat it is cemented. Let this Prism be rectangular at E, -and let the other two Angles at F and G be accurately equal to each -other, and by consequence equal to half right ones, and let the plane -sides FE and GE be square, and by consequence the third side FG a -rectangular Parallelogram, whose length is to its breadth in a -subduplicate proportion of two to one. Let it be so placed in the Tube, -that the Axis of the Speculum may pass through the middle of the square -side EF perpendicularly and by consequence through the middle of the -side FG at an Angle of 45 Degrees, and let the side EF be turned towards -the Speculum, and the distance of this Prism from the Speculum be such -that the Rays of the Light PQ, RS, &c. which are incident upon the -Speculum in Lines parallel to the Axis thereof, may enter the Prism at -the side EF, and be reflected by the side FG, and thence go out of it -through the side GE, to the Point T, which must be the common Focus of -the Speculum ABDC, and of a Plano-convex Eye-glass H, through which -those Rays must pass to the Eye. And let the Rays at their coming out of -the Glass pass through a small round hole, or aperture made in a little -plate of Lead, Brass, or Silver, wherewith the Glass is to be covered, -which hole must be no bigger than is necessary for Light enough to pass -through. For so it will render the Object distinct, the Plate in which -'tis made intercepting all the erroneous part of the Light which comes -from the verges of the Speculum AB. Such an Instrument well made, if it -be six Foot long, (reckoning the length from the Speculum to the Prism, -and thence to the Focus T) will bear an aperture of six Inches at the -Speculum, and magnify between two and three hundred times. But the hole -H here limits the aperture with more advantage, than if the aperture was -placed at the Speculum. If the Instrument be made longer or shorter, the -aperture must be in proportion as the Cube of the square-square Root of -the length, and the magnifying as the aperture. But it's convenient that -the Speculum be an Inch or two broader than the aperture at the least, -and that the Glass of the Speculum be thick, that it bend not in the -working. The Prism EFG must be no bigger than is necessary, and its back -side FG must not be quick-silver'd over. For without quicksilver it will -reflect all the Light incident on it from the Speculum. - -[Illustration: FIG. 29.] - -In this Instrument the Object will be inverted, but may be erected by -making the square sides FF and EG of the Prism EFG not plane but -spherically convex, that the Rays may cross as well before they come at -it as afterwards between it and the Eye-glass. If it be desired that the -Instrument bear a larger aperture, that may be also done by composing -the Speculum of two Glasses with Water between them. - -If the Theory of making Telescopes could at length be fully brought into -Practice, yet there would be certain Bounds beyond which Telescopes -could not perform. For the Air through which we look upon the Stars, is -in a perpetual Tremor; as may be seen by the tremulous Motion of Shadows -cast from high Towers, and by the twinkling of the fix'd Stars. But -these Stars do not twinkle when viewed through Telescopes which have -large apertures. For the Rays of Light which pass through divers parts -of the aperture, tremble each of them apart, and by means of their -various and sometimes contrary Tremors, fall at one and the same time -upon different points in the bottom of the Eye, and their trembling -Motions are too quick and confused to be perceived severally. And all -these illuminated Points constitute one broad lucid Point, composed of -those many trembling Points confusedly and insensibly mixed with one -another by very short and swift Tremors, and thereby cause the Star to -appear broader than it is, and without any trembling of the whole. Long -Telescopes may cause Objects to appear brighter and larger than short -ones can do, but they cannot be so formed as to take away that confusion -of the Rays which arises from the Tremors of the Atmosphere. The only -Remedy is a most serene and quiet Air, such as may perhaps be found on -the tops of the highest Mountains above the grosser Clouds. - -FOOTNOTES: - -[C] _See our_ Author's Lectiones Opticæ § 10. _Sect. II. § 29. and Sect. -III. Prop. 25._ - -[D] See our Author's _Lectiones Opticæ_, Part. I. Sect. 1. §5. - -[E] _This is very fully treated of in our_ Author's Lect. Optic. _Part_ -I. _Sect._ II. - -[F] _See our_ Author's Lect. Optic. Part I. Sect. II. § 29. - -[G] _This is demonstrated in our_ Author's Lect. Optic. _Part_ I. -_Sect._ IV. _Prop._ 37. - -[H] _How to do this, is shewn in our_ Author's Lect. Optic. _Part_ I. -_Sect._ IV. _Prop._ 31. - - - - -THE FIRST BOOK OF OPTICKS - - - - -_PART II._ - - -_PROP._ I. THEOR. I. - -_The Phænomena of Colours in refracted or reflected Light are not caused -by new Modifications of the Light variously impress'd, according to the -various Terminations of the Light and Shadow_. - -The PROOF by Experiments. - -_Exper._ 1. For if the Sun shine into a very dark Chamber through an -oblong hole F, [in _Fig._ 1.] whose breadth is the sixth or eighth part -of an Inch, or something less; and his beam FH do afterwards pass first -through a very large Prism ABC, distant about 20 Feet from the hole, and -parallel to it, and then (with its white part) through an oblong hole H, -whose breadth is about the fortieth or sixtieth part of an Inch, and -which is made in a black opake Body GI, and placed at the distance of -two or three Feet from the Prism, in a parallel Situation both to the -Prism and to the former hole, and if this white Light thus transmitted -through the hole H, fall afterwards upon a white Paper _pt_, placed -after that hole H, at the distance of three or four Feet from it, and -there paint the usual Colours of the Prism, suppose red at _t_, yellow -at _s_, green at _r_, blue at _q_, and violet at _p_; you may with an -Iron Wire, or any such like slender opake Body, whose breadth is about -the tenth part of an Inch, by intercepting the Rays at _k_, _l_, _m_, -_n_ or _o_, take away any one of the Colours at _t_, _s_, _r_, _q_ or -_p_, whilst the other Colours remain upon the Paper as before; or with -an Obstacle something bigger you may take away any two, or three, or -four Colours together, the rest remaining: So that any one of the -Colours as well as violet may become outmost in the Confine of the -Shadow towards _p_, and any one of them as well as red may become -outmost in the Confine of the Shadow towards _t_, and any one of them -may also border upon the Shadow made within the Colours by the Obstacle -R intercepting some intermediate part of the Light; and, lastly, any one -of them by being left alone, may border upon the Shadow on either hand. -All the Colours have themselves indifferently to any Confines of Shadow, -and therefore the differences of these Colours from one another, do not -arise from the different Confines of Shadow, whereby Light is variously -modified, as has hitherto been the Opinion of Philosophers. In trying -these things 'tis to be observed, that by how much the holes F and H are -narrower, and the Intervals between them and the Prism greater, and the -Chamber darker, by so much the better doth the Experiment succeed; -provided the Light be not so far diminished, but that the Colours at -_pt_ be sufficiently visible. To procure a Prism of solid Glass large -enough for this Experiment will be difficult, and therefore a prismatick -Vessel must be made of polish'd Glass Plates cemented together, and -filled with salt Water or clear Oil. - -[Illustration: FIG. 1.] - -_Exper._ 2. The Sun's Light let into a dark Chamber through the round -hole F, [in _Fig._ 2.] half an Inch wide, passed first through the Prism -ABC placed at the hole, and then through a Lens PT something more than -four Inches broad, and about eight Feet distant from the Prism, and -thence converged to O the Focus of the Lens distant from it about three -Feet, and there fell upon a white Paper DE. If that Paper was -perpendicular to that Light incident upon it, as 'tis represented in the -posture DE, all the Colours upon it at O appeared white. But if the -Paper being turned about an Axis parallel to the Prism, became very much -inclined to the Light, as 'tis represented in the Positions _de_ and -_[Greek: de]_; the same Light in the one case appeared yellow and red, -in the other blue. Here one and the same part of the Light in one and -the same place, according to the various Inclinations of the Paper, -appeared in one case white, in another yellow or red, in a third blue, -whilst the Confine of Light and shadow, and the Refractions of the Prism -in all these cases remained the same. - -[Illustration: FIG. 2.] - -[Illustration: FIG. 3.] - -_Exper._ 3. Such another Experiment may be more easily tried as follows. -Let a broad beam of the Sun's Light coming into a dark Chamber through a -hole in the Window-shut be refracted by a large Prism ABC, [in _Fig._ -3.] whose refracting Angle C is more than 60 Degrees, and so soon as it -comes out of the Prism, let it fall upon the white Paper DE glewed upon -a stiff Plane; and this Light, when the Paper is perpendicular to it, as -'tis represented in DE, will appear perfectly white upon the Paper; but -when the Paper is very much inclin'd to it in such a manner as to keep -always parallel to the Axis of the Prism, the whiteness of the whole -Light upon the Paper will according to the inclination of the Paper this -way or that way, change either into yellow and red, as in the posture -_de_, or into blue and violet, as in the posture [Greek: de]. And if the -Light before it fall upon the Paper be twice refracted the same way by -two parallel Prisms, these Colours will become the more conspicuous. -Here all the middle parts of the broad beam of white Light which fell -upon the Paper, did without any Confine of Shadow to modify it, become -colour'd all over with one uniform Colour, the Colour being always the -same in the middle of the Paper as at the edges, and this Colour changed -according to the various Obliquity of the reflecting Paper, without any -change in the Refractions or Shadow, or in the Light which fell upon the -Paper. And therefore these Colours are to be derived from some other -Cause than the new Modifications of Light by Refractions and Shadows. - -If it be asked, what then is their Cause? I answer, That the Paper in -the posture _de_, being more oblique to the more refrangible Rays than -to the less refrangible ones, is more strongly illuminated by the latter -than by the former, and therefore the less refrangible Rays are -predominant in the reflected Light. And where-ever they are predominant -in any Light, they tinge it with red or yellow, as may in some measure -appear by the first Proposition of the first Part of this Book, and will -more fully appear hereafter. And the contrary happens in the posture of -the Paper [Greek: de], the more refrangible Rays being then predominant -which always tinge Light with blues and violets. - -_Exper._ 4. The Colours of Bubbles with which Children play are various, -and change their Situation variously, without any respect to any Confine -or Shadow. If such a Bubble be cover'd with a concave Glass, to keep it -from being agitated by any Wind or Motion of the Air, the Colours will -slowly and regularly change their situation, even whilst the Eye and the -Bubble, and all Bodies which emit any Light, or cast any Shadow, remain -unmoved. And therefore their Colours arise from some regular Cause which -depends not on any Confine of Shadow. What this Cause is will be shewed -in the next Book. - -To these Experiments may be added the tenth Experiment of the first Part -of this first Book, where the Sun's Light in a dark Room being -trajected through the parallel Superficies of two Prisms tied together -in the form of a Parallelopipede, became totally of one uniform yellow -or red Colour, at its emerging out of the Prisms. Here, in the -production of these Colours, the Confine of Shadow can have nothing to -do. For the Light changes from white to yellow, orange and red -successively, without any alteration of the Confine of Shadow: And at -both edges of the emerging Light where the contrary Confines of Shadow -ought to produce different Effects, the Colour is one and the same, -whether it be white, yellow, orange or red: And in the middle of the -emerging Light, where there is no Confine of Shadow at all, the Colour -is the very same as at the edges, the whole Light at its very first -Emergence being of one uniform Colour, whether white, yellow, orange or -red, and going on thence perpetually without any change of Colour, such -as the Confine of Shadow is vulgarly supposed to work in refracted Light -after its Emergence. Neither can these Colours arise from any new -Modifications of the Light by Refractions, because they change -successively from white to yellow, orange and red, while the Refractions -remain the same, and also because the Refractions are made contrary ways -by parallel Superficies which destroy one another's Effects. They arise -not therefore from any Modifications of Light made by Refractions and -Shadows, but have some other Cause. What that Cause is we shewed above -in this tenth Experiment, and need not here repeat it. - -There is yet another material Circumstance of this Experiment. For this -emerging Light being by a third Prism HIK [in _Fig._ 22. _Part_ I.][I] -refracted towards the Paper PT, and there painting the usual Colours of -the Prism, red, yellow, green, blue, violet: If these Colours arose from -the Refractions of that Prism modifying the Light, they would not be in -the Light before its Incidence on that Prism. And yet in that Experiment -we found, that when by turning the two first Prisms about their common -Axis all the Colours were made to vanish but the red; the Light which -makes that red being left alone, appeared of the very same red Colour -before its Incidence on the third Prism. And in general we find by other -Experiments, that when the Rays which differ in Refrangibility are -separated from one another, and any one Sort of them is considered -apart, the Colour of the Light which they compose cannot be changed by -any Refraction or Reflexion whatever, as it ought to be were Colours -nothing else than Modifications of Light caused by Refractions, and -Reflexions, and Shadows. This Unchangeableness of Colour I am now to -describe in the following Proposition. - - -_PROP._ II. THEOR. II. - -_All homogeneal Light has its proper Colour answering to its Degree of -Refrangibility, and that Colour cannot be changed by Reflexions and -Refractions._ - -In the Experiments of the fourth Proposition of the first Part of this -first Book, when I had separated the heterogeneous Rays from one -another, the Spectrum _pt_ formed by the separated Rays, did in the -Progress from its End _p_, on which the most refrangible Rays fell, unto -its other End _t_, on which the least refrangible Rays fell, appear -tinged with this Series of Colours, violet, indigo, blue, green, yellow, -orange, red, together with all their intermediate Degrees in a continual -Succession perpetually varying. So that there appeared as many Degrees -of Colours, as there were sorts of Rays differing in Refrangibility. - -_Exper._ 5. Now, that these Colours could not be changed by Refraction, -I knew by refracting with a Prism sometimes one very little Part of this -Light, sometimes another very little Part, as is described in the -twelfth Experiment of the first Part of this Book. For by this -Refraction the Colour of the Light was never changed in the least. If -any Part of the red Light was refracted, it remained totally of the same -red Colour as before. No orange, no yellow, no green or blue, no other -new Colour was produced by that Refraction. Neither did the Colour any -ways change by repeated Refractions, but continued always the same red -entirely as at first. The like Constancy and Immutability I found also -in the blue, green, and other Colours. So also, if I looked through a -Prism upon any Body illuminated with any part of this homogeneal Light, -as in the fourteenth Experiment of the first Part of this Book is -described; I could not perceive any new Colour generated this way. All -Bodies illuminated with compound Light appear through Prisms confused, -(as was said above) and tinged with various new Colours, but those -illuminated with homogeneal Light appeared through Prisms neither less -distinct, nor otherwise colour'd, than when viewed with the naked Eyes. -Their Colours were not in the least changed by the Refraction of the -interposed Prism. I speak here of a sensible Change of Colour: For the -Light which I here call homogeneal, being not absolutely homogeneal, -there ought to arise some little Change of Colour from its -Heterogeneity. But, if that Heterogeneity was so little as it might be -made by the said Experiments of the fourth Proposition, that Change was -not sensible, and therefore in Experiments, where Sense is Judge, ought -to be accounted none at all. - -_Exper._ 6. And as these Colours were not changeable by Refractions, so -neither were they by Reflexions. For all white, grey, red, yellow, -green, blue, violet Bodies, as Paper, Ashes, red Lead, Orpiment, Indico -Bise, Gold, Silver, Copper, Grass, blue Flowers, Violets, Bubbles of -Water tinged with various Colours, Peacock's Feathers, the Tincture of -_Lignum Nephriticum_, and such-like, in red homogeneal Light appeared -totally red, in blue Light totally blue, in green Light totally green, -and so of other Colours. In the homogeneal Light of any Colour they all -appeared totally of that same Colour, with this only Difference, that -some of them reflected that Light more strongly, others more faintly. I -never yet found any Body, which by reflecting homogeneal Light could -sensibly change its Colour. - -From all which it is manifest, that if the Sun's Light consisted of but -one sort of Rays, there would be but one Colour in the whole World, nor -would it be possible to produce any new Colour by Reflexions and -Refractions, and by consequence that the variety of Colours depends upon -the Composition of Light. - - -_DEFINITION._ - -The homogeneal Light and Rays which appear red, or rather make Objects -appear so, I call Rubrifick or Red-making; those which make Objects -appear yellow, green, blue, and violet, I call Yellow-making, -Green-making, Blue-making, Violet-making, and so of the rest. And if at -any time I speak of Light and Rays as coloured or endued with Colours, I -would be understood to speak not philosophically and properly, but -grossly, and accordingly to such Conceptions as vulgar People in seeing -all these Experiments would be apt to frame. For the Rays to speak -properly are not coloured. In them there is nothing else than a certain -Power and Disposition to stir up a Sensation of this or that Colour. -For as Sound in a Bell or musical String, or other sounding Body, is -nothing but a trembling Motion, and in the Air nothing but that Motion -propagated from the Object, and in the Sensorium 'tis a Sense of that -Motion under the Form of Sound; so Colours in the Object are nothing but -a Disposition to reflect this or that sort of Rays more copiously than -the rest; in the Rays they are nothing but their Dispositions to -propagate this or that Motion into the Sensorium, and in the Sensorium -they are Sensations of those Motions under the Forms of Colours. - - -_PROP._ III. PROB. I. - -_To define the Refrangibility of the several sorts of homogeneal Light -answering to the several Colours._ - -For determining this Problem I made the following Experiment.[J] - -_Exper._ 7. When I had caused the Rectilinear Sides AF, GM, [in _Fig._ -4.] of the Spectrum of Colours made by the Prism to be distinctly -defined, as in the fifth Experiment of the first Part of this Book is -described, there were found in it all the homogeneal Colours in the same -Order and Situation one among another as in the Spectrum of simple -Light, described in the fourth Proposition of that Part. For the Circles -of which the Spectrum of compound Light PT is composed, and which in -the middle Parts of the Spectrum interfere, and are intermix'd with one -another, are not intermix'd in their outmost Parts where they touch -those Rectilinear Sides AF and GM. And therefore, in those Rectilinear -Sides when distinctly defined, there is no new Colour generated by -Refraction. I observed also, that if any where between the two outmost -Circles TMF and PGA a Right Line, as [Greek: gd], was cross to the -Spectrum, so as both Ends to fall perpendicularly upon its Rectilinear -Sides, there appeared one and the same Colour, and degree of Colour from -one End of this Line to the other. I delineated therefore in a Paper the -Perimeter of the Spectrum FAP GMT, and in trying the third Experiment of -the first Part of this Book, I held the Paper so that the Spectrum might -fall upon this delineated Figure, and agree with it exactly, whilst an -Assistant, whose Eyes for distinguishing Colours were more critical than -mine, did by Right Lines [Greek: ab, gd, ez,] &c. drawn cross the -Spectrum, note the Confines of the Colours, that is of the red M[Greek: -ab]F, of the orange [Greek: agdb], of the yellow [Greek: gezd], of the -green [Greek: eêthz], of the blue [Greek: êikth], of the indico [Greek: -ilmk], and of the violet [Greek: l]GA[Greek: m]. And this Operation -being divers times repeated both in the same, and in several Papers, I -found that the Observations agreed well enough with one another, and -that the Rectilinear Sides MG and FA were by the said cross Lines -divided after the manner of a Musical Chord. Let GM be produced to X, -that MX may be equal to GM, and conceive GX, [Greek: l]X, [Greek: i]X, -[Greek: ê]X, [Greek: e]X, [Greek: g]X, [Greek: a]X, MX, to be in -proportion to one another, as the Numbers, 1, 8/9, 5/6, 3/4, 2/3, 3/5, -9/16, 1/2, and so to represent the Chords of the Key, and of a Tone, a -third Minor, a fourth, a fifth, a sixth Major, a seventh and an eighth -above that Key: And the Intervals M[Greek: a], [Greek: ag], [Greek: ge], -[Greek: eê], [Greek: êi], [Greek: il], and [Greek: l]G, will be the -Spaces which the several Colours (red, orange, yellow, green, blue, -indigo, violet) take up. - -[Illustration: FIG. 4.] - -[Illustration: FIG. 5.] - -Now these Intervals or Spaces subtending the Differences of the -Refractions of the Rays going to the Limits of those Colours, that is, -to the Points M, [Greek: a], [Greek: g], [Greek: e], [Greek: ê], [Greek: -i], [Greek: l], G, may without any sensible Error be accounted -proportional to the Differences of the Sines of Refraction of those Rays -having one common Sine of Incidence, and therefore since the common Sine -of Incidence of the most and least refrangible Rays out of Glass into -Air was (by a Method described above) found in proportion to their Sines -of Refraction, as 50 to 77 and 78, divide the Difference between the -Sines of Refraction 77 and 78, as the Line GM is divided by those -Intervals, and you will have 77, 77-1/8, 77-1/5, 77-1/3, 77-1/2, 77-2/3, -77-7/9, 78, the Sines of Refraction of those Rays out of Glass into Air, -their common Sine of Incidence being 50. So then the Sines of the -Incidences of all the red-making Rays out of Glass into Air, were to the -Sines of their Refractions, not greater than 50 to 77, nor less than 50 -to 77-1/8, but they varied from one another according to all -intermediate Proportions. And the Sines of the Incidences of the -green-making Rays were to the Sines of their Refractions in all -Proportions from that of 50 to 77-1/3, unto that of 50 to 77-1/2. And -by the like Limits above-mentioned were the Refractions of the Rays -belonging to the rest of the Colours defined, the Sines of the -red-making Rays extending from 77 to 77-1/8, those of the orange-making -from 77-1/8 to 77-1/5, those of the yellow-making from 77-1/5 to 77-1/3, -those of the green-making from 77-1/3 to 77-1/2, those of the -blue-making from 77-1/2 to 77-2/3, those of the indigo-making from -77-2/3 to 77-7/9, and those of the violet from 77-7/9, to 78. - -These are the Laws of the Refractions made out of Glass into Air, and -thence by the third Axiom of the first Part of this Book, the Laws of -the Refractions made out of Air into Glass are easily derived. - -_Exper._ 8. I found moreover, that when Light goes out of Air through -several contiguous refracting Mediums as through Water and Glass, and -thence goes out again into Air, whether the refracting Superficies be -parallel or inclin'd to one another, that Light as often as by contrary -Refractions 'tis so corrected, that it emergeth in Lines parallel to -those in which it was incident, continues ever after to be white. But if -the emergent Rays be inclined to the incident, the Whiteness of the -emerging Light will by degrees in passing on from the Place of -Emergence, become tinged in its Edges with Colours. This I try'd by -refracting Light with Prisms of Glass placed within a Prismatick Vessel -of Water. Now those Colours argue a diverging and separation of the -heterogeneous Rays from one another by means of their unequal -Refractions, as in what follows will more fully appear. And, on the -contrary, the permanent whiteness argues, that in like Incidences of the -Rays there is no such separation of the emerging Rays, and by -consequence no inequality of their whole Refractions. Whence I seem to -gather the two following Theorems. - -1. The Excesses of the Sines of Refraction of several sorts of Rays -above their common Sine of Incidence when the Refractions are made out -of divers denser Mediums immediately into one and the same rarer Medium, -suppose of Air, are to one another in a given Proportion. - -2. The Proportion of the Sine of Incidence to the Sine of Refraction of -one and the same sort of Rays out of one Medium into another, is -composed of the Proportion of the Sine of Incidence to the Sine of -Refraction out of the first Medium into any third Medium, and of the -Proportion of the Sine of Incidence to the Sine of Refraction out of -that third Medium into the second Medium. - -By the first Theorem the Refractions of the Rays of every sort made out -of any Medium into Air are known by having the Refraction of the Rays of -any one sort. As for instance, if the Refractions of the Rays of every -sort out of Rain-water into Air be desired, let the common Sine of -Incidence out of Glass into Air be subducted from the Sines of -Refraction, and the Excesses will be 27, 27-1/8, 27-1/5, 27-1/3, 27-1/2, -27-2/3, 27-7/9, 28. Suppose now that the Sine of Incidence of the least -refrangible Rays be to their Sine of Refraction out of Rain-water into -Air as 3 to 4, and say as 1 the difference of those Sines is to 3 the -Sine of Incidence, so is 27 the least of the Excesses above-mentioned to -a fourth Number 81; and 81 will be the common Sine of Incidence out of -Rain-water into Air, to which Sine if you add all the above-mentioned -Excesses, you will have the desired Sines of the Refractions 108, -108-1/8, 108-1/5, 108-1/3, 108-1/2, 108-2/3, 108-7/9, 109. - -By the latter Theorem the Refraction out of one Medium into another is -gathered as often as you have the Refractions out of them both into any -third Medium. As if the Sine of Incidence of any Ray out of Glass into -Air be to its Sine of Refraction, as 20 to 31, and the Sine of Incidence -of the same Ray out of Air into Water, be to its Sine of Refraction as 4 -to 3; the Sine of Incidence of that Ray out of Glass into Water will be -to its Sine of Refraction as 20 to 31 and 4 to 3 jointly, that is, as -the Factum of 20 and 4 to the Factum of 31 and 3, or as 80 to 93. - -And these Theorems being admitted into Opticks, there would be scope -enough of handling that Science voluminously after a new manner,[K] not -only by teaching those things which tend to the perfection of Vision, -but also by determining mathematically all kinds of Phænomena of Colours -which could be produced by Refractions. For to do this, there is nothing -else requisite than to find out the Separations of heterogeneous Rays, -and their various Mixtures and Proportions in every Mixture. By this -way of arguing I invented almost all the Phænomena described in these -Books, beside some others less necessary to the Argument; and by the -successes I met with in the Trials, I dare promise, that to him who -shall argue truly, and then try all things with good Glasses and -sufficient Circumspection, the expected Event will not be wanting. But -he is first to know what Colours will arise from any others mix'd in any -assigned Proportion. - - -_PROP._ IV. THEOR. III. - -_Colours may be produced by Composition which shall be like to the -Colours of homogeneal Light as to the Appearance of Colour, but not as -to the Immutability of Colour and Constitution of Light. And those -Colours by how much they are more compounded by so much are they less -full and intense, and by too much Composition they maybe diluted and -weaken'd till they cease, and the Mixture becomes white or grey. There -may be also Colours produced by Composition, which are not fully like -any of the Colours of homogeneal Light._ - -For a Mixture of homogeneal red and yellow compounds an Orange, like in -appearance of Colour to that orange which in the series of unmixed -prismatick Colours lies between them; but the Light of one orange is -homogeneal as to Refrangibility, and that of the other is heterogeneal, -and the Colour of the one, if viewed through a Prism, remains unchanged, -that of the other is changed and resolved into its component Colours red -and yellow. And after the same manner other neighbouring homogeneal -Colours may compound new Colours, like the intermediate homogeneal ones, -as yellow and green, the Colour between them both, and afterwards, if -blue be added, there will be made a green the middle Colour of the three -which enter the Composition. For the yellow and blue on either hand, if -they are equal in quantity they draw the intermediate green equally -towards themselves in Composition, and so keep it as it were in -Æquilibrion, that it verge not more to the yellow on the one hand, and -to the blue on the other, but by their mix'd Actions remain still a -middle Colour. To this mix'd green there may be farther added some red -and violet, and yet the green will not presently cease, but only grow -less full and vivid, and by increasing the red and violet, it will grow -more and more dilute, until by the prevalence of the added Colours it be -overcome and turned into whiteness, or some other Colour. So if to the -Colour of any homogeneal Light, the Sun's white Light composed of all -sorts of Rays be added, that Colour will not vanish or change its -Species, but be diluted, and by adding more and more white it will be -diluted more and more perpetually. Lastly, If red and violet be mingled, -there will be generated according to their various Proportions various -Purples, such as are not like in appearance to the Colour of any -homogeneal Light, and of these Purples mix'd with yellow and blue may be -made other new Colours. - - -_PROP._ V. THEOR. IV. - -_Whiteness and all grey Colours between white and black, may be -compounded of Colours, and the whiteness of the Sun's Light is -compounded of all the primary Colours mix'd in a due Proportion._ - -The PROOF by Experiments. - -_Exper._ 9. The Sun shining into a dark Chamber through a little round -hole in the Window-shut, and his Light being there refracted by a Prism -to cast his coloured Image PT [in _Fig._ 5.] upon the opposite Wall: I -held a white Paper V to that image in such manner that it might be -illuminated by the colour'd Light reflected from thence, and yet not -intercept any part of that Light in its passage from the Prism to the -Spectrum. And I found that when the Paper was held nearer to any Colour -than to the rest, it appeared of that Colour to which it approached -nearest; but when it was equally or almost equally distant from all the -Colours, so that it might be equally illuminated by them all it appeared -white. And in this last situation of the Paper, if some Colours were -intercepted, the Paper lost its white Colour, and appeared of the Colour -of the rest of the Light which was not intercepted. So then the Paper -was illuminated with Lights of various Colours, namely, red, yellow, -green, blue and violet, and every part of the Light retained its proper -Colour, until it was incident on the Paper, and became reflected thence -to the Eye; so that if it had been either alone (the rest of the Light -being intercepted) or if it had abounded most, and been predominant in -the Light reflected from the Paper, it would have tinged the Paper with -its own Colour; and yet being mixed with the rest of the Colours in a -due proportion, it made the Paper look white, and therefore by a -Composition with the rest produced that Colour. The several parts of the -coloured Light reflected from the Spectrum, whilst they are propagated -from thence through the Air, do perpetually retain their proper Colours, -because wherever they fall upon the Eyes of any Spectator, they make the -several parts of the Spectrum to appear under their proper Colours. They -retain therefore their proper Colours when they fall upon the Paper V, -and so by the confusion and perfect mixture of those Colours compound -the whiteness of the Light reflected from thence. - -_Exper._ 10. Let that Spectrum or solar Image PT [in _Fig._ 6.] fall now -upon the Lens MN above four Inches broad, and about six Feet distant -from the Prism ABC and so figured that it may cause the coloured Light -which divergeth from the Prism to converge and meet again at its Focus -G, about six or eight Feet distant from the Lens, and there to fall -perpendicularly upon a white Paper DE. And if you move this Paper to and -fro, you will perceive that near the Lens, as at _de_, the whole solar -Image (suppose at _pt_) will appear upon it intensely coloured after the -manner above-explained, and that by receding from the Lens those Colours -will perpetually come towards one another, and by mixing more and more -dilute one another continually, until at length the Paper come to the -Focus G, where by a perfect mixture they will wholly vanish and be -converted into whiteness, the whole Light appearing now upon the Paper -like a little white Circle. And afterwards by receding farther from the -Lens, the Rays which before converged will now cross one another in the -Focus G, and diverge from thence, and thereby make the Colours to appear -again, but yet in a contrary order; suppose at [Greek: de], where the -red _t_ is now above which before was below, and the violet _p_ is below -which before was above. - -Let us now stop the Paper at the Focus G, where the Light appears -totally white and circular, and let us consider its whiteness. I say, -that this is composed of the converging Colours. For if any of those -Colours be intercepted at the Lens, the whiteness will cease and -degenerate into that Colour which ariseth from the composition of the -other Colours which are not intercepted. And then if the intercepted -Colours be let pass and fall upon that compound Colour, they mix with -it, and by their mixture restore the whiteness. So if the violet, blue -and green be intercepted, the remaining yellow, orange and red will -compound upon the Paper an orange, and then if the intercepted Colours -be let pass, they will fall upon this compounded orange, and together -with it decompound a white. So also if the red and violet be -intercepted, the remaining yellow, green and blue, will compound a green -upon the Paper, and then the red and violet being let pass will fall -upon this green, and together with it decompound a white. And that in -this Composition of white the several Rays do not suffer any Change in -their colorific Qualities by acting upon one another, but are only -mixed, and by a mixture of their Colours produce white, may farther -appear by these Arguments. - -[Illustration: FIG. 6.] - -If the Paper be placed beyond the Focus G, suppose at [Greek: de], and -then the red Colour at the Lens be alternately intercepted, and let pass -again, the violet Colour on the Paper will not suffer any Change -thereby, as it ought to do if the several sorts of Rays acted upon one -another in the Focus G, where they cross. Neither will the red upon the -Paper be changed by any alternate stopping, and letting pass the violet -which crosseth it. - -And if the Paper be placed at the Focus G, and the white round Image at -G be viewed through the Prism HIK, and by the Refraction of that Prism -be translated to the place _rv_, and there appear tinged with various -Colours, namely, the violet at _v_ and red at _r_, and others between, -and then the red Colours at the Lens be often stopp'd and let pass by -turns, the red at _r_ will accordingly disappear, and return as often, -but the violet at _v_ will not thereby suffer any Change. And so by -stopping and letting pass alternately the blue at the Lens, the blue at -_v_ will accordingly disappear and return, without any Change made in -the red at _r_. The red therefore depends on one sort of Rays, and the -blue on another sort, which in the Focus G where they are commix'd, do -not act on one another. And there is the same Reason of the other -Colours. - -I considered farther, that when the most refrangible Rays P_p_, and the -least refrangible ones T_t_, are by converging inclined to one another, -the Paper, if held very oblique to those Rays in the Focus G, might -reflect one sort of them more copiously than the other sort, and by that -Means the reflected Light would be tinged in that Focus with the Colour -of the predominant Rays, provided those Rays severally retained their -Colours, or colorific Qualities in the Composition of White made by them -in that Focus. But if they did not retain them in that White, but became -all of them severally endued there with a Disposition to strike the -Sense with the Perception of White, then they could never lose their -Whiteness by such Reflexions. I inclined therefore the Paper to the Rays -very obliquely, as in the second Experiment of this second Part of the -first Book, that the most refrangible Rays, might be more copiously -reflected than the rest, and the Whiteness at Length changed -successively into blue, indigo, and violet. Then I inclined it the -contrary Way, that the least refrangible Rays might be more copious in -the reflected Light than the rest, and the Whiteness turned successively -to yellow, orange, and red. - -Lastly, I made an Instrument XY in fashion of a Comb, whose Teeth being -in number sixteen, were about an Inch and a half broad, and the -Intervals of the Teeth about two Inches wide. Then by interposing -successively the Teeth of this Instrument near the Lens, I intercepted -Part of the Colours by the interposed Tooth, whilst the rest of them -went on through the Interval of the Teeth to the Paper DE, and there -painted a round Solar Image. But the Paper I had first placed so, that -the Image might appear white as often as the Comb was taken away; and -then the Comb being as was said interposed, that Whiteness by reason of -the intercepted Part of the Colours at the Lens did always change into -the Colour compounded of those Colours which were not intercepted, and -that Colour was by the Motion of the Comb perpetually varied so, that in -the passing of every Tooth over the Lens all these Colours, red, yellow, -green, blue, and purple, did always succeed one another. I caused -therefore all the Teeth to pass successively over the Lens, and when the -Motion was slow, there appeared a perpetual Succession of the Colours -upon the Paper: But if I so much accelerated the Motion, that the -Colours by reason of their quick Succession could not be distinguished -from one another, the Appearance of the single Colours ceased. There was -no red, no yellow, no green, no blue, nor purple to be seen any longer, -but from a Confusion of them all there arose one uniform white Colour. -Of the Light which now by the Mixture of all the Colours appeared white, -there was no Part really white. One Part was red, another yellow, a -third green, a fourth blue, a fifth purple, and every Part retains its -proper Colour till it strike the Sensorium. If the Impressions follow -one another slowly, so that they may be severally perceived, there is -made a distinct Sensation of all the Colours one after another in a -continual Succession. But if the Impressions follow one another so -quickly, that they cannot be severally perceived, there ariseth out of -them all one common Sensation, which is neither of this Colour alone nor -of that alone, but hath it self indifferently to 'em all, and this is a -Sensation of Whiteness. By the Quickness of the Successions, the -Impressions of the several Colours are confounded in the Sensorium, and -out of that Confusion ariseth a mix'd Sensation. If a burning Coal be -nimbly moved round in a Circle with Gyrations continually repeated, the -whole Circle will appear like Fire; the reason of which is, that the -Sensation of the Coal in the several Places of that Circle remains -impress'd on the Sensorium, until the Coal return again to the same -Place. And so in a quick Consecution of the Colours the Impression of -every Colour remains in the Sensorium, until a Revolution of all the -Colours be compleated, and that first Colour return again. The -Impressions therefore of all the successive Colours are at once in the -Sensorium, and jointly stir up a Sensation of them all; and so it is -manifest by this Experiment, that the commix'd Impressions of all the -Colours do stir up and beget a Sensation of white, that is, that -Whiteness is compounded of all the Colours. - -And if the Comb be now taken away, that all the Colours may at once pass -from the Lens to the Paper, and be there intermixed, and together -reflected thence to the Spectator's Eyes; their Impressions on the -Sensorium being now more subtilly and perfectly commixed there, ought -much more to stir up a Sensation of Whiteness. - -You may instead of the Lens use two Prisms HIK and LMN, which by -refracting the coloured Light the contrary Way to that of the first -Refraction, may make the diverging Rays converge and meet again in G, as -you see represented in the seventh Figure. For where they meet and mix, -they will compose a white Light, as when a Lens is used. - -_Exper._ 11. Let the Sun's coloured Image PT [in _Fig._ 8.] fall upon -the Wall of a dark Chamber, as in the third Experiment of the first -Book, and let the same be viewed through a Prism _abc_, held parallel to -the Prism ABC, by whose Refraction that Image was made, and let it now -appear lower than before, suppose in the Place S over-against the red -Colour T. And if you go near to the Image PT, the Spectrum S will appear -oblong and coloured like the Image PT; but if you recede from it, the -Colours of the spectrum S will be contracted more and more, and at -length vanish, that Spectrum S becoming perfectly round and white; and -if you recede yet farther, the Colours will emerge again, but in a -contrary Order. Now that Spectrum S appears white in that Case, when the -Rays of several sorts which converge from the several Parts of the Image -PT, to the Prism _abc_, are so refracted unequally by it, that in their -Passage from the Prism to the Eye they may diverge from one and the same -Point of the Spectrum S, and so fall afterwards upon one and the same -Point in the bottom of the Eye, and there be mingled. - -[Illustration: FIG. 7.] - -[Illustration: FIG. 8.] - -And farther, if the Comb be here made use of, by whose Teeth the Colours -at the Image PT may be successively intercepted; the Spectrum S, when -the Comb is moved slowly, will be perpetually tinged with successive -Colours: But when by accelerating the Motion of the Comb, the Succession -of the Colours is so quick that they cannot be severally seen, that -Spectrum S, by a confused and mix'd Sensation of them all, will appear -white. - -_Exper._ 12. The Sun shining through a large Prism ABC [in _Fig._ 9.] -upon a Comb XY, placed immediately behind the Prism, his Light which -passed through the Interstices of the Teeth fell upon a white Paper DE. -The Breadths of the Teeth were equal to their Interstices, and seven -Teeth together with their Interstices took up an Inch in Breadth. Now, -when the Paper was about two or three Inches distant from the Comb, the -Light which passed through its several Interstices painted so many -Ranges of Colours, _kl_, _mn_, _op_, _qr_, &c. which were parallel to -one another, and contiguous, and without any Mixture of white. And these -Ranges of Colours, if the Comb was moved continually up and down with a -reciprocal Motion, ascended and descended in the Paper, and when the -Motion of the Comb was so quick, that the Colours could not be -distinguished from one another, the whole Paper by their Confusion and -Mixture in the Sensorium appeared white. - -[Illustration: FIG. 9.] - -Let the Comb now rest, and let the Paper be removed farther from the -Prism, and the several Ranges of Colours will be dilated and expanded -into one another more and more, and by mixing their Colours will dilute -one another, and at length, when the distance of the Paper from the Comb -is about a Foot, or a little more (suppose in the Place 2D 2E) they will -so far dilute one another, as to become white. - -With any Obstacle, let all the Light be now stopp'd which passes through -any one Interval of the Teeth, so that the Range of Colours which comes -from thence may be taken away, and you will see the Light of the rest of -the Ranges to be expanded into the Place of the Range taken away, and -there to be coloured. Let the intercepted Range pass on as before, and -its Colours falling upon the Colours of the other Ranges, and mixing -with them, will restore the Whiteness. - -Let the Paper 2D 2E be now very much inclined to the Rays, so that the -most refrangible Rays may be more copiously reflected than the rest, and -the white Colour of the Paper through the Excess of those Rays will be -changed into blue and violet. Let the Paper be as much inclined the -contrary way, that the least refrangible Rays may be now more copiously -reflected than the rest, and by their Excess the Whiteness will be -changed into yellow and red. The several Rays therefore in that white -Light do retain their colorific Qualities, by which those of any sort, -whenever they become more copious than the rest, do by their Excess and -Predominance cause their proper Colour to appear. - -And by the same way of arguing, applied to the third Experiment of this -second Part of the first Book, it may be concluded, that the white -Colour of all refracted Light at its very first Emergence, where it -appears as white as before its Incidence, is compounded of various -Colours. - -[Illustration: FIG. 10.] - -_Exper._ 13. In the foregoing Experiment the several Intervals of the -Teeth of the Comb do the Office of so many Prisms, every Interval -producing the Phænomenon of one Prism. Whence instead of those Intervals -using several Prisms, I try'd to compound Whiteness by mixing their -Colours, and did it by using only three Prisms, as also by using only -two as follows. Let two Prisms ABC and _abc_, [in _Fig._ 10.] whose -refracting Angles B and _b_ are equal, be so placed parallel to one -another, that the refracting Angle B of the one may touch the Angle _c_ -at the Base of the other, and their Planes CB and _cb_, at which the -Rays emerge, may lie in Directum. Then let the Light trajected through -them fall upon the Paper MN, distant about 8 or 12 Inches from the -Prisms. And the Colours generated by the interior Limits B and _c_ of -the two Prisms, will be mingled at PT, and there compound white. For if -either Prism be taken away, the Colours made by the other will appear in -that Place PT, and when the Prism is restored to its Place again, so -that its Colours may there fall upon the Colours of the other, the -Mixture of them both will restore the Whiteness. - -This Experiment succeeds also, as I have tried, when the Angle _b_ of -the lower Prism, is a little greater than the Angle B of the upper, and -between the interior Angles B and _c_, there intercedes some Space B_c_, -as is represented in the Figure, and the refracting Planes BC and _bc_, -are neither in Directum, nor parallel to one another. For there is -nothing more requisite to the Success of this Experiment, than that the -Rays of all sorts may be uniformly mixed upon the Paper in the Place PT. -If the most refrangible Rays coming from the superior Prism take up all -the Space from M to P, the Rays of the same sort which come from the -inferior Prism ought to begin at P, and take up all the rest of the -Space from thence towards N. If the least refrangible Rays coming from -the superior Prism take up the Space MT, the Rays of the same kind which -come from the other Prism ought to begin at T, and take up the -remaining Space TN. If one sort of the Rays which have intermediate -Degrees of Refrangibility, and come from the superior Prism be extended -through the Space MQ, and another sort of those Rays through the Space -MR, and a third sort of them through the Space MS, the same sorts of -Rays coming from the lower Prism, ought to illuminate the remaining -Spaces QN, RN, SN, respectively. And the same is to be understood of all -the other sorts of Rays. For thus the Rays of every sort will be -scattered uniformly and evenly through the whole Space MN, and so being -every where mix'd in the same Proportion, they must every where produce -the same Colour. And therefore, since by this Mixture they produce white -in the Exterior Spaces MP and TN, they must also produce white in the -Interior Space PT. This is the reason of the Composition by which -Whiteness was produced in this Experiment, and by what other way soever -I made the like Composition, the Result was Whiteness. - -Lastly, If with the Teeth of a Comb of a due Size, the coloured Lights -of the two Prisms which fall upon the Space PT be alternately -intercepted, that Space PT, when the Motion of the Comb is slow, will -always appear coloured, but by accelerating the Motion of the Comb so -much that the successive Colours cannot be distinguished from one -another, it will appear white. - -_Exper._ 14. Hitherto I have produced Whiteness by mixing the Colours of -Prisms. If now the Colours of natural Bodies are to be mingled, let -Water a little thicken'd with Soap be agitated to raise a Froth, and -after that Froth has stood a little, there will appear to one that shall -view it intently various Colours every where in the Surfaces of the -several Bubbles; but to one that shall go so far off, that he cannot -distinguish the Colours from one another, the whole Froth will grow -white with a perfect Whiteness. - -_Exper._ 15. Lastly, In attempting to compound a white, by mixing the -coloured Powders which Painters use, I consider'd that all colour'd -Powders do suppress and stop in them a very considerable Part of the -Light by which they are illuminated. For they become colour'd by -reflecting the Light of their own Colours more copiously, and that of -all other Colours more sparingly, and yet they do not reflect the Light -of their own Colours so copiously as white Bodies do. If red Lead, for -instance, and a white Paper, be placed in the red Light of the colour'd -Spectrum made in a dark Chamber by the Refraction of a Prism, as is -described in the third Experiment of the first Part of this Book; the -Paper will appear more lucid than the red Lead, and therefore reflects -the red-making Rays more copiously than red Lead doth. And if they be -held in the Light of any other Colour, the Light reflected by the Paper -will exceed the Light reflected by the red Lead in a much greater -Proportion. And the like happens in Powders of other Colours. And -therefore by mixing such Powders, we are not to expect a strong and -full White, such as is that of Paper, but some dusky obscure one, such -as might arise from a Mixture of Light and Darkness, or from white and -black, that is, a grey, or dun, or russet brown, such as are the Colours -of a Man's Nail, of a Mouse, of Ashes, of ordinary Stones, of Mortar, of -Dust and Dirt in High-ways, and the like. And such a dark white I have -often produced by mixing colour'd Powders. For thus one Part of red -Lead, and five Parts of _Viride Æris_, composed a dun Colour like that -of a Mouse. For these two Colours were severally so compounded of -others, that in both together were a Mixture of all Colours; and there -was less red Lead used than _Viride Æris_, because of the Fulness of its -Colour. Again, one Part of red Lead, and four Parts of blue Bise, -composed a dun Colour verging a little to purple, and by adding to this -a certain Mixture of Orpiment and _Viride Æris_ in a due Proportion, the -Mixture lost its purple Tincture, and became perfectly dun. But the -Experiment succeeded best without Minium thus. To Orpiment I added by -little and little a certain full bright purple, which Painters use, -until the Orpiment ceased to be yellow, and became of a pale red. Then I -diluted that red by adding a little _Viride Æris_, and a little more -blue Bise than _Viride Æris_, until it became of such a grey or pale -white, as verged to no one of the Colours more than to another. For thus -it became of a Colour equal in Whiteness to that of Ashes, or of Wood -newly cut, or of a Man's Skin. The Orpiment reflected more Light than -did any other of the Powders, and therefore conduced more to the -Whiteness of the compounded Colour than they. To assign the Proportions -accurately may be difficult, by reason of the different Goodness of -Powders of the same kind. Accordingly, as the Colour of any Powder is -more or less full and luminous, it ought to be used in a less or greater -Proportion. - -Now, considering that these grey and dun Colours may be also produced by -mixing Whites and Blacks, and by consequence differ from perfect Whites, -not in Species of Colours, but only in degree of Luminousness, it is -manifest that there is nothing more requisite to make them perfectly -white than to increase their Light sufficiently; and, on the contrary, -if by increasing their Light they can be brought to perfect Whiteness, -it will thence also follow, that they are of the same Species of Colour -with the best Whites, and differ from them only in the Quantity of -Light. And this I tried as follows. I took the third of the -above-mention'd grey Mixtures, (that which was compounded of Orpiment, -Purple, Bise, and _Viride Æris_) and rubbed it thickly upon the Floor of -my Chamber, where the Sun shone upon it through the opened Casement; and -by it, in the shadow, I laid a Piece of white Paper of the same Bigness. -Then going from them to the distance of 12 or 18 Feet, so that I could -not discern the Unevenness of the Surface of the Powder, nor the little -Shadows let fall from the gritty Particles thereof; the Powder appeared -intensely white, so as to transcend even the Paper it self in Whiteness, -especially if the Paper were a little shaded from the Light of the -Clouds, and then the Paper compared with the Powder appeared of such a -grey Colour as the Powder had done before. But by laying the Paper where -the Sun shines through the Glass of the Window, or by shutting the -Window that the Sun might shine through the Glass upon the Powder, and -by such other fit Means of increasing or decreasing the Lights wherewith -the Powder and Paper were illuminated, the Light wherewith the Powder is -illuminated may be made stronger in such a due Proportion than the Light -wherewith the Paper is illuminated, that they shall both appear exactly -alike in Whiteness. For when I was trying this, a Friend coming to visit -me, I stopp'd him at the Door, and before I told him what the Colours -were, or what I was doing; I asked him, Which of the two Whites were the -best, and wherein they differed? And after he had at that distance -viewed them well, he answer'd, that they were both good Whites, and that -he could not say which was best, nor wherein their Colours differed. -Now, if you consider, that this White of the Powder in the Sun-shine was -compounded of the Colours which the component Powders (Orpiment, Purple, -Bise, and _Viride Æris_) have in the same Sun-shine, you must -acknowledge by this Experiment, as well as by the former, that perfect -Whiteness may be compounded of Colours. - -From what has been said it is also evident, that the Whiteness of the -Sun's Light is compounded of all the Colours wherewith the several sorts -of Rays whereof that Light consists, when by their several -Refrangibilities they are separated from one another, do tinge Paper or -any other white Body whereon they fall. For those Colours (by _Prop._ -II. _Part_ 2.) are unchangeable, and whenever all those Rays with those -their Colours are mix'd again, they reproduce the same white Light as -before. - - -_PROP._ VI. PROB. II. - -_In a mixture of Primary Colours, the Quantity and Quality of each being -given, to know the Colour of the Compound._ - -[Illustration: FIG. 11.] - -With the Center O [in _Fig._ 11.] and Radius OD describe a Circle ADF, -and distinguish its Circumference into seven Parts DE, EF, FG, GA, AB, -BC, CD, proportional to the seven Musical Tones or Intervals of the -eight Sounds, _Sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_, _sol_, -contained in an eight, that is, proportional to the Number 1/9, 1/16, -1/10, 1/9, 1/16, 1/16, 1/9. Let the first Part DE represent a red -Colour, the second EF orange, the third FG yellow, the fourth CA green, -the fifth AB blue, the sixth BC indigo, and the seventh CD violet. And -conceive that these are all the Colours of uncompounded Light gradually -passing into one another, as they do when made by Prisms; the -Circumference DEFGABCD, representing the whole Series of Colours from -one end of the Sun's colour'd Image to the other, so that from D to E be -all degrees of red, at E the mean Colour between red and orange, from E -to F all degrees of orange, at F the mean between orange and yellow, -from F to G all degrees of yellow, and so on. Let _p_ be the Center of -Gravity of the Arch DE, and _q_, _r_, _s_, _t_, _u_, _x_, the Centers of -Gravity of the Arches EF, FG, GA, AB, BC, and CD respectively, and about -those Centers of Gravity let Circles proportional to the Number of Rays -of each Colour in the given Mixture be describ'd: that is, the Circle -_p_ proportional to the Number of the red-making Rays in the Mixture, -the Circle _q_ proportional to the Number of the orange-making Rays in -the Mixture, and so of the rest. Find the common Center of Gravity of -all those Circles, _p_, _q_, _r_, _s_, _t_, _u_, _x_. Let that Center be -Z; and from the Center of the Circle ADF, through Z to the -Circumference, drawing the Right Line OY, the Place of the Point Y in -the Circumference shall shew the Colour arising from the Composition of -all the Colours in the given Mixture, and the Line OZ shall be -proportional to the Fulness or Intenseness of the Colour, that is, to -its distance from Whiteness. As if Y fall in the middle between F and G, -the compounded Colour shall be the best yellow; if Y verge from the -middle towards F or G, the compound Colour shall accordingly be a -yellow, verging towards orange or green. If Z fall upon the -Circumference, the Colour shall be intense and florid in the highest -Degree; if it fall in the mid-way between the Circumference and Center, -it shall be but half so intense, that is, it shall be such a Colour as -would be made by diluting the intensest yellow with an equal quantity of -whiteness; and if it fall upon the center O, the Colour shall have lost -all its intenseness, and become a white. But it is to be noted, That if -the point Z fall in or near the line OD, the main ingredients being the -red and violet, the Colour compounded shall not be any of the prismatick -Colours, but a purple, inclining to red or violet, accordingly as the -point Z lieth on the side of the line DO towards E or towards C, and in -general the compounded violet is more bright and more fiery than the -uncompounded. Also if only two of the primary Colours which in the -circle are opposite to one another be mixed in an equal proportion, the -point Z shall fall upon the center O, and yet the Colour compounded of -those two shall not be perfectly white, but some faint anonymous Colour. -For I could never yet by mixing only two primary Colours produce a -perfect white. Whether it may be compounded of a mixture of three taken -at equal distances in the circumference I do not know, but of four or -five I do not much question but it may. But these are Curiosities of -little or no moment to the understanding the Phænomena of Nature. For in -all whites produced by Nature, there uses to be a mixture of all sorts -of Rays, and by consequence a composition of all Colours. - -To give an instance of this Rule; suppose a Colour is compounded of -these homogeneal Colours, of violet one part, of indigo one part, of -blue two parts, of green three parts, of yellow five parts, of orange -six parts, and of red ten parts. Proportional to these parts describe -the Circles _x_, _v_, _t_, _s_, _r_, _q_, _p_, respectively, that is, so -that if the Circle _x_ be one, the Circle _v_ may be one, the Circle _t_ -two, the Circle _s_ three, and the Circles _r_, _q_ and _p_, five, six -and ten. Then I find Z the common center of gravity of these Circles, -and through Z drawing the Line OY, the Point Y falls upon the -circumference between E and F, something nearer to E than to F, and -thence I conclude, that the Colour compounded of these Ingredients will -be an orange, verging a little more to red than to yellow. Also I find -that OZ is a little less than one half of OY, and thence I conclude, -that this orange hath a little less than half the fulness or intenseness -of an uncompounded orange; that is to say, that it is such an orange as -may be made by mixing an homogeneal orange with a good white in the -proportion of the Line OZ to the Line ZY, this Proportion being not of -the quantities of mixed orange and white Powders, but of the quantities -of the Lights reflected from them. - -This Rule I conceive accurate enough for practice, though not -mathematically accurate; and the truth of it may be sufficiently proved -to Sense, by stopping any of the Colours at the Lens in the tenth -Experiment of this Book. For the rest of the Colours which are not -stopp'd, but pass on to the Focus of the Lens, will there compound -either accurately or very nearly such a Colour, as by this Rule ought to -result from their Mixture. - - -_PROP._ VII. THEOR. V. - -_All the Colours in the Universe which are made by Light, and depend not -on the Power of Imagination, are either the Colours of homogeneal -Lights, or compounded of these, and that either accurately or very -nearly, according to the Rule of the foregoing Problem._ - -For it has been proved (in _Prop. 1. Part 2._) that the changes of -Colours made by Refractions do not arise from any new Modifications of -the Rays impress'd by those Refractions, and by the various Terminations -of Light and Shadow, as has been the constant and general Opinion of -Philosophers. It has also been proved that the several Colours of the -homogeneal Rays do constantly answer to their degrees of Refrangibility, -(_Prop._ 1. _Part_ 1. and _Prop._ 2. _Part_ 2.) and that their degrees -of Refrangibility cannot be changed by Refractions and Reflexions -(_Prop._ 2. _Part_ 1.) and by consequence that those their Colours are -likewise immutable. It has also been proved directly by refracting and -reflecting homogeneal Lights apart, that their Colours cannot be -changed, (_Prop._ 2. _Part_ 2.) It has been proved also, that when the -several sorts of Rays are mixed, and in crossing pass through the same -space, they do not act on one another so as to change each others -colorific qualities. (_Exper._ 10. _Part_ 2.) but by mixing their -Actions in the Sensorium beget a Sensation differing from what either -would do apart, that is a Sensation of a mean Colour between their -proper Colours; and particularly when by the concourse and mixtures of -all sorts of Rays, a white Colour is produced, the white is a mixture of -all the Colours which the Rays would have apart, (_Prop._ 5. _Part_ 2.) -The Rays in that mixture do not lose or alter their several colorific -qualities, but by all their various kinds of Actions mix'd in the -Sensorium, beget a Sensation of a middling Colour between all their -Colours, which is whiteness. For whiteness is a mean between all -Colours, having it self indifferently to them all, so as with equal -facility to be tinged with any of them. A red Powder mixed with a little -blue, or a blue with a little red, doth not presently lose its Colour, -but a white Powder mix'd with any Colour is presently tinged with that -Colour, and is equally capable of being tinged with any Colour whatever. -It has been shewed also, that as the Sun's Light is mix'd of all sorts -of Rays, so its whiteness is a mixture of the Colours of all sorts of -Rays; those Rays having from the beginning their several colorific -qualities as well as their several Refrangibilities, and retaining them -perpetually unchanged notwithstanding any Refractions or Reflexions they -may at any time suffer, and that whenever any sort of the Sun's Rays is -by any means (as by Reflexion in _Exper._ 9, and 10. _Part_ 1. or by -Refraction as happens in all Refractions) separated from the rest, they -then manifest their proper Colours. These things have been prov'd, and -the sum of all this amounts to the Proposition here to be proved. For if -the Sun's Light is mix'd of several sorts of Rays, each of which have -originally their several Refrangibilities and colorific Qualities, and -notwithstanding their Refractions and Reflexions, and their various -Separations or Mixtures, keep those their original Properties -perpetually the same without alteration; then all the Colours in the -World must be such as constantly ought to arise from the original -colorific qualities of the Rays whereof the Lights consist by which -those Colours are seen. And therefore if the reason of any Colour -whatever be required, we have nothing else to do than to consider how -the Rays in the Sun's Light have by Reflexions or Refractions, or other -causes, been parted from one another, or mixed together; or otherwise to -find out what sorts of Rays are in the Light by which that Colour is -made, and in what Proportion; and then by the last Problem to learn the -Colour which ought to arise by mixing those Rays (or their Colours) in -that proportion. I speak here of Colours so far as they arise from -Light. For they appear sometimes by other Causes, as when by the power -of Phantasy we see Colours in a Dream, or a Mad-man sees things before -him which are not there; or when we see Fire by striking the Eye, or see -Colours like the Eye of a Peacock's Feather, by pressing our Eyes in -either corner whilst we look the other way. Where these and such like -Causes interpose not, the Colour always answers to the sort or sorts of -the Rays whereof the Light consists, as I have constantly found in -whatever Phænomena of Colours I have hitherto been able to examine. I -shall in the following Propositions give instances of this in the -Phænomena of chiefest note. - - -_PROP._ VIII. PROB. III. - -_By the discovered Properties of Light to explain the Colours made by -Prisms._ - -Let ABC [in _Fig._ 12.] represent a Prism refracting the Light of the -Sun, which comes into a dark Chamber through a hole F[Greek: ph] almost -as broad as the Prism, and let MN represent a white Paper on which the -refracted Light is cast, and suppose the most refrangible or deepest -violet-making Rays fall upon the Space P[Greek: p], the least -refrangible or deepest red-making Rays upon the Space T[Greek: t], the -middle sort between the indigo-making and blue-making Rays upon the -Space Q[Greek: ch], the middle sort of the green-making Rays upon the -Space R, the middle sort between the yellow-making and orange-making -Rays upon the Space S[Greek: s], and other intermediate sorts upon -intermediate Spaces. For so the Spaces upon which the several sorts -adequately fall will by reason of the different Refrangibility of those -sorts be one lower than another. Now if the Paper MN be so near the -Prism that the Spaces PT and [Greek: pt] do not interfere with one -another, the distance between them T[Greek: p] will be illuminated by -all the sorts of Rays in that proportion to one another which they have -at their very first coming out of the Prism, and consequently be white. -But the Spaces PT and [Greek: pt] on either hand, will not be -illuminated by them all, and therefore will appear coloured. And -particularly at P, where the outmost violet-making Rays fall alone, the -Colour must be the deepest violet. At Q where the violet-making and -indigo-making Rays are mixed, it must be a violet inclining much to -indigo. At R where the violet-making, indigo-making, blue-making, and -one half of the green-making Rays are mixed, their Colours must (by the -construction of the second Problem) compound a middle Colour between -indigo and blue. At S where all the Rays are mixed, except the -red-making and orange-making, their Colours ought by the same Rule to -compound a faint blue, verging more to green than indigo. And in the -progress from S to T, this blue will grow more and more faint and -dilute, till at T, where all the Colours begin to be mixed, it ends in -whiteness. - -[Illustration: FIG. 12.] - -So again, on the other side of the white at [Greek: t], where the least -refrangible or utmost red-making Rays are alone, the Colour must be the -deepest red. At [Greek: s] the mixture of red and orange will compound a -red inclining to orange. At [Greek: r] the mixture of red, orange, -yellow, and one half of the green must compound a middle Colour between -orange and yellow. At [Greek: ch] the mixture of all Colours but violet -and indigo will compound a faint yellow, verging more to green than to -orange. And this yellow will grow more faint and dilute continually in -its progress from [Greek: ch] to [Greek: p], where by a mixture of all -sorts of Rays it will become white. - -These Colours ought to appear were the Sun's Light perfectly white: But -because it inclines to yellow, the Excess of the yellow-making Rays -whereby 'tis tinged with that Colour, being mixed with the faint blue -between S and T, will draw it to a faint green. And so the Colours in -order from P to [Greek: t] ought to be violet, indigo, blue, very faint -green, white, faint yellow, orange, red. Thus it is by the computation: -And they that please to view the Colours made by a Prism will find it so -in Nature. - -These are the Colours on both sides the white when the Paper is held -between the Prism and the Point X where the Colours meet, and the -interjacent white vanishes. For if the Paper be held still farther off -from the Prism, the most refrangible and least refrangible Rays will be -wanting in the middle of the Light, and the rest of the Rays which are -found there, will by mixture produce a fuller green than before. Also -the yellow and blue will now become less compounded, and by consequence -more intense than before. And this also agrees with experience. - -And if one look through a Prism upon a white Object encompassed with -blackness or darkness, the reason of the Colours arising on the edges is -much the same, as will appear to one that shall a little consider it. If -a black Object be encompassed with a white one, the Colours which appear -through the Prism are to be derived from the Light of the white one, -spreading into the Regions of the black, and therefore they appear in a -contrary order to that, when a white Object is surrounded with black. -And the same is to be understood when an Object is viewed, whose parts -are some of them less luminous than others. For in the borders of the -more and less luminous Parts, Colours ought always by the same -Principles to arise from the Excess of the Light of the more luminous, -and to be of the same kind as if the darker parts were black, but yet to -be more faint and dilute. - -What is said of Colours made by Prisms may be easily applied to Colours -made by the Glasses of Telescopes or Microscopes, or by the Humours of -the Eye. For if the Object-glass of a Telescope be thicker on one side -than on the other, or if one half of the Glass, or one half of the Pupil -of the Eye be cover'd with any opake substance; the Object-glass, or -that part of it or of the Eye which is not cover'd, may be consider'd as -a Wedge with crooked Sides, and every Wedge of Glass or other pellucid -Substance has the effect of a Prism in refracting the Light which passes -through it.[L] - -How the Colours in the ninth and tenth Experiments of the first Part -arise from the different Reflexibility of Light, is evident by what was -there said. But it is observable in the ninth Experiment, that whilst -the Sun's direct Light is yellow, the Excess of the blue-making Rays in -the reflected beam of Light MN, suffices only to bring that yellow to a -pale white inclining to blue, and not to tinge it with a manifestly blue -Colour. To obtain therefore a better blue, I used instead of the yellow -Light of the Sun the white Light of the Clouds, by varying a little the -Experiment, as follows. - -[Illustration: FIG. 13.] - -_Exper._ 16 Let HFG [in _Fig._ 13.] represent a Prism in the open Air, -and S the Eye of the Spectator, viewing the Clouds by their Light coming -into the Prism at the Plane Side FIGK, and reflected in it by its Base -HEIG, and thence going out through its Plane Side HEFK to the Eye. And -when the Prism and Eye are conveniently placed, so that the Angles of -Incidence and Reflexion at the Base may be about 40 Degrees, the -Spectator will see a Bow MN of a blue Colour, running from one End of -the Base to the other, with the Concave Side towards him, and the Part -of the Base IMNG beyond this Bow will be brighter than the other Part -EMNH on the other Side of it. This blue Colour MN being made by nothing -else than by Reflexion of a specular Superficies, seems so odd a -Phænomenon, and so difficult to be explained by the vulgar Hypothesis of -Philosophers, that I could not but think it deserved to be taken Notice -of. Now for understanding the Reason of it, suppose the Plane ABC to cut -the Plane Sides and Base of the Prism perpendicularly. From the Eye to -the Line BC, wherein that Plane cuts the Base, draw the Lines S_p_ and -S_t_, in the Angles S_pc_ 50 degr. 1/9, and S_tc_ 49 degr. 1/28, and the -Point _p_ will be the Limit beyond which none of the most refrangible -Rays can pass through the Base of the Prism, and be refracted, whose -Incidence is such that they may be reflected to the Eye; and the Point -_t_ will be the like Limit for the least refrangible Rays, that is, -beyond which none of them can pass through the Base, whose Incidence is -such that by Reflexion they may come to the Eye. And the Point _r_ taken -in the middle Way between _p_ and _t_, will be the like Limit for the -meanly refrangible Rays. And therefore all the least refrangible Rays -which fall upon the Base beyond _t_, that is, between _t_ and B, and can -come from thence to the Eye, will be reflected thither: But on this side -_t_, that is, between _t_ and _c_, many of these Rays will be -transmitted through the Base. And all the most refrangible Rays which -fall upon the Base beyond _p_, that is, between, _p_ and B, and can by -Reflexion come from thence to the Eye, will be reflected thither, but -every where between _p_ and _c_, many of these Rays will get through the -Base, and be refracted; and the same is to be understood of the meanly -refrangible Rays on either side of the Point _r_. Whence it follows, -that the Base of the Prism must every where between _t_ and B, by a -total Reflexion of all sorts of Rays to the Eye, look white and bright. -And every where between _p_ and C, by reason of the Transmission of many -Rays of every sort, look more pale, obscure, and dark. But at _r_, and -in other Places between _p_ and _t_, where all the more refrangible Rays -are reflected to the Eye, and many of the less refrangible are -transmitted, the Excess of the most refrangible in the reflected Light -will tinge that Light with their Colour, which is violet and blue. And -this happens by taking the Line C _prt_ B any where between the Ends of -the Prism HG and EI. - - -_PROP._ IX. PROB. IV. - -_By the discovered Properties of Light to explain the Colours of the -Rain-bow._ - -[Illustration: FIG. 14.] - -This Bow never appears, but where it rains in the Sun-shine, and may be -made artificially by spouting up Water which may break aloft, and -scatter into Drops, and fall down like Rain. For the Sun shining upon -these Drops certainly causes the Bow to appear to a Spectator standing -in a due Position to the Rain and Sun. And hence it is now agreed upon, -that this Bow is made by Refraction of the Sun's Light in drops of -falling Rain. This was understood by some of the Antients, and of late -more fully discover'd and explain'd by the famous _Antonius de Dominis_ -Archbishop of _Spalato_, in his book _De Radiis Visûs & Lucis_, -published by his Friend _Bartolus_ at _Venice_, in the Year 1611, and -written above 20 Years before. For he teaches there how the interior Bow -is made in round Drops of Rain by two Refractions of the Sun's Light, -and one Reflexion between them, and the exterior by two Refractions, and -two sorts of Reflexions between them in each Drop of Water, and proves -his Explications by Experiments made with a Phial full of Water, and -with Globes of Glass filled with Water, and placed in the Sun to make -the Colours of the two Bows appear in them. The same Explication -_Des-Cartes_ hath pursued in his Meteors, and mended that of the -exterior Bow. But whilst they understood not the true Origin of Colours, -it's necessary to pursue it here a little farther. For understanding -therefore how the Bow is made, let a Drop of Rain, or any other -spherical transparent Body be represented by the Sphere BNFG, [in _Fig._ -14.] described with the Center C, and Semi-diameter CN. And let AN be -one of the Sun's Rays incident upon it at N, and thence refracted to F, -where let it either go out of the Sphere by Refraction towards V, or be -reflected to G; and at G let it either go out by Refraction to R, or be -reflected to H; and at H let it go out by Refraction towards S, cutting -the incident Ray in Y. Produce AN and RG, till they meet in X, and upon -AX and NF, let fall the Perpendiculars CD and CE, and produce CD till it -fall upon the Circumference at L. Parallel to the incident Ray AN draw -the Diameter BQ, and let the Sine of Incidence out of Air into Water be -to the Sine of Refraction as I to R. Now, if you suppose the Point of -Incidence N to move from the Point B, continually till it come to L, the -Arch QF will first increase and then decrease, and so will the Angle AXR -which the Rays AN and GR contain; and the Arch QF and Angle AXR will be -biggest when ND is to CN as sqrt(II - RR) to sqrt(3)RR, in which -case NE will be to ND as 2R to I. Also the Angle AYS, which the Rays AN -and HS contain will first decrease, and then increase and grow least -when ND is to CN as sqrt(II - RR) to sqrt(8)RR, in which case NE -will be to ND, as 3R to I. And so the Angle which the next emergent Ray -(that is, the emergent Ray after three Reflexions) contains with the -incident Ray AN will come to its Limit when ND is to CN as sqrt(II - -RR) to sqrt(15)RR, in which case NE will be to ND as 4R to I. And the -Angle which the Ray next after that Emergent, that is, the Ray emergent -after four Reflexions, contains with the Incident, will come to its -Limit, when ND is to CN as sqrt(II - RR) to sqrt(24)RR, in which -case NE will be to ND as 5R to I; and so on infinitely, the Numbers 3, -8, 15, 24, &c. being gather'd by continual Addition of the Terms of the -arithmetical Progression 3, 5, 7, 9, &c. The Truth of all this -Mathematicians will easily examine.[M] - -Now it is to be observed, that as when the Sun comes to his Tropicks, -Days increase and decrease but a very little for a great while together; -so when by increasing the distance CD, these Angles come to their -Limits, they vary their quantity but very little for some time together, -and therefore a far greater number of the Rays which fall upon all the -Points N in the Quadrant BL, shall emerge in the Limits of these Angles, -than in any other Inclinations. And farther it is to be observed, that -the Rays which differ in Refrangibility will have different Limits of -their Angles of Emergence, and by consequence according to their -different Degrees of Refrangibility emerge most copiously in different -Angles, and being separated from one another appear each in their proper -Colours. And what those Angles are may be easily gather'd from the -foregoing Theorem by Computation. - -For in the least refrangible Rays the Sines I and R (as was found above) -are 108 and 81, and thence by Computation the greatest Angle AXR will be -found 42 Degrees and 2 Minutes, and the least Angle AYS, 50 Degrees and -57 Minutes. And in the most refrangible Rays the Sines I and R are 109 -and 81, and thence by Computation the greatest Angle AXR will be found -40 Degrees and 17 Minutes, and the least Angle AYS 54 Degrees and 7 -Minutes. - -Suppose now that O [in _Fig._ 15.] is the Spectator's Eye, and OP a Line -drawn parallel to the Sun's Rays and let POE, POF, POG, POH, be Angles -of 40 Degr. 17 Min. 42 Degr. 2 Min. 50 Degr. 57 Min. and 54 Degr. 7 Min. -respectively, and these Angles turned about their common Side OP, shall -with their other Sides OE, OF; OG, OH, describe the Verges of two -Rain-bows AF, BE and CHDG. For if E, F, G, H, be drops placed any where -in the conical Superficies described by OE, OF, OG, OH, and be -illuminated by the Sun's Rays SE, SF, SG, SH; the Angle SEO being equal -to the Angle POE, or 40 Degr. 17 Min. shall be the greatest Angle in -which the most refrangible Rays can after one Reflexion be refracted to -the Eye, and therefore all the Drops in the Line OE shall send the most -refrangible Rays most copiously to the Eye, and thereby strike the -Senses with the deepest violet Colour in that Region. And in like -manner the Angle SFO being equal to the Angle POF, or 42 Degr. 2 Min. -shall be the greatest in which the least refrangible Rays after one -Reflexion can emerge out of the Drops, and therefore those Rays shall -come most copiously to the Eye from the Drops in the Line OF, and strike -the Senses with the deepest red Colour in that Region. And by the same -Argument, the Rays which have intermediate Degrees of Refrangibility -shall come most copiously from Drops between E and F, and strike the -Senses with the intermediate Colours, in the Order which their Degrees -of Refrangibility require, that is in the Progress from E to F, or from -the inside of the Bow to the outside in this order, violet, indigo, -blue, green, yellow, orange, red. But the violet, by the mixture of the -white Light of the Clouds, will appear faint and incline to purple. - -[Illustration: FIG. 15.] - -Again, the Angle SGO being equal to the Angle POG, or 50 Gr. 51 Min. -shall be the least Angle in which the least refrangible Rays can after -two Reflexions emerge out of the Drops, and therefore the least -refrangible Rays shall come most copiously to the Eye from the Drops in -the Line OG, and strike the Sense with the deepest red in that Region. -And the Angle SHO being equal to the Angle POH, or 54 Gr. 7 Min. shall -be the least Angle, in which the most refrangible Rays after two -Reflexions can emerge out of the Drops; and therefore those Rays shall -come most copiously to the Eye from the Drops in the Line OH, and strike -the Senses with the deepest violet in that Region. And by the same -Argument, the Drops in the Regions between G and H shall strike the -Sense with the intermediate Colours in the Order which their Degrees of -Refrangibility require, that is, in the Progress from G to H, or from -the inside of the Bow to the outside in this order, red, orange, yellow, -green, blue, indigo, violet. And since these four Lines OE, OF, OG, OH, -may be situated any where in the above-mention'd conical Superficies; -what is said of the Drops and Colours in these Lines is to be understood -of the Drops and Colours every where in those Superficies. - -Thus shall there be made two Bows of Colours, an interior and stronger, -by one Reflexion in the Drops, and an exterior and fainter by two; for -the Light becomes fainter by every Reflexion. And their Colours shall -lie in a contrary Order to one another, the red of both Bows bordering -upon the Space GF, which is between the Bows. The Breadth of the -interior Bow EOF measured cross the Colours shall be 1 Degr. 45 Min. and -the Breadth of the exterior GOH shall be 3 Degr. 10 Min. and the -distance between them GOF shall be 8 Gr. 15 Min. the greatest -Semi-diameter of the innermost, that is, the Angle POF being 42 Gr. 2 -Min. and the least Semi-diameter of the outermost POG, being 50 Gr. 57 -Min. These are the Measures of the Bows, as they would be were the Sun -but a Point; for by the Breadth of his Body, the Breadth of the Bows -will be increased, and their Distance decreased by half a Degree, and so -the breadth of the interior Iris will be 2 Degr. 15 Min. that of the -exterior 3 Degr. 40 Min. their distance 8 Degr. 25 Min. the greatest -Semi-diameter of the interior Bow 42 Degr. 17 Min. and the least of the -exterior 50 Degr. 42 Min. And such are the Dimensions of the Bows in the -Heavens found to be very nearly, when their Colours appear strong and -perfect. For once, by such means as I then had, I measured the greatest -Semi-diameter of the interior Iris about 42 Degrees, and the breadth of -the red, yellow and green in that Iris 63 or 64 Minutes, besides the -outmost faint red obscured by the brightness of the Clouds, for which we -may allow 3 or 4 Minutes more. The breadth of the blue was about 40 -Minutes more besides the violet, which was so much obscured by the -brightness of the Clouds, that I could not measure its breadth. But -supposing the breadth of the blue and violet together to equal that of -the red, yellow and green together, the whole breadth of this Iris will -be about 2-1/4 Degrees, as above. The least distance between this Iris -and the exterior Iris was about 8 Degrees and 30 Minutes. The exterior -Iris was broader than the interior, but so faint, especially on the blue -side, that I could not measure its breadth distinctly. At another time -when both Bows appeared more distinct, I measured the breadth of the -interior Iris 2 Gr. 10´, and the breadth of the red, yellow and green in -the exterior Iris, was to the breadth of the same Colours in the -interior as 3 to 2. - -This Explication of the Rain-bow is yet farther confirmed by the known -Experiment (made by _Antonius de Dominis_ and _Des-Cartes_) of hanging -up any where in the Sun-shine a Glass Globe filled with Water, and -viewing it in such a posture, that the Rays which come from the Globe to -the Eye may contain with the Sun's Rays an Angle of either 42 or 50 -Degrees. For if the Angle be about 42 or 43 Degrees, the Spectator -(suppose at O) shall see a full red Colour in that side of the Globe -opposed to the Sun as 'tis represented at F, and if that Angle become -less (suppose by depressing the Globe to E) there will appear other -Colours, yellow, green and blue successive in the same side of the -Globe. But if the Angle be made about 50 Degrees (suppose by lifting up -the Globe to G) there will appear a red Colour in that side of the Globe -towards the Sun, and if the Angle be made greater (suppose by lifting -up the Globe to H) the red will turn successively to the other Colours, -yellow, green and blue. The same thing I have tried, by letting a Globe -rest, and raising or depressing the Eye, or otherwise moving it to make -the Angle of a just magnitude. - -I have heard it represented, that if the Light of a Candle be refracted -by a Prism to the Eye; when the blue Colour falls upon the Eye, the -Spectator shall see red in the Prism, and when the red falls upon the -Eye he shall see blue; and if this were certain, the Colours of the -Globe and Rain-bow ought to appear in a contrary order to what we find. -But the Colours of the Candle being very faint, the mistake seems to -arise from the difficulty of discerning what Colours fall on the Eye. -For, on the contrary, I have sometimes had occasion to observe in the -Sun's Light refracted by a Prism, that the Spectator always sees that -Colour in the Prism which falls upon his Eye. And the same I have found -true also in Candle-light. For when the Prism is moved slowly from the -Line which is drawn directly from the Candle to the Eye, the red appears -first in the Prism and then the blue, and therefore each of them is seen -when it falls upon the Eye. For the red passes over the Eye first, and -then the blue. - -The Light which comes through drops of Rain by two Refractions without -any Reflexion, ought to appear strongest at the distance of about 26 -Degrees from the Sun, and to decay gradually both ways as the distance -from him increases and decreases. And the same is to be understood of -Light transmitted through spherical Hail-stones. And if the Hail be a -little flatted, as it often is, the Light transmitted may grow so strong -at a little less distance than that of 26 Degrees, as to form a Halo -about the Sun or Moon; which Halo, as often as the Hail-stones are duly -figured may be colour'd, and then it must be red within by the least -refrangible Rays, and blue without by the most refrangible ones, -especially if the Hail-stones have opake Globules of Snow in their -center to intercept the Light within the Halo (as _Hugenius_ has -observ'd) and make the inside thereof more distinctly defined than it -would otherwise be. For such Hail-stones, though spherical, by -terminating the Light by the Snow, may make a Halo red within and -colourless without, and darker in the red than without, as Halos used to -be. For of those Rays which pass close by the Snow the Rubriform will be -least refracted, and so come to the Eye in the directest Lines. - -The Light which passes through a drop of Rain after two Refractions, and -three or more Reflexions, is scarce strong enough to cause a sensible -Bow; but in those Cylinders of Ice by which _Hugenius_ explains the -_Parhelia_, it may perhaps be sensible. - - -_PROP._ X. PROB. V. - -_By the discovered Properties of Light to explain the permanent Colours -of Natural Bodies._ - -These Colours arise from hence, that some natural Bodies reflect some -sorts of Rays, others other sorts more copiously than the rest. Minium -reflects the least refrangible or red-making Rays most copiously, and -thence appears red. Violets reflect the most refrangible most copiously, -and thence have their Colour, and so of other Bodies. Every Body -reflects the Rays of its own Colour more copiously than the rest, and -from their excess and predominance in the reflected Light has its -Colour. - -_Exper._ 17. For if in the homogeneal Lights obtained by the solution of -the Problem proposed in the fourth Proposition of the first Part of this -Book, you place Bodies of several Colours, you will find, as I have -done, that every Body looks most splendid and luminous in the Light of -its own Colour. Cinnaber in the homogeneal red Light is most -resplendent, in the green Light it is manifestly less resplendent, and -in the blue Light still less. Indigo in the violet blue Light is most -resplendent, and its splendor is gradually diminish'd, as it is removed -thence by degrees through the green and yellow Light to the red. By a -Leek the green Light, and next that the blue and yellow which compound -green, are more strongly reflected than the other Colours red and -violet, and so of the rest. But to make these Experiments the more -manifest, such Bodies ought to be chosen as have the fullest and most -vivid Colours, and two of those Bodies are to be compared together. -Thus, for instance, if Cinnaber and _ultra_-marine blue, or some other -full blue be held together in the red homogeneal Light, they will both -appear red, but the Cinnaber will appear of a strongly luminous and -resplendent red, and the _ultra_-marine blue of a faint obscure and dark -red; and if they be held together in the blue homogeneal Light, they -will both appear blue, but the _ultra_-marine will appear of a strongly -luminous and resplendent blue, and the Cinnaber of a faint and dark -blue. Which puts it out of dispute that the Cinnaber reflects the red -Light much more copiously than the _ultra_-marine doth, and the -_ultra_-marine reflects the blue Light much more copiously than the -Cinnaber doth. The same Experiment may be tried successfully with red -Lead and Indigo, or with any other two colour'd Bodies, if due allowance -be made for the different strength or weakness of their Colour and -Light. - -And as the reason of the Colours of natural Bodies is evident by these -Experiments, so it is farther confirmed and put past dispute by the two -first Experiments of the first Part, whereby 'twas proved in such Bodies -that the reflected Lights which differ in Colours do differ also in -degrees of Refrangibility. For thence it's certain, that some Bodies -reflect the more refrangible, others the less refrangible Rays more -copiously. - -And that this is not only a true reason of these Colours, but even the -only reason, may appear farther from this Consideration, that the Colour -of homogeneal Light cannot be changed by the Reflexion of natural -Bodies. - -For if Bodies by Reflexion cannot in the least change the Colour of any -one sort of Rays, they cannot appear colour'd by any other means than by -reflecting those which either are of their own Colour, or which by -mixture must produce it. - -But in trying Experiments of this kind care must be had that the Light -be sufficiently homogeneal. For if Bodies be illuminated by the ordinary -prismatick Colours, they will appear neither of their own Day-light -Colours, nor of the Colour of the Light cast on them, but of some middle -Colour between both, as I have found by Experience. Thus red Lead (for -instance) illuminated with the ordinary prismatick green will not appear -either red or green, but orange or yellow, or between yellow and green, -accordingly as the green Light by which 'tis illuminated is more or less -compounded. For because red Lead appears red when illuminated with white -Light, wherein all sorts of Rays are equally mix'd, and in the green -Light all sorts of Rays are not equally mix'd, the Excess of the -yellow-making, green-making and blue-making Rays in the incident green -Light, will cause those Rays to abound so much in the reflected Light, -as to draw the Colour from red towards their Colour. And because the red -Lead reflects the red-making Rays most copiously in proportion to their -number, and next after them the orange-making and yellow-making Rays; -these Rays in the reflected Light will be more in proportion to the -Light than they were in the incident green Light, and thereby will draw -the reflected Light from green towards their Colour. And therefore the -red Lead will appear neither red nor green, but of a Colour between -both. - -In transparently colour'd Liquors 'tis observable, that their Colour -uses to vary with their thickness. Thus, for instance, a red Liquor in a -conical Glass held between the Light and the Eye, looks of a pale and -dilute yellow at the bottom where 'tis thin, and a little higher where -'tis thicker grows orange, and where 'tis still thicker becomes red, and -where 'tis thickest the red is deepest and darkest. For it is to be -conceiv'd that such a Liquor stops the indigo-making and violet-making -Rays most easily, the blue-making Rays more difficultly, the -green-making Rays still more difficultly, and the red-making most -difficultly: And that if the thickness of the Liquor be only so much as -suffices to stop a competent number of the violet-making and -indigo-making Rays, without diminishing much the number of the rest, the -rest must (by _Prop._ 6. _Part_ 2.) compound a pale yellow. But if the -Liquor be so much thicker as to stop also a great number of the -blue-making Rays, and some of the green-making, the rest must compound -an orange; and where it is so thick as to stop also a great number of -the green-making and a considerable number of the yellow-making, the -rest must begin to compound a red, and this red must grow deeper and -darker as the yellow-making and orange-making Rays are more and more -stopp'd by increasing the thickness of the Liquor, so that few Rays -besides the red-making can get through. - -Of this kind is an Experiment lately related to me by Mr. _Halley_, who, -in diving deep into the Sea in a diving Vessel, found in a clear -Sun-shine Day, that when he was sunk many Fathoms deep into the Water -the upper part of his Hand on which the Sun shone directly through the -Water and through a small Glass Window in the Vessel appeared of a red -Colour, like that of a Damask Rose, and the Water below and the under -part of his Hand illuminated by Light reflected from the Water below -look'd green. For thence it may be gather'd, that the Sea-Water reflects -back the violet and blue-making Rays most easily, and lets the -red-making Rays pass most freely and copiously to great Depths. For -thereby the Sun's direct Light at all great Depths, by reason of the -predominating red-making Rays, must appear red; and the greater the -Depth is, the fuller and intenser must that red be. And at such Depths -as the violet-making Rays scarce penetrate unto, the blue-making, -green-making, and yellow-making Rays being reflected from below more -copiously than the red-making ones, must compound a green. - -Now, if there be two Liquors of full Colours, suppose a red and blue, -and both of them so thick as suffices to make their Colours sufficiently -full; though either Liquor be sufficiently transparent apart, yet will -you not be able to see through both together. For, if only the -red-making Rays pass through one Liquor, and only the blue-making -through the other, no Rays can pass through both. This Mr. _Hook_ tried -casually with Glass Wedges filled with red and blue Liquors, and was -surprized at the unexpected Event, the reason of it being then unknown; -which makes me trust the more to his Experiment, though I have not tried -it my self. But he that would repeat it, must take care the Liquors be -of very good and full Colours. - -Now, whilst Bodies become coloured by reflecting or transmitting this or -that sort of Rays more copiously than the rest, it is to be conceived -that they stop and stifle in themselves the Rays which they do not -reflect or transmit. For, if Gold be foliated and held between your Eye -and the Light, the Light looks of a greenish blue, and therefore massy -Gold lets into its Body the blue-making Rays to be reflected to and fro -within it till they be stopp'd and stifled, whilst it reflects the -yellow-making outwards, and thereby looks yellow. And much after the -same manner that Leaf Gold is yellow by reflected, and blue by -transmitted Light, and massy Gold is yellow in all Positions of the Eye; -there are some Liquors, as the Tincture of _Lignum Nephriticum_, and -some sorts of Glass which transmit one sort of Light most copiously, and -reflect another sort, and thereby look of several Colours, according to -the Position of the Eye to the Light. But, if these Liquors or Glasses -were so thick and massy that no Light could get through them, I question -not but they would like all other opake Bodies appear of one and the -same Colour in all Positions of the Eye, though this I cannot yet affirm -by Experience. For all colour'd Bodies, so far as my Observation -reaches, may be seen through if made sufficiently thin, and therefore -are in some measure transparent, and differ only in degrees of -Transparency from tinged transparent Liquors; these Liquors, as well as -those Bodies, by a sufficient Thickness becoming opake. A transparent -Body which looks of any Colour by transmitted Light, may also look of -the same Colour by reflected Light, the Light of that Colour being -reflected by the farther Surface of the Body, or by the Air beyond it. -And then the reflected Colour will be diminished, and perhaps cease, by -making the Body very thick, and pitching it on the backside to diminish -the Reflexion of its farther Surface, so that the Light reflected from -the tinging Particles may predominate. In such Cases, the Colour of the -reflected Light will be apt to vary from that of the Light transmitted. -But whence it is that tinged Bodies and Liquors reflect some sort of -Rays, and intromit or transmit other sorts, shall be said in the next -Book. In this Proposition I content my self to have put it past dispute, -that Bodies have such Properties, and thence appear colour'd. - - -_PROP._ XI. PROB. VI. - -_By mixing colour'd Lights to compound a beam of Light of the same -Colour and Nature with a beam of the Sun's direct Light, and therein to -experience the Truth of the foregoing Propositions._ - -[Illustration: FIG. 16.] - -Let ABC _abc_ [in _Fig._ 16.] represent a Prism, by which the Sun's -Light let into a dark Chamber through the Hole F, may be refracted -towards the Lens MN, and paint upon it at _p_, _q_, _r_, _s_, and _t_, -the usual Colours violet, blue, green, yellow, and red, and let the -diverging Rays by the Refraction of this Lens converge again towards X, -and there, by the mixture of all those their Colours, compound a white -according to what was shewn above. Then let another Prism DEG _deg_, -parallel to the former, be placed at X, to refract that white Light -upwards towards Y. Let the refracting Angles of the Prisms, and their -distances from the Lens be equal, so that the Rays which converged from -the Lens towards X, and without Refraction, would there have crossed and -diverged again, may by the Refraction of the second Prism be reduced -into Parallelism and diverge no more. For then those Rays will recompose -a beam of white Light XY. If the refracting Angle of either Prism be the -bigger, that Prism must be so much the nearer to the Lens. You will know -when the Prisms and the Lens are well set together, by observing if the -beam of Light XY, which comes out of the second Prism be perfectly white -to the very edges of the Light, and at all distances from the Prism -continue perfectly and totally white like a beam of the Sun's Light. For -till this happens, the Position of the Prisms and Lens to one another -must be corrected; and then if by the help of a long beam of Wood, as is -represented in the Figure, or by a Tube, or some other such Instrument, -made for that Purpose, they be made fast in that Situation, you may try -all the same Experiments in this compounded beam of Light XY, which have -been made in the Sun's direct Light. For this compounded beam of Light -has the same appearance, and is endow'd with all the same Properties -with a direct beam of the Sun's Light, so far as my Observation reaches. -And in trying Experiments in this beam you may by stopping any of the -Colours, _p_, _q_, _r_, _s_, and _t_, at the Lens, see how the Colours -produced in the Experiments are no other than those which the Rays had -at the Lens before they entered the Composition of this Beam: And by -consequence, that they arise not from any new Modifications of the Light -by Refractions and Reflexions, but from the various Separations and -Mixtures of the Rays originally endow'd with their colour-making -Qualities. - -So, for instance, having with a Lens 4-1/4 Inches broad, and two Prisms -on either hand 6-1/4 Feet distant from the Lens, made such a beam of -compounded Light; to examine the reason of the Colours made by Prisms, I -refracted this compounded beam of Light XY with another Prism HIK _kh_, -and thereby cast the usual Prismatick Colours PQRST upon the Paper LV -placed behind. And then by stopping any of the Colours _p_, _q_, _r_, -_s_, _t_, at the Lens, I found that the same Colour would vanish at the -Paper. So if the Purple _p_ was stopp'd at the Lens, the Purple P upon -the Paper would vanish, and the rest of the Colours would remain -unalter'd, unless perhaps the blue, so far as some purple latent in it -at the Lens might be separated from it by the following Refractions. And -so by intercepting the green upon the Lens, the green R upon the Paper -would vanish, and so of the rest; which plainly shews, that as the white -beam of Light XY was compounded of several Lights variously colour'd at -the Lens, so the Colours which afterwards emerge out of it by new -Refractions are no other than those of which its Whiteness was -compounded. The Refraction of the Prism HIK _kh_ generates the Colours -PQRST upon the Paper, not by changing the colorific Qualities of the -Rays, but by separating the Rays which had the very same colorific -Qualities before they enter'd the Composition of the refracted beam of -white Light XY. For otherwise the Rays which were of one Colour at the -Lens might be of another upon the Paper, contrary to what we find. - -So again, to examine the reason of the Colours of natural Bodies, I -placed such Bodies in the Beam of Light XY, and found that they all -appeared there of those their own Colours which they have in Day-light, -and that those Colours depend upon the Rays which had the same Colours -at the Lens before they enter'd the Composition of that beam. Thus, for -instance, Cinnaber illuminated by this beam appears of the same red -Colour as in Day-light; and if at the Lens you intercept the -green-making and blue-making Rays, its redness will become more full and -lively: But if you there intercept the red-making Rays, it will not any -longer appear red, but become yellow or green, or of some other Colour, -according to the sorts of Rays which you do not intercept. So Gold in -this Light XY appears of the same yellow Colour as in Day-light, but by -intercepting at the Lens a due Quantity of the yellow-making Rays it -will appear white like Silver (as I have tried) which shews that its -yellowness arises from the Excess of the intercepted Rays tinging that -Whiteness with their Colour when they are let pass. So the Infusion of -_Lignum Nephriticum_ (as I have also tried) when held in this beam of -Light XY, looks blue by the reflected Part of the Light, and red by the -transmitted Part of it, as when 'tis view'd in Day-light; but if you -intercept the blue at the Lens the Infusion will lose its reflected blue -Colour, whilst its transmitted red remains perfect, and by the loss of -some blue-making Rays, wherewith it was allay'd, becomes more intense -and full. And, on the contrary, if the red and orange-making Rays be -intercepted at the Lens, the Infusion will lose its transmitted red, -whilst its blue will remain and become more full and perfect. Which -shews, that the Infusion does not tinge the Rays with blue and red, but -only transmits those most copiously which were red-making before, and -reflects those most copiously which were blue-making before. And after -the same manner may the Reasons of other Phænomena be examined, by -trying them in this artificial beam of Light XY. - -FOOTNOTES: - -[I] See p. 59. - -[J] _See our_ Author's Lect. Optic. _Part_ II. _Sect._ II. _p._ 239. - -[K] _As is done in our_ Author's Lect. Optic. _Part_ I. _Sect._ III. -_and_ IV. _and Part_ II. _Sect._ II. - -[L] _See our_ Author's Lect. Optic. _Part_ II. _Sect._ II. _pag._ 269, -&c. - -[M] _This is demonstrated in our_ Author's Lect. Optic. _Part_ I. -_Sect._ IV. _Prop._ 35 _and_ 36. - - - - -THE - -SECOND BOOK - -OF - -OPTICKS - - - - -_PART I._ - -_Observations concerning the Reflexions, Refractions, and Colours of -thin transparent Bodies._ - - -It has been observed by others, that transparent Substances, as Glass, -Water, Air, &c. when made very thin by being blown into Bubbles, or -otherwise formed into Plates, do exhibit various Colours according to -their various thinness, altho' at a greater thickness they appear very -clear and colourless. In the former Book I forbore to treat of these -Colours, because they seemed of a more difficult Consideration, and were -not necessary for establishing the Properties of Light there discoursed -of. But because they may conduce to farther Discoveries for compleating -the Theory of Light, especially as to the constitution of the parts of -natural Bodies, on which their Colours or Transparency depend; I have -here set down an account of them. To render this Discourse short and -distinct, I have first described the principal of my Observations, and -then consider'd and made use of them. The Observations are these. - -_Obs._ 1. Compressing two Prisms hard together that their sides (which -by chance were a very little convex) might somewhere touch one another: -I found the place in which they touched to become absolutely -transparent, as if they had there been one continued piece of Glass. For -when the Light fell so obliquely on the Air, which in other places was -between them, as to be all reflected; it seemed in that place of contact -to be wholly transmitted, insomuch that when look'd upon, it appeared -like a black or dark spot, by reason that little or no sensible Light -was reflected from thence, as from other places; and when looked through -it seemed (as it were) a hole in that Air which was formed into a thin -Plate, by being compress'd between the Glasses. And through this hole -Objects that were beyond might be seen distinctly, which could not at -all be seen through other parts of the Glasses where the Air was -interjacent. Although the Glasses were a little convex, yet this -transparent spot was of a considerable breadth, which breadth seemed -principally to proceed from the yielding inwards of the parts of the -Glasses, by reason of their mutual pressure. For by pressing them very -hard together it would become much broader than otherwise. - -_Obs._ 2. When the Plate of Air, by turning the Prisms about their -common Axis, became so little inclined to the incident Rays, that some -of them began to be transmitted, there arose in it many slender Arcs of -Colours which at first were shaped almost like the Conchoid, as you see -them delineated in the first Figure. And by continuing the Motion of the -Prisms, these Arcs increased and bended more and more about the said -transparent spot, till they were compleated into Circles or Rings -incompassing it, and afterwards continually grew more and more -contracted. - -[Illustration: FIG. 1.] - -These Arcs at their first appearance were of a violet and blue Colour, -and between them were white Arcs of Circles, which presently by -continuing the Motion of the Prisms became a little tinged in their -inward Limbs with red and yellow, and to their outward Limbs the blue -was adjacent. So that the order of these Colours from the central dark -spot, was at that time white, blue, violet; black, red, orange, yellow, -white, blue, violet, &c. But the yellow and red were much fainter than -the blue and violet. - -The Motion of the Prisms about their Axis being continued, these Colours -contracted more and more, shrinking towards the whiteness on either -side of it, until they totally vanished into it. And then the Circles in -those parts appear'd black and white, without any other Colours -intermix'd. But by farther moving the Prisms about, the Colours again -emerged out of the whiteness, the violet and blue at its inward Limb, -and at its outward Limb the red and yellow. So that now their order from -the central Spot was white, yellow, red; black; violet, blue, white, -yellow, red, &c. contrary to what it was before. - -_Obs._ 3. When the Rings or some parts of them appeared only black and -white, they were very distinct and well defined, and the blackness -seemed as intense as that of the central Spot. Also in the Borders of -the Rings, where the Colours began to emerge out of the whiteness, they -were pretty distinct, which made them visible to a very great multitude. -I have sometimes number'd above thirty Successions (reckoning every -black and white Ring for one Succession) and seen more of them, which by -reason of their smalness I could not number. But in other Positions of -the Prisms, at which the Rings appeared of many Colours, I could not -distinguish above eight or nine of them, and the Exterior of those were -very confused and dilute. - -In these two Observations to see the Rings distinct, and without any -other Colour than Black and white, I found it necessary to hold my Eye -at a good distance from them. For by approaching nearer, although in the -same inclination of my Eye to the Plane of the Rings, there emerged a -bluish Colour out of the white, which by dilating it self more and more -into the black, render'd the Circles less distinct, and left the white a -little tinged with red and yellow. I found also by looking through a -slit or oblong hole, which was narrower than the pupil of my Eye, and -held close to it parallel to the Prisms, I could see the Circles much -distincter and visible to a far greater number than otherwise. - -_Obs._ 4. To observe more nicely the order of the Colours which arose -out of the white Circles as the Rays became less and less inclined to -the Plate of Air; I took two Object-glasses, the one a Plano-convex for -a fourteen Foot Telescope, and the other a large double Convex for one -of about fifty Foot; and upon this, laying the other with its plane side -downwards, I pressed them slowly together, to make the Colours -successively emerge in the middle of the Circles, and then slowly lifted -the upper Glass from the lower to make them successively vanish again in -the same place. The Colour, which by pressing the Glasses together, -emerged last in the middle of the other Colours, would upon its first -appearance look like a Circle of a Colour almost uniform from the -circumference to the center and by compressing the Glasses still more, -grow continually broader until a new Colour emerged in its center, and -thereby it became a Ring encompassing that new Colour. And by -compressing the Glasses still more, the diameter of this Ring would -increase, and the breadth of its Orbit or Perimeter decrease until -another new Colour emerged in the center of the last: And so on until a -third, a fourth, a fifth, and other following new Colours successively -emerged there, and became Rings encompassing the innermost Colour, the -last of which was the black Spot. And, on the contrary, by lifting up -the upper Glass from the lower, the diameter of the Rings would -decrease, and the breadth of their Orbit increase, until their Colours -reached successively to the center; and then they being of a -considerable breadth, I could more easily discern and distinguish their -Species than before. And by this means I observ'd their Succession and -Quantity to be as followeth. - -Next to the pellucid central Spot made by the contact of the Glasses -succeeded blue, white, yellow, and red. The blue was so little in -quantity, that I could not discern it in the Circles made by the Prisms, -nor could I well distinguish any violet in it, but the yellow and red -were pretty copious, and seemed about as much in extent as the white, -and four or five times more than the blue. The next Circuit in order of -Colours immediately encompassing these were violet, blue, green, yellow, -and red: and these were all of them copious and vivid, excepting the -green, which was very little in quantity, and seemed much more faint and -dilute than the other Colours. Of the other four, the violet was the -least in extent, and the blue less than the yellow or red. The third -Circuit or Order was purple, blue, green, yellow, and red; in which the -purple seemed more reddish than the violet in the former Circuit, and -the green was much more conspicuous, being as brisk and copious as any -of the other Colours, except the yellow, but the red began to be a -little faded, inclining very much to purple. After this succeeded the -fourth Circuit of green and red. The green was very copious and lively, -inclining on the one side to blue, and on the other side to yellow. But -in this fourth Circuit there was neither violet, blue, nor yellow, and -the red was very imperfect and dirty. Also the succeeding Colours became -more and more imperfect and dilute, till after three or four revolutions -they ended in perfect whiteness. Their form, when the Glasses were most -compress'd so as to make the black Spot appear in the center, is -delineated in the second Figure; where _a_, _b_, _c_, _d_, _e_: _f_, -_g_, _h_, _i_, _k_: _l_, _m_, _n_, _o_, _p_: _q_, _r_: _s_, _t_: _v_, -_x_: _y_, _z_, denote the Colours reckon'd in order from the center, -black, blue, white, yellow, red: violet, blue, green, yellow, red: -purple, blue, green, yellow, red: green, red: greenish blue, red: -greenish blue, pale red: greenish blue, reddish white. - -[Illustration: FIG. 2.] - -_Obs._ 5. To determine the interval of the Glasses, or thickness of the -interjacent Air, by which each Colour was produced, I measured the -Diameters of the first six Rings at the most lucid part of their Orbits, -and squaring them, I found their Squares to be in the arithmetical -Progression of the odd Numbers, 1, 3, 5, 7, 9, 11. And since one of -these Glasses was plane, and the other spherical, their Intervals at -those Rings must be in the same Progression. I measured also the -Diameters of the dark or faint Rings between the more lucid Colours, and -found their Squares to be in the arithmetical Progression of the even -Numbers, 2, 4, 6, 8, 10, 12. And it being very nice and difficult to -take these measures exactly; I repeated them divers times at divers -parts of the Glasses, that by their Agreement I might be confirmed in -them. And the same method I used in determining some others of the -following Observations. - -_Obs._ 6. The Diameter of the sixth Ring at the most lucid part of its -Orbit was 58/100 parts of an Inch, and the Diameter of the Sphere on -which the double convex Object-glass was ground was about 102 Feet, and -hence I gathered the thickness of the Air or Aereal Interval of the -Glasses at that Ring. But some time after, suspecting that in making -this Observation I had not determined the Diameter of the Sphere with -sufficient accurateness, and being uncertain whether the Plano-convex -Glass was truly plane, and not something concave or convex on that side -which I accounted plane; and whether I had not pressed the Glasses -together, as I often did, to make them touch; (For by pressing such -Glasses together their parts easily yield inwards, and the Rings thereby -become sensibly broader than they would be, did the Glasses keep their -Figures.) I repeated the Experiment, and found the Diameter of the sixth -lucid Ring about 55/100 parts of an Inch. I repeated the Experiment also -with such an Object-glass of another Telescope as I had at hand. This -was a double Convex ground on both sides to one and the same Sphere, and -its Focus was distant from it 83-2/5 Inches. And thence, if the Sines of -Incidence and Refraction of the bright yellow Light be assumed in -proportion as 11 to 17, the Diameter of the Sphere to which the Glass -was figured will by computation be found 182 Inches. This Glass I laid -upon a flat one, so that the black Spot appeared in the middle of the -Rings of Colours without any other Pressure than that of the weight of -the Glass. And now measuring the Diameter of the fifth dark Circle as -accurately as I could, I found it the fifth part of an Inch precisely. -This Measure was taken with the points of a pair of Compasses on the -upper Surface on the upper Glass, and my Eye was about eight or nine -Inches distance from the Glass, almost perpendicularly over it, and the -Glass was 1/6 of an Inch thick, and thence it is easy to collect that -the true Diameter of the Ring between the Glasses was greater than its -measur'd Diameter above the Glasses in the Proportion of 80 to 79, or -thereabouts, and by consequence equal to 16/79 parts of an Inch, and its -true Semi-diameter equal to 8/79 parts. Now as the Diameter of the -Sphere (182 Inches) is to the Semi-diameter of this fifth dark Ring -(8/79 parts of an Inch) so is this Semi-diameter to the thickness of the -Air at this fifth dark Ring; which is therefore 32/567931 or -100/1774784. Parts of an Inch; and the fifth Part thereof, _viz._ the -1/88739 Part of an Inch, is the Thickness of the Air at the first of -these dark Rings. - -The same Experiment I repeated with another double convex Object-glass -ground on both sides to one and the same Sphere. Its Focus was distant -from it 168-1/2 Inches, and therefore the Diameter of that Sphere was -184 Inches. This Glass being laid upon the same plain Glass, the -Diameter of the fifth of the dark Rings, when the black Spot in their -Center appear'd plainly without pressing the Glasses, was by the measure -of the Compasses upon the upper Glass 121/600 Parts of an Inch, and by -consequence between the Glasses it was 1222/6000: For the upper Glass -was 1/8 of an Inch thick, and my Eye was distant from it 8 Inches. And a -third proportional to half this from the Diameter of the Sphere is -5/88850 Parts of an Inch. This is therefore the Thickness of the Air at -this Ring, and a fifth Part thereof, _viz._ the 1/88850th Part of an -Inch is the Thickness thereof at the first of the Rings, as above. - -I tried the same Thing, by laying these Object-glasses upon flat Pieces -of a broken Looking-glass, and found the same Measures of the Rings: -Which makes me rely upon them till they can be determin'd more -accurately by Glasses ground to larger Spheres, though in such Glasses -greater care must be taken of a true Plane. - -These Dimensions were taken, when my Eye was placed almost -perpendicularly over the Glasses, being about an Inch, or an Inch and a -quarter, distant from the incident Rays, and eight Inches distant from -the Glass; so that the Rays were inclined to the Glass in an Angle of -about four Degrees. Whence by the following Observation you will -understand, that had the Rays been perpendicular to the Glasses, the -Thickness of the Air at these Rings would have been less in the -Proportion of the Radius to the Secant of four Degrees, that is, of -10000 to 10024. Let the Thicknesses found be therefore diminish'd in -this Proportion, and they will become 1/88952 and 1/89063, or (to use -the nearest round Number) the 1/89000th Part of an Inch. This is the -Thickness of the Air at the darkest Part of the first dark Ring made by -perpendicular Rays; and half this Thickness multiplied by the -Progression, 1, 3, 5, 7, 9, 11, &c. gives the Thicknesses of the Air at -the most luminous Parts of all the brightest Rings, _viz._ 1/178000, -3/178000, 5/178000, 7/178000, &c. their arithmetical Means 2/178000, -4/178000, 6/178000, &c. being its Thicknesses at the darkest Parts of -all the dark ones. - -_Obs._ 7. The Rings were least, when my Eye was placed perpendicularly -over the Glasses in the Axis of the Rings: And when I view'd them -obliquely they became bigger, continually swelling as I removed my Eye -farther from the Axis. And partly by measuring the Diameter of the same -Circle at several Obliquities of my Eye, partly by other Means, as also -by making use of the two Prisms for very great Obliquities, I found its -Diameter, and consequently the Thickness of the Air at its Perimeter in -all those Obliquities to be very nearly in the Proportions express'd in -this Table. - --------------------+--------------------+----------+---------- -Angle of Incidence |Angle of Refraction |Diameter |Thickness - on | into | of the | of the - the Air. | the Air. | Ring. | Air. --------------------+--------------------+----------+---------- - Deg. Min. | | | - | | | - 00 00 | 00 00 | 10 | 10 - | | | - 06 26 | 10 00 | 10-1/13 | 10-2/13 - | | | - 12 45 | 20 00 | 10-1/3 | 10-2/3 - | | | - 18 49 | 30 00 | 10-3/4 | 11-1/2 - | | | - 24 30 | 40 00 | 11-2/5 | 13 - | | | - 29 37 | 50 00 | 12-1/2 | 15-1/2 - | | | - 33 58 | 60 00 | 14 | 20 - | | | - 35 47 | 65 00 | 15-1/4 | 23-1/4 - | | | - 37 19 | 70 00 | 16-4/5 | 28-1/4 - | | | - 38 33 | 75 00 | 19-1/4 | 37 - | | | - 39 27 | 80 00 | 22-6/7 | 52-1/4 - | | | - 40 00 | 85 00 | 29 | 84-1/12 - | | | - 40 11 | 90 00 | 35 | 122-1/2 --------------------+--------------------+----------+---------- - -In the two first Columns are express'd the Obliquities of the incident -and emergent Rays to the Plate of the Air, that is, their Angles of -Incidence and Refraction. In the third Column the Diameter of any -colour'd Ring at those Obliquities is expressed in Parts, of which ten -constitute that Diameter when the Rays are perpendicular. And in the -fourth Column the Thickness of the Air at the Circumference of that Ring -is expressed in Parts, of which also ten constitute its Thickness when -the Rays are perpendicular. - -And from these Measures I seem to gather this Rule: That the Thickness -of the Air is proportional to the Secant of an Angle, whose Sine is a -certain mean Proportional between the Sines of Incidence and Refraction. -And that mean Proportional, so far as by these Measures I can determine -it, is the first of an hundred and six arithmetical mean Proportionals -between those Sines counted from the bigger Sine, that is, from the Sine -of Refraction when the Refraction is made out of the Glass into the -Plate of Air, or from the Sine of Incidence when the Refraction is made -out of the Plate of Air into the Glass. - -_Obs._ 8. The dark Spot in the middle of the Rings increased also by the -Obliquation of the Eye, although almost insensibly. But, if instead of -the Object-glasses the Prisms were made use of, its Increase was more -manifest when viewed so obliquely that no Colours appear'd about it. It -was least when the Rays were incident most obliquely on the interjacent -Air, and as the obliquity decreased it increased more and more until the -colour'd Rings appear'd, and then decreased again, but not so much as it -increased before. And hence it is evident, that the Transparency was -not only at the absolute Contact of the Glasses, but also where they had -some little Interval. I have sometimes observed the Diameter of that -Spot to be between half and two fifth parts of the Diameter of the -exterior Circumference of the red in the first Circuit or Revolution of -Colours when view'd almost perpendicularly; whereas when view'd -obliquely it hath wholly vanish'd and become opake and white like the -other parts of the Glass; whence it may be collected that the Glasses -did then scarcely, or not at all, touch one another, and that their -Interval at the perimeter of that Spot when view'd perpendicularly was -about a fifth or sixth part of their Interval at the circumference of -the said red. - -_Obs._ 9. By looking through the two contiguous Object-glasses, I found -that the interjacent Air exhibited Rings of Colours, as well by -transmitting Light as by reflecting it. The central Spot was now white, -and from it the order of the Colours were yellowish red; black, violet, -blue, white, yellow, red; violet, blue, green, yellow, red, &c. But -these Colours were very faint and dilute, unless when the Light was -trajected very obliquely through the Glasses: For by that means they -became pretty vivid. Only the first yellowish red, like the blue in the -fourth Observation, was so little and faint as scarcely to be discern'd. -Comparing the colour'd Rings made by Reflexion, with these made by -transmission of the Light; I found that white was opposite to black, red -to blue, yellow to violet, and green to a Compound of red and violet. -That is, those parts of the Glass were black when looked through, which -when looked upon appeared white, and on the contrary. And so those which -in one case exhibited blue, did in the other case exhibit red. And the -like of the other Colours. The manner you have represented in the third -Figure, where AB, CD, are the Surfaces of the Glasses contiguous at E, -and the black Lines between them are their Distances in arithmetical -Progression, and the Colours written above are seen by reflected Light, -and those below by Light transmitted (p. 209). - -_Obs._ 10. Wetting the Object-glasses a little at their edges, the Water -crept in slowly between them, and the Circles thereby became less and -the Colours more faint: Insomuch that as the Water crept along, one half -of them at which it first arrived would appear broken off from the other -half, and contracted into a less Room. By measuring them I found the -Proportions of their Diameters to the Diameters of the like Circles made -by Air to be about seven to eight, and consequently the Intervals of the -Glasses at like Circles, caused by those two Mediums Water and Air, are -as about three to four. Perhaps it may be a general Rule, That if any -other Medium more or less dense than Water be compress'd between the -Glasses, their Intervals at the Rings caused thereby will be to their -Intervals caused by interjacent Air, as the Sines are which measure the -Refraction made out of that Medium into Air. - -_Obs._ 11. When the Water was between the Glasses, if I pressed the -upper Glass variously at its edges to make the Rings move nimbly from -one place to another, a little white Spot would immediately follow the -center of them, which upon creeping in of the ambient Water into that -place would presently vanish. Its appearance was such as interjacent Air -would have caused, and it exhibited the same Colours. But it was not -air, for where any Bubbles of Air were in the Water they would not -vanish. The Reflexion must have rather been caused by a subtiler Medium, -which could recede through the Glasses at the creeping in of the Water. - -_Obs._ 12. These Observations were made in the open Air. But farther to -examine the Effects of colour'd Light falling on the Glasses, I darken'd -the Room, and view'd them by Reflexion of the Colours of a Prism cast on -a Sheet of white Paper, my Eye being so placed that I could see the -colour'd Paper by Reflexion in the Glasses, as in a Looking-glass. And -by this means the Rings became distincter and visible to a far greater -number than in the open Air. I have sometimes seen more than twenty of -them, whereas in the open Air I could not discern above eight or nine. - -[Illustration: FIG. 3.] - -_Obs._ 13. Appointing an Assistant to move the Prism to and fro about -its Axis, that all the Colours might successively fall on that part of -the Paper which I saw by Reflexion from that part of the Glasses, where -the Circles appear'd, so that all the Colours might be successively -reflected from the Circles to my Eye, whilst I held it immovable, I -found the Circles which the red Light made to be manifestly bigger than -those which were made by the blue and violet. And it was very pleasant -to see them gradually swell or contract accordingly as the Colour of the -Light was changed. The Interval of the Glasses at any of the Rings when -they were made by the utmost red Light, was to their Interval at the -same Ring when made by the utmost violet, greater than as 3 to 2, and -less than as 13 to 8. By the most of my Observations it was as 14 to 9. -And this Proportion seem'd very nearly the same in all Obliquities of my -Eye; unless when two Prisms were made use of instead of the -Object-glasses. For then at a certain great obliquity of my Eye, the -Rings made by the several Colours seem'd equal, and at a greater -obliquity those made by the violet would be greater than the same Rings -made by the red: the Refraction of the Prism in this case causing the -most refrangible Rays to fall more obliquely on that plate of the Air -than the least refrangible ones. Thus the Experiment succeeded in the -colour'd Light, which was sufficiently strong and copious to make the -Rings sensible. And thence it may be gather'd, that if the most -refrangible and least refrangible Rays had been copious enough to make -the Rings sensible without the mixture of other Rays, the Proportion -which here was 14 to 9 would have been a little greater, suppose 14-1/4 -or 14-1/3 to 9. - -_Obs._ 14. Whilst the Prism was turn'd about its Axis with an uniform -Motion, to make all the several Colours fall successively upon the -Object-glasses, and thereby to make the Rings contract and dilate: The -Contraction or Dilatation of each Ring thus made by the variation of its -Colour was swiftest in the red, and slowest in the violet, and in the -intermediate Colours it had intermediate degrees of Celerity. Comparing -the quantity of Contraction and Dilatation made by all the degrees of -each Colour, I found that it was greatest in the red; less in the -yellow, still less in the blue, and least in the violet. And to make as -just an Estimation as I could of the Proportions of their Contractions -or Dilatations, I observ'd that the whole Contraction or Dilatation of -the Diameter of any Ring made by all the degrees of red, was to that of -the Diameter of the same Ring made by all the degrees of violet, as -about four to three, or five to four, and that when the Light was of the -middle Colour between yellow and green, the Diameter of the Ring was -very nearly an arithmetical Mean between the greatest Diameter of the -same Ring made by the outmost red, and the least Diameter thereof made -by the outmost violet: Contrary to what happens in the Colours of the -oblong Spectrum made by the Refraction of a Prism, where the red is most -contracted, the violet most expanded, and in the midst of all the -Colours is the Confine of green and blue. And hence I seem to collect -that the thicknesses of the Air between the Glasses there, where the -Ring is successively made by the limits of the five principal Colours -(red, yellow, green, blue, violet) in order (that is, by the extreme -red, by the limit of red and yellow in the middle of the orange, by the -limit of yellow and green, by the limit of green and blue, by the limit -of blue and violet in the middle of the indigo, and by the extreme -violet) are to one another very nearly as the sixth lengths of a Chord -which found the Notes in a sixth Major, _sol_, _la_, _mi_, _fa_, _sol_, -_la_. But it agrees something better with the Observation to say, that -the thicknesses of the Air between the Glasses there, where the Rings -are successively made by the limits of the seven Colours, red, orange, -yellow, green, blue, indigo, violet in order, are to one another as the -Cube Roots of the Squares of the eight lengths of a Chord, which found -the Notes in an eighth, _sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_, -_sol_; that is, as the Cube Roots of the Squares of the Numbers, 1, 8/9, -5/6, 3/4, 2/3, 3/5, 9/16, 1/2. - -_Obs._ 15. These Rings were not of various Colours like those made in -the open Air, but appeared all over of that prismatick Colour only with -which they were illuminated. And by projecting the prismatick Colours -immediately upon the Glasses, I found that the Light which fell on the -dark Spaces which were between the Colour'd Rings was transmitted -through the Glasses without any variation of Colour. For on a white -Paper placed behind, it would paint Rings of the same Colour with those -which were reflected, and of the bigness of their immediate Spaces. And -from thence the origin of these Rings is manifest; namely, that the Air -between the Glasses, according to its various thickness, is disposed in -some places to reflect, and in others to transmit the Light of any one -Colour (as you may see represented in the fourth Figure) and in the same -place to reflect that of one Colour where it transmits that of another. - -[Illustration: FIG. 4.] - -_Obs._ 16. The Squares of the Diameters of these Rings made by any -prismatick Colour were in arithmetical Progression, as in the fifth -Observation. And the Diameter of the sixth Circle, when made by the -citrine yellow, and viewed almost perpendicularly was about 58/100 parts -of an Inch, or a little less, agreeable to the sixth Observation. - -The precedent Observations were made with a rarer thin Medium, -terminated by a denser, such as was Air or Water compress'd between two -Glasses. In those that follow are set down the Appearances of a denser -Medium thin'd within a rarer, such as are Plates of Muscovy Glass, -Bubbles of Water, and some other thin Substances terminated on all sides -with air. - -_Obs._ 17. If a Bubble be blown with Water first made tenacious by -dissolving a little Soap in it, 'tis a common Observation, that after a -while it will appear tinged with a great variety of Colours. To defend -these Bubbles from being agitated by the external Air (whereby their -Colours are irregularly moved one among another, so that no accurate -Observation can be made of them,) as soon as I had blown any of them I -cover'd it with a clear Glass, and by that means its Colours emerged in -a very regular order, like so many concentrick Rings encompassing the -top of the Bubble. And as the Bubble grew thinner by the continual -subsiding of the Water, these Rings dilated slowly and overspread the -whole Bubble, descending in order to the bottom of it, where they -vanish'd successively. In the mean while, after all the Colours were -emerged at the top, there grew in the center of the Rings a small round -black Spot, like that in the first Observation, which continually -dilated it self till it became sometimes more than 1/2 or 3/4 of an Inch -in breadth before the Bubble broke. At first I thought there had been no -Light reflected from the Water in that place, but observing it more -curiously, I saw within it several smaller round Spots, which appeared -much blacker and darker than the rest, whereby I knew that there was -some Reflexion at the other places which were not so dark as those -Spots. And by farther Tryal I found that I could see the Images of some -things (as of a Candle or the Sun) very faintly reflected, not only from -the great black Spot, but also from the little darker Spots which were -within it. - -Besides the aforesaid colour'd Rings there would often appear small -Spots of Colours, ascending and descending up and down the sides of the -Bubble, by reason of some Inequalities in the subsiding of the Water. -And sometimes small black Spots generated at the sides would ascend up -to the larger black Spot at the top of the Bubble, and unite with it. - -_Obs._ 18. Because the Colours of these Bubbles were more extended and -lively than those of the Air thinn'd between two Glasses, and so more -easy to be distinguish'd, I shall here give you a farther description of -their order, as they were observ'd in viewing them by Reflexion of the -Skies when of a white Colour, whilst a black substance was placed -behind the Bubble. And they were these, red, blue; red, blue; red, blue; -red, green; red, yellow, green, blue, purple; red, yellow, green, blue, -violet; red, yellow, white, blue, black. - -The three first Successions of red and blue were very dilute and dirty, -especially the first, where the red seem'd in a manner to be white. -Among these there was scarce any other Colour sensible besides red and -blue, only the blues (and principally the second blue) inclined a little -to green. - -The fourth red was also dilute and dirty, but not so much as the former -three; after that succeeded little or no yellow, but a copious green, -which at first inclined a little to yellow, and then became a pretty -brisk and good willow green, and afterwards changed to a bluish Colour; -but there succeeded neither blue nor violet. - -The fifth red at first inclined very much to purple, and afterwards -became more bright and brisk, but yet not very pure. This was succeeded -with a very bright and intense yellow, which was but little in quantity, -and soon chang'd to green: But that green was copious and something more -pure, deep and lively, than the former green. After that follow'd an -excellent blue of a bright Sky-colour, and then a purple, which was less -in quantity than the blue, and much inclined to red. - -The sixth red was at first of a very fair and lively scarlet, and soon -after of a brighter Colour, being very pure and brisk, and the best of -all the reds. Then after a lively orange follow'd an intense bright and -copious yellow, which was also the best of all the yellows, and this -changed first to a greenish yellow, and then to a greenish blue; but the -green between the yellow and the blue, was very little and dilute, -seeming rather a greenish white than a green. The blue which succeeded -became very good, and of a very bright Sky-colour, but yet something -inferior to the former blue; and the violet was intense and deep with -little or no redness in it. And less in quantity than the blue. - -In the last red appeared a tincture of scarlet next to violet, which -soon changed to a brighter Colour, inclining to an orange; and the -yellow which follow'd was at first pretty good and lively, but -afterwards it grew more dilute until by degrees it ended in perfect -whiteness. And this whiteness, if the Water was very tenacious and -well-temper'd, would slowly spread and dilate it self over the greater -part of the Bubble; continually growing paler at the top, where at -length it would crack in many places, and those cracks, as they dilated, -would appear of a pretty good, but yet obscure and dark Sky-colour; the -white between the blue Spots diminishing, until it resembled the Threds -of an irregular Net-work, and soon after vanish'd, and left all the -upper part of the Bubble of the said dark blue Colour. And this Colour, -after the aforesaid manner, dilated it self downwards, until sometimes -it hath overspread the whole Bubble. In the mean while at the top, which -was of a darker blue than the bottom, and appear'd also full of many -round blue Spots, something darker than the rest, there would emerge -one or more very black Spots, and within those, other Spots of an -intenser blackness, which I mention'd in the former Observation; and -these continually dilated themselves until the Bubble broke. - -If the Water was not very tenacious, the black Spots would break forth -in the white, without any sensible intervention of the blue. And -sometimes they would break forth within the precedent yellow, or red, or -perhaps within the blue of the second order, before the intermediate -Colours had time to display themselves. - -By this description you may perceive how great an affinity these Colours -have with those of Air described in the fourth Observation, although set -down in a contrary order, by reason that they begin to appear when the -Bubble is thickest, and are most conveniently reckon'd from the lowest -and thickest part of the Bubble upwards. - -_Obs._ 19. Viewing in several oblique Positions of my Eye the Rings of -Colours emerging on the top of the Bubble, I found that they were -sensibly dilated by increasing the obliquity, but yet not so much by far -as those made by thinn'd Air in the seventh Observation. For there they -were dilated so much as, when view'd most obliquely, to arrive at a part -of the Plate more than twelve times thicker than that where they -appear'd when viewed perpendicularly; whereas in this case the thickness -of the Water, at which they arrived when viewed most obliquely, was to -that thickness which exhibited them by perpendicular Rays, something -less than as 8 to 5. By the best of my Observations it was between 15 -and 15-1/2 to 10; an increase about 24 times less than in the other -case. - -Sometimes the Bubble would become of an uniform thickness all over, -except at the top of it near the black Spot, as I knew, because it would -exhibit the same appearance of Colours in all Positions of the Eye. And -then the Colours which were seen at its apparent circumference by the -obliquest Rays, would be different from those that were seen in other -places, by Rays less oblique to it. And divers Spectators might see the -same part of it of differing Colours, by viewing it at very differing -Obliquities. Now observing how much the Colours at the same places of -the Bubble, or at divers places of equal thickness, were varied by the -several Obliquities of the Rays; by the assistance of the 4th, 14th, -16th and 18th Observations, as they are hereafter explain'd, I collect -the thickness of the Water requisite to exhibit any one and the same -Colour, at several Obliquities, to be very nearly in the Proportion -expressed in this Table. - ------------------+------------------+---------------- - Incidence on | Refraction into | Thickness of - the Water. | the Water. | the Water. ------------------+------------------+---------------- - Deg. Min. | Deg. Min. | - | | - 00 00 | 00 00 | 10 - | | - 15 00 | 11 11 | 10-1/4 - | | - 30 00 | 22 1 | 10-4/5 - | | - 45 00 | 32 2 | 11-4/5 - | | - 60 00 | 40 30 | 13 - | | - 75 00 | 46 25 | 14-1/2 - | | - 90 00 | 48 35 | 15-1/5 ------------------+------------------+---------------- - -In the two first Columns are express'd the Obliquities of the Rays to -the Superficies of the Water, that is, their Angles of Incidence and -Refraction. Where I suppose, that the Sines which measure them are in -round Numbers, as 3 to 4, though probably the Dissolution of Soap in the -Water, may a little alter its refractive Virtue. In the third Column, -the Thickness of the Bubble, at which any one Colour is exhibited in -those several Obliquities, is express'd in Parts, of which ten -constitute its Thickness when the Rays are perpendicular. And the Rule -found by the seventh Observation agrees well with these Measures, if -duly apply'd; namely, that the Thickness of a Plate of Water requisite -to exhibit one and the same Colour at several Obliquities of the Eye, is -proportional to the Secant of an Angle, whose Sine is the first of an -hundred and six arithmetical mean Proportionals between the Sines of -Incidence and Refraction counted from the lesser Sine, that is, from the -Sine of Refraction when the Refraction is made out of Air into Water, -otherwise from the Sine of Incidence. - -I have sometimes observ'd, that the Colours which arise on polish'd -Steel by heating it, or on Bell-metal, and some other metalline -Substances, when melted and pour'd on the Ground, where they may cool in -the open Air, have, like the Colours of Water-bubbles, been a little -changed by viewing them at divers Obliquities, and particularly that a -deep blue, or violet, when view'd very obliquely, hath been changed to a -deep red. But the Changes of these Colours are not so great and -sensible as of those made by Water. For the Scoria, or vitrified Part of -the Metal, which most Metals when heated or melted do continually -protrude, and send out to their Surface, and which by covering the -Metals in form of a thin glassy Skin, causes these Colours, is much -denser than Water; and I find that the Change made by the Obliquation of -the Eye is least in Colours of the densest thin Substances. - -_Obs._ 20. As in the ninth Observation, so here, the Bubble, by -transmitted Light, appear'd of a contrary Colour to that, which it -exhibited by Reflexion. Thus when the Bubble being look'd on by the -Light of the Clouds reflected from it, seemed red at its apparent -Circumference, if the Clouds at the same time, or immediately after, -were view'd through it, the Colour at its Circumference would be blue. -And, on the contrary, when by reflected Light it appeared blue, it would -appear red by transmitted Light. - -_Obs._ 21. By wetting very thin Plates of _Muscovy_ Glass, whose -thinness made the like Colours appear, the Colours became more faint and -languid, especially by wetting the Plates on that side opposite to the -Eye: But I could not perceive any variation of their Species. So then -the thickness of a Plate requisite to produce any Colour, depends only -on the density of the Plate, and not on that of the ambient Medium. And -hence, by the 10th and 16th Observations, may be known the thickness -which Bubbles of Water, or Plates of _Muscovy_ Glass, or other -Substances, have at any Colour produced by them. - -_Obs._ 22. A thin transparent Body, which is denser than its ambient -Medium, exhibits more brisk and vivid Colours than that which is so much -rarer; as I have particularly observed in the Air and Glass. For blowing -Glass very thin at a Lamp Furnace, those Plates encompassed with Air did -exhibit Colours much more vivid than those of Air made thin between two -Glasses. - -_Obs._ 23. Comparing the quantity of Light reflected from the several -Rings, I found that it was most copious from the first or inmost, and in -the exterior Rings became gradually less and less. Also the whiteness of -the first Ring was stronger than that reflected from those parts of the -thin Medium or Plate which were without the Rings; as I could manifestly -perceive by viewing at a distance the Rings made by the two -Object-glasses; or by comparing two Bubbles of Water blown at distant -Times, in the first of which the Whiteness appear'd, which succeeded all -the Colours, and in the other, the Whiteness which preceded them all. - -_Obs._ 24. When the two Object-glasses were lay'd upon one another, so -as to make the Rings of the Colours appear, though with my naked Eye I -could not discern above eight or nine of those Rings, yet by viewing -them through a Prism I have seen a far greater Multitude, insomuch that -I could number more than forty, besides many others, that were so very -small and close together, that I could not keep my Eye steady on them -severally so as to number them, but by their Extent I have sometimes -estimated them to be more than an hundred. And I believe the Experiment -may be improved to the Discovery of far greater Numbers. For they seem -to be really unlimited, though visible only so far as they can be -separated by the Refraction of the Prism, as I shall hereafter explain. - -[Illustration: FIG. 5.] - -But it was but one side of these Rings, namely, that towards which the -Refraction was made, which by that Refraction was render'd distinct, and -the other side became more confused than when view'd by the naked Eye, -insomuch that there I could not discern above one or two, and sometimes -none of those Rings, of which I could discern eight or nine with my -naked Eye. And their Segments or Arcs, which on the other side appear'd -so numerous, for the most part exceeded not the third Part of a Circle. -If the Refraction was very great, or the Prism very distant from the -Object-glasses, the middle Part of those Arcs became also confused, so -as to disappear and constitute an even Whiteness, whilst on either side -their Ends, as also the whole Arcs farthest from the Center, became -distincter than before, appearing in the Form as you see them design'd -in the fifth Figure. - -The Arcs, where they seem'd distinctest, were only white and black -successively, without any other Colours intermix'd. But in other Places -there appeared Colours, whose Order was inverted by the refraction in -such manner, that if I first held the Prism very near the -Object-glasses, and then gradually removed it farther off towards my -Eye, the Colours of the 2d, 3d, 4th, and following Rings, shrunk towards -the white that emerged between them, until they wholly vanish'd into it -at the middle of the Arcs, and afterwards emerged again in a contrary -Order. But at the Ends of the Arcs they retain'd their Order unchanged. - -I have sometimes so lay'd one Object-glass upon the other, that to the -naked Eye they have all over seem'd uniformly white, without the least -Appearance of any of the colour'd Rings; and yet by viewing them through -a Prism, great Multitudes of those Rings have discover'd themselves. And -in like manner Plates of _Muscovy_ Glass, and Bubbles of Glass blown at -a Lamp-Furnace, which were not so thin as to exhibit any Colours to the -naked Eye, have through the Prism exhibited a great Variety of them -ranged irregularly up and down in the Form of Waves. And so Bubbles of -Water, before they began to exhibit their Colours to the naked Eye of a -Bystander, have appeared through a Prism, girded about with many -parallel and horizontal Rings; to produce which Effect, it was necessary -to hold the Prism parallel, or very nearly parallel to the Horizon, and -to dispose it so that the Rays might be refracted upwards. - - - - -THE - -SECOND BOOK - -OF - -OPTICKS - - -_PART II._ - -_Remarks upon the foregoing Observations._ - - -Having given my Observations of these Colours, before I make use of them -to unfold the Causes of the Colours of natural Bodies, it is convenient -that by the simplest of them, such as are the 2d, 3d, 4th, 9th, 12th, -18th, 20th, and 24th, I first explain the more compounded. And first to -shew how the Colours in the fourth and eighteenth Observations are -produced, let there be taken in any Right Line from the Point Y, [in -_Fig._ 6.] the Lengths YA, YB, YC, YD, YE, YF, YG, YH, in proportion to -one another, as the Cube-Roots of the Squares of the Numbers, 1/2, 9/16, -3/5, 2/3, 3/4, 5/6, 8/9, 1, whereby the Lengths of a Musical Chord to -sound all the Notes in an eighth are represented; that is, in the -Proportion of the Numbers 6300, 6814, 7114, 7631, 8255, 8855, 9243, -10000. And at the Points A, B, C, D, E, F, G, H, let Perpendiculars -A[Greek: a], B[Greek: b], &c. be erected, by whose Intervals the Extent -of the several Colours set underneath against them, is to be -represented. Then divide the Line _A[Greek: a]_ in such Proportion as -the Numbers 1, 2, 3, 5, 6, 7, 9, 10, 11, &c. set at the Points of -Division denote. And through those Divisions from Y draw Lines 1I, 2K, -3L, 5M, 6N, 7O, &c. - -Now, if A2 be supposed to represent the Thickness of any thin -transparent Body, at which the outmost Violet is most copiously -reflected in the first Ring, or Series of Colours, then by the 13th -Observation, HK will represent its Thickness, at which the utmost Red is -most copiously reflected in the same Series. Also by the 5th and 16th -Observations, A6 and HN will denote the Thicknesses at which those -extreme Colours are most copiously reflected in the second Series, and -A10 and HQ the Thicknesses at which they are most copiously reflected in -the third Series, and so on. And the Thickness at which any of the -intermediate Colours are reflected most copiously, will, according to -the 14th Observation, be defined by the distance of the Line AH from the -intermediate parts of the Lines 2K, 6N, 10Q, &c. against which the Names -of those Colours are written below. - -[Illustration: FIG. 6.] - -But farther, to define the Latitude of these Colours in each Ring or -Series, let A1 design the least thickness, and A3 the greatest -thickness, at which the extreme violet in the first Series is reflected, -and let HI, and HL, design the like limits for the extreme red, and let -the intermediate Colours be limited by the intermediate parts of the -Lines 1I, and 3L, against which the Names of those Colours are written, -and so on: But yet with this caution, that the Reflexions be supposed -strongest at the intermediate Spaces, 2K, 6N, 10Q, &c. and from thence -to decrease gradually towards these limits, 1I, 3L, 5M, 7O, &c. on -either side; where you must not conceive them to be precisely limited, -but to decay indefinitely. And whereas I have assign'd the same Latitude -to every Series, I did it, because although the Colours in the first -Series seem to be a little broader than the rest, by reason of a -stronger Reflexion there, yet that inequality is so insensible as -scarcely to be determin'd by Observation. - -Now according to this Description, conceiving that the Rays originally -of several Colours are by turns reflected at the Spaces 1I, L3, 5M, O7, -9PR11, &c. and transmitted at the Spaces AHI1, 3LM5, 7OP9, &c. it is -easy to know what Colour must in the open Air be exhibited at any -thickness of a transparent thin Body. For if a Ruler be applied parallel -to AH, at that distance from it by which the thickness of the Body is -represented, the alternate Spaces 1IL3, 5MO7, &c. which it crosseth will -denote the reflected original Colours, of which the Colour exhibited in -the open Air is compounded. Thus if the constitution of the green in the -third Series of Colours be desired, apply the Ruler as you see at -[Greek: prsph], and by its passing through some of the blue at [Greek: -p] and yellow at [Greek: s], as well as through the green at [Greek: r], -you may conclude that the green exhibited at that thickness of the Body -is principally constituted of original green, but not without a mixture -of some blue and yellow. - -By this means you may know how the Colours from the center of the Rings -outward ought to succeed in order as they were described in the 4th and -18th Observations. For if you move the Ruler gradually from AH through -all distances, having pass'd over the first Space which denotes little -or no Reflexion to be made by thinnest Substances, it will first arrive -at 1 the violet, and then very quickly at the blue and green, which -together with that violet compound blue, and then at the yellow and red, -by whose farther addition that blue is converted into whiteness, which -whiteness continues during the transit of the edge of the Ruler from I -to 3, and after that by the successive deficience of its component -Colours, turns first to compound yellow, and then to red, and last of -all the red ceaseth at L. Then begin the Colours of the second Series, -which succeed in order during the transit of the edge of the Ruler from -5 to O, and are more lively than before, because more expanded and -severed. And for the same reason instead of the former white there -intercedes between the blue and yellow a mixture of orange, yellow, -green, blue and indigo, all which together ought to exhibit a dilute and -imperfect green. So the Colours of the third Series all succeed in -order; first, the violet, which a little interferes with the red of the -second order, and is thereby inclined to a reddish purple; then the blue -and green, which are less mix'd with other Colours, and consequently -more lively than before, especially the green: Then follows the yellow, -some of which towards the green is distinct and good, but that part of -it towards the succeeding red, as also that red is mix'd with the violet -and blue of the fourth Series, whereby various degrees of red very much -inclining to purple are compounded. This violet and blue, which should -succeed this red, being mixed with, and hidden in it, there succeeds a -green. And this at first is much inclined to blue, but soon becomes a -good green, the only unmix'd and lively Colour in this fourth Series. -For as it verges towards the yellow, it begins to interfere with the -Colours of the fifth Series, by whose mixture the succeeding yellow and -red are very much diluted and made dirty, especially the yellow, which -being the weaker Colour is scarce able to shew it self. After this the -several Series interfere more and more, and their Colours become more -and more intermix'd, till after three or four more revolutions (in which -the red and blue predominate by turns) all sorts of Colours are in all -places pretty equally blended, and compound an even whiteness. - -And since by the 15th Observation the Rays endued with one Colour are -transmitted, where those of another Colour are reflected, the reason of -the Colours made by the transmitted Light in the 9th and 20th -Observations is from hence evident. - -If not only the Order and Species of these Colours, but also the precise -thickness of the Plate, or thin Body at which they are exhibited, be -desired in parts of an Inch, that may be also obtained by assistance of -the 6th or 16th Observations. For according to those Observations the -thickness of the thinned Air, which between two Glasses exhibited the -most luminous parts of the first six Rings were 1/178000, 3/178000, -5/178000, 7/178000, 9/178000, 11/178000 parts of an Inch. Suppose the -Light reflected most copiously at these thicknesses be the bright -citrine yellow, or confine of yellow and orange, and these thicknesses -will be F[Greek: l], F[Greek: m], F[Greek: u], F[Greek: x], F[Greek: o], -F[Greek: t]. And this being known, it is easy to determine what -thickness of Air is represented by G[Greek: ph], or by any other -distance of the Ruler from AH. - -But farther, since by the 10th Observation the thickness of Air was to -the thickness of Water, which between the same Glasses exhibited the -same Colour, as 4 to 3, and by the 21st Observation the Colours of thin -Bodies are not varied by varying the ambient Medium; the thickness of a -Bubble of Water, exhibiting any Colour, will be 3/4 of the thickness of -Air producing the same Colour. And so according to the same 10th and -21st Observations, the thickness of a Plate of Glass, whose Refraction -of the mean refrangible Ray, is measured by the proportion of the Sines -31 to 20, may be 20/31 of the thickness of Air producing the same -Colours; and the like of other Mediums. I do not affirm, that this -proportion of 20 to 31, holds in all the Rays; for the Sines of other -sorts of Rays have other Proportions. But the differences of those -Proportions are so little that I do not here consider them. On these -Grounds I have composed the following Table, wherein the thickness of -Air, Water, and Glass, at which each Colour is most intense and -specifick, is expressed in parts of an Inch divided into ten hundred -thousand equal parts. - -Now if this Table be compared with the 6th Scheme, you will there see -the constitution of each Colour, as to its Ingredients, or the original -Colours of which it is compounded, and thence be enabled to judge of its -Intenseness or Imperfection; which may suffice in explication of the 4th -and 18th Observations, unless it be farther desired to delineate the -manner how the Colours appear, when the two Object-glasses are laid upon -one another. To do which, let there be described a large Arc of a -Circle, and a streight Line which may touch that Arc, and parallel to -that Tangent several occult Lines, at such distances from it, as the -Numbers set against the several Colours in the Table denote. For the -Arc, and its Tangent, will represent the Superficies of the Glasses -terminating the interjacent Air; and the places where the occult Lines -cut the Arc will show at what distances from the center, or Point of -contact, each Colour is reflected. - -_The thickness of colour'd Plates and Particles of_ - _____________|_______________ - / \ - Air. Water. Glass. - |---------+----------+----------+ - {Very black | 1/2 | 3/8 | 10/31 | - {Black | 1 | 3/4 | 20/31 | - {Beginning of | | | | - { Black | 2 | 1-1/2 | 1-2/7 | -Their Colours of the {Blue | 2-2/5 | 1-4/5 | 1-11/22 | -first Order, {White | 5-1/4 | 3-7/8 | 3-2/5 | - {Yellow | 7-1/9 | 5-1/3 | 4-3/5 | - {Orange | 8 | 6 | 5-1/6 | - {Red | 9 | 6-3/4 | 5-4/5 | - |---------+----------+----------| - {Violet | 11-1/6 | 8-3/8 | 7-1/5 | - {Indigo | 12-5/6 | 9-5/8 | 8-2/11 | - {Blue | 14 | 10-1/2 | 9 | - {Green | 15-1/8 | 11-2/3 | 9-5/7 | -Of the second order, {Yellow | 16-2/7 | 12-1/5 | 10-2/5 | - {Orange | 17-2/9 | 13 | 11-1/9 | - {Bright red | 18-1/3 | 13-3/4 | 11-5/6 | - {Scarlet | 19-2/3 | 14-3/4 | 12-2/3 | - |---------+----------+----------| - {Purple | 21 | 15-3/4 | 13-11/20 | - {Indigo | 22-1/10 | 16-4/7 | 14-1/4 | - {Blue | 23-2/5 | 17-11/20 | 15-1/10 | -Of the third Order, {Green | 25-1/5 | 18-9/10 | 16-1/4 | - {Yellow | 27-1/7 | 20-1/3 | 17-1/2 | - {Red | 29 | 21-3/4 | 18-5/7 | - {Bluish red | 32 | 24 | 20-2/3 | - |---------+----------+----------| - {Bluish green | 34 | 25-1/2 | 22 | - {Green | 35-2/7 | 26-1/2 | 22-3/4 | -Of the fourth Order, {Yellowish green | 36 | 27 | 23-2/9 | - {Red | 40-1/3 | 30-1/4 | 26 | - |---------+----------+----------| - {Greenish blue | 46 | 34-1/2 | 29-2/3 | -Of the fifth Order, {Red | 52-1/2 | 39-3/8 | 34 | - |---------+----------+----------| - {Greenish blue | 58-3/4 | 44 | 38 | -Of the sixth Order, {Red | 65 | 48-3/4 | 42 | - |---------+----------+----------| -Of the seventh Order, {Greenish blue | 71 | 53-1/4 | 45-4/5 | - {Ruddy White | 77 | 57-3/4 | 49-2/3 | - |---------+----------+----------| - -There are also other Uses of this Table: For by its assistance the -thickness of the Bubble in the 19th Observation was determin'd by the -Colours which it exhibited. And so the bigness of the parts of natural -Bodies may be conjectured by their Colours, as shall be hereafter shewn. -Also, if two or more very thin Plates be laid one upon another, so as to -compose one Plate equalling them all in thickness, the resulting Colour -may be hereby determin'd. For instance, Mr. _Hook_ observed, as is -mentioned in his _Micrographia_, that a faint yellow Plate of _Muscovy_ -Glass laid upon a blue one, constituted a very deep purple. The yellow -of the first Order is a faint one, and the thickness of the Plate -exhibiting it, according to the Table is 4-3/5, to which add 9, the -thickness exhibiting blue of the second Order, and the Sum will be -13-3/5, which is the thickness exhibiting the purple of the third Order. - -To explain, in the next place, the circumstances of the 2d and 3d -Observations; that is, how the Rings of the Colours may (by turning the -Prisms about their common Axis the contrary way to that expressed in -those Observations) be converted into white and black Rings, and -afterwards into Rings of Colours again, the Colours of each Ring lying -now in an inverted order; it must be remember'd, that those Rings of -Colours are dilated by the obliquation of the Rays to the Air which -intercedes the Glasses, and that according to the Table in the 7th -Observation, their Dilatation or Increase of their Diameter is most -manifest and speedy when they are obliquest. Now the Rays of yellow -being more refracted by the first Superficies of the said Air than those -of red, are thereby made more oblique to the second Superficies, at -which they are reflected to produce the colour'd Rings, and consequently -the yellow Circle in each Ring will be more dilated than the red; and -the Excess of its Dilatation will be so much the greater, by how much -the greater is the obliquity of the Rays, until at last it become of -equal extent with the red of the same Ring. And for the same reason the -green, blue and violet, will be also so much dilated by the still -greater obliquity of their Rays, as to become all very nearly of equal -extent with the red, that is, equally distant from the center of the -Rings. And then all the Colours of the same Ring must be co-incident, -and by their mixture exhibit a white Ring. And these white Rings must -have black and dark Rings between them, because they do not spread and -interfere with one another, as before. And for that reason also they -must become distincter, and visible to far greater numbers. But yet the -violet being obliquest will be something more dilated, in proportion to -its extent, than the other Colours, and so very apt to appear at the -exterior Verges of the white. - -Afterwards, by a greater obliquity of the Rays, the violet and blue -become more sensibly dilated than the red and yellow, and so being -farther removed from the center of the Rings, the Colours must emerge -out of the white in an order contrary to that which they had before; the -violet and blue at the exterior Limbs of each Ring, and the red and -yellow at the interior. And the violet, by reason of the greatest -obliquity of its Rays, being in proportion most of all expanded, will -soonest appear at the exterior Limb of each white Ring, and become more -conspicuous than the rest. And the several Series of Colours belonging -to the several Rings, will, by their unfolding and spreading, begin -again to interfere, and thereby render the Rings less distinct, and not -visible to so great numbers. - -If instead of the Prisms the Object-glasses be made use of, the Rings -which they exhibit become not white and distinct by the obliquity of the -Eye, by reason that the Rays in their passage through that Air which -intercedes the Glasses are very nearly parallel to those Lines in which -they were first incident on the Glasses, and consequently the Rays -endued with several Colours are not inclined one more than another to -that Air, as it happens in the Prisms. - -There is yet another circumstance of these Experiments to be consider'd, -and that is why the black and white Rings which when view'd at a -distance appear distinct, should not only become confused by viewing -them near at hand, but also yield a violet Colour at both the edges of -every white Ring. And the reason is, that the Rays which enter the Eye -at several parts of the Pupil, have several Obliquities to the Glasses, -and those which are most oblique, if consider'd apart, would represent -the Rings bigger than those which are the least oblique. Whence the -breadth of the Perimeter of every white Ring is expanded outwards by the -obliquest Rays, and inwards by the least oblique. And this Expansion is -so much the greater by how much the greater is the difference of the -Obliquity; that is, by how much the Pupil is wider, or the Eye nearer to -the Glasses. And the breadth of the violet must be most expanded, -because the Rays apt to excite a Sensation of that Colour are most -oblique to a second or farther Superficies of the thinn'd Air at which -they are reflected, and have also the greatest variation of Obliquity, -which makes that Colour soonest emerge out of the edges of the white. -And as the breadth of every Ring is thus augmented, the dark Intervals -must be diminish'd, until the neighbouring Rings become continuous, and -are blended, the exterior first, and then those nearer the center; so -that they can no longer be distinguish'd apart, but seem to constitute -an even and uniform whiteness. - -Among all the Observations there is none accompanied with so odd -circumstances as the twenty-fourth. Of those the principal are, that in -thin Plates, which to the naked Eye seem of an even and uniform -transparent whiteness, without any terminations of Shadows, the -Refraction of a Prism should make Rings of Colours appear, whereas it -usually makes Objects appear colour'd only there where they are -terminated with Shadows, or have parts unequally luminous; and that it -should make those Rings exceedingly distinct and white, although it -usually renders Objects confused and coloured. The Cause of these things -you will understand by considering, that all the Rings of Colours are -really in the Plate, when view'd with the naked Eye, although by reason -of the great breadth of their Circumferences they so much interfere and -are blended together, that they seem to constitute an uniform whiteness. -But when the Rays pass through the Prism to the Eye, the Orbits of the -several Colours in every Ring are refracted, some more than others, -according to their degrees of Refrangibility: By which means the Colours -on one side of the Ring (that is in the circumference on one side of its -center), become more unfolded and dilated, and those on the other side -more complicated and contracted. And where by a due Refraction they are -so much contracted, that the several Rings become narrower than to -interfere with one another, they must appear distinct, and also white, -if the constituent Colours be so much contracted as to be wholly -co-incident. But on the other side, where the Orbit of every Ring is -made broader by the farther unfolding of its Colours, it must interfere -more with other Rings than before, and so become less distinct. - -[Illustration: FIG. 7.] - -To explain this a little farther, suppose the concentrick Circles AV, -and BX, [in _Fig._ 7.] represent the red and violet of any Order, which, -together with the intermediate Colours, constitute any one of these -Rings. Now these being view'd through a Prism, the violet Circle BX, -will, by a greater Refraction, be farther translated from its place than -the red AV, and so approach nearer to it on that side of the Circles, -towards which the Refractions are made. For instance, if the red be -translated to _av_, the violet may be translated to _bx_, so as to -approach nearer to it at _x_ than before; and if the red be farther -translated to av, the violet may be so much farther translated to bx as -to convene with it at x; and if the red be yet farther translated to -[Greek: aY], the violet may be still so much farther translated to -[Greek: bx] as to pass beyond it at [Greek: x], and convene with it at -_e_ and _f_. And this being understood not only of the red and violet, -but of all the other intermediate Colours, and also of every revolution -of those Colours, you will easily perceive how those of the same -revolution or order, by their nearness at _xv_ and [Greek: Yx], and -their coincidence at xv, _e_ and _f_, ought to constitute pretty -distinct Arcs of Circles, especially at xv, or at _e_ and _f_; and that -they will appear severally at _x_[Greek: u] and at xv exhibit whiteness -by their coincidence, and again appear severally at [Greek: Yx], but yet -in a contrary order to that which they had before, and still retain -beyond _e_ and _f_. But on the other side, at _ab_, ab, or [Greek: ab], -these Colours must become much more confused by being dilated and spread -so as to interfere with those of other Orders. And the same confusion -will happen at [Greek: Ux] between _e_ and _f_, if the Refraction be -very great, or the Prism very distant from the Object-glasses: In which -case no parts of the Rings will be seen, save only two little Arcs at -_e_ and _f_, whose distance from one another will be augmented by -removing the Prism still farther from the Object-glasses: And these -little Arcs must be distinctest and whitest at their middle, and at -their ends, where they begin to grow confused, they must be colour'd. -And the Colours at one end of every Arc must be in a contrary order to -those at the other end, by reason that they cross in the intermediate -white; namely, their ends, which verge towards [Greek: Ux], will be red -and yellow on that side next the center, and blue and violet on the -other side. But their other ends which verge from [Greek: Ux], will on -the contrary be blue and violet on that side towards the center, and on -the other side red and yellow. - -Now as all these things follow from the properties of Light by a -mathematical way of reasoning, so the truth of them may be manifested by -Experiments. For in a dark Room, by viewing these Rings through a Prism, -by reflexion of the several prismatick Colours, which an assistant -causes to move to and fro upon a Wall or Paper from whence they are -reflected, whilst the Spectator's Eye, the Prism, and the -Object-glasses, (as in the 13th Observation,) are placed steady; the -Position of the Circles made successively by the several Colours, will -be found such, in respect of one another, as I have described in the -Figures _abxv_, or abxv, or _[Greek: abxU]_. And by the same method the -truth of the Explications of other Observations may be examined. - -By what hath been said, the like Phænomena of Water and thin Plates of -Glass may be understood. But in small fragments of those Plates there is -this farther observable, that where they lie flat upon a Table, and are -turned about their centers whilst they are view'd through a Prism, they -will in some postures exhibit Waves of various Colours; and some of them -exhibit these Waves in one or two Positions only, but the most of them -do in all Positions exhibit them, and make them for the most part appear -almost all over the Plates. The reason is, that the Superficies of such -Plates are not even, but have many Cavities and Swellings, which, how -shallow soever, do a little vary the thickness of the Plate. For at the -several sides of those Cavities, for the Reasons newly described, there -ought to be produced Waves in several postures of the Prism. Now though -it be but some very small and narrower parts of the Glass, by which -these Waves for the most part are caused, yet they may seem to extend -themselves over the whole Glass, because from the narrowest of those -parts there are Colours of several Orders, that is, of several Rings, -confusedly reflected, which by Refraction of the Prism are unfolded, -separated, and, according to their degrees of Refraction, dispersed to -several places, so as to constitute so many several Waves, as there were -divers orders of Colours promiscuously reflected from that part of the -Glass. - -These are the principal Phænomena of thin Plates or Bubbles, whose -Explications depend on the properties of Light, which I have heretofore -deliver'd. And these you see do necessarily follow from them, and agree -with them, even to their very least circumstances; and not only so, but -do very much tend to their proof. Thus, by the 24th Observation it -appears, that the Rays of several Colours, made as well by thin Plates -or Bubbles, as by Refractions of a Prism, have several degrees of -Refrangibility; whereby those of each order, which at the reflexion from -the Plate or Bubble are intermix'd with those of other orders, are -separated from them by Refraction, and associated together so as to -become visible by themselves like Arcs of Circles. For if the Rays were -all alike refrangible, 'tis impossible that the whiteness, which to the -naked Sense appears uniform, should by Refraction have its parts -transposed and ranged into those black and white Arcs. - -It appears also that the unequal Refractions of difform Rays proceed not -from any contingent irregularities; such as are Veins, an uneven Polish, -or fortuitous Position of the Pores of Glass; unequal and casual Motions -in the Air or Æther, the spreading, breaking, or dividing the same Ray -into many diverging parts; or the like. For, admitting any such -irregularities, it would be impossible for Refractions to render those -Rings so very distinct, and well defined, as they do in the 24th -Observation. It is necessary therefore that every Ray have its proper -and constant degree of Refrangibility connate with it, according to -which its refraction is ever justly and regularly perform'd; and that -several Rays have several of those degrees. - -And what is said of their Refrangibility may be also understood of their -Reflexibility, that is, of their Dispositions to be reflected, some at a -greater, and others at a less thickness of thin Plates or Bubbles; -namely, that those Dispositions are also connate with the Rays, and -immutable; as may appear by the 13th, 14th, and 15th Observations, -compared with the fourth and eighteenth. - -By the Precedent Observations it appears also, that whiteness is a -dissimilar mixture of all Colours, and that Light is a mixture of Rays -endued with all those Colours. For, considering the multitude of the -Rings of Colours in the 3d, 12th, and 24th Observations, it is manifest, -that although in the 4th and 18th Observations there appear no more than -eight or nine of those Rings, yet there are really a far greater number, -which so much interfere and mingle with one another, as after those -eight or nine revolutions to dilute one another wholly, and constitute -an even and sensibly uniform whiteness. And consequently that whiteness -must be allow'd a mixture of all Colours, and the Light which conveys it -to the Eye must be a mixture of Rays endued with all those Colours. - -But farther; by the 24th Observation it appears, that there is a -constant relation between Colours and Refrangibility; the most -refrangible Rays being violet, the least refrangible red, and those of -intermediate Colours having proportionably intermediate degrees of -Refrangibility. And by the 13th, 14th, and 15th Observations, compared -with the 4th or 18th there appears to be the same constant relation -between Colour and Reflexibility; the violet being in like circumstances -reflected at least thicknesses of any thin Plate or Bubble, the red at -greatest thicknesses, and the intermediate Colours at intermediate -thicknesses. Whence it follows, that the colorifick Dispositions of -Rays are also connate with them, and immutable; and by consequence, that -all the Productions and Appearances of Colours in the World are derived, -not from any physical Change caused in Light by Refraction or Reflexion, -but only from the various Mixtures or Separations of Rays, by virtue of -their different Refrangibility or Reflexibility. And in this respect the -Science of Colours becomes a Speculation as truly mathematical as any -other part of Opticks. I mean, so far as they depend on the Nature of -Light, and are not produced or alter'd by the Power of Imagination, or -by striking or pressing the Eye. - - - - -THE - -SECOND BOOK - -OF - -OPTICKS - - -_PART III._ - -_Of the permanent Colours of natural Bodies, and the Analogy between -them and the Colours of thin transparent Plates._ - -I am now come to another part of this Design, which is to consider how -the Phænomena of thin transparent Plates stand related to those of all -other natural Bodies. Of these Bodies I have already told you that they -appear of divers Colours, accordingly as they are disposed to reflect -most copiously the Rays originally endued with those Colours. But their -Constitutions, whereby they reflect some Rays more copiously than -others, remain to be discover'd; and these I shall endeavour to manifest -in the following Propositions. - - -PROP. I. - -_Those Superficies of transparent Bodies reflect the greatest quantity -of Light, which have the greatest refracting Power; that is, which -intercede Mediums that differ most in their refractive Densities. And in -the Confines of equally refracting Mediums there is no Reflexion._ - -The Analogy between Reflexion and Refraction will appear by considering, -that when Light passeth obliquely out of one Medium into another which -refracts from the perpendicular, the greater is the difference of their -refractive Density, the less Obliquity of Incidence is requisite to -cause a total Reflexion. For as the Sines are which measure the -Refraction, so is the Sine of Incidence at which the total Reflexion -begins, to the Radius of the Circle; and consequently that Angle of -Incidence is least where there is the greatest difference of the Sines. -Thus in the passing of Light out of Water into Air, where the Refraction -is measured by the Ratio of the Sines 3 to 4, the total Reflexion begins -when the Angle of Incidence is about 48 Degrees 35 Minutes. In passing -out of Glass into Air, where the Refraction is measured by the Ratio of -the Sines 20 to 31, the total Reflexion begins when the Angle of -Incidence is 40 Degrees 10 Minutes; and so in passing out of Crystal, or -more strongly refracting Mediums into Air, there is still a less -obliquity requisite to cause a total reflexion. Superficies therefore -which refract most do soonest reflect all the Light which is incident on -them, and so must be allowed most strongly reflexive. - -But the truth of this Proposition will farther appear by observing, that -in the Superficies interceding two transparent Mediums, (such as are -Air, Water, Oil, common Glass, Crystal, metalline Glasses, Island -Glasses, white transparent Arsenick, Diamonds, &c.) the Reflexion is -stronger or weaker accordingly, as the Superficies hath a greater or -less refracting Power. For in the Confine of Air and Sal-gem 'tis -stronger than in the Confine of Air and Water, and still stronger in the -Confine of Air and common Glass or Crystal, and stronger in the Confine -of Air and a Diamond. If any of these, and such like transparent Solids, -be immerged in Water, its Reflexion becomes, much weaker than before; -and still weaker if they be immerged in the more strongly refracting -Liquors of well rectified Oil of Vitriol or Spirit of Turpentine. If -Water be distinguish'd into two parts by any imaginary Surface, the -Reflexion in the Confine of those two parts is none at all. In the -Confine of Water and Ice 'tis very little; in that of Water and Oil 'tis -something greater; in that of Water and Sal-gem still greater; and in -that of Water and Glass, or Crystal or other denser Substances still -greater, accordingly as those Mediums differ more or less in their -refracting Powers. Hence in the Confine of common Glass and Crystal, -there ought to be a weak Reflexion, and a stronger Reflexion in the -Confine of common and metalline Glass; though I have not yet tried -this. But in the Confine of two Glasses of equal density, there is not -any sensible Reflexion; as was shewn in the first Observation. And the -same may be understood of the Superficies interceding two Crystals, or -two Liquors, or any other Substances in which no Refraction is caused. -So then the reason why uniform pellucid Mediums (such as Water, Glass, -or Crystal,) have no sensible Reflexion but in their external -Superficies, where they are adjacent to other Mediums of a different -density, is because all their contiguous parts have one and the same -degree of density. - - -PROP. II. - -_The least parts of almost all natural Bodies are in some measure -transparent: And the Opacity of those Bodies ariseth from the multitude -of Reflexions caused in their internal Parts._ - -That this is so has been observed by others, and will easily be granted -by them that have been conversant with Microscopes. And it may be also -tried by applying any substance to a hole through which some Light is -immitted into a dark Room. For how opake soever that Substance may seem -in the open Air, it will by that means appear very manifestly -transparent, if it be of a sufficient thinness. Only white metalline -Bodies must be excepted, which by reason of their excessive density seem -to reflect almost all the Light incident on their first Superficies; -unless by solution in Menstruums they be reduced into very small -Particles, and then they become transparent. - - -PROP. III. - -_Between the parts of opake and colour'd Bodies are many Spaces, either -empty, or replenish'd with Mediums of other Densities; as Water between -the tinging Corpuscles wherewith any Liquor is impregnated, Air between -the aqueous Globules that constitute Clouds or Mists; and for the most -part Spaces void of both Air and Water, but yet perhaps not wholly void -of all Substance, between the parts of hard Bodies._ - -The truth of this is evinced by the two precedent Propositions: For by -the second Proposition there are many Reflexions made by the internal -parts of Bodies, which, by the first Proposition, would not happen if -the parts of those Bodies were continued without any such Interstices -between them; because Reflexions are caused only in Superficies, which -intercede Mediums of a differing density, by _Prop._ 1. - -But farther, that this discontinuity of parts is the principal Cause of -the opacity of Bodies, will appear by considering, that opake Substances -become transparent by filling their Pores with any Substance of equal or -almost equal density with their parts. Thus Paper dipped in Water or -Oil, the _Oculus Mundi_ Stone steep'd in Water, Linnen Cloth oiled or -varnish'd, and many other Substances soaked in such Liquors as will -intimately pervade their little Pores, become by that means more -transparent than otherwise; so, on the contrary, the most transparent -Substances, may, by evacuating their Pores, or separating their parts, -be render'd sufficiently opake; as Salts or wet Paper, or the _Oculus -Mundi_ Stone by being dried, Horn by being scraped, Glass by being -reduced to Powder, or otherwise flawed; Turpentine by being stirred -about with Water till they mix imperfectly, and Water by being form'd -into many small Bubbles, either alone in the form of Froth, or by -shaking it together with Oil of Turpentine, or Oil Olive, or with some -other convenient Liquor, with which it will not perfectly incorporate. -And to the increase of the opacity of these Bodies, it conduces -something, that by the 23d Observation the Reflexions of very thin -transparent Substances are considerably stronger than those made by the -same Substances of a greater thickness. - - -PROP. IV. - -_The Parts of Bodies and their Interstices must not be less than of some -definite bigness, to render them opake and colour'd._ - -For the opakest Bodies, if their parts be subtilly divided, (as Metals, -by being dissolved in acid Menstruums, &c.) become perfectly -transparent. And you may also remember, that in the eighth Observation -there was no sensible reflexion at the Superficies of the -Object-glasses, where they were very near one another, though they did -not absolutely touch. And in the 17th Observation the Reflexion of the -Water-bubble where it became thinnest was almost insensible, so as to -cause very black Spots to appear on the top of the Bubble, by the want -of reflected Light. - -On these grounds I perceive it is that Water, Salt, Glass, Stones, and -such like Substances, are transparent. For, upon divers Considerations, -they seem to be as full of Pores or Interstices between their parts as -other Bodies are, but yet their Parts and Interstices to be too small to -cause Reflexions in their common Surfaces. - - -PROP. V. - -_The transparent parts of Bodies, according to their several sizes, -reflect Rays of one Colour, and transmit those of another, on the same -grounds that thin Plates or Bubbles do reflect or transmit those Rays. -And this I take to be the ground of all their Colours._ - -For if a thinn'd or plated Body, which being of an even thickness, -appears all over of one uniform Colour, should be slit into Threads, or -broken into Fragments, of the same thickness with the Plate; I see no -reason why every Thread or Fragment should not keep its Colour, and by -consequence why a heap of those Threads or Fragments should not -constitute a Mass or Powder of the same Colour, which the Plate -exhibited before it was broken. And the parts of all natural Bodies -being like so many Fragments of a Plate, must on the same grounds -exhibit the same Colours. - -Now, that they do so will appear by the affinity of their Properties. -The finely colour'd Feathers of some Birds, and particularly those of -Peacocks Tails, do, in the very same part of the Feather, appear of -several Colours in several Positions of the Eye, after the very same -manner that thin Plates were found to do in the 7th and 19th -Observations, and therefore their Colours arise from the thinness of the -transparent parts of the Feathers; that is, from the slenderness of the -very fine Hairs, or _Capillamenta_, which grow out of the sides of the -grosser lateral Branches or Fibres of those Feathers. And to the same -purpose it is, that the Webs of some Spiders, by being spun very fine, -have appeared colour'd, as some have observ'd, and that the colour'd -Fibres of some Silks, by varying the Position of the Eye, do vary their -Colour. Also the Colours of Silks, Cloths, and other Substances, which -Water or Oil can intimately penetrate, become more faint and obscure by -being immerged in those Liquors, and recover their Vigor again by being -dried; much after the manner declared of thin Bodies in the 10th and -21st Observations. Leaf-Gold, some sorts of painted Glass, the Infusion -of _Lignum Nephriticum_, and some other Substances, reflect one Colour, -and transmit another; like thin Bodies in the 9th and 20th Observations. -And some of those colour'd Powders which Painters use, may have their -Colours a little changed, by being very elaborately and finely ground. -Where I see not what can be justly pretended for those changes, besides -the breaking of their parts into less parts by that contrition, after -the same manner that the Colour of a thin Plate is changed by varying -its thickness. For which reason also it is that the colour'd Flowers of -Plants and Vegetables, by being bruised, usually become more transparent -than before, or at least in some degree or other change their Colours. -Nor is it much less to my purpose, that, by mixing divers Liquors, very -odd and remarkable Productions and Changes of Colours may be effected, -of which no cause can be more obvious and rational than that the saline -Corpuscles of one Liquor do variously act upon or unite with the tinging -Corpuscles of another, so as to make them swell, or shrink, (whereby not -only their bulk but their density also may be changed,) or to divide -them into smaller Corpuscles, (whereby a colour'd Liquor may become -transparent,) or to make many of them associate into one cluster, -whereby two transparent Liquors may compose a colour'd one. For we see -how apt those saline Menstruums are to penetrate and dissolve Substances -to which they are applied, and some of them to precipitate what others -dissolve. In like manner, if we consider the various Phænomena of the -Atmosphere, we may observe, that when Vapours are first raised, they -hinder not the transparency of the Air, being divided into parts too -small to cause any Reflexion in their Superficies. But when in order to -compose drops of Rain they begin to coalesce and constitute Globules of -all intermediate sizes, those Globules, when they become of convenient -size to reflect some Colours and transmit others, may constitute Clouds -of various Colours according to their sizes. And I see not what can be -rationally conceived in so transparent a Substance as Water for the -production of these Colours, besides the various sizes of its fluid and -globular Parcels. - - -PROP. VI. - -_The parts of Bodies on which their Colours depend, are denser than the -Medium which pervades their Interstices._ - -This will appear by considering, that the Colour of a Body depends not -only on the Rays which are incident perpendicularly on its parts, but on -those also which are incident at all other Angles. And that according to -the 7th Observation, a very little variation of obliquity will change -the reflected Colour, where the thin Body or small Particles is rarer -than the ambient Medium, insomuch that such a small Particle will at -diversly oblique Incidences reflect all sorts of Colours, in so great a -variety that the Colour resulting from them all, confusedly reflected -from a heap of such Particles, must rather be a white or grey than any -other Colour, or at best it must be but a very imperfect and dirty -Colour. Whereas if the thin Body or small Particle be much denser than -the ambient Medium, the Colours, according to the 19th Observation, are -so little changed by the variation of obliquity, that the Rays which -are reflected least obliquely may predominate over the rest, so much as -to cause a heap of such Particles to appear very intensely of their -Colour. - -It conduces also something to the confirmation of this Proposition, -that, according to the 22d Observation, the Colours exhibited by the -denser thin Body within the rarer, are more brisk than those exhibited -by the rarer within the denser. - - -PROP. VII. - -_The bigness of the component parts of natural Bodies may be conjectured -by their Colours._ - -For since the parts of these Bodies, by _Prop._ 5. do most probably -exhibit the same Colours with a Plate of equal thickness, provided they -have the same refractive density; and since their parts seem for the -most part to have much the same density with Water or Glass, as by many -circumstances is obvious to collect; to determine the sizes of those -parts, you need only have recourse to the precedent Tables, in which the -thickness of Water or Glass exhibiting any Colour is expressed. Thus if -it be desired to know the diameter of a Corpuscle, which being of equal -density with Glass shall reflect green of the third Order; the Number -16-1/4 shews it to be (16-1/4)/10000 parts of an Inch. - -The greatest difficulty is here to know of what Order the Colour of any -Body is. And for this end we must have recourse to the 4th and 18th -Observations; from whence may be collected these particulars. - -_Scarlets_, and other _reds_, _oranges_, and _yellows_, if they be pure -and intense, are most probably of the second order. Those of the first -and third order also may be pretty good; only the yellow of the first -order is faint, and the orange and red of the third Order have a great -Mixture of violet and blue. - -There may be good _Greens_ of the fourth Order, but the purest are of -the third. And of this Order the green of all Vegetables seems to be, -partly by reason of the Intenseness of their Colours, and partly because -when they wither some of them turn to a greenish yellow, and others to a -more perfect yellow or orange, or perhaps to red, passing first through -all the aforesaid intermediate Colours. Which Changes seem to be -effected by the exhaling of the Moisture which may leave the tinging -Corpuscles more dense, and something augmented by the Accretion of the -oily and earthy Part of that Moisture. Now the green, without doubt, is -of the same Order with those Colours into which it changeth, because the -Changes are gradual, and those Colours, though usually not very full, -yet are often too full and lively to be of the fourth Order. - -_Blues_ and _Purples_ may be either of the second or third Order, but -the best are of the third. Thus the Colour of Violets seems to be of -that Order, because their Syrup by acid Liquors turns red, and by -urinous and alcalizate turns green. For since it is of the Nature of -Acids to dissolve or attenuate, and of Alcalies to precipitate or -incrassate, if the Purple Colour of the Syrup was of the second Order, -an acid Liquor by attenuating its tinging Corpuscles would change it to -a red of the first Order, and an Alcali by incrassating them would -change it to a green of the second Order; which red and green, -especially the green, seem too imperfect to be the Colours produced by -these Changes. But if the said Purple be supposed of the third Order, -its Change to red of the second, and green of the third, may without any -Inconvenience be allow'd. - -If there be found any Body of a deeper and less reddish Purple than that -of the Violets, its Colour most probably is of the second Order. But yet -there being no Body commonly known whose Colour is constantly more deep -than theirs, I have made use of their Name to denote the deepest and -least reddish Purples, such as manifestly transcend their Colour in -purity. - -The _blue_ of the first Order, though very faint and little, may -possibly be the Colour of some Substances; and particularly the azure -Colour of the Skies seems to be of this Order. For all Vapours when they -begin to condense and coalesce into small Parcels, become first of that -Bigness, whereby such an Azure must be reflected before they can -constitute Clouds of other Colours. And so this being the first Colour -which Vapours begin to reflect, it ought to be the Colour of the finest -and most transparent Skies, in which Vapours are not arrived to that -Grossness requisite to reflect other Colours, as we find it is by -Experience. - -_Whiteness_, if most intense and luminous, is that of the first Order, -if less strong and luminous, a Mixture of the Colours of several Orders. -Of this last kind is the Whiteness of Froth, Paper, Linnen, and most -white Substances; of the former I reckon that of white Metals to be. For -whilst the densest of Metals, Gold, if foliated, is transparent, and all -Metals become transparent if dissolved in Menstruums or vitrified, the -Opacity of white Metals ariseth not from their Density alone. They being -less dense than Gold would be more transparent than it, did not some -other Cause concur with their Density to make them opake. And this Cause -I take to be such a Bigness of their Particles as fits them to reflect -the white of the first order. For, if they be of other Thicknesses they -may reflect other Colours, as is manifest by the Colours which appear -upon hot Steel in tempering it, and sometimes upon the Surface of melted -Metals in the Skin or Scoria which arises upon them in their cooling. -And as the white of the first order is the strongest which can be made -by Plates of transparent Substances, so it ought to be stronger in the -denser Substances of Metals than in the rarer of Air, Water, and Glass. -Nor do I see but that metallick Substances of such a Thickness as may -fit them to reflect the white of the first order, may, by reason of -their great Density (according to the Tenor of the first of these -Propositions) reflect all the Light incident upon them, and so be as -opake and splendent as it's possible for any Body to be. Gold, or Copper -mix'd with less than half their Weight of Silver, or Tin, or Regulus of -Antimony, in fusion, or amalgamed with a very little Mercury, become -white; which shews both that the Particles of white Metals have much -more Superficies, and so are smaller, than those of Gold and Copper, and -also that they are so opake as not to suffer the Particles of Gold or -Copper to shine through them. Now it is scarce to be doubted but that -the Colours of Gold and Copper are of the second and third order, and -therefore the Particles of white Metals cannot be much bigger than is -requisite to make them reflect the white of the first order. The -Volatility of Mercury argues that they are not much bigger, nor may they -be much less, lest they lose their Opacity, and become either -transparent as they do when attenuated by Vitrification, or by Solution -in Menstruums, or black as they do when ground smaller, by rubbing -Silver, or Tin, or Lead, upon other Substances to draw black Lines. The -first and only Colour which white Metals take by grinding their -Particles smaller, is black, and therefore their white ought to be that -which borders upon the black Spot in the Center of the Rings of Colours, -that is, the white of the first order. But, if you would hence gather -the Bigness of metallick Particles, you must allow for their Density. -For were Mercury transparent, its Density is such that the Sine of -Incidence upon it (by my Computation) would be to the Sine of its -Refraction, as 71 to 20, or 7 to 2. And therefore the Thickness of its -Particles, that they may exhibit the same Colours with those of Bubbles -of Water, ought to be less than the Thickness of the Skin of those -Bubbles in the Proportion of 2 to 7. Whence it's possible, that the -Particles of Mercury may be as little as the Particles of some -transparent and volatile Fluids, and yet reflect the white of the first -order. - -Lastly, for the production of _black_, the Corpuscles must be less than -any of those which exhibit Colours. For at all greater sizes there is -too much Light reflected to constitute this Colour. But if they be -supposed a little less than is requisite to reflect the white and very -faint blue of the first order, they will, according to the 4th, 8th, -17th and 18th Observations, reflect so very little Light as to appear -intensely black, and yet may perhaps variously refract it to and fro -within themselves so long, until it happen to be stifled and lost, by -which means they will appear black in all positions of the Eye without -any transparency. And from hence may be understood why Fire, and the -more subtile dissolver Putrefaction, by dividing the Particles of -Substances, turn them to black, why small quantities of black Substances -impart their Colour very freely and intensely to other Substances to -which they are applied; the minute Particles of these, by reason of -their very great number, easily overspreading the gross Particles of -others; why Glass ground very elaborately with Sand on a Copper Plate, -'till it be well polish'd, makes the Sand, together with what is worn -off from the Glass and Copper, become very black: why black Substances -do soonest of all others become hot in the Sun's Light and burn, (which -Effect may proceed partly from the multitude of Refractions in a little -room, and partly from the easy Commotion of so very small Corpuscles;) -and why blacks are usually a little inclined to a bluish Colour. For -that they are so may be seen by illuminating white Paper by Light -reflected from black Substances. For the Paper will usually appear of a -bluish white; and the reason is, that black borders in the obscure blue -of the order described in the 18th Observation, and therefore reflects -more Rays of that Colour than of any other. - -In these Descriptions I have been the more particular, because it is not -impossible but that Microscopes may at length be improved to the -discovery of the Particles of Bodies on which their Colours depend, if -they are not already in some measure arrived to that degree of -perfection. For if those Instruments are or can be so far improved as -with sufficient distinctness to represent Objects five or six hundred -times bigger than at a Foot distance they appear to our naked Eyes, I -should hope that we might be able to discover some of the greatest of -those Corpuscles. And by one that would magnify three or four thousand -times perhaps they might all be discover'd, but those which produce -blackness. In the mean while I see nothing material in this Discourse -that may rationally be doubted of, excepting this Position: That -transparent Corpuscles of the same thickness and density with a Plate, -do exhibit the same Colour. And this I would have understood not without -some Latitude, as well because those Corpuscles may be of irregular -Figures, and many Rays must be obliquely incident on them, and so have -a shorter way through them than the length of their Diameters, as -because the straitness of the Medium put in on all sides within such -Corpuscles may a little alter its Motions or other qualities on which -the Reflexion depends. But yet I cannot much suspect the last, because I -have observed of some small Plates of Muscovy Glass which were of an -even thickness, that through a Microscope they have appeared of the same -Colour at their edges and corners where the included Medium was -terminated, which they appeared of in other places. However it will add -much to our Satisfaction, if those Corpuscles can be discover'd with -Microscopes; which if we shall at length attain to, I fear it will be -the utmost improvement of this Sense. For it seems impossible to see the -more secret and noble Works of Nature within the Corpuscles by reason of -their transparency. - - -PROP. VIII. - -_The Cause of Reflexion is not the impinging of Light on the solid or -impervious parts of Bodies, as is commonly believed._ - -This will appear by the following Considerations. First, That in the -passage of Light out of Glass into Air there is a Reflexion as strong as -in its passage out of Air into Glass, or rather a little stronger, and -by many degrees stronger than in its passage out of Glass into Water. -And it seems not probable that Air should have more strongly reflecting -parts than Water or Glass. But if that should possibly be supposed, yet -it will avail nothing; for the Reflexion is as strong or stronger when -the Air is drawn away from the Glass, (suppose by the Air-Pump invented -by _Otto Gueriet_, and improved and made useful by Mr. _Boyle_) as when -it is adjacent to it. Secondly, If Light in its passage out of Glass -into Air be incident more obliquely than at an Angle of 40 or 41 Degrees -it is wholly reflected, if less obliquely it is in great measure -transmitted. Now it is not to be imagined that Light at one degree of -obliquity should meet with Pores enough in the Air to transmit the -greater part of it, and at another degree of obliquity should meet with -nothing but parts to reflect it wholly, especially considering that in -its passage out of Air into Glass, how oblique soever be its Incidence, -it finds Pores enough in the Glass to transmit a great part of it. If -any Man suppose that it is not reflected by the Air, but by the outmost -superficial parts of the Glass, there is still the same difficulty: -Besides, that such a Supposition is unintelligible, and will also appear -to be false by applying Water behind some part of the Glass instead of -Air. For so in a convenient obliquity of the Rays, suppose of 45 or 46 -Degrees, at which they are all reflected where the Air is adjacent to -the Glass, they shall be in great measure transmitted where the Water is -adjacent to it; which argues, that their Reflexion or Transmission -depends on the constitution of the Air and Water behind the Glass, and -not on the striking of the Rays upon the parts of the Glass. Thirdly, -If the Colours made by a Prism placed at the entrance of a Beam of Light -into a darken'd Room be successively cast on a second Prism placed at a -greater distance from the former, in such manner that they are all alike -incident upon it, the second Prism may be so inclined to the incident -Rays, that those which are of a blue Colour shall be all reflected by -it, and yet those of a red Colour pretty copiously transmitted. Now if -the Reflexion be caused by the parts of Air or Glass, I would ask, why -at the same Obliquity of Incidence the blue should wholly impinge on -those parts, so as to be all reflected, and yet the red find Pores -enough to be in a great measure transmitted. Fourthly, Where two Glasses -touch one another, there is no sensible Reflexion, as was declared in -the first Observation; and yet I see no reason why the Rays should not -impinge on the parts of Glass, as much when contiguous to other Glass as -when contiguous to Air. Fifthly, When the top of a Water-Bubble (in the -17th Observation,) by the continual subsiding and exhaling of the Water -grew very thin, there was such a little and almost insensible quantity -of Light reflected from it, that it appeared intensely black; whereas -round about that black Spot, where the Water was thicker, the Reflexion -was so strong as to make the Water seem very white. Nor is it only at -the least thickness of thin Plates or Bubbles, that there is no manifest -Reflexion, but at many other thicknesses continually greater and -greater. For in the 15th Observation the Rays of the same Colour were by -turns transmitted at one thickness, and reflected at another thickness, -for an indeterminate number of Successions. And yet in the Superficies -of the thinned Body, where it is of any one thickness, there are as many -parts for the Rays to impinge on, as where it is of any other thickness. -Sixthly, If Reflexion were caused by the parts of reflecting Bodies, it -would be impossible for thin Plates or Bubbles, at one and the same -place, to reflect the Rays of one Colour, and transmit those of another, -as they do according to the 13th and 15th Observations. For it is not to -be imagined that at one place the Rays which, for instance, exhibit a -blue Colour, should have the fortune to dash upon the parts, and those -which exhibit a red to hit upon the Pores of the Body; and then at -another place, where the Body is either a little thicker or a little -thinner, that on the contrary the blue should hit upon its pores, and -the red upon its parts. Lastly, Were the Rays of Light reflected by -impinging on the solid parts of Bodies, their Reflexions from polish'd -Bodies could not be so regular as they are. For in polishing Glass with -Sand, Putty, or Tripoly, it is not to be imagined that those Substances -can, by grating and fretting the Glass, bring all its least Particles to -an accurate Polish; so that all their Surfaces shall be truly plain or -truly spherical, and look all the same way, so as together to compose -one even Surface. The smaller the Particles of those Substances are, the -smaller will be the Scratches by which they continually fret and wear -away the Glass until it be polish'd; but be they never so small they can -wear away the Glass no otherwise than by grating and scratching it, and -breaking the Protuberances; and therefore polish it no otherwise than by -bringing its roughness to a very fine Grain, so that the Scratches and -Frettings of the Surface become too small to be visible. And therefore -if Light were reflected by impinging upon the solid parts of the Glass, -it would be scatter'd as much by the most polish'd Glass as by the -roughest. So then it remains a Problem, how Glass polish'd by fretting -Substances can reflect Light so regularly as it does. And this Problem -is scarce otherwise to be solved, than by saying, that the Reflexion of -a Ray is effected, not by a single point of the reflecting Body, but by -some power of the Body which is evenly diffused all over its Surface, -and by which it acts upon the Ray without immediate Contact. For that -the parts of Bodies do act upon Light at a distance shall be shewn -hereafter. - -Now if Light be reflected, not by impinging on the solid parts of -Bodies, but by some other principle; it's probable that as many of its -Rays as impinge on the solid parts of Bodies are not reflected but -stifled and lost in the Bodies. For otherwise we must allow two sorts of -Reflexions. Should all the Rays be reflected which impinge on the -internal parts of clear Water or Crystal, those Substances would rather -have a cloudy Colour than a clear Transparency. To make Bodies look -black, it's necessary that many Rays be stopp'd, retained, and lost in -them; and it seems not probable that any Rays can be stopp'd and -stifled in them which do not impinge on their parts. - -And hence we may understand that Bodies are much more rare and porous -than is commonly believed. Water is nineteen times lighter, and by -consequence nineteen times rarer than Gold; and Gold is so rare as very -readily and without the least opposition to transmit the magnetick -Effluvia, and easily to admit Quicksilver into its Pores, and to let -Water pass through it. For a concave Sphere of Gold filled with Water, -and solder'd up, has, upon pressing the Sphere with great force, let the -Water squeeze through it, and stand all over its outside in multitudes -of small Drops, like Dew, without bursting or cracking the Body of the -Gold, as I have been inform'd by an Eye witness. From all which we may -conclude, that Gold has more Pores than solid parts, and by consequence -that Water has above forty times more Pores than Parts. And he that -shall find out an Hypothesis, by which Water may be so rare, and yet not -be capable of compression by force, may doubtless by the same Hypothesis -make Gold, and Water, and all other Bodies, as much rarer as he pleases; -so that Light may find a ready passage through transparent Substances. - -The Magnet acts upon Iron through all dense Bodies not magnetick nor red -hot, without any diminution of its Virtue; as for instance, through -Gold, Silver, Lead, Glass, Water. The gravitating Power of the Sun is -transmitted through the vast Bodies of the Planets without any -diminution, so as to act upon all their parts to their very centers -with the same Force and according to the same Laws, as if the part upon -which it acts were not surrounded with the Body of the Planet, The Rays -of Light, whether they be very small Bodies projected, or only Motion or -Force propagated, are moved in right Lines; and whenever a Ray of Light -is by any Obstacle turned out of its rectilinear way, it will never -return into the same rectilinear way, unless perhaps by very great -accident. And yet Light is transmitted through pellucid solid Bodies in -right Lines to very great distances. How Bodies can have a sufficient -quantity of Pores for producing these Effects is very difficult to -conceive, but perhaps not altogether impossible. For the Colours of -Bodies arise from the Magnitudes of the Particles which reflect them, as -was explained above. Now if we conceive these Particles of Bodies to be -so disposed amongst themselves, that the Intervals or empty Spaces -between them may be equal in magnitude to them all; and that these -Particles may be composed of other Particles much smaller, which have as -much empty Space between them as equals all the Magnitudes of these -smaller Particles: And that in like manner these smaller Particles are -again composed of others much smaller, all which together are equal to -all the Pores or empty Spaces between them; and so on perpetually till -you come to solid Particles, such as have no Pores or empty Spaces -within them: And if in any gross Body there be, for instance, three such -degrees of Particles, the least of which are solid; this Body will have -seven times more Pores than solid Parts. But if there be four such -degrees of Particles, the least of which are solid, the Body will have -fifteen times more Pores than solid Parts. If there be five degrees, the -Body will have one and thirty times more Pores than solid Parts. If six -degrees, the Body will have sixty and three times more Pores than solid -Parts. And so on perpetually. And there are other ways of conceiving how -Bodies may be exceeding porous. But what is really their inward Frame is -not yet known to us. - - -PROP. IX. - -_Bodies reflect and refract Light by one and the same power, variously -exercised in various Circumstances._ - -This appears by several Considerations. First, Because when Light goes -out of Glass into Air, as obliquely as it can possibly do. If its -Incidence be made still more oblique, it becomes totally reflected. For -the power of the Glass after it has refracted the Light as obliquely as -is possible, if the Incidence be still made more oblique, becomes too -strong to let any of its Rays go through, and by consequence causes -total Reflexions. Secondly, Because Light is alternately reflected and -transmitted by thin Plates of Glass for many Successions, accordingly as -the thickness of the Plate increases in an arithmetical Progression. For -here the thickness of the Glass determines whether that Power by which -Glass acts upon Light shall cause it to be reflected, or suffer it to -be transmitted. And, Thirdly, because those Surfaces of transparent -Bodies which have the greatest refracting power, reflect the greatest -quantity of Light, as was shewn in the first Proposition. - - -PROP. X. - -_If Light be swifter in Bodies than in Vacuo, in the proportion of the -Sines which measure the Refraction of the Bodies, the Forces of the -Bodies to reflect and refract Light, are very nearly proportional to the -densities of the same Bodies; excepting that unctuous and sulphureous -Bodies refract more than others of this same density._ - -[Illustration: FIG. 8.] - -Let AB represent the refracting plane Surface of any Body, and IC a Ray -incident very obliquely upon the Body in C, so that the Angle ACI may be -infinitely little, and let CR be the refracted Ray. From a given Point B -perpendicular to the refracting Surface erect BR meeting with the -refracting Ray CR in R, and if CR represent the Motion of the refracted -Ray, and this Motion be distinguish'd into two Motions CB and BR, -whereof CB is parallel to the refracting Plane, and BR perpendicular to -it: CB shall represent the Motion of the incident Ray, and BR the -Motion generated by the Refraction, as Opticians have of late explain'd. - -Now if any Body or Thing, in moving through any Space of a given breadth -terminated on both sides by two parallel Planes, be urged forward in all -parts of that Space by Forces tending directly forwards towards the last -Plane, and before its Incidence on the first Plane, had no Motion -towards it, or but an infinitely little one; and if the Forces in all -parts of that Space, between the Planes, be at equal distances from the -Planes equal to one another, but at several distances be bigger or less -in any given Proportion, the Motion generated by the Forces in the whole -passage of the Body or thing through that Space shall be in a -subduplicate Proportion of the Forces, as Mathematicians will easily -understand. And therefore, if the Space of activity of the refracting -Superficies of the Body be consider'd as such a Space, the Motion of the -Ray generated by the refracting Force of the Body, during its passage -through that Space, that is, the Motion BR, must be in subduplicate -Proportion of that refracting Force. I say therefore, that the Square of -the Line BR, and by consequence the refracting Force of the Body, is -very nearly as the density of the same Body. For this will appear by the -following Table, wherein the Proportion of the Sines which measure the -Refractions of several Bodies, the Square of BR, supposing CB an unite, -the Densities of the Bodies estimated by their Specifick Gravities, and -their Refractive Power in respect of their Densities are set down in -several Columns. - ----------------------+----------------+----------------+----------+----------- - | | | | - | | The Square | The | The - | | of BR, to | density | refractive - | The Proportion | which the | and | Power of - | of the Sines of| refracting | specifick| the Body - | Incidence and | force of the | gravity | in respect - The refracting | Refraction of | Body is | of the | of its - Bodies. | yellow Light. | proportionate. | Body. | density. ----------------------+----------------+----------------+----------+----------- -A Pseudo-Topazius, | | | | - being a natural, | | | | - pellucid, brittle, | 23 to 14 | 1'699 | 4'27 | 3979 - hairy Stone, of a | | | | - yellow Colour. | | | | -Air. | 3201 to 3200 | 0'000625 | 0'0012 | 5208 -Glass of Antimony. | 17 to 9 | 2'568 | 5'28 | 4864 -A Selenitis. | 61 to 41 | 1'213 | 2'252 | 5386 -Glass vulgar. | 31 to 20 | 1'4025 | 2'58 | 5436 -Crystal of the Rock. | 25 to 16 | 1'445 | 2'65 | 5450 -Island Crystal. | 5 to 3 | 1'778 | 2'72 | 6536 -Sal Gemmæ. | 17 to 11 | 1'388 | 2'143 | 6477 -Alume. | 35 to 24 | 1'1267 | 1'714 | 6570 -Borax. | 22 to 15 | 1'1511 | 1'714 | 6716 -Niter. | 32 to 21 | 1'345 | 1'9 | 7079 -Dantzick Vitriol. | 303 to 200 | 1'295 | 1'715 | 7551 -Oil of Vitriol. | 10 to 7 | 1'041 | 1'7 | 6124 -Rain Water. | 529 to 396 | 0'7845 | 1' | 7845 -Gum Arabick. | 31 to 21 | 1'179 | 1'375 | 8574 -Spirit of Wine well | | | | - rectified. | 100 to 73 | 0'8765 | 0'866 | 10121 -Camphire. | 3 to 2 | 1'25 | 0'996 | 12551 -Oil Olive. | 22 to 15 | 1'1511 | 0'913 | 12607 -Linseed Oil. | 40 to 27 | 1'1948 | 0'932 | 12819 -Spirit of Turpentine.| 25 to 17 | 1'1626 | 0'874 | 13222 -Amber. | 14 to 9 | 1'42 | 1'04 | 13654 -A Diamond. | 100 to 41 | 4'949 | 3'4 | 14556 ----------------------+----------------+----------------+----------+----------- - -The Refraction of the Air in this Table is determin'd by that of the -Atmosphere observed by Astronomers. For, if Light pass through many -refracting Substances or Mediums gradually denser and denser, and -terminated with parallel Surfaces, the Sum of all the Refractions will -be equal to the single Refraction which it would have suffer'd in -passing immediately out of the first Medium into the last. And this -holds true, though the Number of the refracting Substances be increased -to Infinity, and the Distances from one another as much decreased, so -that the Light may be refracted in every Point of its Passage, and by -continual Refractions bent into a Curve-Line. And therefore the whole -Refraction of Light in passing through the Atmosphere from the highest -and rarest Part thereof down to the lowest and densest Part, must be -equal to the Refraction which it would suffer in passing at like -Obliquity out of a Vacuum immediately into Air of equal Density with -that in the lowest Part of the Atmosphere. - -Now, although a Pseudo-Topaz, a Selenitis, Rock Crystal, Island Crystal, -Vulgar Glass (that is, Sand melted together) and Glass of Antimony, -which are terrestrial stony alcalizate Concretes, and Air which probably -arises from such Substances by Fermentation, be Substances very -differing from one another in Density, yet by this Table, they have -their refractive Powers almost in the same Proportion to one another as -their Densities are, excepting that the Refraction of that strange -Substance, Island Crystal is a little bigger than the rest. And -particularly Air, which is 3500 Times rarer than the Pseudo-Topaz, and -4400 Times rarer than Glass of Antimony, and 2000 Times rarer than the -Selenitis, Glass vulgar, or Crystal of the Rock, has notwithstanding its -rarity the same refractive Power in respect of its Density which those -very dense Substances have in respect of theirs, excepting so far as -those differ from one another. - -Again, the Refraction of Camphire, Oil Olive, Linseed Oil, Spirit of -Turpentine and Amber, which are fat sulphureous unctuous Bodies, and a -Diamond, which probably is an unctuous Substance coagulated, have their -refractive Powers in Proportion to one another as their Densities -without any considerable Variation. But the refractive Powers of these -unctuous Substances are two or three Times greater in respect of their -Densities than the refractive Powers of the former Substances in respect -of theirs. - -Water has a refractive Power in a middle degree between those two sorts -of Substances, and probably is of a middle nature. For out of it grow -all vegetable and animal Substances, which consist as well of -sulphureous fat and inflamable Parts, as of earthy lean and alcalizate -ones. - -Salts and Vitriols have refractive Powers in a middle degree between -those of earthy Substances and Water, and accordingly are composed of -those two sorts of Substances. For by distillation and rectification of -their Spirits a great Part of them goes into Water, and a great Part -remains behind in the form of a dry fix'd Earth capable of -Vitrification. - -Spirit of Wine has a refractive Power in a middle degree between those -of Water and oily Substances, and accordingly seems to be composed of -both, united by Fermentation; the Water, by means of some saline Spirits -with which 'tis impregnated, dissolving the Oil, and volatizing it by -the Action. For Spirit of Wine is inflamable by means of its oily Parts, -and being distilled often from Salt of Tartar, grow by every -distillation more and more aqueous and phlegmatick. And Chymists -observe, that Vegetables (as Lavender, Rue, Marjoram, &c.) distilled -_per se_, before fermentation yield Oils without any burning Spirits, -but after fermentation yield ardent Spirits without Oils: Which shews, -that their Oil is by fermentation converted into Spirit. They find also, -that if Oils be poured in a small quantity upon fermentating Vegetables, -they distil over after fermentation in the form of Spirits. - -So then, by the foregoing Table, all Bodies seem to have their -refractive Powers proportional to their Densities, (or very nearly;) -excepting so far as they partake more or less of sulphureous oily -Particles, and thereby have their refractive Power made greater or less. -Whence it seems rational to attribute the refractive Power of all Bodies -chiefly, if not wholly, to the sulphureous Parts with which they abound. -For it's probable that all Bodies abound more or less with Sulphurs. And -as Light congregated by a Burning-glass acts most upon sulphureous -Bodies, to turn them into Fire and Flame; so, since all Action is -mutual, Sulphurs ought to act most upon Light. For that the action -between Light and Bodies is mutual, may appear from this Consideration; -That the densest Bodies which refract and reflect Light most strongly, -grow hottest in the Summer Sun, by the action of the refracted or -reflected Light. - -I have hitherto explain'd the power of Bodies to reflect and refract, -and shew'd, that thin transparent Plates, Fibres, and Particles, do, -according to their several thicknesses and densities, reflect several -sorts of Rays, and thereby appear of several Colours; and by consequence -that nothing more is requisite for producing all the Colours of natural -Bodies, than the several sizes and densities of their transparent -Particles. But whence it is that these Plates, Fibres, and Particles, -do, according to their several thicknesses and densities, reflect -several sorts of Rays, I have not yet explain'd. To give some insight -into this matter, and make way for understanding the next part of this -Book, I shall conclude this part with a few more Propositions. Those -which preceded respect the nature of Bodies, these the nature of Light: -For both must be understood, before the reason of their Actions upon one -another can be known. And because the last Proposition depended upon the -velocity of Light, I will begin with a Proposition of that kind. - - -PROP. XI. - -_Light is propagated from luminous Bodies in time, and spends about -seven or eight Minutes of an Hour in passing from the Sun to the Earth._ - -This was observed first by _Roemer_, and then by others, by means of the -Eclipses of the Satellites of _Jupiter_. For these Eclipses, when the -Earth is between the Sun and _Jupiter_, happen about seven or eight -Minutes sooner than they ought to do by the Tables, and when the Earth -is beyond the Sun they happen about seven or eight Minutes later than -they ought to do; the reason being, that the Light of the Satellites has -farther to go in the latter case than in the former by the Diameter of -the Earth's Orbit. Some inequalities of time may arise from the -Excentricities of the Orbs of the Satellites; but those cannot answer in -all the Satellites, and at all times to the Position and Distance of the -Earth from the Sun. The mean motions of _Jupiter_'s Satellites is also -swifter in his descent from his Aphelium to his Perihelium, than in his -ascent in the other half of his Orb. But this inequality has no respect -to the position of the Earth, and in the three interior Satellites is -insensible, as I find by computation from the Theory of their Gravity. - - -PROP. XII. - -_Every Ray of Light in its passage through any refracting Surface is put -into a certain transient Constitution or State, which in the progress of -the Ray returns at equal Intervals, and disposes the Ray at every return -to be easily transmitted through the next refracting Surface, and -between the returns to be easily reflected by it._ - -This is manifest by the 5th, 9th, 12th, and 15th Observations. For by -those Observations it appears, that one and the same sort of Rays at -equal Angles of Incidence on any thin transparent Plate, is alternately -reflected and transmitted for many Successions accordingly as the -thickness of the Plate increases in arithmetical Progression of the -Numbers, 0, 1, 2, 3, 4, 5, 6, 7, 8, &c. so that if the first Reflexion -(that which makes the first or innermost of the Rings of Colours there -described) be made at the thickness 1, the Rays shall be transmitted at -the thicknesses 0, 2, 4, 6, 8, 10, 12, &c. and thereby make the central -Spot and Rings of Light, which appear by transmission, and be reflected -at the thickness 1, 3, 5, 7, 9, 11, &c. and thereby make the Rings which -appear by Reflexion. And this alternate Reflexion and Transmission, as I -gather by the 24th Observation, continues for above an hundred -vicissitudes, and by the Observations in the next part of this Book, for -many thousands, being propagated from one Surface of a Glass Plate to -the other, though the thickness of the Plate be a quarter of an Inch or -above: So that this alternation seems to be propagated from every -refracting Surface to all distances without end or limitation. - -This alternate Reflexion and Refraction depends on both the Surfaces of -every thin Plate, because it depends on their distance. By the 21st -Observation, if either Surface of a thin Plate of _Muscovy_ Glass be -wetted, the Colours caused by the alternate Reflexion and Refraction -grow faint, and therefore it depends on them both. - -It is therefore perform'd at the second Surface; for if it were -perform'd at the first, before the Rays arrive at the second, it would -not depend on the second. - -It is also influenced by some action or disposition, propagated from the -first to the second, because otherwise at the second it would not depend -on the first. And this action or disposition, in its propagation, -intermits and returns by equal Intervals, because in all its progress it -inclines the Ray at one distance from the first Surface to be reflected -by the second, at another to be transmitted by it, and that by equal -Intervals for innumerable vicissitudes. And because the Ray is disposed -to Reflexion at the distances 1, 3, 5, 7, 9, &c. and to Transmission at -the distances 0, 2, 4, 6, 8, 10, &c. (for its transmission through the -first Surface, is at the distance 0, and it is transmitted through both -together, if their distance be infinitely little or much less than 1) -the disposition to be transmitted at the distances 2, 4, 6, 8, 10, &c. -is to be accounted a return of the same disposition which the Ray first -had at the distance 0, that is at its transmission through the first -refracting Surface. All which is the thing I would prove. - -What kind of action or disposition this is; Whether it consists in a -circulating or a vibrating motion of the Ray, or of the Medium, or -something else, I do not here enquire. Those that are averse from -assenting to any new Discoveries, but such as they can explain by an -Hypothesis, may for the present suppose, that as Stones by falling upon -Water put the Water into an undulating Motion, and all Bodies by -percussion excite vibrations in the Air; so the Rays of Light, by -impinging on any refracting or reflecting Surface, excite vibrations in -the refracting or reflecting Medium or Substance, and by exciting them -agitate the solid parts of the refracting or reflecting Body, and by -agitating them cause the Body to grow warm or hot; that the vibrations -thus excited are propagated in the refracting or reflecting Medium or -Substance, much after the manner that vibrations are propagated in the -Air for causing Sound, and move faster than the Rays so as to overtake -them; and that when any Ray is in that part of the vibration which -conspires with its Motion, it easily breaks through a refracting -Surface, but when it is in the contrary part of the vibration which -impedes its Motion, it is easily reflected; and, by consequence, that -every Ray is successively disposed to be easily reflected, or easily -transmitted, by every vibration which overtakes it. But whether this -Hypothesis be true or false I do not here consider. I content my self -with the bare Discovery, that the Rays of Light are by some cause or -other alternately disposed to be reflected or refracted for many -vicissitudes. - - -DEFINITION. - -_The returns of the disposition of any Ray to be reflected I will call -its_ Fits of easy Reflexion, _and those of its disposition to be -transmitted its_ Fits of easy Transmission, _and the space it passes -between every return and the next return, the_ Interval of its Fits. - - -PROP. XIII. - -_The reason why the Surfaces of all thick transparent Bodies reflect -part of the Light incident on them, and refract the rest, is, that some -Rays at their Incidence are in Fits of easy Reflexion, and others in -Fits of easy Transmission._ - -This may be gather'd from the 24th Observation, where the Light -reflected by thin Plates of Air and Glass, which to the naked Eye -appear'd evenly white all over the Plate, did through a Prism appear -waved with many Successions of Light and Darkness made by alternate Fits -of easy Reflexion and easy Transmission, the Prism severing and -distinguishing the Waves of which the white reflected Light was -composed, as was explain'd above. - -And hence Light is in Fits of easy Reflexion and easy Transmission, -before its Incidence on transparent Bodies. And probably it is put into -such fits at its first emission from luminous Bodies, and continues in -them during all its progress. For these Fits are of a lasting nature, as -will appear by the next part of this Book. - -In this Proposition I suppose the transparent Bodies to be thick; -because if the thickness of the Body be much less than the Interval of -the Fits of easy Reflexion and Transmission of the Rays, the Body loseth -its reflecting power. For if the Rays, which at their entering into the -Body are put into Fits of easy Transmission, arrive at the farthest -Surface of the Body before they be out of those Fits, they must be -transmitted. And this is the reason why Bubbles of Water lose their -reflecting power when they grow very thin; and why all opake Bodies, -when reduced into very small parts, become transparent. - - -PROP. XIV. - -_Those Surfaces of transparent Bodies, which if the Ray be in a Fit of -Refraction do refract it most strongly, if the Ray be in a Fit of -Reflexion do reflect it most easily._ - -For we shewed above, in _Prop._ 8. that the cause of Reflexion is not -the impinging of Light on the solid impervious parts of Bodies, but some -other power by which those solid parts act on Light at a distance. We -shewed also in _Prop._ 9. that Bodies reflect and refract Light by one -and the same power, variously exercised in various circumstances; and in -_Prop._ 1. that the most strongly refracting Surfaces reflect the most -Light: All which compared together evince and rarify both this and the -last Proposition. - - -PROP. XV. - -_In any one and the same sort of Rays, emerging in any Angle out of any -refracting Surface into one and the same Medium, the Interval of the -following Fits of easy Reflexion and Transmission are either accurately -or very nearly, as the Rectangle of the Secant of the Angle of -Refraction, and of the Secant of another Angle, whose Sine is the first -of 106 arithmetical mean Proportionals, between the Sines of Incidence -and Refraction, counted from the Sine of Refraction._ - -This is manifest by the 7th and 19th Observations. - - -PROP. XVI. - -_In several sorts of Rays emerging in equal Angles out of any refracting -Surface into the same Medium, the Intervals of the following Fits of -easy Reflexion and easy Transmission are either accurately, or very -nearly, as the Cube-Roots of the Squares of the lengths of a Chord, -which found the Notes in an Eight_, sol, la, fa, sol, la, mi, fa, sol, -_with all their intermediate degrees answering to the Colours of those -Rays, according to the Analogy described in the seventh Experiment of -the second Part of the first Book._ - -This is manifest by the 13th and 14th Observations. - - -PROP. XVII. - -_If Rays of any sort pass perpendicularly into several Mediums, the -Intervals of the Fits of easy Reflexion and Transmission in any one -Medium, are to those Intervals in any other, as the Sine of Incidence to -the Sine of Refraction, when the Rays pass out of the first of those two -Mediums into the second._ - -This is manifest by the 10th Observation. - - -PROP. XVIII. - -_If the Rays which paint the Colour in the Confine of yellow and orange -pass perpendicularly out of any Medium into Air, the Intervals of their -Fits of easy Reflexion are the 1/89000th part of an Inch. And of the -same length are the Intervals of their Fits of easy Transmission._ - -This is manifest by the 6th Observation. From these Propositions it is -easy to collect the Intervals of the Fits of easy Reflexion and easy -Transmission of any sort of Rays refracted in any angle into any Medium; -and thence to know, whether the Rays shall be reflected or transmitted -at their subsequent Incidence upon any other pellucid Medium. Which -thing, being useful for understanding the next part of this Book, was -here to be set down. And for the same reason I add the two following -Propositions. - - -PROP. XIX. - -_If any sort of Rays falling on the polite Surface of any pellucid -Medium be reflected back, the Fits of easy Reflexion, which they have at -the point of Reflexion, shall still continue to return; and the Returns -shall be at distances from the point of Reflexion in the arithmetical -progression of the Numbers 2, 4, 6, 8, 10, 12, &c. and between these -Fits the Rays shall be in Fits of easy Transmission._ - -For since the Fits of easy Reflexion and easy Transmission are of a -returning nature, there is no reason why these Fits, which continued -till the Ray arrived at the reflecting Medium, and there inclined the -Ray to Reflexion, should there cease. And if the Ray at the point of -Reflexion was in a Fit of easy Reflexion, the progression of the -distances of these Fits from that point must begin from 0, and so be of -the Numbers 0, 2, 4, 6, 8, &c. And therefore the progression of the -distances of the intermediate Fits of easy Transmission, reckon'd from -the same point, must be in the progression of the odd Numbers 1, 3, 5, -7, 9, &c. contrary to what happens when the Fits are propagated from -points of Refraction. - - -PROP. XX. - -_The Intervals of the Fits of easy Reflexion and easy Transmission, -propagated from points of Reflexion into any Medium, are equal to the -Intervals of the like Fits, which the same Rays would have, if refracted -into the same Medium in Angles of Refraction equal to their Angles of -Reflexion._ - -For when Light is reflected by the second Surface of thin Plates, it -goes out afterwards freely at the first Surface to make the Rings of -Colours which appear by Reflexion; and, by the freedom of its egress, -makes the Colours of these Rings more vivid and strong than those which -appear on the other side of the Plates by the transmitted Light. The -reflected Rays are therefore in Fits of easy Transmission at their -egress; which would not always happen, if the Intervals of the Fits -within the Plate after Reflexion were not equal, both in length and -number, to their Intervals before it. And this confirms also the -proportions set down in the former Proposition. For if the Rays both in -going in and out at the first Surface be in Fits of easy Transmission, -and the Intervals and Numbers of those Fits between the first and second -Surface, before and after Reflexion, be equal, the distances of the Fits -of easy Transmission from either Surface, must be in the same -progression after Reflexion as before; that is, from the first Surface -which transmitted them in the progression of the even Numbers 0, 2, 4, -6, 8, &c. and from the second which reflected them, in that of the odd -Numbers 1, 3, 5, 7, &c. But these two Propositions will become much more -evident by the Observations in the following part of this Book. - - - - -THE - -SECOND BOOK - -OF - -OPTICKS - - -_PART IV._ - -_Observations concerning the Reflexions and Colours of thick transparent -polish'd Plates._ - -There is no Glass or Speculum how well soever polished, but, besides the -Light which it refracts or reflects regularly, scatters every way -irregularly a faint Light, by means of which the polish'd Surface, when -illuminated in a dark room by a beam of the Sun's Light, may be easily -seen in all positions of the Eye. There are certain Phænomena of this -scatter'd Light, which when I first observed them, seem'd very strange -and surprizing to me. My Observations were as follows. - -_Obs._ 1. The Sun shining into my darken'd Chamber through a hole one -third of an Inch wide, I let the intromitted beam of Light fall -perpendicularly upon a Glass Speculum ground concave on one side and -convex on the other, to a Sphere of five Feet and eleven Inches Radius, -and Quick-silver'd over on the convex side. And holding a white opake -Chart, or a Quire of Paper at the center of the Spheres to which the -Speculum was ground, that is, at the distance of about five Feet and -eleven Inches from the Speculum, in such manner, that the beam of Light -might pass through a little hole made in the middle of the Chart to the -Speculum, and thence be reflected back to the same hole: I observed upon -the Chart four or five concentric Irises or Rings of Colours, like -Rain-bows, encompassing the hole much after the manner that those, which -in the fourth and following Observations of the first part of this Book -appear'd between the Object-glasses, encompassed the black Spot, but yet -larger and fainter than those. These Rings as they grew larger and -larger became diluter and fainter, so that the fifth was scarce visible. -Yet sometimes, when the Sun shone very clear, there appear'd faint -Lineaments of a sixth and seventh. If the distance of the Chart from the -Speculum was much greater or much less than that of six Feet, the Rings -became dilute and vanish'd. And if the distance of the Speculum from the -Window was much greater than that of six Feet, the reflected beam of -Light would be so broad at the distance of six Feet from the Speculum -where the Rings appear'd, as to obscure one or two of the innermost -Rings. And therefore I usually placed the Speculum at about six Feet -from the Window; so that its Focus might there fall in with the center -of its concavity at the Rings upon the Chart. And this Posture is always -to be understood in the following Observations where no other is -express'd. - -_Obs._ 2. The Colours of these Rain-bows succeeded one another from the -center outwards, in the same form and order with those which were made -in the ninth Observation of the first Part of this Book by Light not -reflected, but transmitted through the two Object-glasses. For, first, -there was in their common center a white round Spot of faint Light, -something broader than the reflected beam of Light, which beam sometimes -fell upon the middle of the Spot, and sometimes by a little inclination -of the Speculum receded from the middle, and left the Spot white to the -center. - -This white Spot was immediately encompassed with a dark grey or russet, -and that dark grey with the Colours of the first Iris; which Colours on -the inside next the dark grey were a little violet and indigo, and next -to that a blue, which on the outside grew pale, and then succeeded a -little greenish yellow, and after that a brighter yellow, and then on -the outward edge of the Iris a red which on the outside inclined to -purple. - -This Iris was immediately encompassed with a second, whose Colours were -in order from the inside outwards, purple, blue, green, yellow, light -red, a red mix'd with purple. - -Then immediately follow'd the Colours of the third Iris, which were in -order outwards a green inclining to purple, a good green, and a red more -bright than that of the former Iris. - -The fourth and fifth Iris seem'd of a bluish green within, and red -without, but so faintly that it was difficult to discern the Colours. - -_Obs._ 3. Measuring the Diameters of these Rings upon the Chart as -accurately as I could, I found them also in the same proportion to one -another with the Rings made by Light transmitted through the two -Object-glasses. For the Diameters of the four first of the bright Rings -measured between the brightest parts of their Orbits, at the distance of -six Feet from the Speculum were 1-11/16, 2-3/8, 2-11/12, 3-3/8 Inches, -whose Squares are in arithmetical progression of the numbers 1, 2, 3, 4. -If the white circular Spot in the middle be reckon'd amongst the Rings, -and its central Light, where it seems to be most luminous, be put -equipollent to an infinitely little Ring; the Squares of the Diameters -of the Rings will be in the progression 0, 1, 2, 3, 4, &c. I measured -also the Diameters of the dark Circles between these luminous ones, and -found their Squares in the progression of the numbers 1/2, 1-1/2, 2-1/2, -3-1/2, &c. the Diameters of the first four at the distance of six Feet -from the Speculum, being 1-3/16, 2-1/16, 2-2/3, 3-3/20 Inches. If the -distance of the Chart from the Speculum was increased or diminished, the -Diameters of the Circles were increased or diminished proportionally. - -_Obs._ 4. By the analogy between these Rings and those described in the -Observations of the first Part of this Book, I suspected that there -were many more of them which spread into one another, and by interfering -mix'd their Colours, and diluted one another so that they could not be -seen apart. I viewed them therefore through a Prism, as I did those in -the 24th Observation of the first Part of this Book. And when the Prism -was so placed as by refracting the Light of their mix'd Colours to -separate them, and distinguish the Rings from one another, as it did -those in that Observation, I could then see them distincter than before, -and easily number eight or nine of them, and sometimes twelve or -thirteen. And had not their Light been so very faint, I question not but -that I might have seen many more. - -_Obs._ 5. Placing a Prism at the Window to refract the intromitted beam -of Light, and cast the oblong Spectrum of Colours on the Speculum: I -covered the Speculum with a black Paper which had in the middle of it a -hole to let any one of the Colours pass through to the Speculum, whilst -the rest were intercepted by the Paper. And now I found Rings of that -Colour only which fell upon the Speculum. If the Speculum was -illuminated with red, the Rings were totally red with dark Intervals, if -with blue they were totally blue, and so of the other Colours. And when -they were illuminated with any one Colour, the Squares of their -Diameters measured between their most luminous Parts, were in the -arithmetical Progression of the Numbers, 0, 1, 2, 3, 4 and the Squares -of the Diameters of their dark Intervals in the Progression of the -intermediate Numbers 1/2, 1-1/2, 2-1/2, 3-1/2. But if the Colour was -varied, they varied their Magnitude. In the red they were largest, in -the indigo and violet least, and in the intermediate Colours yellow, -green, and blue, they were of several intermediate Bignesses answering -to the Colour, that is, greater in yellow than in green, and greater in -green than in blue. And hence I knew, that when the Speculum was -illuminated with white Light, the red and yellow on the outside of the -Rings were produced by the least refrangible Rays, and the blue and -violet by the most refrangible, and that the Colours of each Ring spread -into the Colours of the neighbouring Rings on either side, after the -manner explain'd in the first and second Part of this Book, and by -mixing diluted one another so that they could not be distinguish'd, -unless near the Center where they were least mix'd. For in this -Observation I could see the Rings more distinctly, and to a greater -Number than before, being able in the yellow Light to number eight or -nine of them, besides a faint shadow of a tenth. To satisfy my self how -much the Colours of the several Rings spread into one another, I -measured the Diameters of the second and third Rings, and found them -when made by the Confine of the red and orange to be to the same -Diameters when made by the Confine of blue and indigo, as 9 to 8, or -thereabouts. For it was hard to determine this Proportion accurately. -Also the Circles made successively by the red, yellow, and green, -differ'd more from one another than those made successively by the -green, blue, and indigo. For the Circle made by the violet was too dark -to be seen. To carry on the Computation, let us therefore suppose that -the Differences of the Diameters of the Circles made by the outmost red, -the Confine of red and orange, the Confine of orange and yellow, the -Confine of yellow and green, the Confine of green and blue, the Confine -of blue and indigo, the Confine of indigo and violet, and outmost -violet, are in proportion as the Differences of the Lengths of a -Monochord which sound the Tones in an Eight; _sol_, _la_, _fa_, _sol_, -_la_, _mi_, _fa_, _sol_, that is, as the Numbers 1/9, 1/18, 1/12, 1/12, -2/27, 1/27, 1/18. And if the Diameter of the Circle made by the Confine -of red and orange be 9A, and that of the Circle made by the Confine of -blue and indigo be 8A as above; their difference 9A-8A will be to the -difference of the Diameters of the Circles made by the outmost red, and -by the Confine of red and orange, as 1/18 + 1/12 + 1/12 + 2/27 to 1/9, -that is as 8/27 to 1/9, or 8 to 3, and to the difference of the Circles -made by the outmost violet, and by the Confine of blue and indigo, as -1/18 + 1/12 + 1/12 + 2/27 to 1/27 + 1/18, that is, as 8/27 to 5/54, or -as 16 to 5. And therefore these differences will be 3/8A and 5/16A. Add -the first to 9A and subduct the last from 8A, and you will have the -Diameters of the Circles made by the least and most refrangible Rays -75/8A and ((61-1/2)/8)A. These diameters are therefore to one another as -75 to 61-1/2 or 50 to 41, and their Squares as 2500 to 1681, that is, as -3 to 2 very nearly. Which proportion differs not much from the -proportion of the Diameters of the Circles made by the outmost red and -outmost violet, in the 13th Observation of the first part of this Book. - -_Obs._ 6. Placing my Eye where these Rings appear'd plainest, I saw the -Speculum tinged all over with Waves of Colours, (red, yellow, green, -blue;) like those which in the Observations of the first part of this -Book appeared between the Object-glasses, and upon Bubbles of Water, but -much larger. And after the manner of those, they were of various -magnitudes in various Positions of the Eye, swelling and shrinking as I -moved my Eye this way and that way. They were formed like Arcs of -concentrick Circles, as those were; and when my Eye was over against the -center of the concavity of the Speculum, (that is, 5 Feet and 10 Inches -distant from the Speculum,) their common center was in a right Line with -that center of concavity, and with the hole in the Window. But in other -postures of my Eye their center had other positions. They appear'd by -the Light of the Clouds propagated to the Speculum through the hole in -the Window; and when the Sun shone through that hole upon the Speculum, -his Light upon it was of the Colour of the Ring whereon it fell, but by -its splendor obscured the Rings made by the Light of the Clouds, unless -when the Speculum was removed to a great distance from the Window, so -that his Light upon it might be broad and faint. By varying the position -of my Eye, and moving it nearer to or farther from the direct beam of -the Sun's Light, the Colour of the Sun's reflected Light constantly -varied upon the Speculum, as it did upon my Eye, the same Colour always -appearing to a Bystander upon my Eye which to me appear'd upon the -Speculum. And thence I knew that the Rings of Colours upon the Chart -were made by these reflected Colours, propagated thither from the -Speculum in several Angles, and that their production depended not upon -the termination of Light and Shadow. - -_Obs._ 7. By the Analogy of all these Phænomena with those of the like -Rings of Colours described in the first part of this Book, it seemed to -me that these Colours were produced by this thick Plate of Glass, much -after the manner that those were produced by very thin Plates. For, upon -trial, I found that if the Quick-silver were rubb'd off from the -backside of the Speculum, the Glass alone would cause the same Rings of -Colours, but much more faint than before; and therefore the Phænomenon -depends not upon the Quick-silver, unless so far as the Quick-silver by -increasing the Reflexion of the backside of the Glass increases the -Light of the Rings of Colours. I found also that a Speculum of Metal -without Glass made some Years since for optical uses, and very well -wrought, produced none of those Rings; and thence I understood that -these Rings arise not from one specular Surface alone, but depend upon -the two Surfaces of the Plate of Glass whereof the Speculum was made, -and upon the thickness of the Glass between them. For as in the 7th and -19th Observations of the first part of this Book a thin Plate of Air, -Water, or Glass of an even thickness appeared of one Colour when the -Rays were perpendicular to it, of another when they were a little -oblique, of another when more oblique, of another when still more -oblique, and so on; so here, in the sixth Observation, the Light which -emerged out of the Glass in several Obliquities, made the Glass appear -of several Colours, and being propagated in those Obliquities to the -Chart, there painted Rings of those Colours. And as the reason why a -thin Plate appeared of several Colours in several Obliquities of the -Rays, was, that the Rays of one and the same sort are reflected by the -thin Plate at one obliquity and transmitted at another, and those of -other sorts transmitted where these are reflected, and reflected where -these are transmitted: So the reason why the thick Plate of Glass -whereof the Speculum was made did appear of various Colours in various -Obliquities, and in those Obliquities propagated those Colours to the -Chart, was, that the Rays of one and the same sort did at one Obliquity -emerge out of the Glass, at another did not emerge, but were reflected -back towards the Quick-silver by the hither Surface of the Glass, and -accordingly as the Obliquity became greater and greater, emerged and -were reflected alternately for many Successions; and that in one and the -same Obliquity the Rays of one sort were reflected, and those of another -transmitted. This is manifest by the fifth Observation of this part of -this Book. For in that Observation, when the Speculum was illuminated by -any one of the prismatick Colours, that Light made many Rings of the -same Colour upon the Chart with dark Intervals, and therefore at its -emergence out of the Speculum was alternately transmitted and not -transmitted from the Speculum to the Chart for many Successions, -according to the various Obliquities of its Emergence. And when the -Colour cast on the Speculum by the Prism was varied, the Rings became of -the Colour cast on it, and varied their bigness with their Colour, and -therefore the Light was now alternately transmitted and not transmitted -from the Speculum to the Chart at other Obliquities than before. It -seemed to me therefore that these Rings were of one and the same -original with those of thin Plates, but yet with this difference, that -those of thin Plates are made by the alternate Reflexions and -Transmissions of the Rays at the second Surface of the Plate, after one -passage through it; but here the Rays go twice through the Plate before -they are alternately reflected and transmitted. First, they go through -it from the first Surface to the Quick-silver, and then return through -it from the Quick-silver to the first Surface, and there are either -transmitted to the Chart or reflected back to the Quick-silver, -accordingly as they are in their Fits of easy Reflexion or Transmission -when they arrive at that Surface. For the Intervals of the Fits of the -Rays which fall perpendicularly on the Speculum, and are reflected back -in the same perpendicular Lines, by reason of the equality of these -Angles and Lines, are of the same length and number within the Glass -after Reflexion as before, by the 19th Proposition of the third part of -this Book. And therefore since all the Rays that enter through the -first Surface are in their Fits of easy Transmission at their entrance, -and as many of these as are reflected by the second are in their Fits of -easy Reflexion there, all these must be again in their Fits of easy -Transmission at their return to the first, and by consequence there go -out of the Glass to the Chart, and form upon it the white Spot of Light -in the center of the Rings. For the reason holds good in all sorts of -Rays, and therefore all sorts must go out promiscuously to that Spot, -and by their mixture cause it to be white. But the Intervals of the Fits -of those Rays which are reflected more obliquely than they enter, must -be greater after Reflexion than before, by the 15th and 20th -Propositions. And thence it may happen that the Rays at their return to -the first Surface, may in certain Obliquities be in Fits of easy -Reflexion, and return back to the Quick-silver, and in other -intermediate Obliquities be again in Fits of easy Transmission, and so -go out to the Chart, and paint on it the Rings of Colours about the -white Spot. And because the Intervals of the Fits at equal obliquities -are greater and fewer in the less refrangible Rays, and less and more -numerous in the more refrangible, therefore the less refrangible at -equal obliquities shall make fewer Rings than the more refrangible, and -the Rings made by those shall be larger than the like number of Rings -made by these; that is, the red Rings shall be larger than the yellow, -the yellow than the green, the green than the blue, and the blue than -the violet, as they were really found to be in the fifth Observation. -And therefore the first Ring of all Colours encompassing the white Spot -of Light shall be red without any violet within, and yellow, and green, -and blue in the middle, as it was found in the second Observation; and -these Colours in the second Ring, and those that follow, shall be more -expanded, till they spread into one another, and blend one another by -interfering. - -These seem to be the reasons of these Rings in general; and this put me -upon observing the thickness of the Glass, and considering whether the -dimensions and proportions of the Rings may be truly derived from it by -computation. - -_Obs._ 8. I measured therefore the thickness of this concavo-convex -Plate of Glass, and found it every where 1/4 of an Inch precisely. Now, -by the sixth Observation of the first Part of this Book, a thin Plate of -Air transmits the brightest Light of the first Ring, that is, the bright -yellow, when its thickness is the 1/89000th part of an Inch; and by the -tenth Observation of the same Part, a thin Plate of Glass transmits the -same Light of the same Ring, when its thickness is less in proportion of -the Sine of Refraction to the Sine of Incidence, that is, when its -thickness is the 11/1513000th or 1/137545th part of an Inch, supposing -the Sines are as 11 to 17. And if this thickness be doubled, it -transmits the same bright Light of the second Ring; if tripled, it -transmits that of the third, and so on; the bright yellow Light in all -these cases being in its Fits of Transmission. And therefore if its -thickness be multiplied 34386 times, so as to become 1/4 of an Inch, it -transmits the same bright Light of the 34386th Ring. Suppose this be the -bright yellow Light transmitted perpendicularly from the reflecting -convex side of the Glass through the concave side to the white Spot in -the center of the Rings of Colours on the Chart: And by a Rule in the -7th and 19th Observations in the first Part of this Book, and by the -15th and 20th Propositions of the third Part of this Book, if the Rays -be made oblique to the Glass, the thickness of the Glass requisite to -transmit the same bright Light of the same Ring in any obliquity, is to -this thickness of 1/4 of an Inch, as the Secant of a certain Angle to -the Radius, the Sine of which Angle is the first of an hundred and six -arithmetical Means between the Sines of Incidence and Refraction, -counted from the Sine of Incidence when the Refraction is made out of -any plated Body into any Medium encompassing it; that is, in this case, -out of Glass into Air. Now if the thickness of the Glass be increased by -degrees, so as to bear to its first thickness, (_viz._ that of a quarter -of an Inch,) the Proportions which 34386 (the number of Fits of the -perpendicular Rays in going through the Glass towards the white Spot in -the center of the Rings,) hath to 34385, 34384, 34383, and 34382, (the -numbers of the Fits of the oblique Rays in going through the Glass -towards the first, second, third, and fourth Rings of Colours,) and if -the first thickness be divided into 100000000 equal parts, the increased -thicknesses will be 100002908, 100005816, 100008725, and 100011633, and -the Angles of which these thicknesses are Secants will be 26´ 13´´, 37´ -5´´, 45´ 6´´, and 52´ 26´´, the Radius being 100000000; and the Sines of -these Angles are 762, 1079, 1321, and 1525, and the proportional Sines -of Refraction 1172, 1659, 2031, and 2345, the Radius being 100000. For -since the Sines of Incidence out of Glass into Air are to the Sines of -Refraction as 11 to 17, and to the above-mentioned Secants as 11 to the -first of 106 arithmetical Means between 11 and 17, that is, as 11 to -11-6/106, those Secants will be to the Sines of Refraction as 11-6/106, -to 17, and by this Analogy will give these Sines. So then, if the -obliquities of the Rays to the concave Surface of the Glass be such that -the Sines of their Refraction in passing out of the Glass through that -Surface into the Air be 1172, 1659, 2031, 2345, the bright Light of the -34386th Ring shall emerge at the thicknesses of the Glass, which are to -1/4 of an Inch as 34386 to 34385, 34384, 34383, 34382, respectively. And -therefore, if the thickness in all these Cases be 1/4 of an Inch (as it -is in the Glass of which the Speculum was made) the bright Light of the -34385th Ring shall emerge where the Sine of Refraction is 1172, and that -of the 34384th, 34383th, and 34382th Ring where the Sine is 1659, 2031, -and 2345 respectively. And in these Angles of Refraction the Light of -these Rings shall be propagated from the Speculum to the Chart, and -there paint Rings about the white central round Spot of Light which we -said was the Light of the 34386th Ring. And the Semidiameters of these -Rings shall subtend the Angles of Refraction made at the -Concave-Surface of the Speculum, and by consequence their Diameters -shall be to the distance of the Chart from the Speculum as those Sines -of Refraction doubled are to the Radius, that is, as 1172, 1659, 2031, -and 2345, doubled are to 100000. And therefore, if the distance of the -Chart from the Concave-Surface of the Speculum be six Feet (as it was in -the third of these Observations) the Diameters of the Rings of this -bright yellow Light upon the Chart shall be 1'688, 2'389, 2'925, 3'375 -Inches: For these Diameters are to six Feet, as the above-mention'd -Sines doubled are to the Radius. Now, these Diameters of the bright -yellow Rings, thus found by Computation are the very same with those -found in the third of these Observations by measuring them, _viz._ with -1-11/16, 2-3/8, 2-11/12, and 3-3/8 Inches, and therefore the Theory of -deriving these Rings from the thickness of the Plate of Glass of which -the Speculum was made, and from the Obliquity of the emerging Rays -agrees with the Observation. In this Computation I have equalled the -Diameters of the bright Rings made by Light of all Colours, to the -Diameters of the Rings made by the bright yellow. For this yellow makes -the brightest Part of the Rings of all Colours. If you desire the -Diameters of the Rings made by the Light of any other unmix'd Colour, -you may find them readily by putting them to the Diameters of the bright -yellow ones in a subduplicate Proportion of the Intervals of the Fits of -the Rays of those Colours when equally inclined to the refracting or -reflecting Surface which caused those Fits, that is, by putting the -Diameters of the Rings made by the Rays in the Extremities and Limits of -the seven Colours, red, orange, yellow, green, blue, indigo, violet, -proportional to the Cube-roots of the Numbers, 1, 8/9, 5/6, 3/4, 2/3, -3/5, 9/16, 1/2, which express the Lengths of a Monochord sounding the -Notes in an Eighth: For by this means the Diameters of the Rings of -these Colours will be found pretty nearly in the same Proportion to one -another, which they ought to have by the fifth of these Observations. - -And thus I satisfy'd my self, that these Rings were of the same kind and -Original with those of thin Plates, and by consequence that the Fits or -alternate Dispositions of the Rays to be reflected and transmitted are -propagated to great distances from every reflecting and refracting -Surface. But yet to put the matter out of doubt, I added the following -Observation. - -_Obs._ 9. If these Rings thus depend on the thickness of the Plate of -Glass, their Diameters at equal distances from several Speculums made of -such concavo-convex Plates of Glass as are ground on the same Sphere, -ought to be reciprocally in a subduplicate Proportion of the thicknesses -of the Plates of Glass. And if this Proportion be found true by -experience it will amount to a demonstration that these Rings (like -those formed in thin Plates) do depend on the thickness of the Glass. I -procured therefore another concavo-convex Plate of Glass ground on both -sides to the same Sphere with the former Plate. Its thickness was 5/62 -Parts of an Inch; and the Diameters of the three first bright Rings -measured between the brightest Parts of their Orbits at the distance of -six Feet from the Glass were 3·4-1/6·5-1/8· Inches. Now, the thickness -of the other Glass being 1/4 of an Inch was to the thickness of this -Glass as 1/4 to 5/62, that is as 31 to 10, or 310000000 to 100000000, -and the Roots of these Numbers are 17607 and 10000, and in the -Proportion of the first of these Roots to the second are the Diameters -of the bright Rings made in this Observation by the thinner Glass, -3·4-1/6·5-1/8, to the Diameters of the same Rings made in the third of -these Observations by the thicker Glass 1-11/16, 2-3/8. 2-11/12, that -is, the Diameters of the Rings are reciprocally in a subduplicate -Proportion of the thicknesses of the Plates of Glass. - -So then in Plates of Glass which are alike concave on one side, and -alike convex on the other side, and alike quick-silver'd on the convex -sides, and differ in nothing but their thickness, the Diameters of the -Rings are reciprocally in a subduplicate Proportion of the thicknesses -of the Plates. And this shews sufficiently that the Rings depend on both -the Surfaces of the Glass. They depend on the convex Surface, because -they are more luminous when that Surface is quick-silver'd over than -when it is without Quick-silver. They depend also upon the concave -Surface, because without that Surface a Speculum makes them not. They -depend on both Surfaces, and on the distances between them, because -their bigness is varied by varying only that distance. And this -dependence is of the same kind with that which the Colours of thin -Plates have on the distance of the Surfaces of those Plates, because the -bigness of the Rings, and their Proportion to one another, and the -variation of their bigness arising from the variation of the thickness -of the Glass, and the Orders of their Colours, is such as ought to -result from the Propositions in the end of the third Part of this Book, -derived from the Phænomena of the Colours of thin Plates set down in the -first Part. - -There are yet other Phænomena of these Rings of Colours, but such as -follow from the same Propositions, and therefore confirm both the Truth -of those Propositions, and the Analogy between these Rings and the Rings -of Colours made by very thin Plates. I shall subjoin some of them. - -_Obs._ 10. When the beam of the Sun's Light was reflected back from the -Speculum not directly to the hole in the Window, but to a place a little -distant from it, the common center of that Spot, and of all the Rings of -Colours fell in the middle way between the beam of the incident Light, -and the beam of the reflected Light, and by consequence in the center of -the spherical concavity of the Speculum, whenever the Chart on which the -Rings of Colours fell was placed at that center. And as the beam of -reflected Light by inclining the Speculum receded more and more from the -beam of incident Light and from the common center of the colour'd Rings -between them, those Rings grew bigger and bigger, and so also did the -white round Spot, and new Rings of Colours emerged successively out of -their common center, and the white Spot became a white Ring -encompassing them; and the incident and reflected beams of Light always -fell upon the opposite parts of this white Ring, illuminating its -Perimeter like two mock Suns in the opposite parts of an Iris. So then -the Diameter of this Ring, measured from the middle of its Light on one -side to the middle of its Light on the other side, was always equal to -the distance between the middle of the incident beam of Light, and the -middle of the reflected beam measured at the Chart on which the Rings -appeared: And the Rays which form'd this Ring were reflected by the -Speculum in Angles equal to their Angles of Incidence, and by -consequence to their Angles of Refraction at their entrance into the -Glass, but yet their Angles of Reflexion were not in the same Planes -with their Angles of Incidence. - -_Obs._ 11. The Colours of the new Rings were in a contrary order to -those of the former, and arose after this manner. The white round Spot -of Light in the middle of the Rings continued white to the center till -the distance of the incident and reflected beams at the Chart was about -7/8 parts of an Inch, and then it began to grow dark in the middle. And -when that distance was about 1-3/16 of an Inch, the white Spot was -become a Ring encompassing a dark round Spot which in the middle -inclined to violet and indigo. And the luminous Rings encompassing it -were grown equal to those dark ones which in the four first Observations -encompassed them, that is to say, the white Spot was grown a white Ring -equal to the first of those dark Rings, and the first of those luminous -Rings was now grown equal to the second of those dark ones, and the -second of those luminous ones to the third of those dark ones, and so -on. For the Diameters of the luminous Rings were now 1-3/16, 2-1/16, -2-2/3, 3-3/20, &c. Inches. - -When the distance between the incident and reflected beams of Light -became a little bigger, there emerged out of the middle of the dark Spot -after the indigo a blue, and then out of that blue a pale green, and -soon after a yellow and red. And when the Colour at the center was -brightest, being between yellow and red, the bright Rings were grown -equal to those Rings which in the four first Observations next -encompassed them; that is to say, the white Spot in the middle of those -Rings was now become a white Ring equal to the first of those bright -Rings, and the first of those bright ones was now become equal to the -second of those, and so on. For the Diameters of the white Ring, and of -the other luminous Rings encompassing it, were now 1-11/16, 2-3/8, -2-11/12, 3-3/8, &c. or thereabouts. - -When the distance of the two beams of Light at the Chart was a little -more increased, there emerged out of the middle in order after the red, -a purple, a blue, a green, a yellow, and a red inclining much to purple, -and when the Colour was brightest being between yellow and red, the -former indigo, blue, green, yellow and red, were become an Iris or Ring -of Colours equal to the first of those luminous Rings which appeared in -the four first Observations, and the white Ring which was now become -the second of the luminous Rings was grown equal to the second of those, -and the first of those which was now become the third Ring was become -equal to the third of those, and so on. For their Diameters were -1-11/16, 2-3/8, 2-11/12, 3-3/8 Inches, the distance of the two beams of -Light, and the Diameter of the white Ring being 2-3/8 Inches. - -When these two beams became more distant there emerged out of the middle -of the purplish red, first a darker round Spot, and then out of the -middle of that Spot a brighter. And now the former Colours (purple, -blue, green, yellow, and purplish red) were become a Ring equal to the -first of the bright Rings mentioned in the four first Observations, and -the Rings about this Ring were grown equal to the Rings about that -respectively; the distance between the two beams of Light and the -Diameter of the white Ring (which was now become the third Ring) being -about 3 Inches. - -The Colours of the Rings in the middle began now to grow very dilute, -and if the distance between the two Beams was increased half an Inch, or -an Inch more, they vanish'd whilst the white Ring, with one or two of -the Rings next it on either side, continued still visible. But if the -distance of the two beams of Light was still more increased, these also -vanished: For the Light which coming from several parts of the hole in -the Window fell upon the Speculum in several Angles of Incidence, made -Rings of several bignesses, which diluted and blotted out one another, -as I knew by intercepting some part of that Light. For if I intercepted -that part which was nearest to the Axis of the Speculum the Rings would -be less, if the other part which was remotest from it they would be -bigger. - -_Obs._ 12. When the Colours of the Prism were cast successively on the -Speculum, that Ring which in the two last Observations was white, was of -the same bigness in all the Colours, but the Rings without it were -greater in the green than in the blue, and still greater in the yellow, -and greatest in the red. And, on the contrary, the Rings within that -white Circle were less in the green than in the blue, and still less in -the yellow, and least in the red. For the Angles of Reflexion of those -Rays which made this Ring, being equal to their Angles of Incidence, the -Fits of every reflected Ray within the Glass after Reflexion are equal -in length and number to the Fits of the same Ray within the Glass before -its Incidence on the reflecting Surface. And therefore since all the -Rays of all sorts at their entrance into the Glass were in a Fit of -Transmission, they were also in a Fit of Transmission at their returning -to the same Surface after Reflexion; and by consequence were -transmitted, and went out to the white Ring on the Chart. This is the -reason why that Ring was of the same bigness in all the Colours, and why -in a mixture of all it appears white. But in Rays which are reflected in -other Angles, the Intervals of the Fits of the least refrangible being -greatest, make the Rings of their Colour in their progress from this -white Ring, either outwards or inwards, increase or decrease by the -greatest steps; so that the Rings of this Colour without are greatest, -and within least. And this is the reason why in the last Observation, -when the Speculum was illuminated with white Light, the exterior Rings -made by all Colours appeared red without and blue within, and the -interior blue without and red within. - -These are the Phænomena of thick convexo-concave Plates of Glass, which -are every where of the same thickness. There are yet other Phænomena -when these Plates are a little thicker on one side than on the other, -and others when the Plates are more or less concave than convex, or -plano-convex, or double-convex. For in all these cases the Plates make -Rings of Colours, but after various manners; all which, so far as I have -yet observed, follow from the Propositions in the end of the third part -of this Book, and so conspire to confirm the truth of those -Propositions. But the Phænomena are too various, and the Calculations -whereby they follow from those Propositions too intricate to be here -prosecuted. I content my self with having prosecuted this kind of -Phænomena so far as to discover their Cause, and by discovering it to -ratify the Propositions in the third Part of this Book. - -_Obs._ 13. As Light reflected by a Lens quick-silver'd on the backside -makes the Rings of Colours above described, so it ought to make the like -Rings of Colours in passing through a drop of Water. At the first -Reflexion of the Rays within the drop, some Colours ought to be -transmitted, as in the case of a Lens, and others to be reflected back -to the Eye. For instance, if the Diameter of a small drop or globule of -Water be about the 500th part of an Inch, so that a red-making Ray in -passing through the middle of this globule has 250 Fits of easy -Transmission within the globule, and that all the red-making Rays which -are at a certain distance from this middle Ray round about it have 249 -Fits within the globule, and all the like Rays at a certain farther -distance round about it have 248 Fits, and all those at a certain -farther distance 247 Fits, and so on; these concentrick Circles of Rays -after their transmission, falling on a white Paper, will make -concentrick Rings of red upon the Paper, supposing the Light which -passes through one single globule, strong enough to be sensible. And, in -like manner, the Rays of other Colours will make Rings of other Colours. -Suppose now that in a fair Day the Sun shines through a thin Cloud of -such globules of Water or Hail, and that the globules are all of the -same bigness; and the Sun seen through this Cloud shall appear -encompassed with the like concentrick Rings of Colours, and the Diameter -of the first Ring of red shall be 7-1/4 Degrees, that of the second -10-1/4 Degrees, that of the third 12 Degrees 33 Minutes. And accordingly -as the Globules of Water are bigger or less, the Rings shall be less or -bigger. This is the Theory, and Experience answers it. For in _June_ -1692, I saw by reflexion in a Vessel of stagnating Water three Halos, -Crowns, or Rings of Colours about the Sun, like three little Rain-bows, -concentrick to his Body. The Colours of the first or innermost Crown -were blue next the Sun, red without, and white in the middle between the -blue and red. Those of the second Crown were purple and blue within, and -pale red without, and green in the middle. And those of the third were -pale blue within, and pale red without; these Crowns enclosed one -another immediately, so that their Colours proceeded in this continual -order from the Sun outward: blue, white, red; purple, blue, green, pale -yellow and red; pale blue, pale red. The Diameter of the second Crown -measured from the middle of the yellow and red on one side of the Sun, -to the middle of the same Colour on the other side was 9-1/3 Degrees, or -thereabouts. The Diameters of the first and third I had not time to -measure, but that of the first seemed to be about five or six Degrees, -and that of the third about twelve. The like Crowns appear sometimes -about the Moon; for in the beginning of the Year 1664, _Febr._ 19th at -Night, I saw two such Crowns about her. The Diameter of the first or -innermost was about three Degrees, and that of the second about five -Degrees and an half. Next about the Moon was a Circle of white, and next -about that the inner Crown, which was of a bluish green within next the -white, and of a yellow and red without, and next about these Colours -were blue and green on the inside of the outward Crown, and red on the -outside of it. At the same time there appear'd a Halo about 22 Degrees -35´ distant from the center of the Moon. It was elliptical, and its long -Diameter was perpendicular to the Horizon, verging below farthest from -the Moon. I am told that the Moon has sometimes three or more -concentrick Crowns of Colours encompassing one another next about her -Body. The more equal the globules of Water or Ice are to one another, -the more Crowns of Colours will appear, and the Colours will be the more -lively. The Halo at the distance of 22-1/2 Degrees from the Moon is of -another sort. By its being oval and remoter from the Moon below than -above, I conclude, that it was made by Refraction in some sort of Hail -or Snow floating in the Air in an horizontal posture, the refracting -Angle being about 58 or 60 Degrees. - - - - -THE - -THIRD BOOK - -OF - -OPTICKS - - -_PART I._ - -_Observations concerning the Inflexions of the Rays of Light, and the -Colours made thereby._ - -Grimaldo has inform'd us, that if a beam of the Sun's Light be let into -a dark Room through a very small hole, the Shadows of things in this -Light will be larger than they ought to be if the Rays went on by the -Bodies in straight Lines, and that these Shadows have three parallel -Fringes, Bands or Ranks of colour'd Light adjacent to them. But if the -Hole be enlarged the Fringes grow broad and run into one another, so -that they cannot be distinguish'd. These broad Shadows and Fringes have -been reckon'd by some to proceed from the ordinary refraction of the -Air, but without due examination of the Matter. For the circumstances of -the Phænomenon, so far as I have observed them, are as follows. - -_Obs._ 1. I made in a piece of Lead a small Hole with a Pin, whose -breadth was the 42d part of an Inch. For 21 of those Pins laid together -took up the breadth of half an Inch. Through this Hole I let into my -darken'd Chamber a beam of the Sun's Light, and found that the Shadows -of Hairs, Thred, Pins, Straws, and such like slender Substances placed -in this beam of Light, were considerably broader than they ought to be, -if the Rays of Light passed on by these Bodies in right Lines. And -particularly a Hair of a Man's Head, whose breadth was but the 280th -part of an Inch, being held in this Light, at the distance of about -twelve Feet from the Hole, did cast a Shadow which at the distance of -four Inches from the Hair was the sixtieth part of an Inch broad, that -is, above four times broader than the Hair, and at the distance of two -Feet from the Hair was about the eight and twentieth part of an Inch -broad, that is, ten times broader than the Hair, and at the distance of -ten Feet was the eighth part of an Inch broad, that is 35 times broader. - -Nor is it material whether the Hair be encompassed with Air, or with any -other pellucid Substance. For I wetted a polish'd Plate of Glass, and -laid the Hair in the Water upon the Glass, and then laying another -polish'd Plate of Glass upon it, so that the Water might fill up the -space between the Glasses, I held them in the aforesaid beam of Light, -so that the Light might pass through them perpendicularly, and the -Shadow of the Hair was at the same distances as big as before. The -Shadows of Scratches made in polish'd Plates of Glass were also much -broader than they ought to be, and the Veins in polish'd Plates of Glass -did also cast the like broad Shadows. And therefore the great breadth of -these Shadows proceeds from some other cause than the Refraction of the -Air. - -Let the Circle X [in _Fig._ 1.] represent the middle of the Hair; ADG, -BEH, CFI, three Rays passing by one side of the Hair at several -distances; KNQ, LOR, MPS, three other Rays passing by the other side of -the Hair at the like distances; D, E, F, and N, O, P, the places where -the Rays are bent in their passage by the Hair; G, H, I, and Q, R, S, -the places where the Rays fall on a Paper GQ; IS the breadth of the -Shadow of the Hair cast on the Paper, and TI, VS, two Rays passing to -the Points I and S without bending when the Hair is taken away. And it's -manifest that all the Light between these two Rays TI and VS is bent in -passing by the Hair, and turned aside from the Shadow IS, because if any -part of this Light were not bent it would fall on the Paper within the -Shadow, and there illuminate the Paper, contrary to experience. And -because when the Paper is at a great distance from the Hair, the Shadow -is broad, and therefore the Rays TI and VS are at a great distance from -one another, it follows that the Hair acts upon the Rays of Light at a -good distance in their passing by it. But the Action is strongest on the -Rays which pass by at least distances, and grows weaker and weaker -accordingly as the Rays pass by at distances greater and greater, as is -represented in the Scheme: For thence it comes to pass, that the Shadow -of the Hair is much broader in proportion to the distance of the Paper -from the Hair, when the Paper is nearer the Hair, than when it is at a -great distance from it. - -_Obs._ 2. The Shadows of all Bodies (Metals, Stones, Glass, Wood, Horn, -Ice, &c.) in this Light were border'd with three Parallel Fringes or -Bands of colour'd Light, whereof that which was contiguous to the Shadow -was broadest and most luminous, and that which was remotest from it was -narrowest, and so faint, as not easily to be visible. It was difficult -to distinguish the Colours, unless when the Light fell very obliquely -upon a smooth Paper, or some other smooth white Body, so as to make them -appear much broader than they would otherwise do. And then the Colours -were plainly visible in this Order: The first or innermost Fringe was -violet and deep blue next the Shadow, and then light blue, green, and -yellow in the middle, and red without. The second Fringe was almost -contiguous to the first, and the third to the second, and both were blue -within, and yellow and red without, but their Colours were very faint, -especially those of the third. The Colours therefore proceeded in this -order from the Shadow; violet, indigo, pale blue, green, yellow, red; -blue, yellow, red; pale blue, pale yellow and red. The Shadows made by -Scratches and Bubbles in polish'd Plates of Glass were border'd with the -like Fringes of colour'd Light. And if Plates of Looking-glass sloop'd -off near the edges with a Diamond-cut, be held in the same beam of -Light, the Light which passes through the parallel Planes of the Glass -will be border'd with the like Fringes of Colours where those Planes -meet with the Diamond-cut, and by this means there will sometimes appear -four or five Fringes of Colours. Let AB, CD [in _Fig._ 2.] represent the -parallel Planes of a Looking-glass, and BD the Plane of the Diamond-cut, -making at B a very obtuse Angle with the Plane AB. And let all the Light -between the Rays ENI and FBM pass directly through the parallel Planes -of the Glass, and fall upon the Paper between I and M, and all the Light -between the Rays GO and HD be refracted by the oblique Plane of the -Diamond-cut BD, and fall upon the Paper between K and L; and the Light -which passes directly through the parallel Planes of the Glass, and -falls upon the Paper between I and M, will be border'd with three or -more Fringes at M. - -[Illustration: FIG. 1.] - -[Illustration: FIG. 2.] - -So by looking on the Sun through a Feather or black Ribband held close -to the Eye, several Rain-bows will appear; the Shadows which the Fibres -or Threds cast on the _Tunica Retina_, being border'd with the like -Fringes of Colours. - -_Obs._ 3. When the Hair was twelve Feet distant from this Hole, and its -Shadow fell obliquely upon a flat white Scale of Inches and Parts of an -Inch placed half a Foot beyond it, and also when the Shadow fell -perpendicularly upon the same Scale placed nine Feet beyond it; I -measured the breadth of the Shadow and Fringes as accurately as I could, -and found them in Parts of an Inch as follows. - --------------------------------------------+-----------+-------- - | half a | Nine - At the Distance of | Foot | Feet --------------------------------------------+-----------+-------- -The breadth of the Shadow | 1/54 | 1/9 --------------------------------------------+-----------+-------- -The breadth between the Middles of the | 1/38 | - brightest Light of the innermost Fringes | or | - on either side the Shadow | 1/39 | 7/50 --------------------------------------------+-----------+-------- -The breadth between the Middles of the | | - brightest Light of the middlemost Fringes| | - on either side the Shadow | 1/23-1/2 | 4/17 --------------------------------------------+-----------+-------- -The breadth between the Middles of the | 1/18 | - brightest Light of the outmost Fringes | or | - on either side the Shadow | 1/18-1/2 | 3/10 --------------------------------------------+-----------+-------- -The distance between the Middles of the | | - brightest Light of the first and second | | - Fringes | 1/120 | 1/21 --------------------------------------------+-----------+-------- -The distance between the Middles of the | | - brightest Light of the second and third | | - Fringes | 1/170 | 1/31 --------------------------------------------+-----------+-------- -The breadth of the luminous Part (green, | | - white, yellow, and red) of the first | | - Fringe | 1/170 | 1/32 --------------------------------------------+-----------+-------- -The breadth of the darker Space between | | - the first and second Fringes | 1/240 | 1/45 --------------------------------------------+-----------+-------- -The breadth of the luminous Part of the | | - second Fringe | 1/290 | 1/55 --------------------------------------------+-----------+-------- -The breadth of the darker Space between | | - the second and third Fringes | 1/340 | 1/63 --------------------------------------------+-----------+-------- - -These Measures I took by letting the Shadow of the Hair, at half a Foot -distance, fall so obliquely on the Scale, as to appear twelve times -broader than when it fell perpendicularly on it at the same distance, -and setting down in this Table the twelfth part of the Measures I then -took. - -_Obs._ 4. When the Shadow and Fringes were cast obliquely upon a smooth -white Body, and that Body was removed farther and farther from the Hair, -the first Fringe began to appear and look brighter than the rest of the -Light at the distance of less than a quarter of an Inch from the Hair, -and the dark Line or Shadow between that and the second Fringe began to -appear at a less distance from the Hair than that of the third part of -an Inch. The second Fringe began to appear at a distance from the Hair -of less than half an Inch, and the Shadow between that and the third -Fringe at a distance less than an inch, and the third Fringe at a -distance less than three Inches. At greater distances they became much -more sensible, but kept very nearly the same proportion of their -breadths and intervals which they had at their first appearing. For the -distance between the middle of the first, and middle of the second -Fringe, was to the distance between the middle of the second and middle -of the third Fringe, as three to two, or ten to seven. And the last of -these two distances was equal to the breadth of the bright Light or -luminous part of the first Fringe. And this breadth was to the breadth -of the bright Light of the second Fringe as seven to four, and to the -dark Interval of the first and second Fringe as three to two, and to -the like dark Interval between the second and third as two to one. For -the breadths of the Fringes seem'd to be in the progression of the -Numbers 1, sqrt(1/3), sqrt(1/5), and their Intervals to be in the -same progression with them; that is, the Fringes and their Intervals -together to be in the continual progression of the Numbers 1, -sqrt(1/2), sqrt(1/3), sqrt(1/4), sqrt(1/5), or thereabouts. And -these Proportions held the same very nearly at all distances from the -Hair; the dark Intervals of the Fringes being as broad in proportion to -the breadth of the Fringes at their first appearance as afterwards at -great distances from the Hair, though not so dark and distinct. - -_Obs._ 5. The Sun shining into my darken'd Chamber through a hole a -quarter of an Inch broad, I placed at the distance of two or three Feet -from the Hole a Sheet of Pasteboard, which was black'd all over on both -sides, and in the middle of it had a hole about three quarters of an -Inch square for the Light to pass through. And behind the hole I -fasten'd to the Pasteboard with Pitch the blade of a sharp Knife, to -intercept some part of the Light which passed through the hole. The -Planes of the Pasteboard and blade of the Knife were parallel to one -another, and perpendicular to the Rays. And when they were so placed -that none of the Sun's Light fell on the Pasteboard, but all of it -passed through the hole to the Knife, and there part of it fell upon the -blade of the Knife, and part of it passed by its edge; I let this part -of the Light which passed by, fall on a white Paper two or three Feet -beyond the Knife, and there saw two streams of faint Light shoot out -both ways from the beam of Light into the shadow, like the Tails of -Comets. But because the Sun's direct Light by its brightness upon the -Paper obscured these faint streams, so that I could scarce see them, I -made a little hole in the midst of the Paper for that Light to pass -through and fall on a black Cloth behind it; and then I saw the two -streams plainly. They were like one another, and pretty nearly equal in -length, and breadth, and quantity of Light. Their Light at that end next -the Sun's direct Light was pretty strong for the space of about a -quarter of an Inch, or half an Inch, and in all its progress from that -direct Light decreased gradually till it became insensible. The whole -length of either of these streams measured upon the paper at the -distance of three Feet from the Knife was about six or eight Inches; so -that it subtended an Angle at the edge of the Knife of about 10 or 12, -or at most 14 Degrees. Yet sometimes I thought I saw it shoot three or -four Degrees farther, but with a Light so very faint that I could scarce -perceive it, and suspected it might (in some measure at least) arise -from some other cause than the two streams did. For placing my Eye in -that Light beyond the end of that stream which was behind the Knife, and -looking towards the Knife, I could see a line of Light upon its edge, -and that not only when my Eye was in the line of the Streams, but also -when it was without that line either towards the point of the Knife, or -towards the handle. This line of Light appear'd contiguous to the edge -of the Knife, and was narrower than the Light of the innermost Fringe, -and narrowest when my Eye was farthest from the direct Light, and -therefore seem'd to pass between the Light of that Fringe and the edge -of the Knife, and that which passed nearest the edge to be most bent, -though not all of it. - -_Obs._ 6. I placed another Knife by this, so that their edges might be -parallel, and look towards one another, and that the beam of Light might -fall upon both the Knives, and some part of it pass between their edges. -And when the distance of their edges was about the 400th part of an -Inch, the stream parted in the middle, and left a Shadow between the two -parts. This Shadow was so black and dark that all the Light which passed -between the Knives seem'd to be bent, and turn'd aside to the one hand -or to the other. And as the Knives still approach'd one another the -Shadow grew broader, and the streams shorter at their inward ends which -were next the Shadow, until upon the contact of the Knives the whole -Light vanish'd, leaving its place to the Shadow. - -And hence I gather that the Light which is least bent, and goes to the -inward ends of the streams, passes by the edges of the Knives at the -greatest distance, and this distance when the Shadow begins to appear -between the streams, is about the 800th part of an Inch. And the Light -which passes by the edges of the Knives at distances still less and -less, is more and more bent, and goes to those parts of the streams -which are farther and farther from the direct Light; because when the -Knives approach one another till they touch, those parts of the streams -vanish last which are farthest from the direct Light. - -_Obs._ 7. In the fifth Observation the Fringes did not appear, but by -reason of the breadth of the hole in the Window became so broad as to -run into one another, and by joining, to make one continued Light in the -beginning of the streams. But in the sixth, as the Knives approached one -another, a little before the Shadow appeared between the two streams, -the Fringes began to appear on the inner ends of the Streams on either -side of the direct Light; three on one side made by the edge of one -Knife, and three on the other side made by the edge of the other Knife. -They were distinctest when the Knives were placed at the greatest -distance from the hole in the Window, and still became more distinct by -making the hole less, insomuch that I could sometimes see a faint -lineament of a fourth Fringe beyond the three above mention'd. And as -the Knives continually approach'd one another, the Fringes grew -distincter and larger, until they vanish'd. The outmost Fringe vanish'd -first, and the middlemost next, and the innermost last. And after they -were all vanish'd, and the line of Light which was in the middle between -them was grown very broad, enlarging it self on both sides into the -streams of Light described in the fifth Observation, the above-mention'd -Shadow began to appear in the middle of this line, and divide it along -the middle into two lines of Light, and increased until the whole Light -vanish'd. This enlargement of the Fringes was so great that the Rays -which go to the innermost Fringe seem'd to be bent above twenty times -more when this Fringe was ready to vanish, than when one of the Knives -was taken away. - -And from this and the former Observation compared, I gather, that the -Light of the first Fringe passed by the edge of the Knife at a distance -greater than the 800th part of an Inch, and the Light of the second -Fringe passed by the edge of the Knife at a greater distance than the -Light of the first Fringe did, and that of the third at a greater -distance than that of the second, and that of the streams of Light -described in the fifth and sixth Observations passed by the edges of the -Knives at less distances than that of any of the Fringes. - -_Obs._ 8. I caused the edges of two Knives to be ground truly strait, -and pricking their points into a Board so that their edges might look -towards one another, and meeting near their points contain a rectilinear -Angle, I fasten'd their Handles together with Pitch to make this Angle -invariable. The distance of the edges of the Knives from one another at -the distance of four Inches from the angular Point, where the edges of -the Knives met, was the eighth part of an Inch; and therefore the Angle -contain'd by the edges was about one Degree 54: The Knives thus fix'd -together I placed in a beam of the Sun's Light, let into my darken'd -Chamber through a Hole the 42d Part of an Inch wide, at the distance of -10 or 15 Feet from the Hole, and let the Light which passed between -their edges fall very obliquely upon a smooth white Ruler at the -distance of half an Inch, or an Inch from the Knives, and there saw the -Fringes by the two edges of the Knives run along the edges of the -Shadows of the Knives in Lines parallel to those edges without growing -sensibly broader, till they met in Angles equal to the Angle contained -by the edges of the Knives, and where they met and joined they ended -without crossing one another. But if the Ruler was held at a much -greater distance from the Knives, the Fringes where they were farther -from the Place of their Meeting, were a little narrower, and became -something broader and broader as they approach'd nearer and nearer to -one another, and after they met they cross'd one another, and then -became much broader than before. - -Whence I gather that the distances at which the Fringes pass by the -Knives are not increased nor alter'd by the approach of the Knives, but -the Angles in which the Rays are there bent are much increased by that -approach; and that the Knife which is nearest any Ray determines which -way the Ray shall be bent, and the other Knife increases the bent. - -_Obs._ 9. When the Rays fell very obliquely upon the Ruler at the -distance of the third Part of an Inch from the Knives, the dark Line -between the first and second Fringe of the Shadow of one Knife, and the -dark Line between the first and second Fringe of the Shadow of the other -knife met with one another, at the distance of the fifth Part of an Inch -from the end of the Light which passed between the Knives at the -concourse of their edges. And therefore the distance of the edges of the -Knives at the meeting of these dark Lines was the 160th Part of an Inch. -For as four Inches to the eighth Part of an Inch, so is any Length of -the edges of the Knives measured from the point of their concourse to -the distance of the edges of the Knives at the end of that Length, and -so is the fifth Part of an Inch to the 160th Part. So then the dark -Lines above-mention'd meet in the middle of the Light which passes -between the Knives where they are distant the 160th Part of an Inch, and -the one half of that Light passes by the edge of one Knife at a distance -not greater than the 320th Part of an Inch, and falling upon the Paper -makes the Fringes of the Shadow of that Knife, and the other half passes -by the edge of the other Knife, at a distance not greater than the 320th -Part of an Inch, and falling upon the Paper makes the Fringes of the -Shadow of the other Knife. But if the Paper be held at a distance from -the Knives greater than the third Part of an Inch, the dark Lines -above-mention'd meet at a greater distance than the fifth Part of an -Inch from the end of the Light which passed between the Knives at the -concourse of their edges; and therefore the Light which falls upon the -Paper where those dark Lines meet passes between the Knives where the -edges are distant above the 160th part of an Inch. - -For at another time, when the two Knives were distant eight Feet and -five Inches from the little hole in the Window, made with a small Pin as -above, the Light which fell upon the Paper where the aforesaid dark -lines met, passed between the Knives, where the distance between their -edges was as in the following Table, when the distance of the Paper from -the Knives was also as follows. - ------------------------------+------------------------------ - | Distances between the edges - Distances of the Paper | of the Knives in millesimal - from the Knives in Inches. | parts of an Inch. ------------------------------+------------------------------ - 1-1/2. | 0'012 - 3-1/3. | 0'020 - 8-3/5. | 0'034 - 32. | 0'057 - 96. | 0'081 - 131. | 0'087 -_____________________________|______________________________ - -And hence I gather, that the Light which makes the Fringes upon the -Paper is not the same Light at all distances of the Paper from the -Knives, but when the Paper is held near the Knives, the Fringes are made -by Light which passes by the edges of the Knives at a less distance, and -is more bent than when the Paper is held at a greater distance from the -Knives. - -[Illustration: FIG. 3.] - -_Obs._ 10. When the Fringes of the Shadows of the Knives fell -perpendicularly upon a Paper at a great distance from the Knives, they -were in the form of Hyperbola's, and their Dimensions were as follows. -Let CA, CB [in _Fig._ 3.] represent Lines drawn upon the Paper parallel -to the edges of the Knives, and between which all the Light would fall, -if it passed between the edges of the Knives without inflexion; DE a -Right Line drawn through C making the Angles ACD, BCE, equal to one -another, and terminating all the Light which falls upon the Paper from -the point where the edges of the Knives meet; _eis_, _fkt_, and _glv_, -three hyperbolical Lines representing the Terminus of the Shadow of one -of the Knives, the dark Line between the first and second Fringes of -that Shadow, and the dark Line between the second and third Fringes of -the same Shadow; _xip_, _ykq_, and _zlr_, three other hyperbolical Lines -representing the Terminus of the Shadow of the other Knife, the dark -Line between the first and second Fringes of that Shadow, and the dark -line between the second and third Fringes of the same Shadow. And -conceive that these three Hyperbola's are like and equal to the former -three, and cross them in the points _i_, _k_, and _l_, and that the -Shadows of the Knives are terminated and distinguish'd from the first -luminous Fringes by the lines _eis_ and _xip_, until the meeting and -crossing of the Fringes, and then those lines cross the Fringes in the -form of dark lines, terminating the first luminous Fringes within side, -and distinguishing them from another Light which begins to appear at -_i_, and illuminates all the triangular space _ip_DE_s_ comprehended by -these dark lines, and the right line DE. Of these Hyperbola's one -Asymptote is the line DE, and their other Asymptotes are parallel to the -lines CA and CB. Let _rv_ represent a line drawn any where upon the -Paper parallel to the Asymptote DE, and let this line cross the right -lines AC in _m_, and BC in _n_, and the six dark hyperbolical lines in -_p_, _q_, _r_; _s_, _t_, _v_; and by measuring the distances _ps_, _qt_, -_rv_, and thence collecting the lengths of the Ordinates _np_, _nq_, -_nr_ or _ms_, _mt_, _mv_, and doing this at several distances of the -line _rv_ from the Asymptote DD, you may find as many points of these -Hyperbola's as you please, and thereby know that these curve lines are -Hyperbola's differing little from the conical Hyperbola. And by -measuring the lines C_i_, C_k_, C_l_, you may find other points of these -Curves. - -For instance; when the Knives were distant from the hole in the Window -ten Feet, and the Paper from the Knives nine Feet, and the Angle -contained by the edges of the Knives to which the Angle ACB is equal, -was subtended by a Chord which was to the Radius as 1 to 32, and the -distance of the line _rv_ from the Asymptote DE was half an Inch: I -measured the lines _ps_, _qt_, _rv_, and found them 0'35, 0'65, 0'98 -Inches respectively; and by adding to their halfs the line 1/2 _mn_, -(which here was the 128th part of an Inch, or 0'0078 Inches,) the Sums -_np_, _nq_, _nr_, were 0'1828, 0'3328, 0'4978 Inches. I measured also -the distances of the brightest parts of the Fringes which run between -_pq_ and _st_, _qr_ and _tv_, and next beyond _r_ and _v_, and found -them 0'5, 0'8, and 1'17 Inches. - -_Obs._ 11. The Sun shining into my darken'd Room through a small round -hole made in a Plate of Lead with a slender Pin, as above; I placed at -the hole a Prism to refract the Light, and form on the opposite Wall the -Spectrum of Colours, described in the third Experiment of the first -Book. And then I found that the Shadows of all Bodies held in the -colour'd Light between the Prism and the Wall, were border'd with -Fringes of the Colour of that Light in which they were held. In the full -red Light they were totally red without any sensible blue or violet, and -in the deep blue Light they were totally blue without any sensible red -or yellow; and so in the green Light they were totally green, excepting -a little yellow and blue, which were mixed in the green Light of the -Prism. And comparing the Fringes made in the several colour'd Lights, I -found that those made in the red Light were largest, those made in the -violet were least, and those made in the green were of a middle bigness. -For the Fringes with which the Shadow of a Man's Hair were bordered, -being measured cross the Shadow at the distance of six Inches from the -Hair, the distance between the middle and most luminous part of the -first or innermost Fringe on one side of the Shadow, and that of the -like Fringe on the other side of the Shadow, was in the full red Light -1/37-1/4 of an Inch, and in the full violet 7/46. And the like distance -between the middle and most luminous parts of the second Fringes on -either side the Shadow was in the full red Light 1/22, and in the violet -1/27 of an Inch. And these distances of the Fringes held the same -proportion at all distances from the Hair without any sensible -variation. - -So then the Rays which made these Fringes in the red Light passed by the -Hair at a greater distance than those did which made the like Fringes in -the violet; and therefore the Hair in causing these Fringes acted alike -upon the red Light or least refrangible Rays at a greater distance, and -upon the violet or most refrangible Rays at a less distance, and by -those actions disposed the red Light into Larger Fringes, and the violet -into smaller, and the Lights of intermediate Colours into Fringes of -intermediate bignesses without changing the Colour of any sort of Light. - -When therefore the Hair in the first and second of these Observations -was held in the white beam of the Sun's Light, and cast a Shadow which -was border'd with three Fringes of coloured Light, those Colours arose -not from any new modifications impress'd upon the Rays of Light by the -Hair, but only from the various inflexions whereby the several Sorts of -Rays were separated from one another, which before separation, by the -mixture of all their Colours, composed the white beam of the Sun's -Light, but whenever separated compose Lights of the several Colours -which they are originally disposed to exhibit. In this 11th Observation, -where the Colours are separated before the Light passes by the Hair, the -least refrangible Rays, which when separated from the rest make red, -were inflected at a greater distance from the Hair, so as to make three -red Fringes at a greater distance from the middle of the Shadow of the -Hair; and the most refrangible Rays which when separated make violet, -were inflected at a less distance from the Hair, so as to make three -violet Fringes at a less distance from the middle of the Shadow of the -Hair. And other Rays of intermediate degrees of Refrangibility were -inflected at intermediate distances from the Hair, so as to make Fringes -of intermediate Colours at intermediate distances from the middle of the -Shadow of the Hair. And in the second Observation, where all the Colours -are mix'd in the white Light which passes by the Hair, these Colours are -separated by the various inflexions of the Rays, and the Fringes which -they make appear all together, and the innermost Fringes being -contiguous make one broad Fringe composed of all the Colours in due -order, the violet lying on the inside of the Fringe next the Shadow, the -red on the outside farthest from the Shadow, and the blue, green, and -yellow, in the middle. And, in like manner, the middlemost Fringes of -all the Colours lying in order, and being contiguous, make another broad -Fringe composed of all the Colours; and the outmost Fringes of all the -Colours lying in order, and being contiguous, make a third broad Fringe -composed of all the Colours. These are the three Fringes of colour'd -Light with which the Shadows of all Bodies are border'd in the second -Observation. - -When I made the foregoing Observations, I design'd to repeat most of -them with more care and exactness, and to make some new ones for -determining the manner how the Rays of Light are bent in their passage -by Bodies, for making the Fringes of Colours with the dark lines between -them. But I was then interrupted, and cannot now think of taking these -things into farther Consideration. And since I have not finish'd this -part of my Design, I shall conclude with proposing only some Queries, in -order to a farther search to be made by others. - -_Query_ 1. Do not Bodies act upon Light at a distance, and by their -action bend its Rays; and is not this action (_cæteris paribus_) -strongest at the least distance? - -_Qu._ 2. Do not the Rays which differ in Refrangibility differ also in -Flexibity; and are they not by their different Inflexions separated from -one another, so as after separation to make the Colours in the three -Fringes above described? And after what manner are they inflected to -make those Fringes? - -_Qu._ 3. Are not the Rays of Light in passing by the edges and sides of -Bodies, bent several times backwards and forwards, with a motion like -that of an Eel? And do not the three Fringes of colour'd Light -above-mention'd arise from three such bendings? - -_Qu._ 4. Do not the Rays of Light which fall upon Bodies, and are -reflected or refracted, begin to bend before they arrive at the Bodies; -and are they not reflected, refracted, and inflected, by one and the -same Principle, acting variously in various Circumstances? - -_Qu._ 5. Do not Bodies and Light act mutually upon one another; that is -to say, Bodies upon Light in emitting, reflecting, refracting and -inflecting it, and Light upon Bodies for heating them, and putting their -parts into a vibrating motion wherein heat consists? - -_Qu._ 6. Do not black Bodies conceive heat more easily from Light than -those of other Colours do, by reason that the Light falling on them is -not reflected outwards, but enters the Bodies, and is often reflected -and refracted within them, until it be stifled and lost? - -_Qu._ 7. Is not the strength and vigor of the action between Light and -sulphureous Bodies observed above, one reason why sulphureous Bodies -take fire more readily, and burn more vehemently than other Bodies do? - -_Qu._ 8. Do not all fix'd Bodies, when heated beyond a certain degree, -emit Light and shine; and is not this Emission perform'd by the -vibrating motions of their parts? And do not all Bodies which abound -with terrestrial parts, and especially with sulphureous ones, emit Light -as often as those parts are sufficiently agitated; whether that -agitation be made by Heat, or by Friction, or Percussion, or -Putrefaction, or by any vital Motion, or any other Cause? As for -instance; Sea-Water in a raging Storm; Quick-silver agitated in _vacuo_; -the Back of a Cat, or Neck of a Horse, obliquely struck or rubbed in a -dark place; Wood, Flesh and Fish while they putrefy; Vapours arising -from putrefy'd Waters, usually call'd _Ignes Fatui_; Stacks of moist Hay -or Corn growing hot by fermentation; Glow-worms and the Eyes of some -Animals by vital Motions; the vulgar _Phosphorus_ agitated by the -attrition of any Body, or by the acid Particles of the Air; Amber and -some Diamonds by striking, pressing or rubbing them; Scrapings of Steel -struck off with a Flint; Iron hammer'd very nimbly till it become so hot -as to kindle Sulphur thrown upon it; the Axletrees of Chariots taking -fire by the rapid rotation of the Wheels; and some Liquors mix'd with -one another whose Particles come together with an Impetus, as Oil of -Vitriol distilled from its weight of Nitre, and then mix'd with twice -its weight of Oil of Anniseeds. So also a Globe of Glass about 8 or 10 -Inches in diameter, being put into a Frame where it may be swiftly -turn'd round its Axis, will in turning shine where it rubs against the -palm of ones Hand apply'd to it: And if at the same time a piece of -white Paper or white Cloth, or the end of ones Finger be held at the -distance of about a quarter of an Inch or half an Inch from that part of -the Glass where it is most in motion, the electrick Vapour which is -excited by the friction of the Glass against the Hand, will by dashing -against the white Paper, Cloth or Finger, be put into such an agitation -as to emit Light, and make the white Paper, Cloth or Finger, appear -lucid like a Glowworm; and in rushing out of the Glass will sometimes -push against the finger so as to be felt. And the same things have been -found by rubbing a long and large Cylinder or Glass or Amber with a -Paper held in ones hand, and continuing the friction till the Glass grew -warm. - -_Qu._ 9. Is not Fire a Body heated so hot as to emit Light copiously? -For what else is a red hot Iron than Fire? And what else is a burning -Coal than red hot Wood? - -_Qu._ 10. Is not Flame a Vapour, Fume or Exhalation heated red hot, that -is, so hot as to shine? For Bodies do not flame without emitting a -copious Fume, and this Fume burns in the Flame. The _Ignis Fatuus_ is a -Vapour shining without heat, and is there not the same difference -between this Vapour and Flame, as between rotten Wood shining without -heat and burning Coals of Fire? In distilling hot Spirits, if the Head -of the Still be taken off, the Vapour which ascends out of the Still -will take fire at the Flame of a Candle, and turn into Flame, and the -Flame will run along the Vapour from the Candle to the Still. Some -Bodies heated by Motion, or Fermentation, if the heat grow intense, fume -copiously, and if the heat be great enough the Fumes will shine and -become Flame. Metals in fusion do not flame for want of a copious Fume, -except Spelter, which fumes copiously, and thereby flames. All flaming -Bodies, as Oil, Tallow, Wax, Wood, fossil Coals, Pitch, Sulphur, by -flaming waste and vanish into burning Smoke, which Smoke, if the Flame -be put out, is very thick and visible, and sometimes smells strongly, -but in the Flame loses its smell by burning, and according to the nature -of the Smoke the Flame is of several Colours, as that of Sulphur blue, -that of Copper open'd with sublimate green, that of Tallow yellow, that -of Camphire white. Smoke passing through Flame cannot but grow red hot, -and red hot Smoke can have no other appearance than that of Flame. When -Gun-powder takes fire, it goes away into Flaming Smoke. For the Charcoal -and Sulphur easily take fire, and set fire to the Nitre, and the Spirit -of the Nitre being thereby rarified into Vapour, rushes out with -Explosion much after the manner that the Vapour of Water rushes out of -an Æolipile; the Sulphur also being volatile is converted into Vapour, -and augments the Explosion. And the acid Vapour of the Sulphur (namely -that which distils under a Bell into Oil of Sulphur,) entring violently -into the fix'd Body of the Nitre, sets loose the Spirit of the Nitre, -and excites a great Fermentation, whereby the Heat is farther augmented, -and the fix'd Body of the Nitre is also rarified into Fume, and the -Explosion is thereby made more vehement and quick. For if Salt of Tartar -be mix'd with Gun-powder, and that Mixture be warm'd till it takes fire, -the Explosion will be more violent and quick than that of Gun-powder -alone; which cannot proceed from any other cause than the action of the -Vapour of the Gun-powder upon the Salt of Tartar, whereby that Salt is -rarified. The Explosion of Gun-powder arises therefore from the violent -action whereby all the Mixture being quickly and vehemently heated, is -rarified and converted into Fume and Vapour: which Vapour, by the -violence of that action, becoming so hot as to shine, appears in the -form of Flame. - -_Qu._ 11. Do not great Bodies conserve their heat the longest, their -parts heating one another, and may not great dense and fix'd Bodies, -when heated beyond a certain degree, emit Light so copiously, as by the -Emission and Re-action of its Light, and the Reflexions and Refractions -of its Rays within its Pores to grow still hotter, till it comes to a -certain period of heat, such as is that of the Sun? And are not the Sun -and fix'd Stars great Earths vehemently hot, whose heat is conserved by -the greatness of the Bodies, and the mutual Action and Reaction between -them, and the Light which they emit, and whose parts are kept from -fuming away, not only by their fixity, but also by the vast weight and -density of the Atmospheres incumbent upon them; and very strongly -compressing them, and condensing the Vapours and Exhalations which arise -from them? For if Water be made warm in any pellucid Vessel emptied of -Air, that Water in the _Vacuum_ will bubble and boil as vehemently as it -would in the open Air in a Vessel set upon the Fire till it conceives a -much greater heat. For the weight of the incumbent Atmosphere keeps down -the Vapours, and hinders the Water from boiling, until it grow much -hotter than is requisite to make it boil _in vacuo_. Also a mixture of -Tin and Lead being put upon a red hot Iron _in vacuo_ emits a Fume and -Flame, but the same Mixture in the open Air, by reason of the incumbent -Atmosphere, does not so much as emit any Fume which can be perceived by -Sight. In like manner the great weight of the Atmosphere which lies upon -the Globe of the Sun may hinder Bodies there from rising up and going -away from the Sun in the form of Vapours and Fumes, unless by means of a -far greater heat than that which on the Surface of our Earth would very -easily turn them into Vapours and Fumes. And the same great weight may -condense those Vapours and Exhalations as soon as they shall at any time -begin to ascend from the Sun, and make them presently fall back again -into him, and by that action increase his Heat much after the manner -that in our Earth the Air increases the Heat of a culinary Fire. And the -same weight may hinder the Globe of the Sun from being diminish'd, -unless by the Emission of Light, and a very small quantity of Vapours -and Exhalations. - -_Qu._ 12. Do not the Rays of Light in falling upon the bottom of the Eye -excite Vibrations in the _Tunica Retina_? Which Vibrations, being -propagated along the solid Fibres of the optick Nerves into the Brain, -cause the Sense of seeing. For because dense Bodies conserve their Heat -a long time, and the densest Bodies conserve their Heat the longest, the -Vibrations of their parts are of a lasting nature, and therefore may be -propagated along solid Fibres of uniform dense Matter to a great -distance, for conveying into the Brain the impressions made upon all the -Organs of Sense. For that Motion which can continue long in one and the -same part of a Body, can be propagated a long way from one part to -another, supposing the Body homogeneal, so that the Motion may not be -reflected, refracted, interrupted or disorder'd by any unevenness of the -Body. - -_Qu._ 13. Do not several sorts of Rays make Vibrations of several -bignesses, which according to their bignesses excite Sensations of -several Colours, much after the manner that the Vibrations of the Air, -according to their several bignesses excite Sensations of several -Sounds? And particularly do not the most refrangible Rays excite the -shortest Vibrations for making a Sensation of deep violet, the least -refrangible the largest for making a Sensation of deep red, and the -several intermediate sorts of Rays, Vibrations of several intermediate -bignesses to make Sensations of the several intermediate Colours? - -_Qu._ 14. May not the harmony and discord of Colours arise from the -proportions of the Vibrations propagated through the Fibres of the -optick Nerves into the Brain, as the harmony and discord of Sounds arise -from the proportions of the Vibrations of the Air? For some Colours, if -they be view'd together, are agreeable to one another, as those of Gold -and Indigo, and others disagree. - -_Qu._ 15. Are not the Species of Objects seen with both Eyes united -where the optick Nerves meet before they come into the Brain, the Fibres -on the right side of both Nerves uniting there, and after union going -thence into the Brain in the Nerve which is on the right side of the -Head, and the Fibres on the left side of both Nerves uniting in the same -place, and after union going into the Brain in the Nerve which is on the -left side of the Head, and these two Nerves meeting in the Brain in such -a manner that their Fibres make but one entire Species or Picture, half -of which on the right side of the Sensorium comes from the right side of -both Eyes through the right side of both optick Nerves to the place -where the Nerves meet, and from thence on the right side of the Head -into the Brain, and the other half on the left side of the Sensorium -comes in like manner from the left side of both Eyes. For the optick -Nerves of such Animals as look the same way with both Eyes (as of Men, -Dogs, Sheep, Oxen, &c.) meet before they come into the Brain, but the -optick Nerves of such Animals as do not look the same way with both Eyes -(as of Fishes, and of the Chameleon,) do not meet, if I am rightly -inform'd. - -_Qu._ 16. When a Man in the dark presses either corner of his Eye with -his Finger, and turns his Eye away from his Finger, he will see a Circle -of Colours like those in the Feather of a Peacock's Tail. If the Eye and -the Finger remain quiet these Colours vanish in a second Minute of Time, -but if the Finger be moved with a quavering Motion they appear again. Do -not these Colours arise from such Motions excited in the bottom of the -Eye by the Pressure and Motion of the Finger, as, at other times are -excited there by Light for causing Vision? And do not the Motions once -excited continue about a Second of Time before they cease? And when a -Man by a stroke upon his Eye sees a flash of Light, are not the like -Motions excited in the _Retina_ by the stroke? And when a Coal of Fire -moved nimbly in the circumference of a Circle, makes the whole -circumference appear like a Circle of Fire; is it not because the -Motions excited in the bottom of the Eye by the Rays of Light are of a -lasting nature, and continue till the Coal of Fire in going round -returns to its former place? And considering the lastingness of the -Motions excited in the bottom of the Eye by Light, are they not of a -vibrating nature? - -_Qu._ 17. If a stone be thrown into stagnating Water, the Waves excited -thereby continue some time to arise in the place where the Stone fell -into the Water, and are propagated from thence in concentrick Circles -upon the Surface of the Water to great distances. And the Vibrations or -Tremors excited in the Air by percussion, continue a little time to move -from the place of percussion in concentrick Spheres to great distances. -And in like manner, when a Ray of Light falls upon the Surface of any -pellucid Body, and is there refracted or reflected, may not Waves of -Vibrations, or Tremors, be thereby excited in the refracting or -reflecting Medium at the point of Incidence, and continue to arise -there, and to be propagated from thence as long as they continue to -arise and be propagated, when they are excited in the bottom of the Eye -by the Pressure or Motion of the Finger, or by the Light which comes -from the Coal of Fire in the Experiments above-mention'd? and are not -these Vibrations propagated from the point of Incidence to great -distances? And do they not overtake the Rays of Light, and by overtaking -them successively, do they not put them into the Fits of easy Reflexion -and easy Transmission described above? For if the Rays endeavour to -recede from the densest part of the Vibration, they may be alternately -accelerated and retarded by the Vibrations overtaking them. - -_Qu._ 18. If in two large tall cylindrical Vessels of Glass inverted, -two little Thermometers be suspended so as not to touch the Vessels, and -the Air be drawn out of one of these Vessels, and these Vessels thus -prepared be carried out of a cold place into a warm one; the Thermometer -_in vacuo_ will grow warm as much, and almost as soon as the Thermometer -which is not _in vacuo_. And when the Vessels are carried back into the -cold place, the Thermometer _in vacuo_ will grow cold almost as soon as -the other Thermometer. Is not the Heat of the warm Room convey'd through -the _Vacuum_ by the Vibrations of a much subtiler Medium than Air, which -after the Air was drawn out remained in the _Vacuum_? And is not this -Medium the same with that Medium by which Light is refracted and -reflected, and by whose Vibrations Light communicates Heat to Bodies, -and is put into Fits of easy Reflexion and easy Transmission? And do not -the Vibrations of this Medium in hot Bodies contribute to the -intenseness and duration of their Heat? And do not hot Bodies -communicate their Heat to contiguous cold ones, by the Vibrations of -this Medium propagated from them into the cold ones? And is not this -Medium exceedingly more rare and subtile than the Air, and exceedingly -more elastick and active? And doth it not readily pervade all Bodies? -And is it not (by its elastick force) expanded through all the Heavens? - -_Qu._ 19. Doth not the Refraction of Light proceed from the different -density of this Æthereal Medium in different places, the Light receding -always from the denser parts of the Medium? And is not the density -thereof greater in free and open Spaces void of Air and other grosser -Bodies, than within the Pores of Water, Glass, Crystal, Gems, and other -compact Bodies? For when Light passes through Glass or Crystal, and -falling very obliquely upon the farther Surface thereof is totally -reflected, the total Reflexion ought to proceed rather from the density -and vigour of the Medium without and beyond the Glass, than from the -rarity and weakness thereof. - -_Qu._ 20. Doth not this Æthereal Medium in passing out of Water, Glass, -Crystal, and other compact and dense Bodies into empty Spaces, grow -denser and denser by degrees, and by that means refract the Rays of -Light not in a point, but by bending them gradually in curve Lines? And -doth not the gradual condensation of this Medium extend to some distance -from the Bodies, and thereby cause the Inflexions of the Rays of Light, -which pass by the edges of dense Bodies, at some distance from the -Bodies? - -_Qu._ 21. Is not this Medium much rarer within the dense Bodies of the -Sun, Stars, Planets and Comets, than in the empty celestial Spaces -between them? And in passing from them to great distances, doth it not -grow denser and denser perpetually, and thereby cause the gravity of -those great Bodies towards one another, and of their parts towards the -Bodies; every Body endeavouring to go from the denser parts of the -Medium towards the rarer? For if this Medium be rarer within the Sun's -Body than at its Surface, and rarer there than at the hundredth part of -an Inch from its Body, and rarer there than at the fiftieth part of an -Inch from its Body, and rarer there than at the Orb of _Saturn_; I see -no reason why the Increase of density should stop any where, and not -rather be continued through all distances from the Sun to _Saturn_, and -beyond. And though this Increase of density may at great distances be -exceeding slow, yet if the elastick force of this Medium be exceeding -great, it may suffice to impel Bodies from the denser parts of the -Medium towards the rarer, with all that power which we call Gravity. And -that the elastick force of this Medium is exceeding great, may be -gather'd from the swiftness of its Vibrations. Sounds move about 1140 -_English_ Feet in a second Minute of Time, and in seven or eight Minutes -of Time they move about one hundred _English_ Miles. Light moves from -the Sun to us in about seven or eight Minutes of Time, which distance is -about 70,000,000 _English_ Miles, supposing the horizontal Parallax of -the Sun to be about 12´´. And the Vibrations or Pulses of this Medium, -that they may cause the alternate Fits of easy Transmission and easy -Reflexion, must be swifter than Light, and by consequence above 700,000 -times swifter than Sounds. And therefore the elastick force of this -Medium, in proportion to its density, must be above 700000 x 700000 -(that is, above 490,000,000,000) times greater than the elastick force -of the Air is in proportion to its density. For the Velocities of the -Pulses of elastick Mediums are in a subduplicate _Ratio_ of the -Elasticities and the Rarities of the Mediums taken together. - -As Attraction is stronger in small Magnets than in great ones in -proportion to their Bulk, and Gravity is greater in the Surfaces of -small Planets than in those of great ones in proportion to their bulk, -and small Bodies are agitated much more by electric attraction than -great ones; so the smallness of the Rays of Light may contribute very -much to the power of the Agent by which they are refracted. And so if -any one should suppose that _Æther_ (like our Air) may contain Particles -which endeavour to recede from one another (for I do not know what this -_Æther_ is) and that its Particles are exceedingly smaller than those of -Air, or even than those of Light: The exceeding smallness of its -Particles may contribute to the greatness of the force by which those -Particles may recede from one another, and thereby make that Medium -exceedingly more rare and elastick than Air, and by consequence -exceedingly less able to resist the motions of Projectiles, and -exceedingly more able to press upon gross Bodies, by endeavouring to -expand it self. - -_Qu._ 22. May not Planets and Comets, and all gross Bodies, perform -their Motions more freely, and with less resistance in this Æthereal -Medium than in any Fluid, which fills all Space adequately without -leaving any Pores, and by consequence is much denser than Quick-silver -or Gold? And may not its resistance be so small, as to be -inconsiderable? For instance; If this _Æther_ (for so I will call it) -should be supposed 700000 times more elastick than our Air, and above -700000 times more rare; its resistance would be above 600,000,000 times -less than that of Water. And so small a resistance would scarce make any -sensible alteration in the Motions of the Planets in ten thousand -Years. If any one would ask how a Medium can be so rare, let him tell me -how the Air, in the upper parts of the Atmosphere, can be above an -hundred thousand thousand times rarer than Gold. Let him also tell me, -how an electrick Body can by Friction emit an Exhalation so rare and -subtile, and yet so potent, as by its Emission to cause no sensible -Diminution of the weight of the electrick Body, and to be expanded -through a Sphere, whose Diameter is above two Feet, and yet to be able -to agitate and carry up Leaf Copper, or Leaf Gold, at the distance of -above a Foot from the electrick Body? And how the Effluvia of a Magnet -can be so rare and subtile, as to pass through a Plate of Glass without -any Resistance or Diminution of their Force, and yet so potent as to -turn a magnetick Needle beyond the Glass? - -_Qu._ 23. Is not Vision perform'd chiefly by the Vibrations of this -Medium, excited in the bottom of the Eye by the Rays of Light, and -propagated through the solid, pellucid and uniform Capillamenta of the -optick Nerves into the place of Sensation? And is not Hearing perform'd -by the Vibrations either of this or some other Medium, excited in the -auditory Nerves by the Tremors of the Air, and propagated through the -solid, pellucid and uniform Capillamenta of those Nerves into the place -of Sensation? And so of the other Senses. - -_Qu._ 24. Is not Animal Motion perform'd by the Vibrations of this -Medium, excited in the Brain by the power of the Will, and propagated -from thence through the solid, pellucid and uniform Capillamenta of the -Nerves into the Muscles, for contracting and dilating them? I suppose -that the Capillamenta of the Nerves are each of them solid and uniform, -that the vibrating Motion of the Æthereal Medium may be propagated along -them from one end to the other uniformly, and without interruption: For -Obstructions in the Nerves create Palsies. And that they may be -sufficiently uniform, I suppose them to be pellucid when view'd singly, -tho' the Reflexions in their cylindrical Surfaces may make the whole -Nerve (composed of many Capillamenta) appear opake and white. For -opacity arises from reflecting Surfaces, such as may disturb and -interrupt the Motions of this Medium. - -[Sidenote: _See the following Scheme, p. 356._] - -_Qu._ 25. Are there not other original Properties of the Rays of Light, -besides those already described? An instance of another original -Property we have in the Refraction of Island Crystal, described first by -_Erasmus Bartholine_, and afterwards more exactly by _Hugenius_, in his -Book _De la Lumiere_. This Crystal is a pellucid fissile Stone, clear as -Water or Crystal of the Rock, and without Colour; enduring a red Heat -without losing its transparency, and in a very strong Heat calcining -without Fusion. Steep'd a Day or two in Water, it loses its natural -Polish. Being rubb'd on Cloth, it attracts pieces of Straws and other -light things, like Ambar or Glass; and with _Aqua fortis_ it makes an -Ebullition. It seems to be a sort of Talk, and is found in form of an -oblique Parallelopiped, with six parallelogram Sides and eight solid -Angles. The obtuse Angles of the Parallelograms are each of them 101 -Degrees and 52 Minutes; the acute ones 78 Degrees and 8 Minutes. Two of -the solid Angles opposite to one another, as C and E, are compassed each -of them with three of these obtuse Angles, and each of the other six -with one obtuse and two acute ones. It cleaves easily in planes parallel -to any of its Sides, and not in any other Planes. It cleaves with a -glossy polite Surface not perfectly plane, but with some little -unevenness. It is easily scratch'd, and by reason of its softness it -takes a Polish very difficultly. It polishes better upon polish'd -Looking-glass than upon Metal, and perhaps better upon Pitch, Leather or -Parchment. Afterwards it must be rubb'd with a little Oil or white of an -Egg, to fill up its Scratches; whereby it will become very transparent -and polite. But for several Experiments, it is not necessary to polish -it. If a piece of this crystalline Stone be laid upon a Book, every -Letter of the Book seen through it will appear double, by means of a -double Refraction. And if any beam of Light falls either -perpendicularly, or in any oblique Angle upon any Surface of this -Crystal, it becomes divided into two beams by means of the same double -Refraction. Which beams are of the same Colour with the incident beam of -Light, and seem equal to one another in the quantity of their Light, or -very nearly equal. One of these Refractions is perform'd by the usual -Rule of Opticks, the Sine of Incidence out of Air into this Crystal -being to the Sine of Refraction, as five to three. The other -Refraction, which may be called the unusual Refraction, is perform'd by -the following Rule. - -[Illustration: FIG. 4.] - -Let ADBC represent the refracting Surface of the Crystal, C the biggest -solid Angle at that Surface, GEHF the opposite Surface, and CK a -perpendicular on that Surface. This perpendicular makes with the edge of -the Crystal CF, an Angle of 19 Degr. 3'. Join KF, and in it take KL, so -that the Angle KCL be 6 Degr. 40'. and the Angle LCF 12 Degr. 23'. And -if ST represent any beam of Light incident at T in any Angle upon the -refracting Surface ADBC, let TV be the refracted beam determin'd by the -given Portion of the Sines 5 to 3, according to the usual Rule of -Opticks. Draw VX parallel and equal to KL. Draw it the same way from V -in which L lieth from K; and joining TX, this line TX shall be the other -refracted beam carried from T to X, by the unusual Refraction. - -If therefore the incident beam ST be perpendicular to the refracting -Surface, the two beams TV and TX, into which it shall become divided, -shall be parallel to the lines CK and CL; one of those beams going -through the Crystal perpendicularly, as it ought to do by the usual Laws -of Opticks, and the other TX by an unusual Refraction diverging from the -perpendicular, and making with it an Angle VTX of about 6-2/3 Degrees, -as is found by Experience. And hence, the Plane VTX, and such like -Planes which are parallel to the Plane CFK, may be called the Planes of -perpendicular Refraction. And the Coast towards which the lines KL and -VX are drawn, may be call'd the Coast of unusual Refraction. - -In like manner Crystal of the Rock has a double Refraction: But the -difference of the two Refractions is not so great and manifest as in -Island Crystal. - -When the beam ST incident on Island Crystal is divided into two beams TV -and TX, and these two beams arrive at the farther Surface of the Glass; -the beam TV, which was refracted at the first Surface after the usual -manner, shall be again refracted entirely after the usual manner at the -second Surface; and the beam TX, which was refracted after the unusual -manner in the first Surface, shall be again refracted entirely after the -unusual manner in the second Surface; so that both these beams shall -emerge out of the second Surface in lines parallel to the first incident -beam ST. - -And if two pieces of Island Crystal be placed one after another, in such -manner that all the Surfaces of the latter be parallel to all the -corresponding Surfaces of the former: The Rays which are refracted after -the usual manner in the first Surface of the first Crystal, shall be -refracted after the usual manner in all the following Surfaces; and the -Rays which are refracted after the unusual manner in the first Surface, -shall be refracted after the unusual manner in all the following -Surfaces. And the same thing happens, though the Surfaces of the -Crystals be any ways inclined to one another, provided that their Planes -of perpendicular Refraction be parallel to one another. - -And therefore there is an original difference in the Rays of Light, by -means of which some Rays are in this Experiment constantly refracted -after the usual manner, and others constantly after the unusual manner: -For if the difference be not original, but arises from new Modifications -impress'd on the Rays at their first Refraction, it would be alter'd by -new Modifications in the three following Refractions; whereas it suffers -no alteration, but is constant, and has the same effect upon the Rays in -all the Refractions. The unusual Refraction is therefore perform'd by an -original property of the Rays. And it remains to be enquired, whether -the Rays have not more original Properties than are yet discover'd. - -_Qu._ 26. Have not the Rays of Light several sides, endued with several -original Properties? For if the Planes of perpendicular Refraction of -the second Crystal be at right Angles with the Planes of perpendicular -Refraction of the first Crystal, the Rays which are refracted after the -usual manner in passing through the first Crystal, will be all of them -refracted after the unusual manner in passing through the second -Crystal; and the Rays which are refracted after the unusual manner in -passing through the first Crystal, will be all of them refracted after -the usual manner in passing through the second Crystal. And therefore -there are not two sorts of Rays differing in their nature from one -another, one of which is constantly and in all Positions refracted after -the usual manner, and the other constantly and in all Positions after -the unusual manner. The difference between the two sorts of Rays in the -Experiment mention'd in the 25th Question, was only in the Positions of -the Sides of the Rays to the Planes of perpendicular Refraction. For one -and the same Ray is here refracted sometimes after the usual, and -sometimes after the unusual manner, according to the Position which its -Sides have to the Crystals. If the Sides of the Ray are posited the same -way to both Crystals, it is refracted after the same manner in them -both: But if that side of the Ray which looks towards the Coast of the -unusual Refraction of the first Crystal, be 90 Degrees from that side of -the same Ray which looks toward the Coast of the unusual Refraction of -the second Crystal, (which may be effected by varying the Position of -the second Crystal to the first, and by consequence to the Rays of -Light,) the Ray shall be refracted after several manners in the several -Crystals. There is nothing more required to determine whether the Rays -of Light which fall upon the second Crystal shall be refracted after -the usual or after the unusual manner, but to turn about this Crystal, -so that the Coast of this Crystal's unusual Refraction may be on this or -on that side of the Ray. And therefore every Ray may be consider'd as -having four Sides or Quarters, two of which opposite to one another -incline the Ray to be refracted after the unusual manner, as often as -either of them are turn'd towards the Coast of unusual Refraction; and -the other two, whenever either of them are turn'd towards the Coast of -unusual Refraction, do not incline it to be otherwise refracted than -after the usual manner. The two first may therefore be call'd the Sides -of unusual Refraction. And since these Dispositions were in the Rays -before their Incidence on the second, third, and fourth Surfaces of the -two Crystals, and suffered no alteration (so far as appears,) by the -Refraction of the Rays in their passage through those Surfaces, and the -Rays were refracted by the same Laws in all the four Surfaces; it -appears that those Dispositions were in the Rays originally, and -suffer'd no alteration by the first Refraction, and that by means of -those Dispositions the Rays were refracted at their Incidence on the -first Surface of the first Crystal, some of them after the usual, and -some of them after the unusual manner, accordingly as their Sides of -unusual Refraction were then turn'd towards the Coast of the unusual -Refraction of that Crystal, or sideways from it. - -Every Ray of Light has therefore two opposite Sides, originally endued -with a Property on which the unusual Refraction depends, and the other -two opposite Sides not endued with that Property. And it remains to be -enquired, whether there are not more Properties of Light by which the -Sides of the Rays differ, and are distinguished from one another. - -In explaining the difference of the Sides of the Rays above mention'd, I -have supposed that the Rays fall perpendicularly on the first Crystal. -But if they fall obliquely on it, the Success is the same. Those Rays -which are refracted after the usual manner in the first Crystal, will be -refracted after the unusual manner in the second Crystal, supposing the -Planes of perpendicular Refraction to be at right Angles with one -another, as above; and on the contrary. - -If the Planes of the perpendicular Refraction of the two Crystals be -neither parallel nor perpendicular to one another, but contain an acute -Angle: The two beams of Light which emerge out of the first Crystal, -will be each of them divided into two more at their Incidence on the -second Crystal. For in this case the Rays in each of the two beams will -some of them have their Sides of unusual Refraction, and some of them -their other Sides turn'd towards the Coast of the unusual Refraction of -the second Crystal. - -_Qu._ 27. Are not all Hypotheses erroneous which have hitherto been -invented for explaining the Phænomena of Light, by new Modifications of -the Rays? For those Phænomena depend not upon new Modifications, as has -been supposed, but upon the original and unchangeable Properties of the -Rays. - -_Qu._ 28. Are not all Hypotheses erroneous, in which Light is supposed -to consist in Pression or Motion, propagated through a fluid Medium? For -in all these Hypotheses the Phænomena of Light have been hitherto -explain'd by supposing that they arise from new Modifications of the -Rays; which is an erroneous Supposition. - -If Light consisted only in Pression propagated without actual Motion, it -would not be able to agitate and heat the Bodies which refract and -reflect it. If it consisted in Motion propagated to all distances in an -instant, it would require an infinite force every moment, in every -shining Particle, to generate that Motion. And if it consisted in -Pression or Motion, propagated either in an instant or in time, it would -bend into the Shadow. For Pression or Motion cannot be propagated in a -Fluid in right Lines, beyond an Obstacle which stops part of the Motion, -but will bend and spread every way into the quiescent Medium which lies -beyond the Obstacle. Gravity tends downwards, but the Pressure of Water -arising from Gravity tends every way with equal Force, and is propagated -as readily, and with as much force sideways as downwards, and through -crooked passages as through strait ones. The Waves on the Surface of -stagnating Water, passing by the sides of a broad Obstacle which stops -part of them, bend afterwards and dilate themselves gradually into the -quiet Water behind the Obstacle. The Waves, Pulses or Vibrations of the -Air, wherein Sounds consist, bend manifestly, though not so much as the -Waves of Water. For a Bell or a Cannon may be heard beyond a Hill which -intercepts the sight of the sounding Body, and Sounds are propagated as -readily through crooked Pipes as through streight ones. But Light is -never known to follow crooked Passages nor to bend into the Shadow. For -the fix'd Stars by the Interposition of any of the Planets cease to be -seen. And so do the Parts of the Sun by the Interposition of the Moon, -_Mercury_ or _Venus_. The Rays which pass very near to the edges of any -Body, are bent a little by the action of the Body, as we shew'd above; -but this bending is not towards but from the Shadow, and is perform'd -only in the passage of the Ray by the Body, and at a very small distance -from it. So soon as the Ray is past the Body, it goes right on. - -[Sidenote: _Mais pour dire comment cela se fait, je n'ay rien trove -jusqu' ici qui me satisfasse._ C. H. de la lumiere, c. 5, p. 91.] - -To explain the unusual Refraction of Island Crystal by Pression or -Motion propagated, has not hitherto been attempted (to my knowledge) -except by _Huygens_, who for that end supposed two several vibrating -Mediums within that Crystal. But when he tried the Refractions in two -successive pieces of that Crystal, and found them such as is mention'd -above; he confessed himself at a loss for explaining them. For Pressions -or Motions, propagated from a shining Body through an uniform Medium, -must be on all sides alike; whereas by those Experiments it appears, -that the Rays of Light have different Properties in their different -Sides. He suspected that the Pulses of _Æther_ in passing through the -first Crystal might receive certain new Modifications, which might -determine them to be propagated in this or that Medium within the -second Crystal, according to the Position of that Crystal. But what -Modifications those might be he could not say, nor think of any thing -satisfactory in that Point. And if he had known that the unusual -Refraction depends not on new Modifications, but on the original and -unchangeable Dispositions of the Rays, he would have found it as -difficult to explain how those Dispositions which he supposed to be -impress'd on the Rays by the first Crystal, could be in them before -their Incidence on that Crystal, and in general, how all Rays emitted by -shining Bodies, can have those Dispositions in them from the beginning. -To me, at least, this seems inexplicable, if Light be nothing else than -Pression or Motion propagated through _Æther_. - -And it is as difficult to explain by these Hypotheses, how Rays can be -alternately in Fits of easy Reflexion and easy Transmission; unless -perhaps one might suppose that there are in all Space two Æthereal -vibrating Mediums, and that the Vibrations of one of them constitute -Light, and the Vibrations of the other are swifter, and as often as they -overtake the Vibrations of the first, put them into those Fits. But how -two _Æthers_ can be diffused through all Space, one of which acts upon -the other, and by consequence is re-acted upon, without retarding, -shattering, dispersing and confounding one anothers Motions, is -inconceivable. And against filling the Heavens with fluid Mediums, -unless they be exceeding rare, a great Objection arises from the regular -and very lasting Motions of the Planets and Comets in all manner of -Courses through the Heavens. For thence it is manifest, that the Heavens -are void of all sensible Resistance, and by consequence of all sensible -Matter. - -For the resisting Power of fluid Mediums arises partly from the -Attrition of the Parts of the Medium, and partly from the _Vis inertiæ_ -of the Matter. That part of the Resistance of a spherical Body which -arises from the Attrition of the Parts of the Medium is very nearly as -the Diameter, or, at the most, as the _Factum_ of the Diameter, and the -Velocity of the spherical Body together. And that part of the Resistance -which arises from the _Vis inertiæ_ of the Matter, is as the Square of -that _Factum_. And by this difference the two sorts of Resistance may be -distinguish'd from one another in any Medium; and these being -distinguish'd, it will be found that almost all the Resistance of Bodies -of a competent Magnitude moving in Air, Water, Quick-silver, and such -like Fluids with a competent Velocity, arises from the _Vis inertiæ_ of -the Parts of the Fluid. - -Now that part of the resisting Power of any Medium which arises from the -Tenacity, Friction or Attrition of the Parts of the Medium, may be -diminish'd by dividing the Matter into smaller Parts, and making the -Parts more smooth and slippery: But that part of the Resistance which -arises from the _Vis inertiæ_, is proportional to the Density of the -Matter, and cannot be diminish'd by dividing the Matter into smaller -Parts, nor by any other means than by decreasing the Density of the -Medium. And for these Reasons the Density of fluid Mediums is very -nearly proportional to their Resistance. Liquors which differ not much -in Density, as Water, Spirit of Wine, Spirit of Turpentine, hot Oil, -differ not much in Resistance. Water is thirteen or fourteen times -lighter than Quick-silver and by consequence thirteen or fourteen times -rarer, and its Resistance is less than that of Quick-silver in the same -Proportion, or thereabouts, as I have found by Experiments made with -Pendulums. The open Air in which we breathe is eight or nine hundred -times lighter than Water, and by consequence eight or nine hundred times -rarer, and accordingly its Resistance is less than that of Water in the -same Proportion, or thereabouts; as I have also found by Experiments -made with Pendulums. And in thinner Air the Resistance is still less, -and at length, by ratifying the Air, becomes insensible. For small -Feathers falling in the open Air meet with great Resistance, but in a -tall Glass well emptied of Air, they fall as fast as Lead or Gold, as I -have seen tried several times. Whence the Resistance seems still to -decrease in proportion to the Density of the Fluid. For I do not find by -any Experiments, that Bodies moving in Quick-silver, Water or Air, meet -with any other sensible Resistance than what arises from the Density and -Tenacity of those sensible Fluids, as they would do if the Pores of -those Fluids, and all other Spaces, were filled with a dense and -subtile Fluid. Now if the Resistance in a Vessel well emptied of Air, -was but an hundred times less than in the open Air, it would be about a -million of times less than in Quick-silver. But it seems to be much less -in such a Vessel, and still much less in the Heavens, at the height of -three or four hundred Miles from the Earth, or above. For Mr. _Boyle_ -has shew'd that Air may be rarified above ten thousand times in Vessels -of Glass; and the Heavens are much emptier of Air than any _Vacuum_ we -can make below. For since the Air is compress'd by the Weight of the -incumbent Atmosphere, and the Density of Air is proportional to the -Force compressing it, it follows by Computation, that at the height of -about seven and a half _English_ Miles from the Earth, the Air is four -times rarer than at the Surface of the Earth; and at the height of 15 -Miles it is sixteen times rarer than that at the Surface of the Earth; -and at the height of 22-1/2, 30, or 38 Miles, it is respectively 64, -256, or 1024 times rarer, or thereabouts; and at the height of 76, 152, -228 Miles, it is about 1000000, 1000000000000, or 1000000000000000000 -times rarer; and so on. - -Heat promotes Fluidity very much by diminishing the Tenacity of Bodies. -It makes many Bodies fluid which are not fluid in cold, and increases -the Fluidity of tenacious Liquids, as of Oil, Balsam, and Honey, and -thereby decreases their Resistance. But it decreases not the Resistance -of Water considerably, as it would do if any considerable part of the -Resistance of Water arose from the Attrition or Tenacity of its Parts. -And therefore the Resistance of Water arises principally and almost -entirely from the _Vis inertiæ_ of its Matter; and by consequence, if -the Heavens were as dense as Water, they would not have much less -Resistance than Water; if as dense as Quick-silver, they would not have -much less Resistance than Quick-silver; if absolutely dense, or full of -Matter without any _Vacuum_, let the Matter be never so subtil and -fluid, they would have a greater Resistance than Quick-silver. A solid -Globe in such a Medium would lose above half its Motion in moving three -times the length of its Diameter, and a Globe not solid (such as are the -Planets,) would be retarded sooner. And therefore to make way for the -regular and lasting Motions of the Planets and Comets, it's necessary to -empty the Heavens of all Matter, except perhaps some very thin Vapours, -Steams, or Effluvia, arising from the Atmospheres of the Earth, Planets, -and Comets, and from such an exceedingly rare Æthereal Medium as we -described above. A dense Fluid can be of no use for explaining the -Phænomena of Nature, the Motions of the Planets and Comets being better -explain'd without it. It serves only to disturb and retard the Motions -of those great Bodies, and make the Frame of Nature languish: And in the -Pores of Bodies, it serves only to stop the vibrating Motions of their -Parts, wherein their Heat and Activity consists. And as it is of no use, -and hinders the Operations of Nature, and makes her languish, so there -is no evidence for its Existence, and therefore it ought to be rejected. -And if it be rejected, the Hypotheses that Light consists in Pression -or Motion, propagated through such a Medium, are rejected with it. - -And for rejecting such a Medium, we have the Authority of those the -oldest and most celebrated Philosophers of _Greece_ and _Phoenicia_, -who made a _Vacuum_, and Atoms, and the Gravity of Atoms, the first -Principles of their Philosophy; tacitly attributing Gravity to some -other Cause than dense Matter. Later Philosophers banish the -Consideration of such a Cause out of natural Philosophy, feigning -Hypotheses for explaining all things mechanically, and referring other -Causes to Metaphysicks: Whereas the main Business of natural Philosophy -is to argue from Phænomena without feigning Hypotheses, and to deduce -Causes from Effects, till we come to the very first Cause, which -certainly is not mechanical; and not only to unfold the Mechanism of the -World, but chiefly to resolve these and such like Questions. What is -there in places almost empty of Matter, and whence is it that the Sun -and Planets gravitate towards one another, without dense Matter between -them? Whence is it that Nature doth nothing in vain; and whence arises -all that Order and Beauty which we see in the World? To what end are -Comets, and whence is it that Planets move all one and the same way in -Orbs concentrick, while Comets move all manner of ways in Orbs very -excentrick; and what hinders the fix'd Stars from falling upon one -another? How came the Bodies of Animals to be contrived with so much -Art, and for what ends were their several Parts? Was the Eye contrived -without Skill in Opticks, and the Ear without Knowledge of Sounds? How -do the Motions of the Body follow from the Will, and whence is the -Instinct in Animals? Is not the Sensory of Animals that place to which -the sensitive Substance is present, and into which the sensible Species -of Things are carried through the Nerves and Brain, that there they may -be perceived by their immediate presence to that Substance? And these -things being rightly dispatch'd, does it not appear from Phænomena that -there is a Being incorporeal, living, intelligent, omnipresent, who in -infinite Space, as it were in his Sensory, sees the things themselves -intimately, and throughly perceives them, and comprehends them wholly by -their immediate presence to himself: Of which things the Images only -carried through the Organs of Sense into our little Sensoriums, are -there seen and beheld by that which in us perceives and thinks. And -though every true Step made in this Philosophy brings us not immediately -to the Knowledge of the first Cause, yet it brings us nearer to it, and -on that account is to be highly valued. - -_Qu._ 29. Are not the Rays of Light very small Bodies emitted from -shining Substances? For such Bodies will pass through uniform Mediums in -right Lines without bending into the Shadow, which is the Nature of the -Rays of Light. They will also be capable of several Properties, and be -able to conserve their Properties unchanged in passing through several -Mediums, which is another Condition of the Rays of Light. Pellucid -Substances act upon the Rays of Light at a distance in refracting, -reflecting, and inflecting them, and the Rays mutually agitate the Parts -of those Substances at a distance for heating them; and this Action and -Re-action at a distance very much resembles an attractive Force between -Bodies. If Refraction be perform'd by Attraction of the Rays, the Sines -of Incidence must be to the Sines of Refraction in a given Proportion, -as we shew'd in our Principles of Philosophy: And this Rule is true by -Experience. The Rays of Light in going out of Glass into a _Vacuum_, are -bent towards the Glass; and if they fall too obliquely on the _Vacuum_, -they are bent backwards into the Glass, and totally reflected; and this -Reflexion cannot be ascribed to the Resistance of an absolute _Vacuum_, -but must be caused by the Power of the Glass attracting the Rays at -their going out of it into the _Vacuum_, and bringing them back. For if -the farther Surface of the Glass be moisten'd with Water or clear Oil, -or liquid and clear Honey, the Rays which would otherwise be reflected -will go into the Water, Oil, or Honey; and therefore are not reflected -before they arrive at the farther Surface of the Glass, and begin to go -out of it. If they go out of it into the Water, Oil, or Honey, they go -on, because the Attraction of the Glass is almost balanced and rendered -ineffectual by the contrary Attraction of the Liquor. But if they go out -of it into a _Vacuum_ which has no Attraction to balance that of the -Glass, the Attraction of the Glass either bends and refracts them, or -brings them back and reflects them. And this is still more evident by -laying together two Prisms of Glass, or two Object-glasses of very long -Telescopes, the one plane, the other a little convex, and so compressing -them that they do not fully touch, nor are too far asunder. For the -Light which falls upon the farther Surface of the first Glass where the -Interval between the Glasses is not above the ten hundred thousandth -Part of an Inch, will go through that Surface, and through the Air or -_Vacuum_ between the Glasses, and enter into the second Glass, as was -explain'd in the first, fourth, and eighth Observations of the first -Part of the second Book. But, if the second Glass be taken away, the -Light which goes out of the second Surface of the first Glass into the -Air or _Vacuum_, will not go on forwards, but turns back into the first -Glass, and is reflected; and therefore it is drawn back by the Power of -the first Glass, there being nothing else to turn it back. Nothing more -is requisite for producing all the variety of Colours, and degrees of -Refrangibility, than that the Rays of Light be Bodies of different -Sizes, the least of which may take violet the weakest and darkest of the -Colours, and be more easily diverted by refracting Surfaces from the -right Course; and the rest as they are bigger and bigger, may make the -stronger and more lucid Colours, blue, green, yellow, and red, and be -more and more difficultly diverted. Nothing more is requisite for -putting the Rays of Light into Fits of easy Reflexion and easy -Transmission, than that they be small Bodies which by their attractive -Powers, or some other Force, stir up Vibrations in what they act upon, -which Vibrations being swifter than the Rays, overtake them -successively, and agitate them so as by turns to increase and decrease -their Velocities, and thereby put them into those Fits. And lastly, the -unusual Refraction of Island-Crystal looks very much as if it were -perform'd by some kind of attractive virtue lodged in certain Sides both -of the Rays, and of the Particles of the Crystal. For were it not for -some kind of Disposition or Virtue lodged in some Sides of the Particles -of the Crystal, and not in their other Sides, and which inclines and -bends the Rays towards the Coast of unusual Refraction, the Rays which -fall perpendicularly on the Crystal, would not be refracted towards that -Coast rather than towards any other Coast, both at their Incidence and -at their Emergence, so as to emerge perpendicularly by a contrary -Situation of the Coast of unusual Refraction at the second Surface; the -Crystal acting upon the Rays after they have pass'd through it, and are -emerging into the Air; or, if you please, into a _Vacuum_. And since the -Crystal by this Disposition or Virtue does not act upon the Rays, unless -when one of their Sides of unusual Refraction looks towards that Coast, -this argues a Virtue or Disposition in those Sides of the Rays, which -answers to, and sympathizes with that Virtue or Disposition of the -Crystal, as the Poles of two Magnets answer to one another. And as -Magnetism may be intended and remitted, and is found only in the Magnet -and in Iron: So this Virtue of refracting the perpendicular Rays is -greater in Island-Crystal, less in Crystal of the Rock, and is not yet -found in other Bodies. I do not say that this Virtue is magnetical: It -seems to be of another kind. I only say, that whatever it be, it's -difficult to conceive how the Rays of Light, unless they be Bodies, can -have a permanent Virtue in two of their Sides which is not in their -other Sides, and this without any regard to their Position to the Space -or Medium through which they pass. - -What I mean in this Question by a _Vacuum_, and by the Attractions of -the Rays of Light towards Glass or Crystal, may be understood by what -was said in the 18th, 19th, and 20th Questions. - -_Quest._ 30. Are not gross Bodies and Light convertible into one -another, and may not Bodies receive much of their Activity from the -Particles of Light which enter their Composition? For all fix'd Bodies -being heated emit Light so long as they continue sufficiently hot, and -Light mutually stops in Bodies as often as its Rays strike upon their -Parts, as we shew'd above. I know no Body less apt to shine than Water; -and yet Water by frequent Distillations changes into fix'd Earth, as Mr. -_Boyle_ has try'd; and then this Earth being enabled to endure a -sufficient Heat, shines by Heat like other Bodies. - -The changing of Bodies into Light, and Light into Bodies, is very -conformable to the Course of Nature, which seems delighted with -Transmutations. Water, which is a very fluid tasteless Salt, she changes -by Heat into Vapour, which is a sort of Air, and by Cold into Ice, which -is a hard, pellucid, brittle, fusible Stone; and this Stone returns into -Water by Heat, and Vapour returns into Water by Cold. Earth by Heat -becomes Fire, and by Cold returns into Earth. Dense Bodies by -Fermentation rarify into several sorts of Air, and this Air by -Fermentation, and sometimes without it, returns into dense Bodies. -Mercury appears sometimes in the form of a fluid Metal, sometimes in the -form of a hard brittle Metal, sometimes in the form of a corrosive -pellucid Salt call'd Sublimate, sometimes in the form of a tasteless, -pellucid, volatile white Earth, call'd _Mercurius Dulcis_; or in that of -a red opake volatile Earth, call'd Cinnaber; or in that of a red or -white Precipitate, or in that of a fluid Salt; and in Distillation it -turns into Vapour, and being agitated _in Vacuo_, it shines like Fire. -And after all these Changes it returns again into its first form of -Mercury. Eggs grow from insensible Magnitudes, and change into Animals; -Tadpoles into Frogs; and Worms into Flies. All Birds, Beasts and Fishes, -Insects, Trees, and other Vegetables, with their several Parts, grow out -of Water and watry Tinctures and Salts, and by Putrefaction return again -into watry Substances. And Water standing a few Days in the open Air, -yields a Tincture, which (like that of Malt) by standing longer yields a -Sediment and a Spirit, but before Putrefaction is fit Nourishment for -Animals and Vegetables. And among such various and strange -Transmutations, why may not Nature change Bodies into Light, and Light -into Bodies? - -_Quest._ 31. Have not the small Particles of Bodies certain Powers, -Virtues, or Forces, by which they act at a distance, not only upon the -Rays of Light for reflecting, refracting, and inflecting them, but also -upon one another for producing a great Part of the Phænomena of Nature? -For it's well known, that Bodies act one upon another by the Attractions -of Gravity, Magnetism, and Electricity; and these Instances shew the -Tenor and Course of Nature, and make it not improbable but that there -may be more attractive Powers than these. For Nature is very consonant -and conformable to her self. How these Attractions may be perform'd, I -do not here consider. What I call Attraction may be perform'd by -impulse, or by some other means unknown to me. I use that Word here to -signify only in general any Force by which Bodies tend towards one -another, whatsoever be the Cause. For we must learn from the Phænomena -of Nature what Bodies attract one another, and what are the Laws and -Properties of the Attraction, before we enquire the Cause by which the -Attraction is perform'd. The Attractions of Gravity, Magnetism, and -Electricity, reach to very sensible distances, and so have been observed -by vulgar Eyes, and there may be others which reach to so small -distances as hitherto escape Observation; and perhaps electrical -Attraction may reach to such small distances, even without being excited -by Friction. - -For when Salt of Tartar runs _per Deliquium_, is not this done by an -Attraction between the Particles of the Salt of Tartar, and the -Particles of the Water which float in the Air in the form of Vapours? -And why does not common Salt, or Salt-petre, or Vitriol, run _per -Deliquium_, but for want of such an Attraction? Or why does not Salt of -Tartar draw more Water out of the Air than in a certain Proportion to -its quantity, but for want of an attractive Force after it is satiated -with Water? And whence is it but from this attractive Power that Water -which alone distils with a gentle luke-warm Heat, will not distil from -Salt of Tartar without a great Heat? And is it not from the like -attractive Power between the Particles of Oil of Vitriol and the -Particles of Water, that Oil of Vitriol draws to it a good quantity of -Water out of the Air, and after it is satiated draws no more, and in -Distillation lets go the Water very difficultly? And when Water and Oil -of Vitriol poured successively into the same Vessel grow very hot in the -mixing, does not this Heat argue a great Motion in the Parts of the -Liquors? And does not this Motion argue, that the Parts of the two -Liquors in mixing coalesce with Violence, and by consequence rush -towards one another with an accelerated Motion? And when _Aqua fortis_, -or Spirit of Vitriol poured upon Filings of Iron dissolves the Filings -with a great Heat and Ebullition, is not this Heat and Ebullition -effected by a violent Motion of the Parts, and does not that Motion -argue that the acid Parts of the Liquor rush towards the Parts of the -Metal with violence, and run forcibly into its Pores till they get -between its outmost Particles, and the main Mass of the Metal, and -surrounding those Particles loosen them from the main Mass, and set them -at liberty to float off into the Water? And when the acid Particles, -which alone would distil with an easy Heat, will not separate from the -Particles of the Metal without a very violent Heat, does not this -confirm the Attraction between them? - -When Spirit of Vitriol poured upon common Salt or Salt-petre makes an -Ebullition with the Salt, and unites with it, and in Distillation the -Spirit of the common Salt or Salt-petre comes over much easier than it -would do before, and the acid part of the Spirit of Vitriol stays -behind; does not this argue that the fix'd Alcaly of the Salt attracts -the acid Spirit of the Vitriol more strongly than its own Spirit, and -not being able to hold them both, lets go its own? And when Oil of -Vitriol is drawn off from its weight of Nitre, and from both the -Ingredients a compound Spirit of Nitre is distilled, and two parts of -this Spirit are poured on one part of Oil of Cloves or Carraway Seeds, -or of any ponderous Oil of vegetable or animal Substances, or Oil of -Turpentine thicken'd with a little Balsam of Sulphur, and the Liquors -grow so very hot in mixing, as presently to send up a burning Flame; -does not this very great and sudden Heat argue that the two Liquors mix -with violence, and that their Parts in mixing run towards one another -with an accelerated Motion, and clash with the greatest Force? And is it -not for the same reason that well rectified Spirit of Wine poured on the -same compound Spirit flashes; and that the _Pulvis fulminans_, composed -of Sulphur, Nitre, and Salt of Tartar, goes off with a more sudden and -violent Explosion than Gun-powder, the acid Spirits of the Sulphur and -Nitre rushing towards one another, and towards the Salt of Tartar, with -so great a violence, as by the shock to turn the whole at once into -Vapour and Flame? Where the Dissolution is slow, it makes a slow -Ebullition and a gentle Heat; and where it is quicker, it makes a -greater Ebullition with more heat; and where it is done at once, the -Ebullition is contracted into a sudden Blast or violent Explosion, with -a heat equal to that of Fire and Flame. So when a Drachm of the -above-mention'd compound Spirit of Nitre was poured upon half a Drachm -of Oil of Carraway Seeds _in vacuo_, the Mixture immediately made a -flash like Gun-powder, and burst the exhausted Receiver, which was a -Glass six Inches wide, and eight Inches deep. And even the gross Body of -Sulphur powder'd, and with an equal weight of Iron Filings and a little -Water made into Paste, acts upon the Iron, and in five or six hours -grows too hot to be touch'd, and emits a Flame. And by these Experiments -compared with the great quantity of Sulphur with which the Earth -abounds, and the warmth of the interior Parts of the Earth, and hot -Springs, and burning Mountains, and with Damps, mineral Coruscations, -Earthquakes, hot suffocating Exhalations, Hurricanes, and Spouts; we may -learn that sulphureous Steams abound in the Bowels of the Earth and -ferment with Minerals, and sometimes take fire with a sudden Coruscation -and Explosion; and if pent up in subterraneous Caverns, burst the -Caverns with a great shaking of the Earth, as in springing of a Mine. -And then the Vapour generated by the Explosion, expiring through the -Pores of the Earth, feels hot and suffocates, and makes Tempests and -Hurricanes, and sometimes causes the Land to slide, or the Sea to boil, -and carries up the Water thereof in Drops, which by their weight fall -down again in Spouts. Also some sulphureous Steams, at all times when -the Earth is dry, ascending into the Air, ferment there with nitrous -Acids, and sometimes taking fire cause Lightning and Thunder, and fiery -Meteors. For the Air abounds with acid Vapours fit to promote -Fermentations, as appears by the rusting of Iron and Copper in it, the -kindling of Fire by blowing, and the beating of the Heart by means of -Respiration. Now the above-mention'd Motions are so great and violent as -to shew that in Fermentations the Particles of Bodies which almost rest, -are put into new Motions by a very potent Principle, which acts upon -them only when they approach one another, and causes them to meet and -clash with great violence, and grow hot with the motion, and dash one -another into pieces, and vanish into Air, and Vapour, and Flame. - -When Salt of Tartar _per deliquium_, being poured into the Solution of -any Metal, precipitates the Metal and makes it fall down to the bottom -of the Liquor in the form of Mud: Does not this argue that the acid -Particles are attracted more strongly by the Salt of Tartar than by the -Metal, and by the stronger Attraction go from the Metal to the Salt of -Tartar? And so when a Solution of Iron in _Aqua fortis_ dissolves the -_Lapis Calaminaris_, and lets go the Iron, or a Solution of Copper -dissolves Iron immersed in it and lets go the Copper, or a Solution of -Silver dissolves Copper and lets go the Silver, or a Solution of Mercury -in _Aqua fortis_ being poured upon Iron, Copper, Tin, or Lead, dissolves -the Metal and lets go the Mercury; does not this argue that the acid -Particles of the _Aqua fortis_ are attracted more strongly by the _Lapis -Calaminaris_ than by Iron, and more strongly by Iron than by Copper, and -more strongly by Copper than by Silver, and more strongly by Iron, -Copper, Tin, and Lead, than by Mercury? And is it not for the same -reason that Iron requires more _Aqua fortis_ to dissolve it than Copper, -and Copper more than the other Metals; and that of all Metals, Iron is -dissolved most easily, and is most apt to rust; and next after Iron, -Copper? - -When Oil of Vitriol is mix'd with a little Water, or is run _per -deliquium_, and in Distillation the Water ascends difficultly, and -brings over with it some part of the Oil of Vitriol in the form of -Spirit of Vitriol, and this Spirit being poured upon Iron, Copper, or -Salt of Tartar, unites with the Body and lets go the Water; doth not -this shew that the acid Spirit is attracted by the Water, and more -attracted by the fix'd Body than by the Water, and therefore lets go the -Water to close with the fix'd Body? And is it not for the same reason -that the Water and acid Spirits which are mix'd together in Vinegar, -_Aqua fortis_, and Spirit of Salt, cohere and rise together in -Distillation; but if the _Menstruum_ be poured on Salt of Tartar, or on -Lead, or Iron, or any fix'd Body which it can dissolve, the Acid by a -stronger Attraction adheres to the Body, and lets go the Water? And is -it not also from a mutual Attraction that the Spirits of Soot and -Sea-Salt unite and compose the Particles of Sal-armoniac, which are less -volatile than before, because grosser and freer from Water; and that the -Particles of Sal-armoniac in Sublimation carry up the Particles of -Antimony, which will not sublime alone; and that the Particles of -Mercury uniting with the acid Particles of Spirit of Salt compose -Mercury sublimate, and with the Particles of Sulphur, compose Cinnaber; -and that the Particles of Spirit of Wine and Spirit of Urine well -rectified unite, and letting go the Water which dissolved them, compose -a consistent Body; and that in subliming Cinnaber from Salt of Tartar, -or from quick Lime, the Sulphur by a stronger Attraction of the Salt or -Lime lets go the Mercury, and stays with the fix'd Body; and that when -Mercury sublimate is sublimed from Antimony, or from Regulus of -Antimony, the Spirit of Salt lets go the Mercury, and unites with the -antimonial metal which attracts it more strongly, and stays with it till -the Heat be great enough to make them both ascend together, and then -carries up the Metal with it in the form of a very fusible Salt, called -Butter of Antimony, although the Spirit of Salt alone be almost as -volatile as Water, and the Antimony alone as fix'd as Lead? - -When _Aqua fortis_ dissolves Silver and not Gold, and _Aqua regia_ -dissolves Gold and not Silver, may it not be said that _Aqua fortis_ is -subtil enough to penetrate Gold as well as Silver, but wants the -attractive Force to give it Entrance; and that _Aqua regia_ is subtil -enough to penetrate Silver as well as Gold, but wants the attractive -Force to give it Entrance? For _Aqua regia_ is nothing else than _Aqua -fortis_ mix'd with some Spirit of Salt, or with Sal-armoniac; and even -common Salt dissolved in _Aqua fortis_, enables the _Menstruum_ to -dissolve Gold, though the Salt be a gross Body. When therefore Spirit of -Salt precipitates Silver out of _Aqua fortis_, is it not done by -attracting and mixing with the _Aqua fortis_, and not attracting, or -perhaps repelling Silver? And when Water precipitates Antimony out of -the Sublimate of Antimony and Sal-armoniac, or out of Butter of -Antimony, is it not done by its dissolving, mixing with, and weakening -the Sal-armoniac or Spirit of Salt, and its not attracting, or perhaps -repelling the Antimony? And is it not for want of an attractive virtue -between the Parts of Water and Oil, of Quick-silver and Antimony, of -Lead and Iron, that these Substances do not mix; and by a weak -Attraction, that Quick-silver and Copper mix difficultly; and from a -strong one, that Quick-silver and Tin, Antimony and Iron, Water and -Salts, mix readily? And in general, is it not from the same Principle -that Heat congregates homogeneal Bodies, and separates heterogeneal -ones? - -When Arsenick with Soap gives a Regulus, and with Mercury sublimate a -volatile fusible Salt, like Butter of Antimony, doth not this shew that -Arsenick, which is a Substance totally volatile, is compounded of fix'd -and volatile Parts, strongly cohering by a mutual Attraction, so that -the volatile will not ascend without carrying up the fixed? And so, when -an equal weight of Spirit of Wine and Oil of Vitriol are digested -together, and in Distillation yield two fragrant and volatile Spirits -which will not mix with one another, and a fix'd black Earth remains -behind; doth not this shew that Oil of Vitriol is composed of volatile -and fix'd Parts strongly united by Attraction, so as to ascend together -in form of a volatile, acid, fluid Salt, until the Spirit of Wine -attracts and separates the volatile Parts from the fixed? And therefore, -since Oil of Sulphur _per Campanam_ is of the same Nature with Oil of -Vitriol, may it not be inferred, that Sulphur is also a mixture of -volatile and fix'd Parts so strongly cohering by Attraction, as to -ascend together in Sublimation. By dissolving Flowers of Sulphur in Oil -of Turpentine, and distilling the Solution, it is found that Sulphur is -composed of an inflamable thick Oil or fat Bitumen, an acid Salt, a very -fix'd Earth, and a little Metal. The three first were found not much -unequal to one another, the fourth in so small a quantity as scarce to -be worth considering. The acid Salt dissolved in Water, is the same with -Oil of Sulphur _per Campanam_, and abounding much in the Bowels of the -Earth, and particularly in Markasites, unites it self to the other -Ingredients of the Markasite, which are, Bitumen, Iron, Copper, and -Earth, and with them compounds Allum, Vitriol, and Sulphur. With the -Earth alone it compounds Allum; with the Metal alone, or Metal and -Earth together, it compounds Vitriol; and with the Bitumen and Earth it -compounds Sulphur. Whence it comes to pass that Markasites abound with -those three Minerals. And is it not from the mutual Attraction of the -Ingredients that they stick together for compounding these Minerals, and -that the Bitumen carries up the other Ingredients of the Sulphur, which -without it would not sublime? And the same Question may be put -concerning all, or almost all the gross Bodies in Nature. For all the -Parts of Animals and Vegetables are composed of Substances volatile and -fix'd, fluid and solid, as appears by their Analysis; and so are Salts -and Minerals, so far as Chymists have been hitherto able to examine -their Composition. - -When Mercury sublimate is re-sublimed with fresh Mercury, and becomes -_Mercurius Dulcis_, which is a white tasteless Earth scarce dissolvable -in Water, and _Mercurius Dulcis_ re-sublimed with Spirit of Salt returns -into Mercury sublimate; and when Metals corroded with a little acid turn -into rust, which is an Earth tasteless and indissolvable in Water, and -this Earth imbibed with more acid becomes a metallick Salt; and when -some Stones, as Spar of Lead, dissolved in proper _Menstruums_ become -Salts; do not these things shew that Salts are dry Earth and watry Acid -united by Attraction, and that the Earth will not become a Salt without -so much acid as makes it dissolvable in Water? Do not the sharp and -pungent Tastes of Acids arise from the strong Attraction whereby the -acid Particles rush upon and agitate the Particles of the Tongue? And -when Metals are dissolved in acid _Menstruums_, and the Acids in -conjunction with the Metal act after a different manner, so that the -Compound has a different Taste much milder than before, and sometimes a -sweet one; is it not because the Acids adhere to the metallick -Particles, and thereby lose much of their Activity? And if the Acid be -in too small a Proportion to make the Compound dissolvable in Water, -will it not by adhering strongly to the Metal become unactive and lose -its Taste, and the Compound be a tasteless Earth? For such things as are -not dissolvable by the Moisture of the Tongue, act not upon the Taste. - -As Gravity makes the Sea flow round the denser and weightier Parts of -the Globe of the Earth, so the Attraction may make the watry Acid flow -round the denser and compacter Particles of Earth for composing the -Particles of Salt. For otherwise the Acid would not do the Office of a -Medium between the Earth and common Water, for making Salts dissolvable -in the Water; nor would Salt of Tartar readily draw off the Acid from -dissolved Metals, nor Metals the Acid from Mercury. Now, as in the great -Globe of the Earth and Sea, the densest Bodies by their Gravity sink -down in Water, and always endeavour to go towards the Center of the -Globe; so in Particles of Salt, the densest Matter may always endeavour -to approach the Center of the Particle: So that a Particle of Salt may -be compared to a Chaos; being dense, hard, dry, and earthy in the -Center; and rare, soft, moist, and watry in the Circumference. And -hence it seems to be that Salts are of a lasting Nature, being scarce -destroy'd, unless by drawing away their watry Parts by violence, or by -letting them soak into the Pores of the central Earth by a gentle Heat -in Putrefaction, until the Earth be dissolved by the Water, and -separated into smaller Particles, which by reason of their Smallness -make the rotten Compound appear of a black Colour. Hence also it may be, -that the Parts of Animals and Vegetables preserve their several Forms, -and assimilate their Nourishment; the soft and moist Nourishment easily -changing its Texture by a gentle Heat and Motion, till it becomes like -the dense, hard, dry, and durable Earth in the Center of each Particle. -But when the Nourishment grows unfit to be assimilated, or the central -Earth grows too feeble to assimilate it, the Motion ends in Confusion, -Putrefaction, and Death. - -If a very small quantity of any Salt or Vitriol be dissolved in a great -quantity of Water, the Particles of the Salt or Vitriol will not sink to -the bottom, though they be heavier in Specie than the Water, but will -evenly diffuse themselves into all the Water, so as to make it as saline -at the top as at the bottom. And does not this imply that the Parts of -the Salt or Vitriol recede from one another, and endeavour to expand -themselves, and get as far asunder as the quantity of Water in which -they float, will allow? And does not this Endeavour imply that they have -a repulsive Force by which they fly from one another, or at least, that -they attract the Water more strongly than they do one another? For as -all things ascend in Water which are less attracted than Water, by the -gravitating Power of the Earth; so all the Particles of Salt which float -in Water, and are less attracted than Water by any one Particle of Salt, -must recede from that Particle, and give way to the more attracted -Water. - -When any saline Liquor is evaporated to a Cuticle and let cool, the Salt -concretes in regular Figures; which argues, that the Particles of the -Salt before they concreted, floated in the Liquor at equal distances in -rank and file, and by consequence that they acted upon one another by -some Power which at equal distances is equal, at unequal distances -unequal. For by such a Power they will range themselves uniformly, and -without it they will float irregularly, and come together as -irregularly. And since the Particles of Island-Crystal act all the same -way upon the Rays of Light for causing the unusual Refraction, may it -not be supposed that in the Formation of this Crystal, the Particles not -only ranged themselves in rank and file for concreting in regular -Figures, but also by some kind of polar Virtue turned their homogeneal -Sides the same way. - -The Parts of all homogeneal hard Bodies which fully touch one another, -stick together very strongly. And for explaining how this may be, some -have invented hooked Atoms, which is begging the Question; and others -tell us that Bodies are glued together by rest, that is, by an occult -Quality, or rather by nothing; and others, that they stick together by -conspiring Motions, that is, by relative rest amongst themselves. I had -rather infer from their Cohesion, that their Particles attract one -another by some Force, which in immediate Contact is exceeding strong, -at small distances performs the chymical Operations above-mention'd, and -reaches not far from the Particles with any sensible Effect. - -All Bodies seem to be composed of hard Particles: For otherwise Fluids -would not congeal; as Water, Oils, Vinegar, and Spirit or Oil of Vitriol -do by freezing; Mercury by Fumes of Lead; Spirit of Nitre and Mercury, -by dissolving the Mercury and evaporating the Flegm; Spirit of Wine and -Spirit of Urine, by deflegming and mixing them; and Spirit of Urine and -Spirit of Salt, by subliming them together to make Sal-armoniac. Even -the Rays of Light seem to be hard Bodies; for otherwise they would not -retain different Properties in their different Sides. And therefore -Hardness may be reckon'd the Property of all uncompounded Matter. At -least, this seems to be as evident as the universal Impenetrability of -Matter. For all Bodies, so far as Experience reaches, are either hard, -or may be harden'd; and we have no other Evidence of universal -Impenetrability, besides a large Experience without an experimental -Exception. Now if compound Bodies are so very hard as we find some of -them to be, and yet are very porous, and consist of Parts which are only -laid together; the simple Particles which are void of Pores, and were -never yet divided, must be much harder. For such hard Particles being -heaped up together, can scarce touch one another in more than a few -Points, and therefore must be separable by much less Force than is -requisite to break a solid Particle, whose Parts touch in all the Space -between them, without any Pores or Interstices to weaken their Cohesion. -And how such very hard Particles which are only laid together and touch -only in a few Points, can stick together, and that so firmly as they do, -without the assistance of something which causes them to be attracted or -press'd towards one another, is very difficult to conceive. - -The same thing I infer also from the cohering of two polish'd Marbles -_in vacuo_, and from the standing of Quick-silver in the Barometer at -the height of 50, 60 or 70 Inches, or above, when ever it is well-purged -of Air and carefully poured in, so that its Parts be every where -contiguous both to one another and to the Glass. The Atmosphere by its -weight presses the Quick-silver into the Glass, to the height of 29 or -30 Inches. And some other Agent raises it higher, not by pressing it -into the Glass, but by making its Parts stick to the Glass, and to one -another. For upon any discontinuation of Parts, made either by Bubbles -or by shaking the Glass, the whole Mercury falls down to the height of -29 or 30 Inches. - -And of the same kind with these Experiments are those that follow. If -two plane polish'd Plates of Glass (suppose two pieces of a polish'd -Looking-glass) be laid together, so that their sides be parallel and at -a very small distance from one another, and then their lower edges be -dipped into Water, the Water will rise up between them. And the less -the distance of the Glasses is, the greater will be the height to which -the Water will rise. If the distance be about the hundredth part of an -Inch, the Water will rise to the height of about an Inch; and if the -distance be greater or less in any Proportion, the height will be -reciprocally proportional to the distance very nearly. For the -attractive Force of the Glasses is the same, whether the distance -between them be greater or less; and the weight of the Water drawn up is -the same, if the height of it be reciprocally proportional to the -distance of the Glasses. And in like manner, Water ascends between two -Marbles polish'd plane, when their polish'd sides are parallel, and at a -very little distance from one another, And if slender Pipes of Glass be -dipped at one end into stagnating Water, the Water will rise up within -the Pipe, and the height to which it rises will be reciprocally -proportional to the Diameter of the Cavity of the Pipe, and will equal -the height to which it rises between two Planes of Glass, if the -Semi-diameter of the Cavity of the Pipe be equal to the distance between -the Planes, or thereabouts. And these Experiments succeed after the same -manner _in vacuo_ as in the open Air, (as hath been tried before the -Royal Society,) and therefore are not influenced by the Weight or -Pressure of the Atmosphere. - -And if a large Pipe of Glass be filled with sifted Ashes well pressed -together in the Glass, and one end of the Pipe be dipped into stagnating -Water, the Water will rise up slowly in the Ashes, so as in the space -of a Week or Fortnight to reach up within the Glass, to the height of 30 -or 40 Inches above the stagnating Water. And the Water rises up to this -height by the Action only of those Particles of the Ashes which are upon -the Surface of the elevated Water; the Particles which are within the -Water, attracting or repelling it as much downwards as upwards. And -therefore the Action of the Particles is very strong. But the Particles -of the Ashes being not so dense and close together as those of Glass, -their Action is not so strong as that of Glass, which keeps Quick-silver -suspended to the height of 60 or 70 Inches, and therefore acts with a -Force which would keep Water suspended to the height of above 60 Feet. - -By the same Principle, a Sponge sucks in Water, and the Glands in the -Bodies of Animals, according to their several Natures and Dispositions, -suck in various Juices from the Blood. - -If two plane polish'd Plates of Glass three or four Inches broad, and -twenty or twenty five long, be laid one of them parallel to the Horizon, -the other upon the first, so as at one of their ends to touch one -another, and contain an Angle of about 10 or 15 Minutes, and the same be -first moisten'd on their inward sides with a clean Cloth dipp'd into Oil -of Oranges or Spirit of Turpentine, and a Drop or two of the Oil or -Spirit be let fall upon the lower Glass at the other; so soon as the -upper Glass is laid down upon the lower, so as to touch it at one end as -above, and to touch the Drop at the other end, making with the lower -Glass an Angle of about 10 or 15 Minutes; the Drop will begin to move -towards the Concourse of the Glasses, and will continue to move with an -accelerated Motion, till it arrives at that Concourse of the Glasses. -For the two Glasses attract the Drop, and make it run that way towards -which the Attractions incline. And if when the Drop is in motion you -lift up that end of the Glasses where they meet, and towards which the -Drop moves, the Drop will ascend between the Glasses, and therefore is -attracted. And as you lift up the Glasses more and more, the Drop will -ascend slower and slower, and at length rest, being then carried -downward by its Weight, as much as upwards by the Attraction. And by -this means you may know the Force by which the Drop is attracted at all -distances from the Concourse of the Glasses. - -Now by some Experiments of this kind, (made by Mr. _Hauksbee_) it has -been found that the Attraction is almost reciprocally in a duplicate -Proportion of the distance of the middle of the Drop from the Concourse -of the Glasses, _viz._ reciprocally in a simple Proportion, by reason of -the spreading of the Drop, and its touching each Glass in a larger -Surface; and again reciprocally in a simple Proportion, by reason of the -Attractions growing stronger within the same quantity of attracting -Surface. The Attraction therefore within the same quantity of attracting -Surface, is reciprocally as the distance between the Glasses. And -therefore where the distance is exceeding small, the Attraction must be -exceeding great. By the Table in the second Part of the second Book, -wherein the thicknesses of colour'd Plates of Water between two Glasses -are set down, the thickness of the Plate where it appears very black, is -three eighths of the ten hundred thousandth part of an Inch. And where -the Oil of Oranges between the Glasses is of this thickness, the -Attraction collected by the foregoing Rule, seems to be so strong, as -within a Circle of an Inch in diameter, to suffice to hold up a Weight -equal to that of a Cylinder of Water of an Inch in diameter, and two or -three Furlongs in length. And where it is of a less thickness the -Attraction may be proportionally greater, and continue to increase, -until the thickness do not exceed that of a single Particle of the Oil. -There are therefore Agents in Nature able to make the Particles of -Bodies stick together by very strong Attractions. And it is the Business -of experimental Philosophy to find them out. - -Now the smallest Particles of Matter may cohere by the strongest -Attractions, and compose bigger Particles of weaker Virtue; and many of -these may cohere and compose bigger Particles whose Virtue is still -weaker, and so on for divers Successions, until the Progression end in -the biggest Particles on which the Operations in Chymistry, and the -Colours of natural Bodies depend, and which by cohering compose Bodies -of a sensible Magnitude. If the Body is compact, and bends or yields -inward to Pression without any sliding of its Parts, it is hard and -elastick, returning to its Figure with a Force rising from the mutual -Attraction of its Parts. If the Parts slide upon one another, the Body -is malleable or soft. If they slip easily, and are of a fit Size to be -agitated by Heat, and the Heat is big enough to keep them in Agitation, -the Body is fluid; and if it be apt to stick to things, it is humid; and -the Drops of every fluid affect a round Figure by the mutual Attraction -of their Parts, as the Globe of the Earth and Sea affects a round Figure -by the mutual Attraction of its Parts by Gravity. - -Since Metals dissolved in Acids attract but a small quantity of the -Acid, their attractive Force can reach but to a small distance from -them. And as in Algebra, where affirmative Quantities vanish and cease, -there negative ones begin; so in Mechanicks, where Attraction ceases, -there a repulsive Virtue ought to succeed. And that there is such a -Virtue, seems to follow from the Reflexions and Inflexions of the Rays -of Light. For the Rays are repelled by Bodies in both these Cases, -without the immediate Contact of the reflecting or inflecting Body. It -seems also to follow from the Emission of Light; the Ray so soon as it -is shaken off from a shining Body by the vibrating Motion of the Parts -of the Body, and gets beyond the reach of Attraction, being driven away -with exceeding great Velocity. For that Force which is sufficient to -turn it back in Reflexion, may be sufficient to emit it. It seems also -to follow from the Production of Air and Vapour. The Particles when they -are shaken off from Bodies by Heat or Fermentation, so soon as they are -beyond the reach of the Attraction of the Body, receding from it, and -also from one another with great Strength, and keeping at a distance, -so as sometimes to take up above a Million of Times more space than they -did before in the form of a dense Body. Which vast Contraction and -Expansion seems unintelligible, by feigning the Particles of Air to be -springy and ramous, or rolled up like Hoops, or by any other means than -a repulsive Power. The Particles of Fluids which do not cohere too -strongly, and are of such a Smallness as renders them most susceptible -of those Agitations which keep Liquors in a Fluor, are most easily -separated and rarified into Vapour, and in the Language of the Chymists, -they are volatile, rarifying with an easy Heat, and condensing with -Cold. But those which are grosser, and so less susceptible of Agitation, -or cohere by a stronger Attraction, are not separated without a stronger -Heat, or perhaps not without Fermentation. And these last are the Bodies -which Chymists call fix'd, and being rarified by Fermentation, become -true permanent Air; those Particles receding from one another with the -greatest Force, and being most difficultly brought together, which upon -Contact cohere most strongly. And because the Particles of permanent Air -are grosser, and arise from denser Substances than those of Vapours, -thence it is that true Air is more ponderous than Vapour, and that a -moist Atmosphere is lighter than a dry one, quantity for quantity. From -the same repelling Power it seems to be that Flies walk upon the Water -without wetting their Feet; and that the Object-glasses of long -Telescopes lie upon one another without touching; and that dry Powders -are difficultly made to touch one another so as to stick together, -unless by melting them, or wetting them with Water, which by exhaling -may bring them together; and that two polish'd Marbles, which by -immediate Contact stick together, are difficultly brought so close -together as to stick. - -And thus Nature will be very conformable to her self and very simple, -performing all the great Motions of the heavenly Bodies by the -Attraction of Gravity which intercedes those Bodies, and almost all the -small ones of their Particles by some other attractive and repelling -Powers which intercede the Particles. The _Vis inertiæ_ is a passive -Principle by which Bodies persist in their Motion or Rest, receive -Motion in proportion to the Force impressing it, and resist as much as -they are resisted. By this Principle alone there never could have been -any Motion in the World. Some other Principle was necessary for putting -Bodies into Motion; and now they are in Motion, some other Principle is -necessary for conserving the Motion. For from the various Composition of -two Motions, 'tis very certain that there is not always the same -quantity of Motion in the World. For if two Globes joined by a slender -Rod, revolve about their common Center of Gravity with an uniform -Motion, while that Center moves on uniformly in a right Line drawn in -the Plane of their circular Motion; the Sum of the Motions of the two -Globes, as often as the Globes are in the right Line described by their -common Center of Gravity, will be bigger than the Sum of their Motions, -when they are in a Line perpendicular to that right Line. By this -Instance it appears that Motion may be got or lost. But by reason of the -Tenacity of Fluids, and Attrition of their Parts, and the Weakness of -Elasticity in Solids, Motion is much more apt to be lost than got, and -is always upon the Decay. For Bodies which are either absolutely hard, -or so soft as to be void of Elasticity, will not rebound from one -another. Impenetrability makes them only stop. If two equal Bodies meet -directly _in vacuo_, they will by the Laws of Motion stop where they -meet, and lose all their Motion, and remain in rest, unless they be -elastick, and receive new Motion from their Spring. If they have so much -Elasticity as suffices to make them re-bound with a quarter, or half, or -three quarters of the Force with which they come together, they will -lose three quarters, or half, or a quarter of their Motion. And this may -be try'd, by letting two equal Pendulums fall against one another from -equal heights. If the Pendulums be of Lead or soft Clay, they will lose -all or almost all their Motions: If of elastick Bodies they will lose -all but what they recover from their Elasticity. If it be said, that -they can lose no Motion but what they communicate to other Bodies, the -consequence is, that _in vacuo_ they can lose no Motion, but when they -meet they must go on and penetrate one another's Dimensions. If three -equal round Vessels be filled, the one with Water, the other with Oil, -the third with molten Pitch, and the Liquors be stirred about alike to -give them a vortical Motion; the Pitch by its Tenacity will lose its -Motion quickly, the Oil being less tenacious will keep it longer, and -the Water being less tenacious will keep it longest, but yet will lose -it in a short time. Whence it is easy to understand, that if many -contiguous Vortices of molten Pitch were each of them as large as those -which some suppose to revolve about the Sun and fix'd Stars, yet these -and all their Parts would, by their Tenacity and Stiffness, communicate -their Motion to one another till they all rested among themselves. -Vortices of Oil or Water, or some fluider Matter, might continue longer -in Motion; but unless the Matter were void of all Tenacity and Attrition -of Parts, and Communication of Motion, (which is not to be supposed,) -the Motion would constantly decay. Seeing therefore the variety of -Motion which we find in the World is always decreasing, there is a -necessity of conserving and recruiting it by active Principles, such as -are the cause of Gravity, by which Planets and Comets keep their Motions -in their Orbs, and Bodies acquire great Motion in falling; and the cause -of Fermentation, by which the Heart and Blood of Animals are kept in -perpetual Motion and Heat; the inward Parts of the Earth are constantly -warm'd, and in some places grow very hot; Bodies burn and shine, -Mountains take fire, the Caverns of the Earth are blown up, and the Sun -continues violently hot and lucid, and warms all things by his Light. -For we meet with very little Motion in the World, besides what is owing -to these active Principles. And if it were not for these Principles, the -Bodies of the Earth, Planets, Comets, Sun, and all things in them, -would grow cold and freeze, and become inactive Masses; and all -Putrefaction, Generation, Vegetation and Life would cease, and the -Planets and Comets would not remain in their Orbs. - -All these things being consider'd, it seems probable to me, that God in -the Beginning form'd Matter in solid, massy, hard, impenetrable, -moveable Particles, of such Sizes and Figures, and with such other -Properties, and in such Proportion to Space, as most conduced to the End -for which he form'd them; and that these primitive Particles being -Solids, are incomparably harder than any porous Bodies compounded of -them; even so very hard, as never to wear or break in pieces; no -ordinary Power being able to divide what God himself made one in the -first Creation. While the Particles continue entire, they may compose -Bodies of one and the same Nature and Texture in all Ages: But should -they wear away, or break in pieces, the Nature of Things depending on -them, would be changed. Water and Earth, composed of old worn Particles -and Fragments of Particles, would not be of the same Nature and Texture -now, with Water and Earth composed of entire Particles in the Beginning. -And therefore, that Nature may be lasting, the Changes of corporeal -Things are to be placed only in the various Separations and new -Associations and Motions of these permanent Particles; compound Bodies -being apt to break, not in the midst of solid Particles, but where those -Particles are laid together, and only touch in a few Points. - -It seems to me farther, that these Particles have not only a _Vis -inertiæ_, accompanied with such passive Laws of Motion as naturally -result from that Force, but also that they are moved by certain active -Principles, such as is that of Gravity, and that which causes -Fermentation, and the Cohesion of Bodies. These Principles I consider, -not as occult Qualities, supposed to result from the specifick Forms of -Things, but as general Laws of Nature, by which the Things themselves -are form'd; their Truth appearing to us by Phænomena, though their -Causes be not yet discover'd. For these are manifest Qualities, and -their Causes only are occult. And the _Aristotelians_ gave the Name of -occult Qualities, not to manifest Qualities, but to such Qualities only -as they supposed to lie hid in Bodies, and to be the unknown Causes of -manifest Effects: Such as would be the Causes of Gravity, and of -magnetick and electrick Attractions, and of Fermentations, if we should -suppose that these Forces or Actions arose from Qualities unknown to us, -and uncapable of being discovered and made manifest. Such occult -Qualities put a stop to the Improvement of natural Philosophy, and -therefore of late Years have been rejected. To tell us that every -Species of Things is endow'd with an occult specifick Quality by which -it acts and produces manifest Effects, is to tell us nothing: But to -derive two or three general Principles of Motion from Phænomena, and -afterwards to tell us how the Properties and Actions of all corporeal -Things follow from those manifest Principles, would be a very great step -in Philosophy, though the Causes of those Principles were not yet -discover'd: And therefore I scruple not to propose the Principles of -Motion above-mention'd, they being of very general Extent, and leave -their Causes to be found out. - -Now by the help of these Principles, all material Things seem to have -been composed of the hard and solid Particles above-mention'd, variously -associated in the first Creation by the Counsel of an intelligent Agent. -For it became him who created them to set them in order. And if he did -so, it's unphilosophical to seek for any other Origin of the World, or -to pretend that it might arise out of a Chaos by the mere Laws of -Nature; though being once form'd, it may continue by those Laws for many -Ages. For while Comets move in very excentrick Orbs in all manner of -Positions, blind Fate could never make all the Planets move one and the -same way in Orbs concentrick, some inconsiderable Irregularities -excepted, which may have risen from the mutual Actions of Comets and -Planets upon one another, and which will be apt to increase, till this -System wants a Reformation. Such a wonderful Uniformity in the Planetary -System must be allowed the Effect of Choice. And so must the Uniformity -in the Bodies of Animals, they having generally a right and a left side -shaped alike, and on either side of their Bodies two Legs behind, and -either two Arms, or two Legs, or two Wings before upon their Shoulders, -and between their Shoulders a Neck running down into a Back-bone, and a -Head upon it; and in the Head two Ears, two Eyes, a Nose, a Mouth, and -a Tongue, alike situated. Also the first Contrivance of those very -artificial Parts of Animals, the Eyes, Ears, Brain, Muscles, Heart, -Lungs, Midriff, Glands, Larynx, Hands, Wings, swimming Bladders, natural -Spectacles, and other Organs of Sense and Motion; and the Instinct of -Brutes and Insects, can be the effect of nothing else than the Wisdom -and Skill of a powerful ever-living Agent, who being in all Places, is -more able by his Will to move the Bodies within his boundless uniform -Sensorium, and thereby to form and reform the Parts of the Universe, -than we are by our Will to move the Parts of our own Bodies. And yet we -are not to consider the World as the Body of God, or the several Parts -thereof, as the Parts of God. He is an uniform Being, void of Organs, -Members or Parts, and they are his Creatures subordinate to him, and -subservient to his Will; and he is no more the Soul of them, than the -Soul of Man is the Soul of the Species of Things carried through the -Organs of Sense into the place of its Sensation, where it perceives them -by means of its immediate Presence, without the Intervention of any -third thing. The Organs of Sense are not for enabling the Soul to -perceive the Species of Things in its Sensorium, but only for conveying -them thither; and God has no need of such Organs, he being every where -present to the Things themselves. And since Space is divisible _in -infinitum_, and Matter is not necessarily in all places, it may be also -allow'd that God is able to create Particles of Matter of several Sizes -and Figures, and in several Proportions to Space, and perhaps of -different Densities and Forces, and thereby to vary the Laws of Nature, -and make Worlds of several sorts in several Parts of the Universe. At -least, I see nothing of Contradiction in all this. - -As in Mathematicks, so in Natural Philosophy, the Investigation of -difficult Things by the Method of Analysis, ought ever to precede the -Method of Composition. This Analysis consists in making Experiments and -Observations, and in drawing general Conclusions from them by Induction, -and admitting of no Objections against the Conclusions, but such as are -taken from Experiments, or other certain Truths. For Hypotheses are not -to be regarded in experimental Philosophy. And although the arguing from -Experiments and Observations by Induction be no Demonstration of general -Conclusions; yet it is the best way of arguing which the Nature of -Things admits of, and may be looked upon as so much the stronger, by how -much the Induction is more general. And if no Exception occur from -Phænomena, the Conclusion may be pronounced generally. But if at any -time afterwards any Exception shall occur from Experiments, it may then -begin to be pronounced with such Exceptions as occur. By this way of -Analysis we may proceed from Compounds to Ingredients, and from Motions -to the Forces producing them; and in general, from Effects to their -Causes, and from particular Causes to more general ones, till the -Argument end in the most general. This is the Method of Analysis: And -the Synthesis consists in assuming the Causes discover'd, and -establish'd as Principles, and by them explaining the Phænomena -proceeding from them, and proving the Explanations. - -In the two first Books of these Opticks, I proceeded by this Analysis to -discover and prove the original Differences of the Rays of Light in -respect of Refrangibility, Reflexibility, and Colour, and their -alternate Fits of easy Reflexion and easy Transmission, and the -Properties of Bodies, both opake and pellucid, on which their Reflexions -and Colours depend. And these Discoveries being proved, may be assumed -in the Method of Composition for explaining the Phænomena arising from -them: An Instance of which Method I gave in the End of the first Book. -In this third Book I have only begun the Analysis of what remains to be -discover'd about Light and its Effects upon the Frame of Nature, hinting -several things about it, and leaving the Hints to be examin'd and -improv'd by the farther Experiments and Observations of such as are -inquisitive. And if natural Philosophy in all its Parts, by pursuing -this Method, shall at length be perfected, the Bounds of Moral -Philosophy will be also enlarged. For so far as we can know by natural -Philosophy what is the first Cause, what Power he has over us, and what -Benefits we receive from him, so far our Duty towards him, as well as -that towards one another, will appear to us by the Light of Nature. And -no doubt, if the Worship of false Gods had not blinded the Heathen, -their moral Philosophy would have gone farther than to the four -Cardinal Virtues; and instead of teaching the Transmigration of Souls, -and to worship the Sun and Moon, and dead Heroes, they would have taught -us to worship our true Author and Benefactor, as their Ancestors did -under the Government of _Noah_ and his Sons before they corrupted -themselves. \ No newline at end of file diff --git a/deps/libbacktrace/LICENSE b/deps/libbacktrace/LICENSE deleted file mode 100644 index 097d2774..00000000 --- a/deps/libbacktrace/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2012-2016 Free Software Foundation, Inc. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# (1) Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# (2) Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. - -# (3) The name of the author may not be used to -# endorse or promote products derived from this software without -# specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. diff --git a/deps/libbacktrace/Makefile.am b/deps/libbacktrace/Makefile.am deleted file mode 100644 index 5f1d0f85..00000000 --- a/deps/libbacktrace/Makefile.am +++ /dev/null @@ -1,623 +0,0 @@ -# Makefile.am -- Backtrace Makefile. -# Copyright (C) 2012-2021 Free Software Foundation, Inc. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# (1) Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# (2) Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. - -# (3) The name of the author may not be used to -# endorse or promote products derived from this software without -# specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -ACLOCAL_AMFLAGS = -I config - -AM_CPPFLAGS = - -AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) - -include_HEADERS = backtrace.h backtrace-supported.h - -lib_LTLIBRARIES = libbacktrace.la - -libbacktrace_la_SOURCES = \ - backtrace.h \ - atomic.c \ - dwarf.c \ - fileline.c \ - internal.h \ - posix.c \ - print.c \ - sort.c \ - state.c - -BACKTRACE_FILES = \ - backtrace.c \ - simple.c \ - nounwind.c - -FORMAT_FILES = \ - elf.c \ - macho.c \ - pecoff.c \ - unknown.c \ - xcoff.c - -VIEW_FILES = \ - read.c \ - mmapio.c - -ALLOC_FILES = \ - alloc.c \ - mmap.c - -EXTRA_libbacktrace_la_SOURCES = \ - $(BACKTRACE_FILES) \ - $(FORMAT_FILES) \ - $(VIEW_FILES) \ - $(ALLOC_FILES) - -libbacktrace_la_LIBADD = \ - $(BACKTRACE_FILE) \ - $(FORMAT_FILE) \ - $(VIEW_FILE) \ - $(ALLOC_FILE) - -libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD) - -# Testsuite. - -# Add a test to this variable if you want it to be built as a program, -# with SOURCES, etc. -check_PROGRAMS = - -# Add a test to this variable if you want it to be run. -TESTS = - -# Add a test to this variable if you want it to be built as a Makefile -# target and run. -MAKETESTS = - -# Add a test to this variable if you want it to be built as a program, -# with SOURCES, etc., and run. -BUILDTESTS = - -# Add a file to this variable if you want it to be built for testing. -check_DATA = - -# Flags to use when compiling test programs. -libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g - -if USE_DSYMUTIL - -%.dSYM: % - $(DSYMUTIL) $< - -endif USE_DSYMUTIL - -if NATIVE -check_LTLIBRARIES = libbacktrace_alloc.la - -libbacktrace_alloc_la_SOURCES = $(libbacktrace_la_SOURCES) -libbacktrace_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) read.lo alloc.lo - -libbacktrace_alloc_la_DEPENDENCIES = $(libbacktrace_alloc_la_LIBADD) - -check_LTLIBRARIES += libbacktrace_noformat.la - -libbacktrace_noformat_la_SOURCES = $(libbacktrace_la_SOURCES) -libbacktrace_noformat_la_LIBADD = $(BACKTRACE_FILE) $(VIEW_FILE) $(ALLOC_FILE) - -libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD) - -if HAVE_ELF -if HAVE_OBJCOPY_DEBUGLINK - -TEST_BUILD_ID_DIR=$(abs_builddir)/usr/lib/debug/.build-id/ - -check_LTLIBRARIES += libbacktrace_elf_for_test.la - -libbacktrace_elf_for_test_la_SOURCES = $(libbacktrace_la_SOURCES) -libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \ - $(VIEW_FILE) $(ALLOC_FILE) - -elf_for_test.c: elf.c - SEARCH='^#define SYSTEM_BUILD_ID_DIR.*$$'; \ - REPLACE="#define SYSTEM_BUILD_ID_DIR \"$(TEST_BUILD_ID_DIR)\""; \ - $(SED) "s%$$SEARCH%$$REPLACE%" \ - $< \ - > $@.tmp - mv $@.tmp $@ - -endif HAVE_OBJCOPY_DEBUGLINK -endif HAVE_ELF - -elf_%.c: elf.c - SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \ - REPLACE='#undef BACKTRACE_ELF_SIZE\ - #define BACKTRACE_ELF_SIZE'; \ - $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ - $< \ - > $@.tmp - mv $@.tmp $@ - -xcoff_%.c: xcoff.c - SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ - REPLACE='#undef BACKTRACE_XCOFF_SIZE\ - #define BACKTRACE_XCOFF_SIZE'; \ - $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ - $< \ - > $@.tmp - mv $@.tmp $@ - -test_elf_32_SOURCES = test_format.c testlib.c -test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo - -BUILDTESTS += test_elf_32 - -test_elf_64_SOURCES = test_format.c testlib.c -test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo - -BUILDTESTS += test_elf_64 - -test_macho_SOURCES = test_format.c testlib.c -test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_macho_LDADD = libbacktrace_noformat.la macho.lo - -BUILDTESTS += test_macho - -test_xcoff_32_SOURCES = test_format.c testlib.c -test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo - -BUILDTESTS += test_xcoff_32 - -test_xcoff_64_SOURCES = test_format.c testlib.c -test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo - -BUILDTESTS += test_xcoff_64 - -test_pecoff_SOURCES = test_format.c testlib.c -test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo - -BUILDTESTS += test_pecoff - -test_unknown_SOURCES = test_format.c testlib.c -test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS) -test_unknown_LDADD = libbacktrace_noformat.la unknown.lo - -BUILDTESTS += test_unknown - -unittest_SOURCES = unittest.c testlib.c -unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -unittest_LDADD = libbacktrace.la - -BUILDTESTS += unittest - -unittest_alloc_SOURCES = $(unittest_SOURCES) -unittest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -unittest_alloc_LDADD = libbacktrace_alloc.la - -BUILDTESTS += unittest_alloc - -check_LTLIBRARIES += libbacktrace_instrumented_alloc.la - -libbacktrace_instrumented_alloc_la_SOURCES = $(libbacktrace_la_SOURCES) -libbacktrace_instrumented_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) \ - read.lo instrumented_alloc.lo - -libbacktrace_instrumented_alloc_la_DEPENDENCIES = \ - $(libbacktrace_instrumented_alloc_la_LIBADD) - -instrumented_alloc.lo: alloc.c - -allocfail_SOURCES = allocfail.c testlib.c -allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS) -allocfail_LDADD = libbacktrace_instrumented_alloc.la - -check_PROGRAMS += allocfail - -allocfail.sh: allocfail - -TESTS += allocfail.sh - -if USE_DSYMUTIL -check_DATA += allocfail.dSYM -endif USE_DSYMUTIL - -if HAVE_ELF -if HAVE_BUILDID -if HAVE_OBJCOPY_DEBUGLINK - -b2test_SOURCES = $(btest_SOURCES) -b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS) -b2test_LDFLAGS = -Wl,--build-id -b2test_LDADD = libbacktrace_elf_for_test.la - -check_PROGRAMS += b2test -MAKETESTS += b2test_buildid - -if HAVE_DWZ - -b3test_SOURCES = $(btest_SOURCES) -b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS) -b3test_LDFLAGS = -Wl,--build-id -b3test_LDADD = libbacktrace_elf_for_test.la - -check_PROGRAMS += b3test -MAKETESTS += b3test_dwz_buildid - -endif HAVE_DWZ - -endif HAVE_OBJCOPY_DEBUGLINK -endif HAVE_BUILDID -endif HAVE_ELF - -btest_SOURCES = btest.c testlib.c -btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -btest_LDADD = libbacktrace.la - -BUILDTESTS += btest - -if USE_DSYMUTIL -check_DATA += btest.dSYM -endif USE_DSYMUTIL - -if HAVE_ELF - -btest_lto_SOURCES = btest.c testlib.c -btest_lto_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -flto -btest_lto_LDADD = libbacktrace.la - -BUILDTESTS += btest_lto - -endif HAVE_ELF - -btest_alloc_SOURCES = $(btest_SOURCES) -btest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -btest_alloc_LDADD = libbacktrace_alloc.la - -BUILDTESTS += btest_alloc - -if USE_DSYMUTIL -check_DATA += btest_alloc.dSYM -endif USE_DSYMUTIL - -if HAVE_DWZ - -%_dwz: % - rm -f $@ $@_common.debug - cp $< $@_1 - cp $< $@_2 - if $(DWZ) -m $@_common.debug $@_1 $@_2; then \ - rm -f $@_2; \ - mv $@_1 $@; \ - else \ - echo "Ignoring dwz errors, assuming that test passes"; \ - cp $< $@; \ - fi - -MAKETESTS += btest_dwz - -if HAVE_OBJCOPY_DEBUGLINK - -MAKETESTS += btest_dwz_gnudebuglink - -endif HAVE_OBJCOPY_DEBUGLINK - -endif HAVE_DWZ - -stest_SOURCES = stest.c -stest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -stest_LDADD = libbacktrace.la - -BUILDTESTS += stest - -if USE_DSYMUTIL -check_DATA += stest.dSYM -endif USE_DSYMUTIL - -stest_alloc_SOURCES = $(stest_SOURCES) -stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -stest_alloc_LDADD = libbacktrace_alloc.la - -BUILDTESTS += stest_alloc - -if USE_DSYMUTIL -check_DATA += stest_alloc.dSYM -endif USE_DSYMUTIL - -if HAVE_ELF - -ztest_SOURCES = ztest.c testlib.c -ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -ztest_LDADD = libbacktrace.la -ztest_alloc_LDADD = libbacktrace_alloc.la - -if HAVE_ZLIB -ztest_LDADD += -lz -ztest_alloc_LDADD += -lz -endif -ztest_LDADD += $(CLOCK_GETTIME_LINK) -ztest_alloc_LDADD += $(CLOCK_GETTIME_LINK) - -BUILDTESTS += ztest - -ztest_alloc_SOURCES = $(ztest_SOURCES) -ztest_alloc_CFLAGS = $(ztest_CFLAGS) - -BUILDTESTS += ztest_alloc - -zstdtest_SOURCES = zstdtest.c testlib.c -zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -zstdtest_LDADD = libbacktrace.la -zstdtest_alloc_LDADD = libbacktrace_alloc.la - -if HAVE_ZSTD -zstdtest_LDADD += -lzstd -zstdtest_alloc_LDADD += -lzstd -endif -zstdtest_LDADD += $(CLOCK_GETTIME_LINK) -zstdtest_alloc_LDADD += $(CLOCK_GETTIME_LINK) - -BUILDTESTS += zstdtest - -zstdtest_alloc_SOURCES = $(zstdtest_SOURCES) -zstdtest_alloc_CFLAGS = $(zstdtest_CFLAGS) - -BUILDTESTS += zstdtest_alloc - -endif HAVE_ELF - -edtest_SOURCES = edtest.c edtest2_build.c testlib.c -edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -edtest_LDADD = libbacktrace.la - -BUILDTESTS += edtest - -if USE_DSYMUTIL -check_DATA += edtest.dSYM -endif USE_DSYMUTIL - -edtest_alloc_SOURCES = $(edtest_SOURCES) -edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -edtest_alloc_LDADD = libbacktrace_alloc.la - -if USE_DSYMUTIL -check_DATA += edtest_alloc.dSYM -endif USE_DSYMUTIL - -BUILDTESTS += edtest_alloc - -edtest2_build.c: gen_edtest2_build; @true -gen_edtest2_build: $(srcdir)/edtest2.c - cat $(srcdir)/edtest2.c > tmp-edtest2_build.c - $(SHELL) $(srcdir)/move-if-change tmp-edtest2_build.c edtest2_build.c - echo timestamp > $@ - -if HAVE_PTHREAD - -BUILDTESTS += ttest - -ttest_SOURCES = ttest.c testlib.c -ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread -ttest_LDADD = libbacktrace.la - -if USE_DSYMUTIL -check_DATA += ttest.dSYM -endif USE_DSYMUTIL - -BUILDTESTS += ttest_alloc - -ttest_alloc_SOURCES = $(ttest_SOURCES) -ttest_alloc_CFLAGS = $(ttest_CFLAGS) -ttest_alloc_LDADD = libbacktrace_alloc.la - -if USE_DSYMUTIL -check_DATA += ttest_alloc.dSYM -endif USE_DSYMUTIL - -endif HAVE_PTHREAD - -if HAVE_OBJCOPY_DEBUGLINK - -MAKETESTS += btest_gnudebuglink - -%_gnudebuglink: % - $(OBJCOPY) --only-keep-debug $< $@.debug - $(OBJCOPY) --strip-debug --add-gnu-debuglink=$@.debug $< $@ - -endif HAVE_OBJCOPY_DEBUGLINK - -%_buildid: % - ./install-debuginfo-for-buildid.sh \ - "$(TEST_BUILD_ID_DIR)" \ - $< - $(OBJCOPY) --strip-debug $< $@ - -if HAVE_COMPRESSED_DEBUG - -ctestg_SOURCES = btest.c testlib.c -ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS) -ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu -ctestg_LDADD = libbacktrace.la - -ctesta_SOURCES = btest.c testlib.c -ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS) -ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi -ctesta_LDADD = libbacktrace.la - -BUILDTESTS += ctestg ctesta - -if HAVE_COMPRESSED_DEBUG_ZSTD - -ctestzstd_SOURCES = btest.c testlib.c -ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS) -ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd -ctestzstd_LDADD = libbacktrace.la - -BUILDTESTS += ctestzstd - -endif - -ctestg_alloc_SOURCES = $(ctestg_SOURCES) -ctestg_alloc_CFLAGS = $(ctestg_CFLAGS) -ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS) -ctestg_alloc_LDADD = libbacktrace_alloc.la - -ctesta_alloc_SOURCES = $(ctesta_SOURCES) -ctesta_alloc_CFLAGS = $(ctesta_CFLAGS) -ctesta_alloc_LDFLAGS = $(ctesta_LDFLAGS) -ctesta_alloc_LDADD = libbacktrace_alloc.la - -BUILDTESTS += ctestg_alloc ctesta_alloc - -endif - -if HAVE_DWARF5 - -dwarf5_SOURCES = btest.c testlib.c -dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5 -dwarf5_LDADD = libbacktrace.la - -BUILDTESTS += dwarf5 - -if USE_DSYMUTIL -check_DATA += dwarf5.dSYM -endif USE_DSYMUTIL - -dwarf5_alloc_SOURCES = $(dwarf5_SOURCES) -dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS) -dwarf5_alloc_LDADD = libbacktrace_alloc.la - -BUILDTESTS += dwarf5_alloc - -if USE_DSYMUTIL -check_DATA += dwarf5_alloc.dSYM -endif USE_DSYMUTIL - -endif - -mtest_SOURCES = mtest.c testlib.c -mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -mtest_LDADD = libbacktrace.la - -BUILDTESTS += mtest - -if USE_DSYMUTIL -check_DATA += mtest.dSYM -endif USE_DSYMUTIL - -if HAVE_MINIDEBUG - -MAKETESTS += mtest_minidebug - -%_minidebug: % - $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms - $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms - $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms - $(OBJCOPY) --only-keep-debug $< $<.dbg - $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg - $(OBJCOPY) --strip-all --remove-section ..comment $< $<.strip - rm -f $<.mdbg.xz - $(XZ) $<.mdbg - $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg.xz $<.strip - mv $<.strip $@ - -endif HAVE_MINIDEBUG - -endif NATIVE - -if HAVE_ELF - -xztest_SOURCES = xztest.c testlib.c -xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -xztest_LDADD = libbacktrace.la - -xztest_alloc_SOURCES = $(xztest_SOURCES) -xztest_alloc_CFLAGS = $(xztest_CFLAGS) -xztest_alloc_LDADD = libbacktrace_alloc.la - -if HAVE_LIBLZMA -xztest_LDADD += -llzma -xztest_alloc_LDADD += -llzma -endif - -xztest_LDADD += $(CLOCK_GETTIME_LINK) -xztest_alloc_LDADD += $(CLOCK_GETTIME_LINK) - -BUILDTESTS += xztest xztest_alloc - -endif HAVE_ELF - -check_PROGRAMS += $(BUILDTESTS) - -TESTS += $(MAKETESTS) $(BUILDTESTS) - -CLEANFILES = \ - $(MAKETESTS) $(BUILDTESTS) *.debug elf_for_test.c edtest2_build.c \ - gen_edtest2_build \ - *.dsyms *.fsyms *.keepsyms *.dbg *.mdbg *.mdbg.xz *.strip - -clean-local: - -rm -rf usr - -# We can't use automake's automatic dependency tracking, because it -# breaks when using bootstrap-lean. Automatic dependency tracking -# with GCC bootstrap will cause some of the objects to depend on -# header files in prev-gcc/include, e.g., stddef.h and stdarg.h. When -# using bootstrap-lean, prev-gcc is removed after each stage. When -# running "make install", those header files will be gone, causing the -# library to be rebuilt at install time. That may not succeed. - -# These manual dependencies do not include dependencies on unwind.h, -# even though that is part of GCC, because where to find it depends on -# whether we are being built as a host library or a target library. - -alloc.lo: config.h backtrace.h internal.h -backtrace.lo: config.h backtrace.h internal.h -btest.lo: filenames.h backtrace.h backtrace-supported.h -dwarf.lo: config.h filenames.h backtrace.h internal.h -elf.lo: config.h backtrace.h internal.h -fileline.lo: config.h backtrace.h internal.h -macho.lo: config.h backtrace.h internal.h -mmap.lo: config.h backtrace.h internal.h -mmapio.lo: config.h backtrace.h internal.h -mtest.lo: backtrace.h backtrace-supported.h -nounwind.lo: config.h internal.h -pecoff.lo: config.h backtrace.h internal.h -posix.lo: config.h backtrace.h internal.h -print.lo: config.h backtrace.h internal.h -read.lo: config.h backtrace.h internal.h -simple.lo: config.h backtrace.h internal.h -sort.lo: config.h backtrace.h internal.h -stest.lo: config.h backtrace.h internal.h -state.lo: config.h backtrace.h backtrace-supported.h internal.h -unknown.lo: config.h backtrace.h internal.h -xcoff.lo: config.h backtrace.h internal.h -xztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h -ztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h - diff --git a/deps/libbacktrace/Makefile.in b/deps/libbacktrace/Makefile.in deleted file mode 100644 index f5ea83f0..00000000 --- a/deps/libbacktrace/Makefile.in +++ /dev/null @@ -1,2666 +0,0 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2017 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile.am -- Backtrace Makefile. -# Copyright (C) 2012-2021 Free Software Foundation, Inc. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# (1) Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# (2) Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. - -# (3) The name of the author may not be used to -# endorse or promote products derived from this software without -# specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ - $(am__EXEEXT_16) -TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_16) -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_1 = libbacktrace_elf_for_test.la -@NATIVE_TRUE@am__append_2 = test_elf_32 test_elf_64 test_macho \ -@NATIVE_TRUE@ test_xcoff_32 test_xcoff_64 test_pecoff \ -@NATIVE_TRUE@ test_unknown unittest unittest_alloc btest -@NATIVE_TRUE@am__append_3 = allocfail -@NATIVE_TRUE@am__append_4 = allocfail.sh -@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_5 = allocfail.dSYM \ -@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ btest.dSYM btest_alloc.dSYM \ -@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ stest.dSYM stest_alloc.dSYM \ -@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ edtest.dSYM edtest_alloc.dSYM -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_6 = b2test -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_7 = b2test_buildid -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_8 = b3test -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_9 = b3test_dwz_buildid -@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_10 = btest_lto -@NATIVE_TRUE@am__append_11 = btest_alloc stest stest_alloc -@HAVE_DWZ_TRUE@@NATIVE_TRUE@am__append_12 = btest_dwz -@HAVE_DWZ_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_13 = btest_dwz_gnudebuglink -@HAVE_ELF_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_14 = -lz -@HAVE_ELF_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_15 = -lz -@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_16 = ztest ztest_alloc zstdtest \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc -@HAVE_ELF_TRUE@@HAVE_ZSTD_TRUE@@NATIVE_TRUE@am__append_17 = -lzstd -@HAVE_ELF_TRUE@@HAVE_ZSTD_TRUE@@NATIVE_TRUE@am__append_18 = -lzstd -@NATIVE_TRUE@am__append_19 = edtest edtest_alloc -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_20 = ttest ttest_alloc -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_21 = \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ ttest.dSYM \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ ttest_alloc.dSYM -@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_22 = btest_gnudebuglink -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_23 = ctestg ctesta -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@am__append_24 = ctestzstd -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_25 = ctestg_alloc ctesta_alloc -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__append_26 = dwarf5 dwarf5_alloc -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_27 = \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ dwarf5.dSYM \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ dwarf5_alloc.dSYM -@NATIVE_TRUE@am__append_28 = mtest -@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@am__append_29 = mtest.dSYM -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@am__append_30 = mtest_minidebug -@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_31 = -llzma -@HAVE_ELF_TRUE@@HAVE_LIBLZMA_TRUE@am__append_32 = -llzma -@HAVE_ELF_TRUE@am__append_33 = xztest xztest_alloc -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/config/lead-dot.m4 \ - $(top_srcdir)/config/libtool.m4 \ - $(top_srcdir)/config/ltoptions.m4 \ - $(top_srcdir)/config/ltsugar.m4 \ - $(top_srcdir)/config/ltversion.m4 \ - $(top_srcdir)/config/lt~obsolete.m4 \ - $(top_srcdir)/config/multi.m4 $(top_srcdir)/config/override.m4 \ - $(top_srcdir)/config/unwind_ipinfo.m4 \ - $(top_srcdir)/config/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(include_HEADERS) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = backtrace-supported.h \ - install-debuginfo-for-buildid.sh -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -am__DEPENDENCIES_1 = -am_libbacktrace_la_OBJECTS = atomic.lo dwarf.lo fileline.lo posix.lo \ - print.lo sort.lo state.lo -libbacktrace_la_OBJECTS = $(am_libbacktrace_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -am__objects_1 = atomic.lo dwarf.lo fileline.lo posix.lo print.lo \ - sort.lo state.lo -@NATIVE_TRUE@am_libbacktrace_alloc_la_OBJECTS = $(am__objects_1) -libbacktrace_alloc_la_OBJECTS = $(am_libbacktrace_alloc_la_OBJECTS) -@NATIVE_TRUE@am_libbacktrace_alloc_la_rpath = -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@libbacktrace_elf_for_test_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ elf_for_test.lo \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_libbacktrace_elf_for_test_la_OBJECTS = $(am__objects_1) -libbacktrace_elf_for_test_la_OBJECTS = \ - $(am_libbacktrace_elf_for_test_la_OBJECTS) -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_libbacktrace_elf_for_test_la_rpath = -@NATIVE_TRUE@am_libbacktrace_instrumented_alloc_la_OBJECTS = \ -@NATIVE_TRUE@ $(am__objects_1) -libbacktrace_instrumented_alloc_la_OBJECTS = \ - $(am_libbacktrace_instrumented_alloc_la_OBJECTS) -@NATIVE_TRUE@am_libbacktrace_instrumented_alloc_la_rpath = -@NATIVE_TRUE@am_libbacktrace_noformat_la_OBJECTS = $(am__objects_1) -libbacktrace_noformat_la_OBJECTS = \ - $(am_libbacktrace_noformat_la_OBJECTS) -@NATIVE_TRUE@am_libbacktrace_noformat_la_rpath = -@NATIVE_TRUE@am__EXEEXT_1 = allocfail$(EXEEXT) -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT) -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT) -@NATIVE_TRUE@am__EXEEXT_4 = test_elf_32$(EXEEXT) test_elf_64$(EXEEXT) \ -@NATIVE_TRUE@ test_macho$(EXEEXT) test_xcoff_32$(EXEEXT) \ -@NATIVE_TRUE@ test_xcoff_64$(EXEEXT) test_pecoff$(EXEEXT) \ -@NATIVE_TRUE@ test_unknown$(EXEEXT) unittest$(EXEEXT) \ -@NATIVE_TRUE@ unittest_alloc$(EXEEXT) btest$(EXEEXT) -@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_5 = btest_lto$(EXEEXT) -@NATIVE_TRUE@am__EXEEXT_6 = btest_alloc$(EXEEXT) stest$(EXEEXT) \ -@NATIVE_TRUE@ stest_alloc$(EXEEXT) -@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_7 = ztest$(EXEEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc$(EXEEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest$(EXEEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc$(EXEEXT) -@NATIVE_TRUE@am__EXEEXT_8 = edtest$(EXEEXT) edtest_alloc$(EXEEXT) -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_9 = ttest$(EXEEXT) \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc$(EXEEXT) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_10 = \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg$(EXEEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta$(EXEEXT) -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@am__EXEEXT_11 = ctestzstd$(EXEEXT) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_12 = ctestg_alloc$(EXEEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc$(EXEEXT) -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__EXEEXT_13 = dwarf5$(EXEEXT) \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc$(EXEEXT) -@NATIVE_TRUE@am__EXEEXT_14 = mtest$(EXEEXT) -@HAVE_ELF_TRUE@am__EXEEXT_15 = xztest$(EXEEXT) xztest_alloc$(EXEEXT) -am__EXEEXT_16 = $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \ - $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \ - $(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \ - $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15) -@NATIVE_TRUE@am_allocfail_OBJECTS = allocfail-allocfail.$(OBJEXT) \ -@NATIVE_TRUE@ allocfail-testlib.$(OBJEXT) -allocfail_OBJECTS = $(am_allocfail_OBJECTS) -@NATIVE_TRUE@allocfail_DEPENDENCIES = \ -@NATIVE_TRUE@ libbacktrace_instrumented_alloc.la -allocfail_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(allocfail_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am__objects_2 = b2test-btest.$(OBJEXT) \ -@NATIVE_TRUE@ b2test-testlib.$(OBJEXT) -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b2test_OBJECTS = $(am__objects_2) -b2test_OBJECTS = $(am_b2test_OBJECTS) -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_DEPENDENCIES = libbacktrace_elf_for_test.la -b2test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(b2test_CFLAGS) $(CFLAGS) \ - $(b2test_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am__objects_3 = b3test-btest.$(OBJEXT) \ -@NATIVE_TRUE@ b3test-testlib.$(OBJEXT) -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b3test_OBJECTS = $(am__objects_3) -b3test_OBJECTS = $(am_b3test_OBJECTS) -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_DEPENDENCIES = libbacktrace_elf_for_test.la -b3test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(b3test_CFLAGS) $(CFLAGS) \ - $(b3test_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_btest_OBJECTS = btest-btest.$(OBJEXT) \ -@NATIVE_TRUE@ btest-testlib.$(OBJEXT) -btest_OBJECTS = $(am_btest_OBJECTS) -@NATIVE_TRUE@btest_DEPENDENCIES = libbacktrace.la -btest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am__objects_4 = btest_alloc-btest.$(OBJEXT) \ -@NATIVE_TRUE@ btest_alloc-testlib.$(OBJEXT) -@NATIVE_TRUE@am_btest_alloc_OBJECTS = $(am__objects_4) -btest_alloc_OBJECTS = $(am_btest_alloc_OBJECTS) -@NATIVE_TRUE@btest_alloc_DEPENDENCIES = libbacktrace_alloc.la -btest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_ELF_TRUE@@NATIVE_TRUE@am_btest_lto_OBJECTS = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ btest_lto-btest.$(OBJEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ btest_lto-testlib.$(OBJEXT) -btest_lto_OBJECTS = $(am_btest_lto_OBJECTS) -@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_DEPENDENCIES = libbacktrace.la -btest_lto_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_lto_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctesta_OBJECTS = ctesta-btest.$(OBJEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta-testlib.$(OBJEXT) -ctesta_OBJECTS = $(am_ctesta_OBJECTS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_DEPENDENCIES = \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ libbacktrace.la -ctesta_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctesta_CFLAGS) $(CFLAGS) \ - $(ctesta_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__objects_5 = ctesta_alloc-btest.$(OBJEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta_alloc-testlib.$(OBJEXT) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctesta_alloc_OBJECTS = \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ $(am__objects_5) -ctesta_alloc_OBJECTS = $(am_ctesta_alloc_OBJECTS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_DEPENDENCIES = libbacktrace_alloc.la -ctesta_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctesta_alloc_CFLAGS) \ - $(CFLAGS) $(ctesta_alloc_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctestg_OBJECTS = ctestg-btest.$(OBJEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg-testlib.$(OBJEXT) -ctestg_OBJECTS = $(am_ctestg_OBJECTS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_DEPENDENCIES = \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ libbacktrace.la -ctestg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestg_CFLAGS) $(CFLAGS) \ - $(ctestg_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__objects_6 = ctestg_alloc-btest.$(OBJEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg_alloc-testlib.$(OBJEXT) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctestg_alloc_OBJECTS = \ -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ $(am__objects_6) -ctestg_alloc_OBJECTS = $(am_ctestg_alloc_OBJECTS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_DEPENDENCIES = libbacktrace_alloc.la -ctestg_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestg_alloc_CFLAGS) \ - $(CFLAGS) $(ctestg_alloc_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@am_ctestzstd_OBJECTS = ctestzstd-btest.$(OBJEXT) \ -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ ctestzstd-testlib.$(OBJEXT) -ctestzstd_OBJECTS = $(am_ctestzstd_OBJECTS) -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_DEPENDENCIES = libbacktrace.la -ctestzstd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestzstd_CFLAGS) \ - $(CFLAGS) $(ctestzstd_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am_dwarf5_OBJECTS = \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5-btest.$(OBJEXT) \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5-testlib.$(OBJEXT) -dwarf5_OBJECTS = $(am_dwarf5_OBJECTS) -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_DEPENDENCIES = libbacktrace.la -dwarf5_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(dwarf5_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__objects_7 = \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc-btest.$(OBJEXT) \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ dwarf5_alloc-testlib.$(OBJEXT) -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am_dwarf5_alloc_OBJECTS = \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ $(am__objects_7) -dwarf5_alloc_OBJECTS = $(am_dwarf5_alloc_OBJECTS) -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_DEPENDENCIES = \ -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la -dwarf5_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(dwarf5_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_edtest_OBJECTS = edtest-edtest.$(OBJEXT) \ -@NATIVE_TRUE@ edtest-edtest2_build.$(OBJEXT) \ -@NATIVE_TRUE@ edtest-testlib.$(OBJEXT) -edtest_OBJECTS = $(am_edtest_OBJECTS) -@NATIVE_TRUE@edtest_DEPENDENCIES = libbacktrace.la -edtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(edtest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am__objects_8 = edtest_alloc-edtest.$(OBJEXT) \ -@NATIVE_TRUE@ edtest_alloc-edtest2_build.$(OBJEXT) \ -@NATIVE_TRUE@ edtest_alloc-testlib.$(OBJEXT) -@NATIVE_TRUE@am_edtest_alloc_OBJECTS = $(am__objects_8) -edtest_alloc_OBJECTS = $(am_edtest_alloc_OBJECTS) -@NATIVE_TRUE@edtest_alloc_DEPENDENCIES = libbacktrace_alloc.la -edtest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(edtest_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_mtest_OBJECTS = mtest-mtest.$(OBJEXT) \ -@NATIVE_TRUE@ mtest-testlib.$(OBJEXT) -mtest_OBJECTS = $(am_mtest_OBJECTS) -@NATIVE_TRUE@mtest_DEPENDENCIES = libbacktrace.la -mtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(mtest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_stest_OBJECTS = stest-stest.$(OBJEXT) -stest_OBJECTS = $(am_stest_OBJECTS) -@NATIVE_TRUE@stest_DEPENDENCIES = libbacktrace.la -stest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(stest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am__objects_9 = stest_alloc-stest.$(OBJEXT) -@NATIVE_TRUE@am_stest_alloc_OBJECTS = $(am__objects_9) -stest_alloc_OBJECTS = $(am_stest_alloc_OBJECTS) -@NATIVE_TRUE@stest_alloc_DEPENDENCIES = libbacktrace_alloc.la -stest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(stest_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_elf_32_OBJECTS = \ -@NATIVE_TRUE@ test_elf_32-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_elf_32-testlib.$(OBJEXT) -test_elf_32_OBJECTS = $(am_test_elf_32_OBJECTS) -@NATIVE_TRUE@test_elf_32_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ elf_32.lo -test_elf_32_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_elf_32_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_elf_64_OBJECTS = \ -@NATIVE_TRUE@ test_elf_64-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_elf_64-testlib.$(OBJEXT) -test_elf_64_OBJECTS = $(am_test_elf_64_OBJECTS) -@NATIVE_TRUE@test_elf_64_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ elf_64.lo -test_elf_64_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_elf_64_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_macho_OBJECTS = test_macho-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_macho-testlib.$(OBJEXT) -test_macho_OBJECTS = $(am_test_macho_OBJECTS) -@NATIVE_TRUE@test_macho_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ macho.lo -test_macho_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_macho_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_pecoff_OBJECTS = \ -@NATIVE_TRUE@ test_pecoff-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_pecoff-testlib.$(OBJEXT) -test_pecoff_OBJECTS = $(am_test_pecoff_OBJECTS) -@NATIVE_TRUE@test_pecoff_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ pecoff.lo -test_pecoff_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_pecoff_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_unknown_OBJECTS = \ -@NATIVE_TRUE@ test_unknown-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_unknown-testlib.$(OBJEXT) -test_unknown_OBJECTS = $(am_test_unknown_OBJECTS) -@NATIVE_TRUE@test_unknown_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ unknown.lo -test_unknown_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_unknown_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_xcoff_32_OBJECTS = \ -@NATIVE_TRUE@ test_xcoff_32-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_xcoff_32-testlib.$(OBJEXT) -test_xcoff_32_OBJECTS = $(am_test_xcoff_32_OBJECTS) -@NATIVE_TRUE@test_xcoff_32_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ xcoff_32.lo -test_xcoff_32_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_xcoff_32_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_test_xcoff_64_OBJECTS = \ -@NATIVE_TRUE@ test_xcoff_64-test_format.$(OBJEXT) \ -@NATIVE_TRUE@ test_xcoff_64-testlib.$(OBJEXT) -test_xcoff_64_OBJECTS = $(am_test_xcoff_64_OBJECTS) -@NATIVE_TRUE@test_xcoff_64_DEPENDENCIES = libbacktrace_noformat.la \ -@NATIVE_TRUE@ xcoff_64.lo -test_xcoff_64_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_xcoff_64_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am_ttest_OBJECTS = \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest-ttest.$(OBJEXT) \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest-testlib.$(OBJEXT) -ttest_OBJECTS = $(am_ttest_OBJECTS) -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_DEPENDENCIES = libbacktrace.la -ttest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ttest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__objects_10 = \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc-ttest.$(OBJEXT) \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ ttest_alloc-testlib.$(OBJEXT) -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am_ttest_alloc_OBJECTS = \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ $(am__objects_10) -ttest_alloc_OBJECTS = $(am_ttest_alloc_OBJECTS) -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_DEPENDENCIES = \ -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la -ttest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ttest_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am_unittest_OBJECTS = unittest-unittest.$(OBJEXT) \ -@NATIVE_TRUE@ unittest-testlib.$(OBJEXT) -unittest_OBJECTS = $(am_unittest_OBJECTS) -@NATIVE_TRUE@unittest_DEPENDENCIES = libbacktrace.la -unittest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(unittest_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@NATIVE_TRUE@am__objects_11 = unittest_alloc-unittest.$(OBJEXT) \ -@NATIVE_TRUE@ unittest_alloc-testlib.$(OBJEXT) -@NATIVE_TRUE@am_unittest_alloc_OBJECTS = $(am__objects_11) -unittest_alloc_OBJECTS = $(am_unittest_alloc_OBJECTS) -@NATIVE_TRUE@unittest_alloc_DEPENDENCIES = libbacktrace_alloc.la -unittest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(unittest_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ - $@ -@HAVE_ELF_TRUE@am_xztest_OBJECTS = xztest-xztest.$(OBJEXT) \ -@HAVE_ELF_TRUE@ xztest-testlib.$(OBJEXT) -xztest_OBJECTS = $(am_xztest_OBJECTS) -@HAVE_ELF_TRUE@xztest_DEPENDENCIES = libbacktrace.la \ -@HAVE_ELF_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -xztest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(xztest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_ELF_TRUE@am__objects_12 = xztest_alloc-xztest.$(OBJEXT) \ -@HAVE_ELF_TRUE@ xztest_alloc-testlib.$(OBJEXT) -@HAVE_ELF_TRUE@am_xztest_alloc_OBJECTS = $(am__objects_12) -xztest_alloc_OBJECTS = $(am_xztest_alloc_OBJECTS) -@HAVE_ELF_TRUE@xztest_alloc_DEPENDENCIES = libbacktrace_alloc.la \ -@HAVE_ELF_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -xztest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(xztest_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_ELF_TRUE@@NATIVE_TRUE@am_zstdtest_OBJECTS = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest-zstdtest.$(OBJEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest-testlib.$(OBJEXT) -zstdtest_OBJECTS = $(am_zstdtest_OBJECTS) -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_DEPENDENCIES = libbacktrace.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) -zstdtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(zstdtest_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_ELF_TRUE@@NATIVE_TRUE@am__objects_13 = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc-zstdtest.$(OBJEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ zstdtest_alloc-testlib.$(OBJEXT) -@HAVE_ELF_TRUE@@NATIVE_TRUE@am_zstdtest_alloc_OBJECTS = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__objects_13) -zstdtest_alloc_OBJECTS = $(am_zstdtest_alloc_OBJECTS) -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_DEPENDENCIES = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) -zstdtest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(zstdtest_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ - $@ -@HAVE_ELF_TRUE@@NATIVE_TRUE@am_ztest_OBJECTS = ztest-ztest.$(OBJEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest-testlib.$(OBJEXT) -ztest_OBJECTS = $(am_ztest_OBJECTS) -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_DEPENDENCIES = libbacktrace.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) -ztest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ztest_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@HAVE_ELF_TRUE@@NATIVE_TRUE@am__objects_14 = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc-ztest.$(OBJEXT) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ ztest_alloc-testlib.$(OBJEXT) -@HAVE_ELF_TRUE@@NATIVE_TRUE@am_ztest_alloc_OBJECTS = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__objects_14) -ztest_alloc_OBJECTS = $(am_ztest_alloc_OBJECTS) -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_DEPENDENCIES = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__DEPENDENCIES_1) -ztest_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ztest_alloc_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = -am__depfiles_maybe = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \ - $(libbacktrace_alloc_la_SOURCES) \ - $(libbacktrace_elf_for_test_la_SOURCES) \ - $(libbacktrace_instrumented_alloc_la_SOURCES) \ - $(libbacktrace_noformat_la_SOURCES) $(allocfail_SOURCES) \ - $(b2test_SOURCES) $(b3test_SOURCES) $(btest_SOURCES) \ - $(btest_alloc_SOURCES) $(btest_lto_SOURCES) $(ctesta_SOURCES) \ - $(ctesta_alloc_SOURCES) $(ctestg_SOURCES) \ - $(ctestg_alloc_SOURCES) $(ctestzstd_SOURCES) $(dwarf5_SOURCES) \ - $(dwarf5_alloc_SOURCES) $(edtest_SOURCES) \ - $(edtest_alloc_SOURCES) $(mtest_SOURCES) $(stest_SOURCES) \ - $(stest_alloc_SOURCES) $(test_elf_32_SOURCES) \ - $(test_elf_64_SOURCES) $(test_macho_SOURCES) \ - $(test_pecoff_SOURCES) $(test_unknown_SOURCES) \ - $(test_xcoff_32_SOURCES) $(test_xcoff_64_SOURCES) \ - $(ttest_SOURCES) $(ttest_alloc_SOURCES) $(unittest_SOURCES) \ - $(unittest_alloc_SOURCES) $(xztest_SOURCES) \ - $(xztest_alloc_SOURCES) $(zstdtest_SOURCES) \ - $(zstdtest_alloc_SOURCES) $(ztest_SOURCES) \ - $(ztest_alloc_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(include_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -AM_RECURSIVE_TARGETS = cscope check recheck -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -RECHECK_LOGS = $(TEST_LOGS) -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -ACLOCAL = @ACLOCAL@ -ALLOC_FILE = @ALLOC_FILE@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BACKTRACE_FILE = @BACKTRACE_FILE@ -BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ -BACKTRACE_SUPPORTS_DATA = @BACKTRACE_SUPPORTS_DATA@ -BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ -BACKTRACE_USES_MALLOC = @BACKTRACE_USES_MALLOC@ -CC = @CC@ -CFLAGS = @CFLAGS@ -CLOCK_GETTIME_LINK = @CLOCK_GETTIME_LINK@ -COMM = @COMM@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -DWZ = @DWZ@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXTRA_FLAGS = @EXTRA_FLAGS@ -FGREP = @FGREP@ -FORMAT_FILE = @FORMAT_FILE@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJCOPY = @OBJCOPY@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIC_FLAG = @PIC_FLAG@ -PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ -RANLIB = @RANLIB@ -READELF = @READELF@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VIEW_FILE = @VIEW_FILE@ -WARN_FLAGS = @WARN_FLAGS@ -XZ = @XZ@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__leading_dot = @am__leading_dot@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libtool_VERSION = @libtool_VERSION@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -multi_basedir = @multi_basedir@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -ACLOCAL_AMFLAGS = -I config -AM_CPPFLAGS = -AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) -include_HEADERS = backtrace.h backtrace-supported.h -lib_LTLIBRARIES = libbacktrace.la -libbacktrace_la_SOURCES = \ - backtrace.h \ - atomic.c \ - dwarf.c \ - fileline.c \ - internal.h \ - posix.c \ - print.c \ - sort.c \ - state.c - -BACKTRACE_FILES = \ - backtrace.c \ - simple.c \ - nounwind.c - -FORMAT_FILES = \ - elf.c \ - macho.c \ - pecoff.c \ - unknown.c \ - xcoff.c - -VIEW_FILES = \ - read.c \ - mmapio.c - -ALLOC_FILES = \ - alloc.c \ - mmap.c - -EXTRA_libbacktrace_la_SOURCES = \ - $(BACKTRACE_FILES) \ - $(FORMAT_FILES) \ - $(VIEW_FILES) \ - $(ALLOC_FILES) - -libbacktrace_la_LIBADD = \ - $(BACKTRACE_FILE) \ - $(FORMAT_FILE) \ - $(VIEW_FILE) \ - $(ALLOC_FILE) - -libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD) - -# Add a test to this variable if you want it to be built as a Makefile -# target and run. -MAKETESTS = $(am__append_7) $(am__append_9) $(am__append_12) \ - $(am__append_13) $(am__append_22) $(am__append_30) - -# Add a test to this variable if you want it to be built as a program, -# with SOURCES, etc., and run. -BUILDTESTS = $(am__append_2) $(am__append_10) $(am__append_11) \ - $(am__append_16) $(am__append_19) $(am__append_20) \ - $(am__append_23) $(am__append_24) $(am__append_25) \ - $(am__append_26) $(am__append_28) $(am__append_33) - -# Add a file to this variable if you want it to be built for testing. -check_DATA = $(am__append_5) $(am__append_21) $(am__append_27) \ - $(am__append_29) - -# Flags to use when compiling test programs. -libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g -@NATIVE_TRUE@check_LTLIBRARIES = libbacktrace_alloc.la \ -@NATIVE_TRUE@ libbacktrace_noformat.la $(am__append_1) \ -@NATIVE_TRUE@ libbacktrace_instrumented_alloc.la -@NATIVE_TRUE@libbacktrace_alloc_la_SOURCES = $(libbacktrace_la_SOURCES) -@NATIVE_TRUE@libbacktrace_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) read.lo alloc.lo -@NATIVE_TRUE@libbacktrace_alloc_la_DEPENDENCIES = $(libbacktrace_alloc_la_LIBADD) -@NATIVE_TRUE@libbacktrace_noformat_la_SOURCES = $(libbacktrace_la_SOURCES) -@NATIVE_TRUE@libbacktrace_noformat_la_LIBADD = $(BACKTRACE_FILE) $(VIEW_FILE) $(ALLOC_FILE) -@NATIVE_TRUE@libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD) -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@TEST_BUILD_ID_DIR = $(abs_builddir)/usr/lib/debug/.build-id/ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@libbacktrace_elf_for_test_la_SOURCES = $(libbacktrace_la_SOURCES) -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(VIEW_FILE) $(ALLOC_FILE) - -@NATIVE_TRUE@test_elf_32_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo -@NATIVE_TRUE@test_elf_64_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo -@NATIVE_TRUE@test_macho_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_macho_LDADD = libbacktrace_noformat.la macho.lo -@NATIVE_TRUE@test_xcoff_32_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo -@NATIVE_TRUE@test_xcoff_64_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo -@NATIVE_TRUE@test_pecoff_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo -@NATIVE_TRUE@test_unknown_SOURCES = test_format.c testlib.c -@NATIVE_TRUE@test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@test_unknown_LDADD = libbacktrace_noformat.la unknown.lo -@NATIVE_TRUE@unittest_SOURCES = unittest.c testlib.c -@NATIVE_TRUE@unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@unittest_LDADD = libbacktrace.la -@NATIVE_TRUE@unittest_alloc_SOURCES = $(unittest_SOURCES) -@NATIVE_TRUE@unittest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@unittest_alloc_LDADD = libbacktrace_alloc.la -@NATIVE_TRUE@libbacktrace_instrumented_alloc_la_SOURCES = $(libbacktrace_la_SOURCES) -@NATIVE_TRUE@libbacktrace_instrumented_alloc_la_LIBADD = $(BACKTRACE_FILE) $(FORMAT_FILE) \ -@NATIVE_TRUE@ read.lo instrumented_alloc.lo - -@NATIVE_TRUE@libbacktrace_instrumented_alloc_la_DEPENDENCIES = \ -@NATIVE_TRUE@ $(libbacktrace_instrumented_alloc_la_LIBADD) - -@NATIVE_TRUE@allocfail_SOURCES = allocfail.c testlib.c -@NATIVE_TRUE@allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@allocfail_LDADD = libbacktrace_instrumented_alloc.la -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_SOURCES = $(btest_SOURCES) -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDFLAGS = -Wl,--build-id -@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDADD = libbacktrace_elf_for_test.la -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_SOURCES = $(btest_SOURCES) -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDFLAGS = -Wl,--build-id -@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDADD = libbacktrace_elf_for_test.la -@NATIVE_TRUE@btest_SOURCES = btest.c testlib.c -@NATIVE_TRUE@btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -@NATIVE_TRUE@btest_LDADD = libbacktrace.la -@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_SOURCES = btest.c testlib.c -@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -flto -@HAVE_ELF_TRUE@@NATIVE_TRUE@btest_lto_LDADD = libbacktrace.la -@NATIVE_TRUE@btest_alloc_SOURCES = $(btest_SOURCES) -@NATIVE_TRUE@btest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@btest_alloc_LDADD = libbacktrace_alloc.la -@NATIVE_TRUE@stest_SOURCES = stest.c -@NATIVE_TRUE@stest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@stest_LDADD = libbacktrace.la -@NATIVE_TRUE@stest_alloc_SOURCES = $(stest_SOURCES) -@NATIVE_TRUE@stest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@stest_alloc_LDADD = libbacktrace_alloc.la -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_SOURCES = ztest.c testlib.c -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_LDADD = libbacktrace.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_14) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK) -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_LDADD = libbacktrace_alloc.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_15) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK) -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_SOURCES = $(ztest_SOURCES) -@HAVE_ELF_TRUE@@NATIVE_TRUE@ztest_alloc_CFLAGS = $(ztest_CFLAGS) -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_SOURCES = zstdtest.c testlib.c -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_LDADD = libbacktrace.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_17) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK) -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_LDADD = \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ libbacktrace_alloc.la \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(am__append_18) \ -@HAVE_ELF_TRUE@@NATIVE_TRUE@ $(CLOCK_GETTIME_LINK) -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_SOURCES = $(zstdtest_SOURCES) -@HAVE_ELF_TRUE@@NATIVE_TRUE@zstdtest_alloc_CFLAGS = $(zstdtest_CFLAGS) -@NATIVE_TRUE@edtest_SOURCES = edtest.c edtest2_build.c testlib.c -@NATIVE_TRUE@edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@edtest_LDADD = libbacktrace.la -@NATIVE_TRUE@edtest_alloc_SOURCES = $(edtest_SOURCES) -@NATIVE_TRUE@edtest_alloc_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@NATIVE_TRUE@edtest_alloc_LDADD = libbacktrace_alloc.la -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_SOURCES = ttest.c testlib.c -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_LDADD = libbacktrace.la -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_SOURCES = $(ttest_SOURCES) -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_CFLAGS = $(ttest_CFLAGS) -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_alloc_LDADD = libbacktrace_alloc.la -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_SOURCES = btest.c testlib.c -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_LDADD = libbacktrace.la -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_SOURCES = btest.c testlib.c -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDADD = libbacktrace.la -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_SOURCES = btest.c testlib.c -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd -@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_COMPRESSED_DEBUG_ZSTD_TRUE@@NATIVE_TRUE@ctestzstd_LDADD = libbacktrace.la -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_SOURCES = $(ctestg_SOURCES) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_CFLAGS = $(ctestg_CFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_LDFLAGS = $(ctestg_LDFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_alloc_LDADD = libbacktrace_alloc.la -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_SOURCES = $(ctesta_SOURCES) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_CFLAGS = $(ctesta_CFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_LDFLAGS = $(ctesta_LDFLAGS) -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_alloc_LDADD = libbacktrace_alloc.la -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_SOURCES = btest.c testlib.c -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5 -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_LDADD = libbacktrace.la -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_SOURCES = $(dwarf5_SOURCES) -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_CFLAGS = $(dwarf5_CFLAGS) -@HAVE_DWARF5_TRUE@@NATIVE_TRUE@dwarf5_alloc_LDADD = libbacktrace_alloc.la -@NATIVE_TRUE@mtest_SOURCES = mtest.c testlib.c -@NATIVE_TRUE@mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -@NATIVE_TRUE@mtest_LDADD = libbacktrace.la -@HAVE_ELF_TRUE@xztest_SOURCES = xztest.c testlib.c -@HAVE_ELF_TRUE@xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -@HAVE_ELF_TRUE@xztest_LDADD = libbacktrace.la $(am__append_31) \ -@HAVE_ELF_TRUE@ $(CLOCK_GETTIME_LINK) -@HAVE_ELF_TRUE@xztest_alloc_SOURCES = $(xztest_SOURCES) -@HAVE_ELF_TRUE@xztest_alloc_CFLAGS = $(xztest_CFLAGS) -@HAVE_ELF_TRUE@xztest_alloc_LDADD = libbacktrace_alloc.la \ -@HAVE_ELF_TRUE@ $(am__append_32) $(CLOCK_GETTIME_LINK) -CLEANFILES = \ - $(MAKETESTS) $(BUILDTESTS) *.debug elf_for_test.c edtest2_build.c \ - gen_edtest2_build \ - *.dsyms *.fsyms *.keepsyms *.dbg *.mdbg *.mdbg.xz *.strip - -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign --ignore-deps Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @test -f $@ || rm -f stamp-h1 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -backtrace-supported.h: $(top_builddir)/config.status $(srcdir)/backtrace-supported.h.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -install-debuginfo-for-buildid.sh: $(top_builddir)/config.status $(srcdir)/install-debuginfo-for-buildid.sh.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -clean-checkLTLIBRARIES: - -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) - @list='$(check_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libbacktrace.la: $(libbacktrace_la_OBJECTS) $(libbacktrace_la_DEPENDENCIES) $(EXTRA_libbacktrace_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(libdir) $(libbacktrace_la_OBJECTS) $(libbacktrace_la_LIBADD) $(LIBS) - -libbacktrace_alloc.la: $(libbacktrace_alloc_la_OBJECTS) $(libbacktrace_alloc_la_DEPENDENCIES) $(EXTRA_libbacktrace_alloc_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(am_libbacktrace_alloc_la_rpath) $(libbacktrace_alloc_la_OBJECTS) $(libbacktrace_alloc_la_LIBADD) $(LIBS) - -libbacktrace_elf_for_test.la: $(libbacktrace_elf_for_test_la_OBJECTS) $(libbacktrace_elf_for_test_la_DEPENDENCIES) $(EXTRA_libbacktrace_elf_for_test_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(am_libbacktrace_elf_for_test_la_rpath) $(libbacktrace_elf_for_test_la_OBJECTS) $(libbacktrace_elf_for_test_la_LIBADD) $(LIBS) - -libbacktrace_instrumented_alloc.la: $(libbacktrace_instrumented_alloc_la_OBJECTS) $(libbacktrace_instrumented_alloc_la_DEPENDENCIES) $(EXTRA_libbacktrace_instrumented_alloc_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(am_libbacktrace_instrumented_alloc_la_rpath) $(libbacktrace_instrumented_alloc_la_OBJECTS) $(libbacktrace_instrumented_alloc_la_LIBADD) $(LIBS) - -libbacktrace_noformat.la: $(libbacktrace_noformat_la_OBJECTS) $(libbacktrace_noformat_la_DEPENDENCIES) $(EXTRA_libbacktrace_noformat_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(am_libbacktrace_noformat_la_rpath) $(libbacktrace_noformat_la_OBJECTS) $(libbacktrace_noformat_la_LIBADD) $(LIBS) - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -allocfail$(EXEEXT): $(allocfail_OBJECTS) $(allocfail_DEPENDENCIES) $(EXTRA_allocfail_DEPENDENCIES) - @rm -f allocfail$(EXEEXT) - $(AM_V_CCLD)$(allocfail_LINK) $(allocfail_OBJECTS) $(allocfail_LDADD) $(LIBS) - -b2test$(EXEEXT): $(b2test_OBJECTS) $(b2test_DEPENDENCIES) $(EXTRA_b2test_DEPENDENCIES) - @rm -f b2test$(EXEEXT) - $(AM_V_CCLD)$(b2test_LINK) $(b2test_OBJECTS) $(b2test_LDADD) $(LIBS) - -b3test$(EXEEXT): $(b3test_OBJECTS) $(b3test_DEPENDENCIES) $(EXTRA_b3test_DEPENDENCIES) - @rm -f b3test$(EXEEXT) - $(AM_V_CCLD)$(b3test_LINK) $(b3test_OBJECTS) $(b3test_LDADD) $(LIBS) - -btest$(EXEEXT): $(btest_OBJECTS) $(btest_DEPENDENCIES) $(EXTRA_btest_DEPENDENCIES) - @rm -f btest$(EXEEXT) - $(AM_V_CCLD)$(btest_LINK) $(btest_OBJECTS) $(btest_LDADD) $(LIBS) - -btest_alloc$(EXEEXT): $(btest_alloc_OBJECTS) $(btest_alloc_DEPENDENCIES) $(EXTRA_btest_alloc_DEPENDENCIES) - @rm -f btest_alloc$(EXEEXT) - $(AM_V_CCLD)$(btest_alloc_LINK) $(btest_alloc_OBJECTS) $(btest_alloc_LDADD) $(LIBS) - -btest_lto$(EXEEXT): $(btest_lto_OBJECTS) $(btest_lto_DEPENDENCIES) $(EXTRA_btest_lto_DEPENDENCIES) - @rm -f btest_lto$(EXEEXT) - $(AM_V_CCLD)$(btest_lto_LINK) $(btest_lto_OBJECTS) $(btest_lto_LDADD) $(LIBS) - -ctesta$(EXEEXT): $(ctesta_OBJECTS) $(ctesta_DEPENDENCIES) $(EXTRA_ctesta_DEPENDENCIES) - @rm -f ctesta$(EXEEXT) - $(AM_V_CCLD)$(ctesta_LINK) $(ctesta_OBJECTS) $(ctesta_LDADD) $(LIBS) - -ctesta_alloc$(EXEEXT): $(ctesta_alloc_OBJECTS) $(ctesta_alloc_DEPENDENCIES) $(EXTRA_ctesta_alloc_DEPENDENCIES) - @rm -f ctesta_alloc$(EXEEXT) - $(AM_V_CCLD)$(ctesta_alloc_LINK) $(ctesta_alloc_OBJECTS) $(ctesta_alloc_LDADD) $(LIBS) - -ctestg$(EXEEXT): $(ctestg_OBJECTS) $(ctestg_DEPENDENCIES) $(EXTRA_ctestg_DEPENDENCIES) - @rm -f ctestg$(EXEEXT) - $(AM_V_CCLD)$(ctestg_LINK) $(ctestg_OBJECTS) $(ctestg_LDADD) $(LIBS) - -ctestg_alloc$(EXEEXT): $(ctestg_alloc_OBJECTS) $(ctestg_alloc_DEPENDENCIES) $(EXTRA_ctestg_alloc_DEPENDENCIES) - @rm -f ctestg_alloc$(EXEEXT) - $(AM_V_CCLD)$(ctestg_alloc_LINK) $(ctestg_alloc_OBJECTS) $(ctestg_alloc_LDADD) $(LIBS) - -ctestzstd$(EXEEXT): $(ctestzstd_OBJECTS) $(ctestzstd_DEPENDENCIES) $(EXTRA_ctestzstd_DEPENDENCIES) - @rm -f ctestzstd$(EXEEXT) - $(AM_V_CCLD)$(ctestzstd_LINK) $(ctestzstd_OBJECTS) $(ctestzstd_LDADD) $(LIBS) - -dwarf5$(EXEEXT): $(dwarf5_OBJECTS) $(dwarf5_DEPENDENCIES) $(EXTRA_dwarf5_DEPENDENCIES) - @rm -f dwarf5$(EXEEXT) - $(AM_V_CCLD)$(dwarf5_LINK) $(dwarf5_OBJECTS) $(dwarf5_LDADD) $(LIBS) - -dwarf5_alloc$(EXEEXT): $(dwarf5_alloc_OBJECTS) $(dwarf5_alloc_DEPENDENCIES) $(EXTRA_dwarf5_alloc_DEPENDENCIES) - @rm -f dwarf5_alloc$(EXEEXT) - $(AM_V_CCLD)$(dwarf5_alloc_LINK) $(dwarf5_alloc_OBJECTS) $(dwarf5_alloc_LDADD) $(LIBS) - -edtest$(EXEEXT): $(edtest_OBJECTS) $(edtest_DEPENDENCIES) $(EXTRA_edtest_DEPENDENCIES) - @rm -f edtest$(EXEEXT) - $(AM_V_CCLD)$(edtest_LINK) $(edtest_OBJECTS) $(edtest_LDADD) $(LIBS) - -edtest_alloc$(EXEEXT): $(edtest_alloc_OBJECTS) $(edtest_alloc_DEPENDENCIES) $(EXTRA_edtest_alloc_DEPENDENCIES) - @rm -f edtest_alloc$(EXEEXT) - $(AM_V_CCLD)$(edtest_alloc_LINK) $(edtest_alloc_OBJECTS) $(edtest_alloc_LDADD) $(LIBS) - -mtest$(EXEEXT): $(mtest_OBJECTS) $(mtest_DEPENDENCIES) $(EXTRA_mtest_DEPENDENCIES) - @rm -f mtest$(EXEEXT) - $(AM_V_CCLD)$(mtest_LINK) $(mtest_OBJECTS) $(mtest_LDADD) $(LIBS) - -stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) $(EXTRA_stest_DEPENDENCIES) - @rm -f stest$(EXEEXT) - $(AM_V_CCLD)$(stest_LINK) $(stest_OBJECTS) $(stest_LDADD) $(LIBS) - -stest_alloc$(EXEEXT): $(stest_alloc_OBJECTS) $(stest_alloc_DEPENDENCIES) $(EXTRA_stest_alloc_DEPENDENCIES) - @rm -f stest_alloc$(EXEEXT) - $(AM_V_CCLD)$(stest_alloc_LINK) $(stest_alloc_OBJECTS) $(stest_alloc_LDADD) $(LIBS) - -test_elf_32$(EXEEXT): $(test_elf_32_OBJECTS) $(test_elf_32_DEPENDENCIES) $(EXTRA_test_elf_32_DEPENDENCIES) - @rm -f test_elf_32$(EXEEXT) - $(AM_V_CCLD)$(test_elf_32_LINK) $(test_elf_32_OBJECTS) $(test_elf_32_LDADD) $(LIBS) - -test_elf_64$(EXEEXT): $(test_elf_64_OBJECTS) $(test_elf_64_DEPENDENCIES) $(EXTRA_test_elf_64_DEPENDENCIES) - @rm -f test_elf_64$(EXEEXT) - $(AM_V_CCLD)$(test_elf_64_LINK) $(test_elf_64_OBJECTS) $(test_elf_64_LDADD) $(LIBS) - -test_macho$(EXEEXT): $(test_macho_OBJECTS) $(test_macho_DEPENDENCIES) $(EXTRA_test_macho_DEPENDENCIES) - @rm -f test_macho$(EXEEXT) - $(AM_V_CCLD)$(test_macho_LINK) $(test_macho_OBJECTS) $(test_macho_LDADD) $(LIBS) - -test_pecoff$(EXEEXT): $(test_pecoff_OBJECTS) $(test_pecoff_DEPENDENCIES) $(EXTRA_test_pecoff_DEPENDENCIES) - @rm -f test_pecoff$(EXEEXT) - $(AM_V_CCLD)$(test_pecoff_LINK) $(test_pecoff_OBJECTS) $(test_pecoff_LDADD) $(LIBS) - -test_unknown$(EXEEXT): $(test_unknown_OBJECTS) $(test_unknown_DEPENDENCIES) $(EXTRA_test_unknown_DEPENDENCIES) - @rm -f test_unknown$(EXEEXT) - $(AM_V_CCLD)$(test_unknown_LINK) $(test_unknown_OBJECTS) $(test_unknown_LDADD) $(LIBS) - -test_xcoff_32$(EXEEXT): $(test_xcoff_32_OBJECTS) $(test_xcoff_32_DEPENDENCIES) $(EXTRA_test_xcoff_32_DEPENDENCIES) - @rm -f test_xcoff_32$(EXEEXT) - $(AM_V_CCLD)$(test_xcoff_32_LINK) $(test_xcoff_32_OBJECTS) $(test_xcoff_32_LDADD) $(LIBS) - -test_xcoff_64$(EXEEXT): $(test_xcoff_64_OBJECTS) $(test_xcoff_64_DEPENDENCIES) $(EXTRA_test_xcoff_64_DEPENDENCIES) - @rm -f test_xcoff_64$(EXEEXT) - $(AM_V_CCLD)$(test_xcoff_64_LINK) $(test_xcoff_64_OBJECTS) $(test_xcoff_64_LDADD) $(LIBS) - -ttest$(EXEEXT): $(ttest_OBJECTS) $(ttest_DEPENDENCIES) $(EXTRA_ttest_DEPENDENCIES) - @rm -f ttest$(EXEEXT) - $(AM_V_CCLD)$(ttest_LINK) $(ttest_OBJECTS) $(ttest_LDADD) $(LIBS) - -ttest_alloc$(EXEEXT): $(ttest_alloc_OBJECTS) $(ttest_alloc_DEPENDENCIES) $(EXTRA_ttest_alloc_DEPENDENCIES) - @rm -f ttest_alloc$(EXEEXT) - $(AM_V_CCLD)$(ttest_alloc_LINK) $(ttest_alloc_OBJECTS) $(ttest_alloc_LDADD) $(LIBS) - -unittest$(EXEEXT): $(unittest_OBJECTS) $(unittest_DEPENDENCIES) $(EXTRA_unittest_DEPENDENCIES) - @rm -f unittest$(EXEEXT) - $(AM_V_CCLD)$(unittest_LINK) $(unittest_OBJECTS) $(unittest_LDADD) $(LIBS) - -unittest_alloc$(EXEEXT): $(unittest_alloc_OBJECTS) $(unittest_alloc_DEPENDENCIES) $(EXTRA_unittest_alloc_DEPENDENCIES) - @rm -f unittest_alloc$(EXEEXT) - $(AM_V_CCLD)$(unittest_alloc_LINK) $(unittest_alloc_OBJECTS) $(unittest_alloc_LDADD) $(LIBS) - -xztest$(EXEEXT): $(xztest_OBJECTS) $(xztest_DEPENDENCIES) $(EXTRA_xztest_DEPENDENCIES) - @rm -f xztest$(EXEEXT) - $(AM_V_CCLD)$(xztest_LINK) $(xztest_OBJECTS) $(xztest_LDADD) $(LIBS) - -xztest_alloc$(EXEEXT): $(xztest_alloc_OBJECTS) $(xztest_alloc_DEPENDENCIES) $(EXTRA_xztest_alloc_DEPENDENCIES) - @rm -f xztest_alloc$(EXEEXT) - $(AM_V_CCLD)$(xztest_alloc_LINK) $(xztest_alloc_OBJECTS) $(xztest_alloc_LDADD) $(LIBS) - -zstdtest$(EXEEXT): $(zstdtest_OBJECTS) $(zstdtest_DEPENDENCIES) $(EXTRA_zstdtest_DEPENDENCIES) - @rm -f zstdtest$(EXEEXT) - $(AM_V_CCLD)$(zstdtest_LINK) $(zstdtest_OBJECTS) $(zstdtest_LDADD) $(LIBS) - -zstdtest_alloc$(EXEEXT): $(zstdtest_alloc_OBJECTS) $(zstdtest_alloc_DEPENDENCIES) $(EXTRA_zstdtest_alloc_DEPENDENCIES) - @rm -f zstdtest_alloc$(EXEEXT) - $(AM_V_CCLD)$(zstdtest_alloc_LINK) $(zstdtest_alloc_OBJECTS) $(zstdtest_alloc_LDADD) $(LIBS) - -ztest$(EXEEXT): $(ztest_OBJECTS) $(ztest_DEPENDENCIES) $(EXTRA_ztest_DEPENDENCIES) - @rm -f ztest$(EXEEXT) - $(AM_V_CCLD)$(ztest_LINK) $(ztest_OBJECTS) $(ztest_LDADD) $(LIBS) - -ztest_alloc$(EXEEXT): $(ztest_alloc_OBJECTS) $(ztest_alloc_DEPENDENCIES) $(EXTRA_ztest_alloc_DEPENDENCIES) - @rm -f ztest_alloc$(EXEEXT) - $(AM_V_CCLD)$(ztest_alloc_LINK) $(ztest_alloc_OBJECTS) $(ztest_alloc_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -.c.o: - $(AM_V_CC)$(COMPILE) -c -o $@ $< - -.c.obj: - $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: - $(AM_V_CC)$(LTCOMPILE) -c -o $@ $< - -allocfail-allocfail.o: allocfail.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-allocfail.o `test -f 'allocfail.c' || echo '$(srcdir)/'`allocfail.c - -allocfail-allocfail.obj: allocfail.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-allocfail.obj `if test -f 'allocfail.c'; then $(CYGPATH_W) 'allocfail.c'; else $(CYGPATH_W) '$(srcdir)/allocfail.c'; fi` - -allocfail-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -allocfail-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocfail_CFLAGS) $(CFLAGS) -c -o allocfail-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -b2test-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -b2test-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -b2test-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -b2test-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b2test_CFLAGS) $(CFLAGS) -c -o b2test-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -b3test-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -b3test-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -b3test-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -b3test-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(b3test_CFLAGS) $(CFLAGS) -c -o b3test-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -btest-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -btest-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -btest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -btest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -btest_alloc-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -btest_alloc-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -btest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -btest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_alloc_CFLAGS) $(CFLAGS) -c -o btest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -btest_lto-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -btest_lto-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -btest_lto-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -btest_lto-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_lto_CFLAGS) $(CFLAGS) -c -o btest_lto-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ctesta-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -ctesta-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -ctesta-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ctesta-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ctesta_alloc-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -ctesta_alloc-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -ctesta_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ctesta_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_alloc_CFLAGS) $(CFLAGS) -c -o ctesta_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ctestg-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -ctestg-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -ctestg-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ctestg-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ctestg_alloc-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -ctestg_alloc-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -ctestg_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ctestg_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_alloc_CFLAGS) $(CFLAGS) -c -o ctestg_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ctestzstd-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -ctestzstd-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -ctestzstd-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ctestzstd-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestzstd_CFLAGS) $(CFLAGS) -c -o ctestzstd-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -dwarf5-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -dwarf5-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -dwarf5-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -dwarf5-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_CFLAGS) $(CFLAGS) -c -o dwarf5-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -dwarf5_alloc-btest.o: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c - -dwarf5_alloc-btest.obj: btest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` - -dwarf5_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -dwarf5_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dwarf5_alloc_CFLAGS) $(CFLAGS) -c -o dwarf5_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -edtest-edtest.o: edtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest.o `test -f 'edtest.c' || echo '$(srcdir)/'`edtest.c - -edtest-edtest.obj: edtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest.obj `if test -f 'edtest.c'; then $(CYGPATH_W) 'edtest.c'; else $(CYGPATH_W) '$(srcdir)/edtest.c'; fi` - -edtest-edtest2_build.o: edtest2_build.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest2_build.o `test -f 'edtest2_build.c' || echo '$(srcdir)/'`edtest2_build.c - -edtest-edtest2_build.obj: edtest2_build.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-edtest2_build.obj `if test -f 'edtest2_build.c'; then $(CYGPATH_W) 'edtest2_build.c'; else $(CYGPATH_W) '$(srcdir)/edtest2_build.c'; fi` - -edtest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -edtest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_CFLAGS) $(CFLAGS) -c -o edtest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -edtest_alloc-edtest.o: edtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest.o `test -f 'edtest.c' || echo '$(srcdir)/'`edtest.c - -edtest_alloc-edtest.obj: edtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest.obj `if test -f 'edtest.c'; then $(CYGPATH_W) 'edtest.c'; else $(CYGPATH_W) '$(srcdir)/edtest.c'; fi` - -edtest_alloc-edtest2_build.o: edtest2_build.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest2_build.o `test -f 'edtest2_build.c' || echo '$(srcdir)/'`edtest2_build.c - -edtest_alloc-edtest2_build.obj: edtest2_build.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-edtest2_build.obj `if test -f 'edtest2_build.c'; then $(CYGPATH_W) 'edtest2_build.c'; else $(CYGPATH_W) '$(srcdir)/edtest2_build.c'; fi` - -edtest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -edtest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(edtest_alloc_CFLAGS) $(CFLAGS) -c -o edtest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -mtest-mtest.o: mtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-mtest.o `test -f 'mtest.c' || echo '$(srcdir)/'`mtest.c - -mtest-mtest.obj: mtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-mtest.obj `if test -f 'mtest.c'; then $(CYGPATH_W) 'mtest.c'; else $(CYGPATH_W) '$(srcdir)/mtest.c'; fi` - -mtest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -mtest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mtest_CFLAGS) $(CFLAGS) -c -o mtest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -stest-stest.o: stest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_CFLAGS) $(CFLAGS) -c -o stest-stest.o `test -f 'stest.c' || echo '$(srcdir)/'`stest.c - -stest-stest.obj: stest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_CFLAGS) $(CFLAGS) -c -o stest-stest.obj `if test -f 'stest.c'; then $(CYGPATH_W) 'stest.c'; else $(CYGPATH_W) '$(srcdir)/stest.c'; fi` - -stest_alloc-stest.o: stest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_alloc_CFLAGS) $(CFLAGS) -c -o stest_alloc-stest.o `test -f 'stest.c' || echo '$(srcdir)/'`stest.c - -stest_alloc-stest.obj: stest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stest_alloc_CFLAGS) $(CFLAGS) -c -o stest_alloc-stest.obj `if test -f 'stest.c'; then $(CYGPATH_W) 'stest.c'; else $(CYGPATH_W) '$(srcdir)/stest.c'; fi` - -test_elf_32-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_elf_32-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_elf_32-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_elf_32-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_32_CFLAGS) $(CFLAGS) -c -o test_elf_32-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -test_elf_64-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_elf_64-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_elf_64-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_elf_64-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_elf_64_CFLAGS) $(CFLAGS) -c -o test_elf_64-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -test_macho-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_macho-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_macho-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_macho-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_macho_CFLAGS) $(CFLAGS) -c -o test_macho-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -test_pecoff-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_pecoff-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_pecoff-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_pecoff-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_pecoff_CFLAGS) $(CFLAGS) -c -o test_pecoff-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -test_unknown-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_unknown-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_unknown-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_unknown-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_unknown_CFLAGS) $(CFLAGS) -c -o test_unknown-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -test_xcoff_32-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_xcoff_32-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_xcoff_32-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_xcoff_32-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_32_CFLAGS) $(CFLAGS) -c -o test_xcoff_32-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -test_xcoff_64-test_format.o: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-test_format.o `test -f 'test_format.c' || echo '$(srcdir)/'`test_format.c - -test_xcoff_64-test_format.obj: test_format.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-test_format.obj `if test -f 'test_format.c'; then $(CYGPATH_W) 'test_format.c'; else $(CYGPATH_W) '$(srcdir)/test_format.c'; fi` - -test_xcoff_64-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -test_xcoff_64-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xcoff_64_CFLAGS) $(CFLAGS) -c -o test_xcoff_64-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ttest-ttest.o: ttest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-ttest.o `test -f 'ttest.c' || echo '$(srcdir)/'`ttest.c - -ttest-ttest.obj: ttest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-ttest.obj `if test -f 'ttest.c'; then $(CYGPATH_W) 'ttest.c'; else $(CYGPATH_W) '$(srcdir)/ttest.c'; fi` - -ttest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ttest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ttest_alloc-ttest.o: ttest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-ttest.o `test -f 'ttest.c' || echo '$(srcdir)/'`ttest.c - -ttest_alloc-ttest.obj: ttest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-ttest.obj `if test -f 'ttest.c'; then $(CYGPATH_W) 'ttest.c'; else $(CYGPATH_W) '$(srcdir)/ttest.c'; fi` - -ttest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ttest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ttest_alloc_CFLAGS) $(CFLAGS) -c -o ttest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -unittest-unittest.o: unittest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-unittest.o `test -f 'unittest.c' || echo '$(srcdir)/'`unittest.c - -unittest-unittest.obj: unittest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-unittest.obj `if test -f 'unittest.c'; then $(CYGPATH_W) 'unittest.c'; else $(CYGPATH_W) '$(srcdir)/unittest.c'; fi` - -unittest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -unittest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_CFLAGS) $(CFLAGS) -c -o unittest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -unittest_alloc-unittest.o: unittest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-unittest.o `test -f 'unittest.c' || echo '$(srcdir)/'`unittest.c - -unittest_alloc-unittest.obj: unittest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-unittest.obj `if test -f 'unittest.c'; then $(CYGPATH_W) 'unittest.c'; else $(CYGPATH_W) '$(srcdir)/unittest.c'; fi` - -unittest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -unittest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unittest_alloc_CFLAGS) $(CFLAGS) -c -o unittest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -xztest-xztest.o: xztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-xztest.o `test -f 'xztest.c' || echo '$(srcdir)/'`xztest.c - -xztest-xztest.obj: xztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-xztest.obj `if test -f 'xztest.c'; then $(CYGPATH_W) 'xztest.c'; else $(CYGPATH_W) '$(srcdir)/xztest.c'; fi` - -xztest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -xztest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_CFLAGS) $(CFLAGS) -c -o xztest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -xztest_alloc-xztest.o: xztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-xztest.o `test -f 'xztest.c' || echo '$(srcdir)/'`xztest.c - -xztest_alloc-xztest.obj: xztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-xztest.obj `if test -f 'xztest.c'; then $(CYGPATH_W) 'xztest.c'; else $(CYGPATH_W) '$(srcdir)/xztest.c'; fi` - -xztest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -xztest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xztest_alloc_CFLAGS) $(CFLAGS) -c -o xztest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -zstdtest-zstdtest.o: zstdtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-zstdtest.o `test -f 'zstdtest.c' || echo '$(srcdir)/'`zstdtest.c - -zstdtest-zstdtest.obj: zstdtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-zstdtest.obj `if test -f 'zstdtest.c'; then $(CYGPATH_W) 'zstdtest.c'; else $(CYGPATH_W) '$(srcdir)/zstdtest.c'; fi` - -zstdtest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -zstdtest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_CFLAGS) $(CFLAGS) -c -o zstdtest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -zstdtest_alloc-zstdtest.o: zstdtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-zstdtest.o `test -f 'zstdtest.c' || echo '$(srcdir)/'`zstdtest.c - -zstdtest_alloc-zstdtest.obj: zstdtest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-zstdtest.obj `if test -f 'zstdtest.c'; then $(CYGPATH_W) 'zstdtest.c'; else $(CYGPATH_W) '$(srcdir)/zstdtest.c'; fi` - -zstdtest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -zstdtest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zstdtest_alloc_CFLAGS) $(CFLAGS) -c -o zstdtest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ztest-ztest.o: ztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c - -ztest-ztest.obj: ztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.obj `if test -f 'ztest.c'; then $(CYGPATH_W) 'ztest.c'; else $(CYGPATH_W) '$(srcdir)/ztest.c'; fi` - -ztest-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ztest-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -ztest_alloc-ztest.o: ztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c - -ztest_alloc-ztest.obj: ztest.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-ztest.obj `if test -f 'ztest.c'; then $(CYGPATH_W) 'ztest.c'; else $(CYGPATH_W) '$(srcdir)/ztest.c'; fi` - -ztest_alloc-testlib.o: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c - -ztest_alloc-testlib.obj: testlib.c - $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_alloc_CFLAGS) $(CFLAGS) -c -o ztest_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_LTLIBRARIES) $(check_PROGRAMS) $(check_DATA) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -allocfail.sh.log: allocfail.sh - @p='allocfail.sh'; \ - b='allocfail.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -b2test_buildid.log: b2test_buildid - @p='b2test_buildid'; \ - b='b2test_buildid'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -b3test_dwz_buildid.log: b3test_dwz_buildid - @p='b3test_dwz_buildid'; \ - b='b3test_dwz_buildid'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -btest_dwz.log: btest_dwz - @p='btest_dwz'; \ - b='btest_dwz'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -btest_dwz_gnudebuglink.log: btest_dwz_gnudebuglink - @p='btest_dwz_gnudebuglink'; \ - b='btest_dwz_gnudebuglink'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -btest_gnudebuglink.log: btest_gnudebuglink - @p='btest_gnudebuglink'; \ - b='btest_gnudebuglink'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -mtest_minidebug.log: mtest_minidebug - @p='mtest_minidebug'; \ - b='mtest_minidebug'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_elf_32.log: test_elf_32$(EXEEXT) - @p='test_elf_32$(EXEEXT)'; \ - b='test_elf_32'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_elf_64.log: test_elf_64$(EXEEXT) - @p='test_elf_64$(EXEEXT)'; \ - b='test_elf_64'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_macho.log: test_macho$(EXEEXT) - @p='test_macho$(EXEEXT)'; \ - b='test_macho'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_xcoff_32.log: test_xcoff_32$(EXEEXT) - @p='test_xcoff_32$(EXEEXT)'; \ - b='test_xcoff_32'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_xcoff_64.log: test_xcoff_64$(EXEEXT) - @p='test_xcoff_64$(EXEEXT)'; \ - b='test_xcoff_64'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_pecoff.log: test_pecoff$(EXEEXT) - @p='test_pecoff$(EXEEXT)'; \ - b='test_pecoff'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -test_unknown.log: test_unknown$(EXEEXT) - @p='test_unknown$(EXEEXT)'; \ - b='test_unknown'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unittest.log: unittest$(EXEEXT) - @p='unittest$(EXEEXT)'; \ - b='unittest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unittest_alloc.log: unittest_alloc$(EXEEXT) - @p='unittest_alloc$(EXEEXT)'; \ - b='unittest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -btest.log: btest$(EXEEXT) - @p='btest$(EXEEXT)'; \ - b='btest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -btest_lto.log: btest_lto$(EXEEXT) - @p='btest_lto$(EXEEXT)'; \ - b='btest_lto'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -btest_alloc.log: btest_alloc$(EXEEXT) - @p='btest_alloc$(EXEEXT)'; \ - b='btest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -stest.log: stest$(EXEEXT) - @p='stest$(EXEEXT)'; \ - b='stest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -stest_alloc.log: stest_alloc$(EXEEXT) - @p='stest_alloc$(EXEEXT)'; \ - b='stest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ztest.log: ztest$(EXEEXT) - @p='ztest$(EXEEXT)'; \ - b='ztest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ztest_alloc.log: ztest_alloc$(EXEEXT) - @p='ztest_alloc$(EXEEXT)'; \ - b='ztest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -zstdtest.log: zstdtest$(EXEEXT) - @p='zstdtest$(EXEEXT)'; \ - b='zstdtest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -zstdtest_alloc.log: zstdtest_alloc$(EXEEXT) - @p='zstdtest_alloc$(EXEEXT)'; \ - b='zstdtest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -edtest.log: edtest$(EXEEXT) - @p='edtest$(EXEEXT)'; \ - b='edtest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -edtest_alloc.log: edtest_alloc$(EXEEXT) - @p='edtest_alloc$(EXEEXT)'; \ - b='edtest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ttest.log: ttest$(EXEEXT) - @p='ttest$(EXEEXT)'; \ - b='ttest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ttest_alloc.log: ttest_alloc$(EXEEXT) - @p='ttest_alloc$(EXEEXT)'; \ - b='ttest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ctestg.log: ctestg$(EXEEXT) - @p='ctestg$(EXEEXT)'; \ - b='ctestg'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ctesta.log: ctesta$(EXEEXT) - @p='ctesta$(EXEEXT)'; \ - b='ctesta'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ctestzstd.log: ctestzstd$(EXEEXT) - @p='ctestzstd$(EXEEXT)'; \ - b='ctestzstd'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ctestg_alloc.log: ctestg_alloc$(EXEEXT) - @p='ctestg_alloc$(EXEEXT)'; \ - b='ctestg_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -ctesta_alloc.log: ctesta_alloc$(EXEEXT) - @p='ctesta_alloc$(EXEEXT)'; \ - b='ctesta_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -dwarf5.log: dwarf5$(EXEEXT) - @p='dwarf5$(EXEEXT)'; \ - b='dwarf5'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -dwarf5_alloc.log: dwarf5_alloc$(EXEEXT) - @p='dwarf5_alloc$(EXEEXT)'; \ - b='dwarf5_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -mtest.log: mtest$(EXEEXT) - @p='mtest$(EXEEXT)'; \ - b='mtest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -xztest.log: xztest$(EXEEXT) - @p='xztest$(EXEEXT)'; \ - b='xztest'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -xztest_alloc.log: xztest_alloc$(EXEEXT) - @p='xztest_alloc$(EXEEXT)'; \ - b='xztest_alloc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS) \ - $(check_DATA) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h -installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \ - clean-libLTLIBRARIES clean-libtool clean-local mostlyclean-am - -distclean: distclean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-includeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES - -.MAKE: all check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-TESTS \ - check-am clean clean-checkLTLIBRARIES clean-checkPROGRAMS \ - clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \ - clean-local cscope cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-tags dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-includeHEADERS \ - install-info install-info-am install-libLTLIBRARIES \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ - uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES - -.PRECIOUS: Makefile - - -@USE_DSYMUTIL_TRUE@%.dSYM: % -@USE_DSYMUTIL_TRUE@ $(DSYMUTIL) $< - -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@elf_for_test.c: elf.c -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ SEARCH='^#define SYSTEM_BUILD_ID_DIR.*$$'; \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ REPLACE="#define SYSTEM_BUILD_ID_DIR \"$(TEST_BUILD_ID_DIR)\""; \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(SED) "s%$$SEARCH%$$REPLACE%" \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $< \ -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ > $@.tmp -@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ mv $@.tmp $@ - -@NATIVE_TRUE@elf_%.c: elf.c -@NATIVE_TRUE@ SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \ -@NATIVE_TRUE@ REPLACE='#undef BACKTRACE_ELF_SIZE\ -@NATIVE_TRUE@ #define BACKTRACE_ELF_SIZE'; \ -@NATIVE_TRUE@ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ -@NATIVE_TRUE@ $< \ -@NATIVE_TRUE@ > $@.tmp -@NATIVE_TRUE@ mv $@.tmp $@ - -@NATIVE_TRUE@xcoff_%.c: xcoff.c -@NATIVE_TRUE@ SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ -@NATIVE_TRUE@ REPLACE='#undef BACKTRACE_XCOFF_SIZE\ -@NATIVE_TRUE@ #define BACKTRACE_XCOFF_SIZE'; \ -@NATIVE_TRUE@ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ -@NATIVE_TRUE@ $< \ -@NATIVE_TRUE@ > $@.tmp -@NATIVE_TRUE@ mv $@.tmp $@ - -@NATIVE_TRUE@instrumented_alloc.lo: alloc.c - -@NATIVE_TRUE@allocfail.sh: allocfail - -@HAVE_DWZ_TRUE@@NATIVE_TRUE@%_dwz: % -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ rm -f $@ $@_common.debug -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ cp $< $@_1 -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ cp $< $@_2 -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ if $(DWZ) -m $@_common.debug $@_1 $@_2; then \ -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ rm -f $@_2; \ -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ mv $@_1 $@; \ -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ else \ -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ echo "Ignoring dwz errors, assuming that test passes"; \ -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ cp $< $@; \ -@HAVE_DWZ_TRUE@@NATIVE_TRUE@ fi - -@NATIVE_TRUE@edtest2_build.c: gen_edtest2_build; @true -@NATIVE_TRUE@gen_edtest2_build: $(srcdir)/edtest2.c -@NATIVE_TRUE@ cat $(srcdir)/edtest2.c > tmp-edtest2_build.c -@NATIVE_TRUE@ $(SHELL) $(srcdir)/move-if-change tmp-edtest2_build.c edtest2_build.c -@NATIVE_TRUE@ echo timestamp > $@ - -@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@%_gnudebuglink: % -@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --only-keep-debug $< $@.debug -@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --strip-debug --add-gnu-debuglink=$@.debug $< $@ - -@NATIVE_TRUE@%_buildid: % -@NATIVE_TRUE@ ./install-debuginfo-for-buildid.sh \ -@NATIVE_TRUE@ "$(TEST_BUILD_ID_DIR)" \ -@NATIVE_TRUE@ $< -@NATIVE_TRUE@ $(OBJCOPY) --strip-debug $< $@ - -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@%_minidebug: % -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --only-keep-debug $< $<.dbg -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --strip-all --remove-section ..comment $< $<.strip -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ rm -f $<.mdbg.xz -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(XZ) $<.mdbg -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg.xz $<.strip -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ mv $<.strip $@ - -clean-local: - -rm -rf usr - -# We can't use automake's automatic dependency tracking, because it -# breaks when using bootstrap-lean. Automatic dependency tracking -# with GCC bootstrap will cause some of the objects to depend on -# header files in prev-gcc/include, e.g., stddef.h and stdarg.h. When -# using bootstrap-lean, prev-gcc is removed after each stage. When -# running "make install", those header files will be gone, causing the -# library to be rebuilt at install time. That may not succeed. - -# These manual dependencies do not include dependencies on unwind.h, -# even though that is part of GCC, because where to find it depends on -# whether we are being built as a host library or a target library. - -alloc.lo: config.h backtrace.h internal.h -backtrace.lo: config.h backtrace.h internal.h -btest.lo: filenames.h backtrace.h backtrace-supported.h -dwarf.lo: config.h filenames.h backtrace.h internal.h -elf.lo: config.h backtrace.h internal.h -fileline.lo: config.h backtrace.h internal.h -macho.lo: config.h backtrace.h internal.h -mmap.lo: config.h backtrace.h internal.h -mmapio.lo: config.h backtrace.h internal.h -mtest.lo: backtrace.h backtrace-supported.h -nounwind.lo: config.h internal.h -pecoff.lo: config.h backtrace.h internal.h -posix.lo: config.h backtrace.h internal.h -print.lo: config.h backtrace.h internal.h -read.lo: config.h backtrace.h internal.h -simple.lo: config.h backtrace.h internal.h -sort.lo: config.h backtrace.h internal.h -stest.lo: config.h backtrace.h internal.h -state.lo: config.h backtrace.h backtrace-supported.h internal.h -unknown.lo: config.h backtrace.h internal.h -xcoff.lo: config.h backtrace.h internal.h -xztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h -ztest.lo: config.h backtrace.h backtrace-supported.h internal.h testlib.h - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/deps/libbacktrace/README.md b/deps/libbacktrace/README.md deleted file mode 100644 index c82834d1..00000000 --- a/deps/libbacktrace/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# libbacktrace -A C library that may be linked into a C/C++ program to produce symbolic backtraces - -Initially written by Ian Lance Taylor . - -This is version 1.0. -It is likely that this will always be version 1.0. - -The libbacktrace library may be linked into a program or library and -used to produce symbolic backtraces. -Sample uses would be to print a detailed backtrace when an error -occurs or to gather detailed profiling information. -In general the functions provided by this library are async-signal-safe, -meaning that they may be safely called from a signal handler. - -The libbacktrace library is provided under a BSD license. -See the source files for the exact license text. - -The public functions are declared and documented in the header file -backtrace.h, which should be #include'd by a user of the library. - -Building libbacktrace will generate a file backtrace-supported.h, -which a user of the library may use to determine whether backtraces -will work. -See the source file backtrace-supported.h.in for the macros that it -defines. - -As of October 2020, libbacktrace supports ELF, PE/COFF, Mach-O, and -XCOFF executables with DWARF debugging information. -In other words, it supports GNU/Linux, *BSD, macOS, Windows, and AIX. -The library is written to make it straightforward to add support for -other object file and debugging formats. - -The library relies on the C++ unwind API defined at -https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html -This API is provided by GCC and clang. diff --git a/deps/libbacktrace/aclocal.m4 b/deps/libbacktrace/aclocal.m4 deleted file mode 100644 index 16042129..00000000 --- a/deps/libbacktrace/aclocal.m4 +++ /dev/null @@ -1,864 +0,0 @@ -# generated automatically by aclocal 1.15.1 -*- Autoconf -*- - -# Copyright (C) 1996-2017 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2017 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([config/lead-dot.m4]) -m4_include([config/libtool.m4]) -m4_include([config/ltoptions.m4]) -m4_include([config/ltsugar.m4]) -m4_include([config/ltversion.m4]) -m4_include([config/lt~obsolete.m4]) -m4_include([config/multi.m4]) -m4_include([config/override.m4]) -m4_include([config/unwind_ipinfo.m4]) -m4_include([config/warnings.m4]) diff --git a/deps/libbacktrace/alloc.c b/deps/libbacktrace/alloc.c deleted file mode 100644 index ff2c8677..00000000 --- a/deps/libbacktrace/alloc.c +++ /dev/null @@ -1,167 +0,0 @@ -/* alloc.c -- Memory allocation without mmap. - Copyright (C) 2012-2021 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. */ - -#include "config.h" - -#include -#include -#include - -#include "backtrace.h" -#include "internal.h" - -/* Allocation routines to use on systems that do not support anonymous - mmap. This implementation just uses malloc, which means that the - backtrace functions may not be safely invoked from a signal - handler. */ - -/* Allocate memory like malloc. If ERROR_CALLBACK is NULL, don't - report an error. */ - -void * -backtrace_alloc (struct backtrace_state *state ATTRIBUTE_UNUSED, - size_t size, backtrace_error_callback error_callback, - void *data) -{ - void *ret; - - ret = malloc (size); - if (ret == NULL) - { - if (error_callback) - error_callback (data, "malloc", errno); - } - return ret; -} - -/* Free memory. */ - -void -backtrace_free (struct backtrace_state *state ATTRIBUTE_UNUSED, - void *p, size_t size ATTRIBUTE_UNUSED, - backtrace_error_callback error_callback ATTRIBUTE_UNUSED, - void *data ATTRIBUTE_UNUSED) -{ - free (p); -} - -/* Grow VEC by SIZE bytes. */ - -void * -backtrace_vector_grow (struct backtrace_state *state ATTRIBUTE_UNUSED, - size_t size, backtrace_error_callback error_callback, - void *data, struct backtrace_vector *vec) -{ - void *ret; - - if (size > vec->alc) - { - size_t alc; - void *base; - - if (vec->size == 0) - alc = 32 * size; - else if (vec->size >= 4096) - alc = vec->size + 4096; - else - alc = 2 * vec->size; - - if (alc < vec->size + size) - alc = vec->size + size; - - base = realloc (vec->base, alc); - if (base == NULL) - { - error_callback (data, "realloc", errno); - return NULL; - } - - vec->base = base; - vec->alc = alc - vec->size; - } - - ret = (char *) vec->base + vec->size; - vec->size += size; - vec->alc -= size; - return ret; -} - -/* Finish the current allocation on VEC. */ - -void * -backtrace_vector_finish (struct backtrace_state *state, - struct backtrace_vector *vec, - backtrace_error_callback error_callback, - void *data) -{ - void *ret; - - /* With this allocator we call realloc in backtrace_vector_grow, - which means we can't easily reuse the memory here. So just - release it. */ - if (!backtrace_vector_release (state, vec, error_callback, data)) - return NULL; - ret = vec->base; - vec->base = NULL; - vec->size = 0; - vec->alc = 0; - return ret; -} - -/* Release any extra space allocated for VEC. */ - -int -backtrace_vector_release (struct backtrace_state *state ATTRIBUTE_UNUSED, - struct backtrace_vector *vec, - backtrace_error_callback error_callback, - void *data) -{ - vec->alc = 0; - - if (vec->size == 0) - { - /* As of C17, realloc with size 0 is marked as an obsolescent feature, use - free instead. */ - free (vec->base); - vec->base = NULL; - return 1; - } - - vec->base = realloc (vec->base, vec->size); - if (vec->base == NULL) - { - error_callback (data, "realloc", errno); - return 0; - } - - return 1; -} diff --git a/deps/libbacktrace/allocfail.c b/deps/libbacktrace/allocfail.c deleted file mode 100644 index bd0fbb65..00000000 --- a/deps/libbacktrace/allocfail.c +++ /dev/null @@ -1,136 +0,0 @@ -/* allocfail.c -- Test for libbacktrace library - Copyright (C) 2018-2021 Free Software Foundation, Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. */ - -#include -#include -#include -#include -#include - -#include "filenames.h" - -#include "backtrace.h" -#include "backtrace-supported.h" - -#include "testlib.h" - -extern uint64_t get_nr_allocs (void); -extern void set_fail_at_alloc (uint64_t); -extern int at_fail_alloc_p (void); - -static int test1 (void) __attribute__ ((noinline, unused)); -static int f2 (int) __attribute__ ((noinline)); -static int f3 (int, int) __attribute__ ((noinline)); - -static unsigned callback_errors = 0; - -static void -error_callback_full (void *vdata ATTRIBUTE_UNUSED, - const char *msg ATTRIBUTE_UNUSED, - int errnum ATTRIBUTE_UNUSED) -{ - if (at_fail_alloc_p ()) - { - set_fail_at_alloc (0); - return; - } - - callback_errors++; -} - -static int -callback_full (void *vdata ATTRIBUTE_UNUSED, uintptr_t pc ATTRIBUTE_UNUSED, - const char *filename ATTRIBUTE_UNUSED, - int lineno ATTRIBUTE_UNUSED, - const char *function ATTRIBUTE_UNUSED) -{ - - return 0; -} - -static int -test1 (void) -{ - return f2 (__LINE__) + 1; -} - -static int -f2 (int f1line) -{ - return f3 (f1line, __LINE__) + 2; -} - -static int -f3 (int f1line ATTRIBUTE_UNUSED, int f2line ATTRIBUTE_UNUSED) -{ - int i; - - i = backtrace_full (state, 0, callback_full, error_callback_full, NULL); - - if (i != 0) - { - fprintf (stderr, "test1: unexpected return value %d\n", i); - ++failures; - } - - if (callback_errors) - ++failures; - - return failures; -} - -/* Run all the tests. */ - -int -main (int argc, char **argv) -{ - uint64_t fail_at = 0; - - if (argc == 2) - { - fail_at = atoi (argv[1]); - set_fail_at_alloc (fail_at); - } - - state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS, - error_callback_full, NULL); - if (state == NULL) - exit (failures ? EXIT_FAILURE : EXIT_SUCCESS); - -#if BACKTRACE_SUPPORTED - test1 (); -#endif - - if (argc == 1) - fprintf (stderr, "%llu\n", (long long unsigned) get_nr_allocs ()); - - exit (failures ? EXIT_FAILURE : EXIT_SUCCESS); -} diff --git a/deps/libbacktrace/allocfail.sh b/deps/libbacktrace/allocfail.sh deleted file mode 100755 index 1f9894fd..00000000 --- a/deps/libbacktrace/allocfail.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/sh - -# allocfail.sh -- Test for libbacktrace library. -# Copyright (C) 2018-2021 Free Software Foundation, Inc. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# (1) Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# (2) Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. - -# (3) The name of the author may not be used to -# endorse or promote products derived from this software without -# specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -set -e - -if [ ! -f ./allocfail ]; then - # Hard failure. - exit 99 -fi - -allocs=$(./allocfail 2>&1) -if [ "$allocs" = "" ]; then - # Hard failure. - exit 99 -fi - -# This generates the following output: -# ... -# $ allocfail.sh -# allocs: 80495 -# Status changed to 0 at 1 -# Status changed to 1 at 3 -# Status changed to 0 at 11 -# Status changed to 1 at 12 -# Status changed to 0 at 845 -# ... -# -# We have status 0 for an allocation failure at: -# - 1 because backtrace_create_state handles failure robustly -# - 2 because the fail switches backtrace_full to !can_alloc mode. -# - 11 because failure of elf_open_debugfile_by_buildid does not generate an -# error callback beyond the one for the allocation failure itself. - -echo "allocs: $allocs" - -step=1 -i=1 -passes=0 -prev_status=-1 -while [ $i -le $allocs ]; do - if ./allocfail $i >/dev/null 2>&1; status=$?; then - true - fi - if [ $status -gt 1 ]; then - echo "Unallowed fail found: $i" - # Failure. - exit 1 - fi - - # The test-case would run too long if we would excercise all allocs. - # So, run with step 1 initially, and increase the step once we have 10 - # subsequent passes, and drop back to step 1 once we encounter another - # failure. This takes ~2.6 seconds on an i7-6600U CPU @ 2.60GHz. - if [ $status -eq 0 ]; then - passes=$(($passes + 1)) - if [ $passes -ge 10 ]; then - step=$((step * 10)) - passes=0 - fi - elif [ $status -eq 1 ]; then - passes=0 - step=1 - fi - - if [ $status -ne $prev_status ]; then - echo "Status changed to $status at $i" - fi - prev_status=$status - - i=$(($i + $step)) -done - -# Success. -exit 0 diff --git a/deps/libbacktrace/atomic.c b/deps/libbacktrace/atomic.c deleted file mode 100644 index fcac485b..00000000 --- a/deps/libbacktrace/atomic.c +++ /dev/null @@ -1,113 +0,0 @@ -/* atomic.c -- Support for atomic functions if not present. - Copyright (C) 2013-2021 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. */ - -#include "config.h" - -#include - -#include "backtrace.h" -#include "backtrace-supported.h" -#include "internal.h" - -/* This file holds implementations of the atomic functions that are - used if the host compiler has the sync functions but not the atomic - functions, as is true of versions of GCC before 4.7. */ - -#if !defined (HAVE_ATOMIC_FUNCTIONS) && defined (HAVE_SYNC_FUNCTIONS) - -/* Do an atomic load of a pointer. */ - -void * -backtrace_atomic_load_pointer (void *arg) -{ - void **pp; - void *p; - - pp = (void **) arg; - p = *pp; - while (!__sync_bool_compare_and_swap (pp, p, p)) - p = *pp; - return p; -} - -/* Do an atomic load of an int. */ - -int -backtrace_atomic_load_int (int *p) -{ - int i; - - i = *p; - while (!__sync_bool_compare_and_swap (p, i, i)) - i = *p; - return i; -} - -/* Do an atomic store of a pointer. */ - -void -backtrace_atomic_store_pointer (void *arg, void *p) -{ - void **pp; - void *old; - - pp = (void **) arg; - old = *pp; - while (!__sync_bool_compare_and_swap (pp, old, p)) - old = *pp; -} - -/* Do an atomic store of a size_t value. */ - -void -backtrace_atomic_store_size_t (size_t *p, size_t v) -{ - size_t old; - - old = *p; - while (!__sync_bool_compare_and_swap (p, old, v)) - old = *p; -} - -/* Do an atomic store of a int value. */ - -void -backtrace_atomic_store_int (int *p, int v) -{ - size_t old; - - old = *p; - while (!__sync_bool_compare_and_swap (p, old, v)) - old = *p; -} - -#endif diff --git a/deps/libbacktrace/backtrace-supported.h.in b/deps/libbacktrace/backtrace-supported.h.in deleted file mode 100644 index 2035c853..00000000 --- a/deps/libbacktrace/backtrace-supported.h.in +++ /dev/null @@ -1,66 +0,0 @@ -/* backtrace-supported.h.in -- Whether stack backtrace is supported. - Copyright (C) 2012-2021 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. */ - -/* The file backtrace-supported.h.in is used by configure to generate - the file backtrace-supported.h. The file backtrace-supported.h may - be #include'd to see whether the backtrace library will be able to - get a backtrace and produce symbolic information. */ - - -/* BACKTRACE_SUPPORTED will be #define'd as 1 if the backtrace library - should work, 0 if it will not. Libraries may #include this to make - other arrangements. */ - -#define BACKTRACE_SUPPORTED @BACKTRACE_SUPPORTED@ - -/* BACKTRACE_USES_MALLOC will be #define'd as 1 if the backtrace - library will call malloc as it works, 0 if it will call mmap - instead. This may be used to determine whether it is safe to call - the backtrace functions from a signal handler. In general this - only applies to calls like backtrace and backtrace_pcinfo. It does - not apply to backtrace_simple, which never calls malloc. It does - not apply to backtrace_print, which always calls fprintf and - therefore malloc. */ - -#define BACKTRACE_USES_MALLOC @BACKTRACE_USES_MALLOC@ - -/* BACKTRACE_SUPPORTS_THREADS will be #define'd as 1 if the backtrace - library is configured with threading support, 0 if not. If this is - 0, the threaded parameter to backtrace_create_state must be passed - as 0. */ - -#define BACKTRACE_SUPPORTS_THREADS @BACKTRACE_SUPPORTS_THREADS@ - -/* BACKTRACE_SUPPORTS_DATA will be #defined'd as 1 if the backtrace_syminfo - will work for variables. It will always work for functions. */ - -#define BACKTRACE_SUPPORTS_DATA @BACKTRACE_SUPPORTS_DATA@ diff --git a/deps/libbacktrace/backtrace.c b/deps/libbacktrace/backtrace.c deleted file mode 100644 index 7b629008..00000000 --- a/deps/libbacktrace/backtrace.c +++ /dev/null @@ -1,129 +0,0 @@ -/* backtrace.c -- Entry point for stack backtrace library. - Copyright (C) 2012-2021 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. */ - -#include "config.h" - -#include - -#include "unwind.h" -#include "backtrace.h" -#include "internal.h" - -/* The main backtrace_full routine. */ - -/* Data passed through _Unwind_Backtrace. */ - -struct backtrace_data -{ - /* Number of frames to skip. */ - int skip; - /* Library state. */ - struct backtrace_state *state; - /* Callback routine. */ - backtrace_full_callback callback; - /* Error callback routine. */ - backtrace_error_callback error_callback; - /* Data to pass to callback routines. */ - void *data; - /* Value to return from backtrace_full. */ - int ret; - /* Whether there is any memory available. */ - int can_alloc; -}; - -/* Unwind library callback routine. This is passed to - _Unwind_Backtrace. */ - -static _Unwind_Reason_Code -unwind (struct _Unwind_Context *context, void *vdata) -{ - struct backtrace_data *bdata = (struct backtrace_data *) vdata; - uintptr_t pc; - int ip_before_insn = 0; - -#ifdef HAVE_GETIPINFO - pc = _Unwind_GetIPInfo (context, &ip_before_insn); -#else - pc = _Unwind_GetIP (context); -#endif - - if (bdata->skip > 0) - { - --bdata->skip; - return _URC_NO_REASON; - } - - if (!ip_before_insn) - --pc; - - if (!bdata->can_alloc) - bdata->ret = bdata->callback (bdata->data, pc, NULL, 0, NULL); - else - bdata->ret = backtrace_pcinfo (bdata->state, pc, bdata->callback, - bdata->error_callback, bdata->data); - if (bdata->ret != 0) - return _URC_END_OF_STACK; - - return _URC_NO_REASON; -} - -/* Get a stack backtrace. */ - -int __attribute__((noinline)) -backtrace_full (struct backtrace_state *state, int skip, - backtrace_full_callback callback, - backtrace_error_callback error_callback, void *data) -{ - struct backtrace_data bdata; - void *p; - - bdata.skip = skip + 1; - bdata.state = state; - bdata.callback = callback; - bdata.error_callback = error_callback; - bdata.data = data; - bdata.ret = 0; - - /* If we can't allocate any memory at all, don't try to produce - file/line information. */ - p = backtrace_alloc (state, 4096, NULL, NULL); - if (p == NULL) - bdata.can_alloc = 0; - else - { - backtrace_free (state, p, 4096, NULL, NULL); - bdata.can_alloc = 1; - } - - _Unwind_Backtrace (unwind, &bdata); - return bdata.ret; -} diff --git a/deps/libbacktrace/backtrace.h b/deps/libbacktrace/backtrace.h deleted file mode 100644 index 69cea4ca..00000000 --- a/deps/libbacktrace/backtrace.h +++ /dev/null @@ -1,189 +0,0 @@ -/* backtrace.h -- Public header file for stack backtrace library. - Copyright (C) 2012-2021 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. */ - -#ifndef BACKTRACE_H -#define BACKTRACE_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* The backtrace state. This struct is intentionally not defined in - the public interface. */ - -struct backtrace_state; - -/* The type of the error callback argument to backtrace functions. - This function, if not NULL, will be called for certain error cases. - The DATA argument is passed to the function that calls this one. - The MSG argument is an error message. The ERRNUM argument, if - greater than 0, holds an errno value. The MSG buffer may become - invalid after this function returns. - - As a special case, the ERRNUM argument will be passed as -1 if no - debug info can be found for the executable, or if the debug info - exists but has an unsupported version, but the function requires - debug info (e.g., backtrace_full, backtrace_pcinfo). The MSG in - this case will be something along the lines of "no debug info". - Similarly, ERRNUM will be passed as -1 if there is no symbol table, - but the function requires a symbol table (e.g., backtrace_syminfo). - This may be used as a signal that some other approach should be - tried. */ - -typedef void (*backtrace_error_callback) (void *data, const char *msg, - int errnum); - -/* Create state information for the backtrace routines. This must be - called before any of the other routines, and its return value must - be passed to all of the other routines. FILENAME is the path name - of the executable file; if it is NULL the library will try - system-specific path names. If not NULL, FILENAME must point to a - permanent buffer. If THREADED is non-zero the state may be - accessed by multiple threads simultaneously, and the library will - use appropriate atomic operations. If THREADED is zero the state - may only be accessed by one thread at a time. This returns a state - pointer on success, NULL on error. If an error occurs, this will - call the ERROR_CALLBACK routine. - - Calling this function allocates resources that cannot be freed. - There is no backtrace_free_state function. The state is used to - cache information that is expensive to recompute. Programs are - expected to call this function at most once and to save the return - value for all later calls to backtrace functions. */ - -extern struct backtrace_state *backtrace_create_state ( - const char *filename, int threaded, - backtrace_error_callback error_callback, void *data); - -/* The type of the callback argument to the backtrace_full function. - DATA is the argument passed to backtrace_full. PC is the program - counter. FILENAME is the name of the file containing PC, or NULL - if not available. LINENO is the line number in FILENAME containing - PC, or 0 if not available. FUNCTION is the name of the function - containing PC, or NULL if not available. This should return 0 to - continuing tracing. The FILENAME and FUNCTION buffers may become - invalid after this function returns. */ - -typedef int (*backtrace_full_callback) (void *data, uintptr_t pc, - const char *filename, int lineno, - const char *function); - -/* Get a full stack backtrace. SKIP is the number of frames to skip; - passing 0 will start the trace with the function calling - backtrace_full. DATA is passed to the callback routine. If any - call to CALLBACK returns a non-zero value, the stack backtrace - stops, and backtrace returns that value; this may be used to limit - the number of stack frames desired. If all calls to CALLBACK - return 0, backtrace returns 0. The backtrace_full function will - make at least one call to either CALLBACK or ERROR_CALLBACK. This - function requires debug info for the executable. */ - -extern int backtrace_full (struct backtrace_state *state, int skip, - backtrace_full_callback callback, - backtrace_error_callback error_callback, - void *data); - -/* The type of the callback argument to the backtrace_simple function. - DATA is the argument passed to simple_backtrace. PC is the program - counter. This should return 0 to continue tracing. */ - -typedef int (*backtrace_simple_callback) (void *data, uintptr_t pc); - -/* Get a simple backtrace. SKIP is the number of frames to skip, as - in backtrace. DATA is passed to the callback routine. If any call - to CALLBACK returns a non-zero value, the stack backtrace stops, - and backtrace_simple returns that value. Otherwise - backtrace_simple returns 0. The backtrace_simple function will - make at least one call to either CALLBACK or ERROR_CALLBACK. This - function does not require any debug info for the executable. */ - -extern int backtrace_simple (struct backtrace_state *state, int skip, - backtrace_simple_callback callback, - backtrace_error_callback error_callback, - void *data); - -/* Print the current backtrace in a user readable format to a FILE. - SKIP is the number of frames to skip, as in backtrace_full. Any - error messages are printed to stderr. This function requires debug - info for the executable. */ - -extern void backtrace_print (struct backtrace_state *state, int skip, FILE *); - -/* Given PC, a program counter in the current program, call the - callback function with filename, line number, and function name - information. This will normally call the callback function exactly - once. However, if the PC happens to describe an inlined call, and - the debugging information contains the necessary information, then - this may call the callback function multiple times. This will make - at least one call to either CALLBACK or ERROR_CALLBACK. This - returns the first non-zero value returned by CALLBACK, or 0. */ - -extern int backtrace_pcinfo (struct backtrace_state *state, uintptr_t pc, - backtrace_full_callback callback, - backtrace_error_callback error_callback, - void *data); - -/* The type of the callback argument to backtrace_syminfo. DATA and - PC are the arguments passed to backtrace_syminfo. SYMNAME is the - name of the symbol for the corresponding code. SYMVAL is the - value and SYMSIZE is the size of the symbol. SYMNAME will be NULL - if no error occurred but the symbol could not be found. */ - -typedef void (*backtrace_syminfo_callback) (void *data, uintptr_t pc, - const char *symname, - uintptr_t symval, - uintptr_t symsize); - -/* Given ADDR, an address or program counter in the current program, - call the callback information with the symbol name and value - describing the function or variable in which ADDR may be found. - This will call either CALLBACK or ERROR_CALLBACK exactly once. - This returns 1 on success, 0 on failure. This function requires - the symbol table but does not require the debug info. Note that if - the symbol table is present but ADDR could not be found in the - table, CALLBACK will be called with a NULL SYMNAME argument. - Returns 1 on success, 0 on error. */ - -extern int backtrace_syminfo (struct backtrace_state *state, uintptr_t addr, - backtrace_syminfo_callback callback, - backtrace_error_callback error_callback, - void *data); - -#ifdef __cplusplus -} /* End extern "C". */ -#endif - -#endif diff --git a/deps/libbacktrace/btest.c b/deps/libbacktrace/btest.c deleted file mode 100644 index 9f9c03ba..00000000 --- a/deps/libbacktrace/btest.c +++ /dev/null @@ -1,501 +0,0 @@ -/* btest.c -- Test for libbacktrace library - Copyright (C) 2012-2021 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - (1) Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - (2) Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR