summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-05 18:18:59 +0000
committerKarl Berry <karl@freefriends.org>2023-02-05 18:18:59 +0000
commit41ad0c6c6181ecf295a4118f86ff4c75604a3d1c (patch)
tree110525a3785d49891982791239f986fcec0e5caa /Build/source/utils/asymptote
parent2fc34f9b454d4d81187ed50b76fab2e6e212abf0 (diff)
asy 2.84 sources
git-svn-id: svn://tug.org/texlive/trunk@65737 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote')
-rw-r--r--Build/source/utils/asymptote/ChangeLog1821
-rw-r--r--Build/source/utils/asymptote/GL/glew.c6
-rw-r--r--Build/source/utils/asymptote/GUI/ContextWindow.py320
-rw-r--r--Build/source/utils/asymptote/GUI/Window1.py119
-rw-r--r--Build/source/utils/asymptote/GUI/requirements.txt2
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-arrow-back.svg22
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-arrow-forward.svg22
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-camera.svg24
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-close.svg24
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-color-palette.svg34
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-delete.svg20
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-done.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-expand.svg24
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-folder-open.svg20
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-hand.svg30
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-locate.svg32
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-radio-button-off.svg24
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-radio-button-on.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/android-refresh.svg22
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/arrow-move.svg16
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/arrow-resize.svg16
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/brush.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/check.svg18
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-left.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-right.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/circle.svg22
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/close-round.svg18
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/code.svg28
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/edit.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/eye.svg30
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/grid.svg64
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/magnifying-glass.svg26
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/plus-round.svg18
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/redo.svg80
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/save.svg20
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/social-python.svg42
-rw-r--r--Build/source/utils/asymptote/GUI/res/icons/undo.svg80
-rwxr-xr-xBuild/source/utils/asymptote/GUI/xasy2asy.py182
-rw-r--r--Build/source/utils/asymptote/GUI/xasyBezierInterface.py8
-rwxr-xr-xBuild/source/utils/asymptote/GUI/xasyFile.py14
-rw-r--r--Build/source/utils/asymptote/LspCpp/CMakeLists.txt3
-rw-r--r--Build/source/utils/asymptote/LspCpp/LICENSE42
-rw-r--r--Build/source/utils/asymptote/LspCpp/README.md3
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/examples/StdIOClientExample.cpp326
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/examples/StdIOServerExample.cpp218
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/examples/TcpServerExample.cpp306
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/examples/WebsocketExample.cpp22
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h76
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h52
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h308
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h88
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h82
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h607
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h82
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h62
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h178
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h80
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h86
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h42
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h260
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h380
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h58
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h584
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h164
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Directory.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h212
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h4
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h2024
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h60
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h164
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h34
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h28
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h36
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h4
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h6
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h4
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h14
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h32
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h18
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h6
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h18
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h82
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h78
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h150
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h22
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h4
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h804
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h576
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h238
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h6
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/language/language.h170
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/location_type.h68
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h252
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h66
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h38
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h32
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h58
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h52
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h30
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h210
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h26
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h22
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h60
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h54
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h22
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h60
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h60
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/out_list.h4
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/symbol.h174
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h384
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h124
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h34
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h64
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h32
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h50
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h6
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h68
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h6
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h14
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h70
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h16
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h38
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h42
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h16
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h22
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h26
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h40
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h76
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h186
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h56
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/utils.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h44
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/working_files.h4
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h28
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h36
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h22
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp58
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp68
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp915
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp314
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp166
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp98
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/message.cpp124
-rw-r--r--Build/source/utils/asymptote/LspCpp/src/jsonrpc/optional.hpp1846
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/jsonrpc/serializer.cpp90
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/Markup.cpp34
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp130
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp1228
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/initialize.cpp66
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/lsp.cpp1350
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp112
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/textDocument.cpp518
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/utils.cpp466
-rwxr-xr-xBuild/source/utils/asymptote/LspCpp/src/lsp/working_files.cpp4
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json42
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json52
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json174
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json50
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp44
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp4
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp4
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp4
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h78
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h24
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h18
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h30
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h42
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h20
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h42
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h28
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp12
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp26
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp26
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp48
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp20
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG88
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/COPYING5
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamfile.v213
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamrules1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt23
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/Makefile32
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/README10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/TODO36
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp28
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp215
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp85
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp453
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp65
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp115
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp144
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp232
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp70
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp262
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp83
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp99
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp168
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile36
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox145
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt35
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm38
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox145
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm38
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm17
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm17
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm30
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm29
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html9
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox145
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt205
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm36
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox220
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm40
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css331
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox145
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt207
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm40
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v211
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp200
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v211
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README7
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp50
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v211
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp149
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v211
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp263
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/threadpool/project-root.jam2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make14
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/CTestTestfile.cmake9
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/Makefile26
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/cmake_install.cmake8
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/docs/assets/css/style.scss5
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/CMakeDirectoryInformation.cmake16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake19
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make114
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/link.txt2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake20
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make114
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/link.txt2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/progress.marks1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CTestTestfile.cmake6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/Makefile276
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/cmake_install.cmake44
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make80
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal1723
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make2217
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/Makefile74
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/CMakeDirectoryInformation.cmake16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/progress.marks1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/DependInfo.cmake22
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/build.make116
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/cmake_clean.cmake11
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.ts2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/depend.make2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/flags.make10
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/link.txt1
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/progress.make3
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/CTestTestfile.cmake30
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/Makefile696
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/cmake_install.cmake44
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/optional_test.cpp6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp40
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_test.cpp2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp6
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h16
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h2
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h18
-rw-r--r--Build/source/utils/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp2
-rw-r--r--Build/source/utils/asymptote/Makefile.in17
-rw-r--r--Build/source/utils/asymptote/ReleaseNotes45
-rw-r--r--Build/source/utils/asymptote/abs3doutfile.h38
-rw-r--r--Build/source/utils/asymptote/asy-keywords.el8
-rw-r--r--Build/source/utils/asymptote/asy.list445
-rw-r--r--Build/source/utils/asymptote/asymptote.spec2
-rw-r--r--Build/source/utils/asymptote/base/asy-kate.sh4
-rw-r--r--Build/source/utils/asymptote/base/geometry.asy93
-rw-r--r--Build/source/utils/asymptote/base/graph.asy54
-rw-r--r--Build/source/utils/asymptote/base/graph3.asy22
-rw-r--r--Build/source/utils/asymptote/base/plain.asy32
-rw-r--r--Build/source/utils/asymptote/base/plain_arrows.asy158
-rw-r--r--Build/source/utils/asymptote/base/plain_pens.asy4
-rw-r--r--Build/source/utils/asymptote/base/rationalSimplex.asy74
-rw-r--r--Build/source/utils/asymptote/base/shaders/blend.glsl145
-rw-r--r--Build/source/utils/asymptote/base/shaders/compress.glsl23
-rw-r--r--Build/source/utils/asymptote/base/shaders/count.glsl15
-rw-r--r--Build/source/utils/asymptote/base/shaders/fragment.glsl67
-rw-r--r--Build/source/utils/asymptote/base/shaders/sum1.glsl50
-rw-r--r--Build/source/utils/asymptote/base/shaders/sum2.glsl45
-rw-r--r--Build/source/utils/asymptote/base/shaders/sum2fast.glsl59
-rw-r--r--Build/source/utils/asymptote/base/shaders/sum3.glsl80
-rw-r--r--Build/source/utils/asymptote/base/shaders/zero.glsl4
-rw-r--r--Build/source/utils/asymptote/base/simplex.asy47
-rw-r--r--Build/source/utils/asymptote/base/slopefield.asy10
-rw-r--r--Build/source/utils/asymptote/base/stats.asy27
-rw-r--r--Build/source/utils/asymptote/base/three.asy5
-rw-r--r--Build/source/utils/asymptote/base/three_surface.asy39
-rw-r--r--Build/source/utils/asymptote/base/v3dheadertypes.asy2
-rw-r--r--Build/source/utils/asymptote/base/v3dtypes.asy2
-rw-r--r--Build/source/utils/asymptote/base/webgl/asygl.js2
-rw-r--r--Build/source/utils/asymptote/bezierpatch.cc97
-rwxr-xr-xBuild/source/utils/asymptote/build-scripts/build-asygl6
-rwxr-xr-xBuild/source/utils/asymptote/build-scripts/build-asymptote3
-rwxr-xr-xBuild/source/utils/asymptote/build-scripts/build-asymptote.dos25
-rw-r--r--Build/source/utils/asymptote/camp.tab.cc503
-rw-r--r--Build/source/utils/asymptote/camp.tab.h4
-rwxr-xr-xBuild/source/utils/asymptote/config.guess1472
-rw-r--r--Build/source/utils/asymptote/config.h.in15
-rwxr-xr-xBuild/source/utils/asymptote/config.sub676
-rwxr-xr-xBuild/source/utils/asymptote/configure7203
-rw-r--r--Build/source/utils/asymptote/configure.ac44
-rw-r--r--Build/source/utils/asymptote/doc/CAD.pdfbin198744 -> 198487 bytes
-rw-r--r--Build/source/utils/asymptote/doc/FAQ/asy-faq.info2
-rw-r--r--Build/source/utils/asymptote/doc/Makefile.in2
-rw-r--r--Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdfbin81128 -> 81092 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy-latex.pdfbin207105 -> 208908 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy.171
-rw-r--r--Build/source/utils/asymptote/doc/asyRefCard.pdfbin121145 -> 121145 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.pdfbin1314132 -> 1288720 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.texi79
-rw-r--r--Build/source/utils/asymptote/doc/histogram.asy3
-rw-r--r--Build/source/utils/asymptote/doc/png/asymptote.info646
-rw-r--r--Build/source/utils/asymptote/doc/slopefield1.asy4
-rw-r--r--Build/source/utils/asymptote/doc/vectorfield.asy2
-rw-r--r--Build/source/utils/asymptote/drawpath3.cc6
-rw-r--r--Build/source/utils/asymptote/drawsurface.cc36
-rw-r--r--Build/source/utils/asymptote/examples/AiryDisk.asy16
-rw-r--r--Build/source/utils/asymptote/examples/filesurface.dat24
-rw-r--r--Build/source/utils/asymptote/examples/triads.asy2
-rw-r--r--Build/source/utils/asymptote/examples/uhrturm.obj2344
-rw-r--r--Build/source/utils/asymptote/exp.cc4
-rw-r--r--Build/source/utils/asymptote/fftw++.cc55
-rw-r--r--Build/source/utils/asymptote/fftw++.h1046
-rw-r--r--Build/source/utils/asymptote/fileio.h5
-rwxr-xr-xBuild/source/utils/asymptote/generate_enums.py16
-rw-r--r--Build/source/utils/asymptote/glrender.cc475
-rw-r--r--Build/source/utils/asymptote/interact.cc4
-rw-r--r--Build/source/utils/asymptote/jsfile.cc130
-rw-r--r--Build/source/utils/asymptote/jsfile.h32
-rw-r--r--Build/source/utils/asymptote/lspserv.cc4
-rw-r--r--Build/source/utils/asymptote/main.cc13
-rw-r--r--Build/source/utils/asymptote/mathop.h3
-rw-r--r--Build/source/utils/asymptote/memory.h1
-rw-r--r--Build/source/utils/asymptote/optional.hpp (renamed from Build/source/utils/asymptote/LspCpp/include/optional.hpp)0
-rw-r--r--Build/source/utils/asymptote/parallel.cc74
-rw-r--r--Build/source/utils/asymptote/parallel.h63
-rw-r--r--Build/source/utils/asymptote/picture.cc12
-rw-r--r--Build/source/utils/asymptote/psfile.cc25
-rw-r--r--Build/source/utils/asymptote/revision.cc4
-rw-r--r--Build/source/utils/asymptote/runarray.cc653
-rw-r--r--Build/source/utils/asymptote/runarray.in116
-rw-r--r--Build/source/utils/asymptote/runbacktrace.cc4
-rw-r--r--Build/source/utils/asymptote/runfile.cc4
-rw-r--r--Build/source/utils/asymptote/runhistory.cc4
-rw-r--r--Build/source/utils/asymptote/runlabel.cc70
-rw-r--r--Build/source/utils/asymptote/runlabel.in54
-rw-r--r--Build/source/utils/asymptote/runmath.cc252
-rw-r--r--Build/source/utils/asymptote/runmath.in2
-rw-r--r--Build/source/utils/asymptote/runpair.cc4
-rw-r--r--Build/source/utils/asymptote/runpath.cc4
-rw-r--r--Build/source/utils/asymptote/runpath3d.cc4
-rw-r--r--Build/source/utils/asymptote/runpicture.cc109
-rw-r--r--Build/source/utils/asymptote/runpicture.in3
-rw-r--r--Build/source/utils/asymptote/runstring.cc4
-rw-r--r--Build/source/utils/asymptote/runsystem.cc4
-rw-r--r--Build/source/utils/asymptote/runtime.cc907
-rw-r--r--Build/source/utils/asymptote/runtime.in11
-rw-r--r--Build/source/utils/asymptote/runtimebase.in4
-rw-r--r--Build/source/utils/asymptote/runtriple.cc4
-rw-r--r--Build/source/utils/asymptote/seconds.h144
-rw-r--r--Build/source/utils/asymptote/settings.cc114
-rw-r--r--Build/source/utils/asymptote/shaders.cc1
-rw-r--r--Build/source/utils/asymptote/statistics.h95
-rw-r--r--Build/source/utils/asymptote/tests/arith/integer.asy31
-rw-r--r--Build/source/utils/asymptote/util.cc4
-rw-r--r--Build/source/utils/asymptote/v3dfile.cc33
-rw-r--r--Build/source/utils/asymptote/v3dfile.h27
-rw-r--r--Build/source/utils/asymptote/v3dheadertypes.h2
-rw-r--r--Build/source/utils/asymptote/v3dheadertypes.py2
-rw-r--r--Build/source/utils/asymptote/v3dtypes.h2
-rw-r--r--Build/source/utils/asymptote/v3dtypes.py2
-rw-r--r--Build/source/utils/asymptote/webgl/gl.js769
-rw-r--r--Build/source/utils/asymptote/xstream.h15
605 files changed, 27994 insertions, 29570 deletions
diff --git a/Build/source/utils/asymptote/ChangeLog b/Build/source/utils/asymptote/ChangeLog
index ce1e742c6bd..472c56ba007 100644
--- a/Build/source/utils/asymptote/ChangeLog
+++ b/Build/source/utils/asymptote/ChangeLog
@@ -1,3 +1,1824 @@
+commit 430c7a661c060568720f6d65e611a2087ea1dde6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jan 21 22:48:26 2023 -0700
+
+ Fix Makefile dependencies.
+
+commit 1e0c04c25ddb2dfc9a4f3423628d39ff494e4b32
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jan 21 18:05:11 2023 -0700
+
+ Revert "Fix Makefile dependency."
+
+ This reverts commit 826581af2fb2882ab82804e0593217da85ae58bd.
+
+commit 826581af2fb2882ab82804e0593217da85ae58bd
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jan 21 18:01:07 2023 -0700
+
+ Fix Makefile dependency.
+
+commit 2255877e2ee304c38dee5b7b52d113255c0622fd
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jan 21 17:48:00 2023 -0700
+
+ Revert "Improve last revision."
+
+ This reverts commit e7d475fa66c429851bbc45bcc0017a3ac5eef02a.
+
+commit 4dafd8313cda0aad2a05abfdc91fc30ce88d7385
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jan 21 15:12:28 2023 -0700
+
+ Add high-resolution clock; update FFT support.
+
+commit 56c39a80704b2bb93e808ad74591a8834c3ccca5
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jan 21 12:03:49 2023 -0700
+
+ Account for linewidth in labelmargin.
+
+commit 37f564040bec2ff6059f5c4872950be17586b885
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jan 3 20:37:17 2023 -0700
+
+ Add option to show summary of environment settings.
+
+commit 76f2f4d727261e4e2b466e2ea9d32bb4baf6c466
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Dec 12 22:19:03 2022 -0700
+
+ Avoid division by zero.
+
+commit 46d6ea7351699bbed0418ec6d7f2195011178e5a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Nov 28 20:20:35 2022 -0700
+
+ Improve example of multiple shipout.
+
+commit dce2e0d3b94b59dddcca6bb95c38548e2021821a
+Merge: ee0d1a4a a42e056e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 13 00:10:12 2022 -0700
+
+ Merge pull request #341 from yarusome/master
+
+ Fixing `inversion inversion(circle, circle)`
+
+commit ee0d1a4a80ff0b30383f297f3ab64bebafd1c07c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 13 00:00:45 2022 -0700
+
+ Fix issue #308: runtime error when drawing degenerate path with TexHead arrow.
+
+commit 0ff56f1ecaff0f5e6da0acd0e7ff6f152cd52c56
+Merge: eb89fd60 1834e488
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 12 23:06:21 2022 -0700
+
+ Merge pull request #354 from vectorgraphics/fix-debian-bug-1023920-xasy
+
+ XASY: Round numpy.float64 to int for Qt compatibiltiy.
+
+commit eb89fd60d71a5836b05ae0ed17f7525b2723714d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 12 22:50:04 2022 -0700
+
+ Fix bug in XDR reads due to uninitialized variable.
+
+commit 1834e4883a0781944b5eb3e459a35984ad24d14d
+Author: Supakorn Rassameemasmuang <jamievlin@outlook.com>
+Date: Sat Nov 12 12:22:45 2022 -0700
+
+ XASY: Round numpy.float64 to int for Qt compatibiltiy.
+
+ This fixes Debian bug #1023920 (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023920).
+
+commit a64162166a3b2146902971d87ba2da3af53ebd5e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Nov 1 21:22:49 2022 -0600
+
+ Use Bland's rule even on artificial variables.
+
+commit 4f326abc01934c83380ca6e0d399dc5f33819e76
+Merge: e7d475fa 38d018f6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Oct 31 15:03:46 2022 -0600
+
+ Merge pull request #351 from bmwiedemann/date
+
+ Allow to override build date with SOURCE_DATE_EPOCH
+
+commit 38d018f6bc6d2341718a67193c4cbb99a07be698
+Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
+Date: Mon Oct 31 21:46:54 2022 +0100
+
+ Allow to override build date with SOURCE_DATE_EPOCH
+
+ in order to make builds reproducible.
+ See https://reproducible-builds.org/ for why this is good
+ and https://reproducible-builds.org/specs/source-date-epoch/
+ for the definition of this variable.
+
+ Signed-off-by: Bernhard M. Wiedemann <bwiedemann@suse.de>
+
+commit e7d475fa66c429851bbc45bcc0017a3ac5eef02a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Oct 27 00:21:20 2022 -0600
+
+ Improve last revision.
+
+commit b5ac744cb044c42a9d2f79a58d37b46444e24caa
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Oct 26 23:57:50 2022 -0600
+
+ Fix Makefile dependency.
+
+commit 8afff2c11b36ea54edf01b32452550bf12843a93
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 23 01:15:48 2022 -0600
+
+ Terminate phase1 of simplex method once a zero-cost solution is found.
+
+commit e7b5c30816f5db7b243222c1c4c10d087294eece
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Oct 22 22:33:15 2022 -0600
+
+ Make evince the default UNIX PDF viewer.
+
+commit 8bc175d31f77312baea3660e5f29dbc35ab2cbdf
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Oct 21 22:33:36 2022 -0600
+
+ Remove spurious tests in glew.c.
+
+commit 0d49a356d0ee1d0f579cb224856f0947a3e1cdc3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Oct 21 22:20:12 2022 -0600
+
+ Check for bison and flex but not libm.
+
+commit f495186f075bc3b686aa53bc80def7fbd91edb97
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Oct 18 00:32:09 2022 -0600
+
+ Add diagostic control to rationalSimplex.asy.
+
+commit d1a336cd3caaea8cae7bd1cc5a9f98175ba18979
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Oct 13 17:08:53 2022 -0600
+
+ Improve diagnostic in rationalSimplex.
+
+commit 20a79dbf5f005bacf3fb55fceb1c33cc8b79c4b8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Oct 13 17:04:50 2022 -0600
+
+ Update example.
+
+commit 0e13fdc3d0226f153d1859db3ec43eb3d2fb2007
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 9 13:45:34 2022 -0600
+
+ Remove obsolete code.
+
+commit ea5bb5e69ecdc26a576205825c62c5ede14622cb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 9 10:55:22 2022 -0600
+
+ Change default UNIX postscript viewer to evince; remove remaining references to gsview.
+
+commit 6d556b7a78d1680702abcdc0972ecf6c458ced88
+Merge: 681daee0 7696801a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 30 17:10:52 2022 -0600
+
+ Merge branch 'Qt'.
+
+commit 681daee01c6832a5d86e79e17018806b433e1805
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 30 14:44:03 2022 -0600
+
+ Remove unused code.
+
+commit 7696801ae99fe0654030ccdb805df8ba506907cf
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Sep 24 21:39:03 2022 -0600
+
+ XASY: Fix arrowhead changing bug.
+
+commit 7201430c829e273e4ad3ff13391a87ff9f83b373
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Sep 21 21:32:07 2022 -0600
+
+ Disable PDF image compression for non-pdf output.
+
+commit 78662d51f5b9b1b5038cc0e1a41527552f49d181
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 15:31:23 2022 -0600
+
+ Clean up more asy-latex files.
+
+commit 2c15485d146a43fbf6234d3fa0cec191a1a768b8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 14:01:30 2022 -0600
+
+ Increment version to 2.84.
+
+commit 2ac4c5f85acd6b0a04865be937279dc29fadb76e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 11:27:55 2022 -0600
+
+ Fix default export extension.
+
+commit 40fd9804c037e1424e8e05498ce66f618bce5c58
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 01:17:37 2022 -0600
+
+ XASY: Implement color interface.
+
+commit f313efb692d567d300cd9e4931ea276cf0d1f74f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 01:01:10 2022 -0600
+
+ XASY: Remove obsolete code.
+
+commit 288ccc888480326cc6d3d4276498edf331a2bd7b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 00:49:25 2022 -0600
+
+ XASY: Implement solid pen; disable unimplemented color interface.
+
+commit 5b436a4eb99c50dce13e856c12cda7b7729cf02f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 23:05:54 2022 -0600
+
+ XASY: Convert from asy to Qt pattern.
+
+commit 2f9dc5be12dca41d2e0413d2c94f0359c60f6919
+Merge: f3e3ed1a 2bf7c010
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 21:19:37 2022 -0600
+
+ Merge branch 'Qt'.
+
+commit 2bf7c010ef6a46dee4d79b6b2b84ccddd51b0d3c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 21:14:17 2022 -0600
+
+ XASY: Fix arrowify bug.
+
+commit 6b8e2c390808f67f76e611861caa634188732558
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 15:28:47 2022 -0600
+
+ Simplify vectorfield example.
+
+commit 14476dda18ae3a6a00d441762505f4d4683eac9b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:32:21 2022 -0600
+
+ Allow specifying only endpoint of vector in vectorfield.
+
+commit 65e039f72730a196ce89eb1d4194e9eaf8a97b43
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:24:31 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit b488009dcb56876362e073780e894307b21864cb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:38:11 2022 -0600
+
+ Remove diagnostic.
+
+commit 32d191daf3832e462b51e6a66df1a4f7ecda10cc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:06:03 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit ef690c9363b3d973f07f20e58a9d6764c8b67c6b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 11 21:56:54 2022 -0600
+
+ Fix integer quotient bug introduced in 1e1e6cbbcfe65b58ead8e04d5e2b302ed011acd8.
+
+commit 997f87e375387fcb4fbbda66db62bc2332f42b2c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 4 22:31:36 2022 -0600
+
+ Remove arrows from slopefield; fix scaling in vectorfield routines.
+
+commit f3e3ed1a216fa3e31878ac4d6169875099508c80
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 15:28:47 2022 -0600
+
+ Simplify vectorfield example.
+
+commit 845985e11a46f3406fc80ddf4e22cf5bc0adea3b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:32:21 2022 -0600
+
+ Allow specifying only endpoint of vector in vectorfield.
+
+commit d0be9ddfcb8f004a520bb80f89739fa3378d06e4
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:24:31 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit fd5c3f906f0b5565bddefae6a10f88ecb525796a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:38:11 2022 -0600
+
+ Remove diagnostic.
+
+commit 54e4567585ad4d694cbca6d4fe640e154f67af22
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:06:03 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit 1d0e4cc886b840f87a726b40e6f9626b14568acc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 11 21:56:54 2022 -0600
+
+ Fix integer quotient bug introduced in 1e1e6cbbcfe65b58ead8e04d5e2b302ed011acd8.
+
+commit 01c0fad312146968a0fee96ba9282eccff6dc470
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 4 22:31:36 2022 -0600
+
+ Remove arrows from slopefield; fix scaling in vectorfield routines.
+
+commit d2a1f5d2984d4e558285426290a8c36d1dd9e18f
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Aug 28 23:46:13 2022 -0600
+
+ XASY: Fix saving bugs.
+
+commit e766b2f8cc069ac8bb28eb74b4ff47b1eaf7a50c
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 27 03:12:24 2022 -0600
+
+ XASY: Remove debug print statements.
+
+commit 6d326fef6aa47d027ae159e9f9aeb60b67a1a657
+Merge: bbdba2da d48103a9
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 27 03:07:16 2022 -0600
+
+ Merge branch 'Qt' of https://github.com/vectorgraphics/asymptote into Qt
+
+commit bbdba2da493f0c95caf971d267e67f6f29d2573e
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 27 03:07:12 2022 -0600
+
+ XASY: Fix arrow dash render issue.
+
+commit d48103a9ad3de95caa1ff18ed6f2666128801166
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 26 00:29:01 2022 -0600
+
+ XASY: Apply KEY to begingroup().
+
+commit 2191ec77923ddbdb742abfe9fdcf0f9c1ffa4505
+Merge: 539b8367 98a183dc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 26 00:13:20 2022 -0600
+
+ Merge branch 'master' into Qt.
+
+commit 98a183dcfbef510cae7f3ac45438f948fb82758b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 26 00:08:44 2022 -0600
+
+ XASY: Fix begingroup transformation.
+
+commit 539b83671f0b4c1c8d1a17565aa025dd130efc2e
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Aug 25 01:29:14 2022 -0600
+
+ XASY: Fix noncommutativity with arrows and fills.
+
+commit a42e056e27e7737695b18fd84842eb481893e531
+Author: yarusome <97945148+yarusome@users.noreply.github.com>
+Date: Wed Aug 24 22:55:15 2022 +0800
+
+ Fixed `inversion inversion(circle, circle)`
+
+commit 03b46aa391c31f809eae74524ef73b777c1dcc68
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Aug 22 16:43:42 2022 -0600
+
+ Initialize globalObjectCounter to 1.
+
+commit c7e925123f538a59d55e6e2a998d87a254ac194a
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Aug 21 00:33:36 2022 -0600
+
+ XASY: Fix arrow rendering glitch.
+
+commit 86bc2acae142bdee83515c31ad8d4f393501b22d
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Aug 14 23:05:22 2022 -0600
+
+ XASY: Fix layout warning messages.
+
+commit 2d243189a39087701ce6450623f0c67860ff8c37
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 13 18:39:52 2022 -0600
+
+ XASY: Fix translation arrow issue.
+
+commit 21e2e4ea0fe288247999f38eca30d90e6d524f9c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:43:58 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "b6fb8491"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "b6fb8491"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit c9e57ede64853386a5db6ed7e8f2f1b080345c0f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:41:45 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "526e85a5"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "526e85a5"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit a2405537b3da29db4c77403273f18113daeb73b8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:32:43 2022 +0200
+
+ Update asygl.
+
+commit cf0e0be0be7c0b2be3cf36234d631515c1c5acd9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:30:14 2022 +0200
+
+ Fix triangle groups.
+
+commit aa0954499ae7cdce7fc131441dff04c09d15076a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 14:50:46 2022 +0200
+
+ Add missing file.
+
+commit 06d9f8f16828f6f803360aef602251ee680293a7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 17:08:48 2022 +0200
+
+ Remove version number from CTAN top level directory.
+
+commit 103f78f49c890ea7d6998355a89b291991b89ddf
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 12:42:27 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "0e34158d"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "0e34158d"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit 4920559af405da4d32bfd86403a32cc0e88677bb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 12:37:08 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "d9cd4f6d"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "d9cd4f6d"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit 8bd894e51d17f39a7c6275d7e23701a3b278c4bb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 11:43:36 2022 +0200
+
+ Simplify code.
+
+commit f7557e41a68a0580a19c90d775f0d8f2d92de026
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Aug 7 17:00:31 2022 +0200
+
+ Increment version to 2.83.
+
+commit 94c770a177aae2dc11e19f70cc9f22ff649d7cea
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 6 22:17:24 2022 +0200
+
+ Update asygl.
+
+commit 9893d408fec128d76b50e3bef24ef6181beef0bc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 6 22:12:33 2022 +0200
+
+ Use floating point WebGL colors.
+
+commit 89dac594687cd2892851a685c52a092e86db85a7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 6 06:52:30 2022 +1000
+
+ Avoid global variables in AsyGL library.
+
+commit a57d71e7f9857ceba05b9d2fc926953d385971b5
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Aug 4 02:00:02 2022 -0600
+
+ XASY: Add rough intelligent dash patterns.
+
+commit 0ab3eae561e21fcf5a906becf75483291db032d3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 3 22:14:33 2022 +0200
+
+ Preserve the terminal environment under MSDOS by ignoring the wait flag.
+
+commit 87f76fb7e5f3387643491fa123c18cf2be987006
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Aug 1 23:36:30 2022 +0200
+
+ Enforce a unique normal and pen for each vertex in a PRC triangle group.
+
+commit f8d9c943899f592b20f9da01b51b223540536a63
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 30 21:50:25 2022 -0600
+
+ XASY: Fix arrow swapping bug.
+
+commit 8e28af4e33a62630f82652552988c02267821578
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jul 29 21:10:05 2022 +0200
+
+ Revert "Simplify code."
+
+ This reverts commit 587a21490bf6d3892ddeab36dc8d8acdd3cec32c.
+
+commit 52170aac260c33ead0eddef60c527bcde782348c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jul 29 19:19:55 2022 +0200
+
+ Fix patch mode.
+
+commit b401886d804f4c5e870c69339c50dd76a97f0ea5
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jul 29 19:08:18 2022 +0200
+
+ Revert "Simplify code."
+
+ This reverts commit dc9d231185c9b01bd8d32c2bbbc87001caa1f4d8.
+
+commit c53b2c5fd4cc2d4bbf4afb071534786c09e70542
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jul 29 12:53:45 2022 +0200
+
+ Fix segmentation fault.
+
+commit 0703107b953e0610a96776d059904af1cfb1c83e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jul 29 12:13:03 2022 +0200
+
+ Fix segmentation fault.
+
+commit e4dcdfbdef66e861d31bfe9ebbe722d66eafb3df
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 11:47:28 2022 -0600
+
+ XASY: Update option menu names to match asymptote.
+
+commit b5a059a24c57f866c165d388a37a159a9fd723c7
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 11:46:50 2022 -0600
+
+ XASY: Add asyPen cap options.
+
+commit d6e0c8ae5f4811f1f30ff59db450723fe291f241
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 11:44:04 2022 -0600
+
+ XASY: Allow arrow pen types.
+
+commit b52467ba7f780cdb31a1776e0338388614a21dd3
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 01:50:07 2022 -0600
+
+ XASY: Preserve shape fill status when arrowifying.
+
+commit 3433888b9a26fa85995617bfdc1e51137b198692
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 28 05:55:22 2022 +1000
+
+ Fix defaultfilename for v3d files.
+
+commit 12740e6ff703bbab76629f065dd574f6242d130d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 28 05:45:36 2022 +1000
+
+ Revert commented diagnostic.
+
+commit ff99318b814d8b02a503897a41269c7bb3ebbb61
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 26 20:54:00 2022 -0600
+
+ XASY: Fix line mode menu glitch.
+
+commit b2af1e079781e7bc53d7804b1622c0486e484b18
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 26 20:46:05 2022 -0600
+
+ XASY: Give opacity hint.
+
+commit ec217a2261828eed41835da88c9bfa97af5ec2bc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 26 20:47:12 2022 +0200
+
+ Move v3d specification back to GitHub now that LaTeX markdown is supported.
+
+commit cb6aeda7ff3c1ed42bb04ed45ba26ce5061797f1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 26 15:18:10 2022 +0200
+
+ List ambiguous functions.
+
+commit 60df18eea453855571ee4a2cc3f45878a4fe52d9
+Merge: fa284421 4fe6f9fb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 26 04:17:33 2022 -0600
+
+ Merge pull request #327 from jamadagni/master
+
+ Additions to geometry.asy
+
+commit fa28442195bd99b9bac87e3ff752953ac57ee172
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 26 12:05:54 2022 +0200
+
+ Remove extraneous include.
+
+commit 3514430ddbdbf89e21b560202c06801c42ab590f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 26 12:05:24 2022 +0200
+
+ Optimize dvisvgm output.
+
+commit a7588cad36589cc3df2b1bc66123e8c94b681a39
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 26 11:57:05 2022 +0200
+
+ Make dvisvgmMultipleFiles true by default.
+
+commit 8f18ae72e3f12db006aabb23a5045c149a9a821a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 25 14:21:16 2022 -0600
+
+ Fix BUG #329: Fraction bars in labels are always black with PDF texengines.
+
+commit 9fe061906f7b5d0e334299c917effeb283989237
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jul 25 01:21:11 2022 -0600
+
+ XASY: Add rough version of opacity.
+
+commit acb00a464f88dfef0e36046925cd3df24a643e12
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 23 22:17:29 2022 -0600
+
+ XASY: Add rough version of pen caps.
+
+commit 3878760d3335d907ef6de6b251835eff51274395
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 23 21:53:27 2022 -0600
+
+ XASY: Add alpha line styles.
+
+commit 9573bc9448c759acd5fa820567d16f90d971acde
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jul 18 10:50:48 2022 -0600
+
+ XASY: Fix filled arrow grouping issue.
+
+commit d5dfdeba88d17eaccfea41798c4fd3a221d03f6a
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 16 22:08:18 2022 -0600
+
+ XASY: Add tabs to context menu.
+
+commit 4fe6f9fb1633ebcfff637bf2140f042b7d802245
+Author: Shriramana Sharma <samjnaa@gmail.com>
+Date: Thu Jul 14 22:34:15 2022 +0530
+
+ add fill and filldraw for circle,ellipse,triangle,triangle[]
+
+commit 8b8ad63d73e25bc098840c61b16a869184a6cdb2
+Author: Shriramana Sharma <samjnaa@gmail.com>
+Date: Thu Jul 14 20:19:38 2022 +0530
+
+ add path operator ecast(segment)
+
+commit 006cb4c48cae38fdd710a885df0d38fa172ed640
+Author: Shriramana Sharma <samjnaa@gmail.com>
+Date: Thu Jul 14 19:57:20 2022 +0530
+
+ add path operator cast(triangle), fix points order
+
+commit dc9d231185c9b01bd8d32c2bbbc87001caa1f4d8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jul 14 09:22:08 2022 -0600
+
+ Simplify code.
+
+commit b7db8911e3b2cbcc3c6330312b49acb0e06213b9
+Author: Shriramana Sharma <samjnaa@gmail.com>
+Date: Thu Jul 14 19:47:02 2022 +0530
+
+ rename geometry.orthocentercenter to geometry.orthocenter
+
+commit fb60e629731adba9460cbb9297cf9def84baf897
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 14 01:17:14 2022 -0600
+
+ XASY: Fix arrow fill selection.
+
+commit de64e70501d4219220d8ecfeebd99effcb07f732
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 14 01:05:34 2022 -0600
+
+ XASY: Add hidden code for color options.
+
+commit 587a21490bf6d3892ddeab36dc8d8acdd3cec32c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jul 13 16:56:14 2022 -0600
+
+ Simplify code.
+
+commit 55d3dab28f6e3698b020cd6125690e65045c6091
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jul 13 04:07:01 2022 -0600
+
+ XASY: Allow basic arrow curve filling.
+
+commit 3961ec5be64d394e86e89d4ca30b176d4b5ecf62
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 10 10:52:38 2022 -0600
+
+ Fix issue #320.
+
+commit 694902944ba06f3c77dad9bc0bcc4e465fa7e1d4
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jul 9 20:12:27 2022 -0600
+
+ Address issue #320.
+
+commit e88b4b19b53141cc8a070c2eea1b343b5ae88b0e
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jul 6 23:19:20 2022 -0600
+
+ XASY: Fix object rendering error.
+
+commit 5794434a3392e8c9da44340c4c5a5ab56d55621c
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jul 6 23:13:19 2022 -0600
+
+ XASY: Set size of context menu.
+
+commit 33bf1141c1bb787bd5518dcfa9f73a4f48d37dfa
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jul 6 23:05:40 2022 -0600
+
+ Output mean color only for PRC.
+
+commit 522aa30a31feeebfab9d9886200fa25c888cf41f
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 5 15:16:15 2022 -0600
+
+ XASY: Remove deprecated fill changing method.
+
+commit ee191384db269c183b116f717fab11cb6ba4684b
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 5 15:07:51 2022 -0600
+
+ XASY: Add default indicators for arrow options.
+
+commit 7cbd28939b01da0f96980864698d7d704c9c1a9c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 5 00:45:07 2022 -0600
+
+ Delete troublesome style file.
+
+commit 534d1361a7343dfc653a8b129d3392c0baba68f3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 5 00:41:00 2022 -0600
+
+ Update asygl.
+
+commit 6cea12dfe927edec9aa784ab4b133f9b12ebde1d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Jul 5 00:36:47 2022 -0600
+
+ WebGL: Support backwards compatibility.
+
+commit 323eb79327cf179491107d4ec3e3d6e994b324aa
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 4 23:56:02 2022 -0600
+
+ WebGL: Compute Bezier curve bounds.
+
+commit 482d04bdad8a25d274d1719f6653ff4d4c7b3250
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 4 17:05:47 2022 -0600
+
+ WEBGL: Compute triangle group bounds.
+
+commit 72de9111632b3370f362740ab42cb6ce0238888b
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jul 4 11:04:02 2022 -0600
+
+ XASY: Show hints for default arrow size and angle.
+
+commit 00cd7219a9794f21ecd3209411889b25523322e0
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jul 4 00:04:25 2022 -0600
+
+ WEBGL: Compute Bezier triangle bounds in WebGL. Remove Min and Max.
+
+commit 42bc4a3b4e0f187e265c353fc9e7766cf8165b95
+Merge: a45aaa1e 30ad132f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 3 22:09:06 2022 -0600
+
+ Merge branch 'master' into webglbounds.
+
+commit 30ad132f3a7dd182792d24a150aaa45de332ee8b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 3 19:34:37 2022 -0600
+
+ Simplify workflow.
+
+commit e15ba5b1e764cff6b75520d41c8fb96a03730d4e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jul 3 18:56:08 2022 -0600
+
+ Fix BUG #319: Rename NOCACHE to NoOutputFonts to address yet another Ghostscript backwards incompatibility (in Ghostscript version 9.56).
+
+commit 12a778be453f9319faeac99edfa25c0498bf2024
+Merge: d393a76b 48625bd2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 29 13:06:59 2022 -0600
+
+ Merge branch 'compute3'.
+
+commit 48625bd2b66ca904af42e308c5bf8d0b5571de39
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 29 13:03:58 2022 -0600
+
+ Fix typo.
+
+commit e89c84c47bed90bca961e6bd26f8a8e7e3c8c3a0
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 26 23:53:52 2022 -0600
+
+ XASY: Fix arrow reflection bug.
+
+commit 149229fd5ac11209c9fa1f73d5b0d3ed4c2af7f4
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jun 25 00:03:29 2022 -0600
+
+ XASY: Fix context menu object selection quirks.
+
+commit 81c731e85cdd1803921322e7608306ff9109c0d8
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jun 23 21:47:06 2022 -0600
+
+ XASY: Finalize saving fix.
+
+commit d531d9e1a96ef2c589b76e38c1a3817cac0d5d95
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jun 22 00:49:55 2022 -0600
+
+ XASY: Progress on saving bug.
+
+commit d393a76b3960455b4285806771e705faa54c20d8
+Merge: 0669e4fb d8cacc97
+Author: Supakorn 'Jamie' Rassameemasmuang <jamievlin@outlook.com>
+Date: Tue Jun 21 15:44:12 2022 -0600
+
+ Merge pull request #317 from vectorgraphics/dependabot/pip/GUI/numpy-1.22.0
+
+ Bump numpy from 1.21.0 to 1.22.0 in /GUI
+
+commit d8cacc97b70f35914ba89baf8c564af93af42edc
+Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
+Date: Tue Jun 21 21:32:47 2022 +0000
+
+ Bump numpy from 1.21.0 to 1.22.0 in /GUI
+
+ Bumps [numpy](https://github.com/numpy/numpy) from 1.21.0 to 1.22.0.
+ - [Release notes](https://github.com/numpy/numpy/releases)
+ - [Changelog](https://github.com/numpy/numpy/blob/main/doc/HOWTO_RELEASE.rst)
+ - [Commits](https://github.com/numpy/numpy/compare/v1.21.0...v1.22.0)
+
+ ---
+ updated-dependencies:
+ - dependency-name: numpy
+ dependency-type: direct:production
+ ...
+
+ Signed-off-by: dependabot[bot] <support@github.com>
+
+commit d9c5fb35f0f2967f4a9af2a1df65aaa64996f861
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jun 20 02:40:52 2022 -0600
+
+ XASY: Improve how list options are created.
+
+commit e395fb2dd6250a78fd6ce8fd134e2cbf6dda9936
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jun 16 23:17:39 2022 -0600
+
+ XASY: Fix text entry bug.
+
+commit 134ebc7ff7947248ed281383a7026586d54b6567
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jun 16 21:20:34 2022 -0600
+
+ XASY: Refactor reflection code.
+
+commit 63932b2597a406fddbb98763c353fee01aba2524
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 12 23:53:38 2022 -0600
+
+ XASY: Refactoring and quality enhancement.
+
+commit 8677a0f1a2571f1b38fc1589cf12f6341f69b659
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 12 10:32:22 2022 -0600
+
+ TRANSPARENCY: Save 4 bytes in shuffle array.
+
+commit 83e09ca618a9063f0d8c272dd855be9e081c19b1
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jun 11 20:16:52 2022 -0600
+
+ XASY: Make options dynamic.
+
+commit 292500e5c8d7762b8a49e62665c07221c3bee395
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jun 11 20:05:04 2022 -0600
+
+ XASY: Add confirm button for the context menu.
+
+commit 8097098c7938bcc1acc92e7aa5ca675160f47e23
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Fri Jun 10 21:37:38 2022 -0600
+
+ XASY: Add fill type options.
+
+commit 6d42edf99fcc672a4f7ab3d098c82eaa76c2e90c
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Fri Jun 10 21:23:30 2022 -0600
+
+ XASY: Add arrow angle changing options.
+
+commit d9d7a49824f5976135d4b82f554a6a6181ee7087
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Fri Jun 10 21:12:42 2022 -0600
+
+ XASY: Add arrow sizes.
+
+commit a45aaa1e948343e6a6d86391f26f4f132e17e6bd
+Merge: 5f676ec6 0669e4fb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 9 19:01:27 2022 -0600
+
+ Merge branch 'master' into webglbounds.
+
+commit 0669e4fb0fc358ae9555d3db375f3568365b740b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 9 19:00:57 2022 -0600
+
+ Compute tight bounds of Bezier patches and triangles.
+
+commit 5f676ec6a4cc13ce7e382f8b5204df700e97e2b4
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 9 17:35:45 2022 -0600
+
+ Compute Bezier patch bounds in WebGL.
+
+commit 4f51b82701aea7a9c14b89aa833fa10152f2d8c1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 9 17:26:50 2022 -0600
+
+ Fix formatting.
+
+commit 5d6189436d95bbbf6f443d67cc9744af3338ff89
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jun 8 17:54:34 2022 -0600
+
+ XASY: Fix selection crashing bug.
+
+commit ebf5014696e14f74b17b8a6c2ce740c15e15c657
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jun 8 17:51:54 2022 -0600
+
+ XASY: Clean up code used for testing.
+
+commit 2879110f7a1ebb3c03cfbb01d68bfc4edbce466a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Jun 6 21:45:14 2022 -0600
+
+ Derive size from offset in blend shader.
+
+commit 597d08b0ae468babf8c9a7b956d14c11415c1946
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Jun 5 13:06:39 2022 -0600
+
+ Update to latest prefixsum shader.
+
+commit f061f1483550229f592eab9b3e0425a2d6e608c3
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 5 00:55:47 2022 -0600
+
+ XASY: Fix arrow style selection bug.
+
+commit a2f9702924d4ec7592ba5241a9bc1a40aeb25733
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 5 00:44:26 2022 -0600
+
+ XASY: Add more arrow types.
+
+commit 75baa00f90034b6de5ccb2dc57b10d723effb4e3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Jun 4 21:02:02 2022 -0600
+
+ Restore zero shader.
+
+commit a95c328913df1d0b6ec0ecdb89dae48577556525
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Jun 3 00:45:00 2022 -0600
+
+ Automatically choose optimal sum2 shader.
+
+commit ba6fcdce8f4e90da7944a9ddec6fbd0ab617181e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 2 16:05:07 2022 -0600
+
+ Optimize sum shaders.
+
+commit 5db78fbb79c6711d250748e47a08381eff4f9a04
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Jun 2 09:26:49 2022 -0600
+
+ Generalize sum2 shader.
+
+commit 70a7c559bbac4e1939552b4228704bdf60a753df
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Jun 1 16:10:04 2022 -0600
+
+ Use optimized binomial tree reduce in sum1 shader.
+
+commit 9271bd55970b7ba76e265d4dd9a89a932b8981aa
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 31 17:57:06 2022 -0600
+
+ XASY: Code improvements and arrow copying setup.
+
+commit 98939bfe5406905d51b64ae90ccb56822f6f97c3
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 31 17:51:19 2022 -0600
+
+ XASY: Allow dearrowification.
+
+commit d9eab3fb70031cdaa4de8ff14147eb6e895ec317
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 31 17:12:09 2022 -0600
+
+ XASY: Snap focus to canvas when objects change.
+
+commit 9b853eead5d61728663ed5c457b4764800a70f17
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 31 13:33:33 2022 -0600
+
+ Optimize sum1 shader.
+
+commit aa4700c2d91fcd17fd1768bd7df45ccd788c20d7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 31 11:58:45 2022 -0600
+
+ Revert cd7092db3a5f297df6b735c91b4989caf8e60609.
+
+commit be2310a8affc0abf3e8d330489e2ff1f491c3df9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 31 11:20:20 2022 -0600
+
+ Fix memory barriers.
+
+commit 7df45601fd0e38a252e4c68929ed54d9c286e971
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 31 10:45:45 2022 -0600
+
+ Fix memory barriers; optimize Hillis-Steele algorithm.
+
+commit 64ca0f99828ac592896b524aa79b043101210e24
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 30 23:05:02 2022 -0600
+
+ Add missing shader.
+
+commit 411ffcbc0b0cf626a36ab66bb342656a1e1da2e4
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 30 19:00:48 2022 -0600
+
+ Finish partial sums.
+
+commit fa12530d3f7a7d2e84c330ffa35181df38580831
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon May 30 11:59:22 2022 -0600
+
+ XASY: Rough version of adding arrowheads.
+
+commit 8519ee922db934d05f0945b93ef17e4b24fe6ea2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 30 10:58:37 2022 -0600
+
+ Implement bezier(real a, real b, real c, real d, real t).
+
+commit a728266f13a123f772294b50e2a58b50c28091ef
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 23:24:34 2022 -0600
+
+ Avoid unnecessary differential computations.
+
+commit c5ff5bd2628c05dcf52acd6502a851d78cce3510
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 23:18:15 2022 -0600
+
+ Defer fragment buffer resizing as long as possible.
+
+commit 952e340b05bbd3b6ad5f191f74e0669a5055c2ac
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 23:06:37 2022 -0600
+
+ Fix noGPUindexing.
+
+commit 044dc63915cb19f8106f2e8ebb5df91cf15cdf4f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 22:59:22 2022 -0600
+
+ Disable subdivision crack adjustments for transparent patches.
+
+commit 8bd698940d42574cbe6c7a3c7170039157b43196
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 22:46:26 2022 -0600
+
+ Fix commit f57b4f8b9ead42f092cb706960bf10b6b8d55e30.
+
+commit 8931b432b64b6b90e934bc502c62fffe47a4a8cb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 22:11:32 2022 -0600
+
+ Standardize names.
+
+commit bf9e1ee6c40f9de385992ecef5ca0b8c46f3f63b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 21:55:36 2022 -0600
+
+ Improve performance.
+
+commit 77d25cd8a9151b5a32ecb6169b5973284a28a955
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 19:13:12 2022 -0600
+
+ Fix maximum depth detection.
+
+commit cd7092db3a5f297df6b735c91b4989caf8e60609
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 15:49:18 2022 -0600
+
+ Use atomicCounterExchange to reset compression counter.
+
+commit 711b1a1666ae0b622a0a79c6275d4076523bb4ba
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 29 15:18:50 2022 -0600
+
+ XASY: Add basic logic for replacing objects.
+
+commit e407a7c34129589fcbb0a86d42925592e7d3f8b0
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 14:42:47 2022 -0600
+
+ Finish implementing feedback to CPU.
+
+commit f57b4f8b9ead42f092cb706960bf10b6b8d55e30
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 10:51:02 2022 -0600
+
+ Send feedback to CPU.
+
+commit 5801785e5729fda77f88fabdd7ddbd0e53a48851
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 00:57:57 2022 -0600
+
+ Revert "Store opaqueDepth in alpha channel of opaqueColor."
+
+ This reverts commit 431d19384d090f11daeed3dc449dc61d2ed5e309.
+
+commit 431d19384d090f11daeed3dc449dc61d2ed5e309
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun May 29 00:04:35 2022 -0600
+
+ Store opaqueDepth in alpha channel of opaqueColor.
+
+commit a35d30b911d256832fe067f638aec75fdad79814
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat May 28 23:28:28 2022 -0600
+
+ Test 2-stage algorithm.
+
+commit 64942510ac5d30470cdd22e777cd0b1a38a6ff69
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat May 28 23:00:33 2022 -0600
+
+ Test 3-stage algorithm.
+
+commit 1c3176bb63ff4ab159bdea150174382c6f6b2b70
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat May 28 22:27:39 2022 -0600
+
+ XASY: Setup work for adding arrowheads.
+
+commit e84bf41ae59bb60cdff9357fc0c7f7faf8933174
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat May 28 11:19:37 2022 -0600
+
+ Add const qualifier.
+
+commit 0f0a04b64cccd21c656ec7a69565f43cf8e6a7b7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 27 23:26:36 2022 -0600
+
+ Implement GPUblockSize.
+
+commit 58ddb9f87dcee756366d82b48424c3fe1bac19d9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 27 23:02:11 2022 -0600
+
+ Disable GPUcompression by default.
+
+commit 7dae0ee579ba48d52d4687b79e87506e989a8ce2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 27 22:48:47 2022 -0600
+
+ Use a single improved shader to avoid bank conflicts.
+
+commit 4712edd628e9742417b7d83b4d38d2721bae370e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 25 09:32:56 2022 -0600
+
+ Simplify code.
+
+commit 1bfbb8215540524f4182744d836031d2223915ed
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 25 09:27:17 2022 -0600
+
+ Revert "Perform all sums on the GPU."
+
+ This reverts commit 574eb027cf53064cfb27e8ab09333a7775b2e094.
+
+commit f377f169236460849e5507e75f50ea8e3955aeba
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 24 00:05:26 2022 -0600
+
+ XASY: Change options based on item type.
+
+commit 33cc6fcb9e5ca77a4565db00465345c2b28318d0
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon May 23 23:33:53 2022 -0600
+
+ XASY: Make reflection relative to object.
+
+commit 574eb027cf53064cfb27e8ab09333a7775b2e094
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 23 22:59:08 2022 -0600
+
+ Perform all sums on the GPU.
+
+commit d270aa2012843aa592d2ada3b390ded7c1c3c35f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 23 19:28:39 2022 -0600
+
+ Implement Hillis-Steele algorithm in second stage.
+
+commit b182742a8ac29f1fbf1f37228492a09236c0e0ce
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 23 17:35:04 2022 -0600
+
+ Add another compute shader stage to reduce bandwidth to CPU.
+
+commit 85e78f59600fde0f6214212012c80ff539474a13
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 23 16:10:44 2022 -0600
+
+ Avoid use of localSumBuffer.
+
+commit 4d4159b5ec2eafa2bb3ba0837d863690af66ce4e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon May 23 15:30:10 2022 -0600
+
+ Use a single compute shader.
+
+commit aeabf93463cb35e55e7d86bd2a460f1616d44939
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 22 23:31:07 2022 -0600
+
+ XASY: Fix minor reflection bug.
+
+commit ea491e1af487809aeca6832227cc2d5aac7ab9d5
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 22 23:21:56 2022 -0600
+
+ XASY: Add options reflection to context menu.
+
+commit 3c38347c7c0c3a55b0677a7089bf3a662d1515fd
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 22 00:51:39 2022 -0600
+
+ XASY: Prevent context menu crashing.
+
+commit 13aa6344ac37b2303deb1e4e6d6a24d9b260762f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu May 19 20:57:45 2022 -0600
+
+ Improve documentation of rotate(real, triple).
+
+commit 68ff3758a11c9ab62c517b219cd6321b6c8a17ff
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed May 18 23:26:19 2022 -0600
+
+ XASY: Change filling method.
+
+commit e867b1fe04293de229d6c133d7cf21a5a9906b13
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 17 01:52:30 2022 -0600
+
+ XASY: Display icon.
+
+commit a6d8511834b0dab1dd3580ec0920fbde5cc76042
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 17 01:51:30 2022 -0600
+
+ XASY: Display icon.
+
+commit 0f5cb6b88b5c1e3a68ef42f0b441ed4812aa1392
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 17 01:32:27 2022 -0600
+
+ XASY: Remove redundant menu.
+
+commit c1ec3a89279d567cf4a910557546137aac2c0ee3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat May 14 12:27:51 2022 -0600
+
+ Increment version to 2.82.
+
+commit 4347e589ed5e4fc4f03d4fdafced28f6345f21a7
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat May 14 00:09:48 2022 -0600
+
+ XASY: Minor quality improvements to the options window.
+
+commit 429a50bc7199fcbc5b081369dcb75f92ba766a87
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat May 14 00:01:55 2022 -0600
+
+ XASY: Alpha version of context menu.
+
+commit 920c0886c23e20db270d04337e59c4d9e069dc63
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 13 23:17:54 2022 -0600
+
+ Fix CYGWIN warning.
+
+commit c895e09915302ae276740f1cc91afd834658ae37
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri May 13 22:31:19 2022 -0600
+
+ Fix bug #313: opaque rendering on platforms lacking GL_ARB_fragment_shader_interlock.
+
+commit 1c3deeb0cd6bab28ebde0abc9d04c0302fa84713
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed May 11 22:59:01 2022 -0600
+
+ XASY: Finalize alpha version of fill/unfill.
+
+commit 1bb18d1c97b1c05aaff755fbfcc8e4b0a9852776
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed May 11 22:48:53 2022 -0600
+
+ XASY: Setup work for context menus.
+
+commit fc7dac6887136289035eaa4f7f60fcbee1dc3967
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 11 18:29:56 2022 -0600
+
+ Update documentation.
+
+commit d54736762baaf6b675311c0e5791f6aa5792ae57
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed May 11 16:40:43 2022 -0600
+
+ Document surface constructor for solids of revolution.
+
+commit f910ea19eee9f240045594bf049f363cc8181ac4
+Merge: de70a958 72b0fe36
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 10 22:20:00 2022 -0600
+
+ Merge branch 'Qt'.
+
+commit de70a958b3844210142a9066b20bfce2a62bde4f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 10 21:38:21 2022 -0600
+
+ Zero offset buffer when required.
+
+commit 72b0fe3685729e059337082dcd5585ae7fa20f50
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 8 22:38:36 2022 -0600
+
+ XASY: Fix crashes from opening xasy files.
+
+commit a14f4a75cd8f6d0f9cf6c4217e70baa690e4a1ad
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu May 5 23:11:47 2022 -0600
+
+ XASY: Fix bounding box drawing issue.
+
+commit 27d52fa7a6356cda473eb24acac77e822c6fb09d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue May 3 12:20:43 2022 -0600
+
+ Port to MacOS.
+
+commit e23a5527b710aa3cbf83d1d0a682aa5c6a49b62c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 24 10:24:46 2022 -0600
+
+ Fix bug #310: Missing slash in temporary file path.
+
+commit 365df5651ce0728fa3607d05ae1396668f374197
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 10 09:35:38 2022 -0600
+
+ Rename example.
+
+commit 253349484d7d76aeb639428f02e5c08779fbe094
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 10 00:31:20 2022 -0600
+
+ Add missing typedef.
+
+commit 29967ac62cb69bf3e3196b8cdf5e714007eabce2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 10 00:20:20 2022 -0600
+
+ Fix last commit.
+
+commit 6f10abaa6611c52cb8040b5715218287202b5510
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 10 00:18:32 2022 -0600
+
+ Consult pkg-config for readline library.
+
+commit 5af8022000bd9d3ab21e7c3548e92e9d59dd3c07
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 10 00:11:15 2022 -0600
+
+ Fix issue #40: Consult pkg-config.
+
+commit 4bd54e14498523c06a2e4cecf20e7c4c6851299d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Apr 8 23:23:37 2022 -0600
+
+ Fix issue #309.
+
+commit 2ffee49a7e3fe5180a96332d529eae8bfe7a8316
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 9 14:49:43 2022 +1000
+
+ Move global typedef within namespace.
+
+commit 8f2ce216a6f5537d74a6b691fcd416a344570007
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Apr 8 17:03:24 2022 -0600
+
+ Implement real Schur decomposition.
+
+commit 0f2ad99bcd3b7cb85ba66d4576ada8438da9c288
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Apr 8 16:23:26 2022 -0600
+
+ Implement Schur decomposition.
+
+commit 5b705e7dece21fb809a43e25b4e97c1707a21152
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Apr 5 23:28:53 2022 -0600
+
+ Add example; remove empty directories.
+
+commit b00f9fc3c2bf1b3b3cb311faf7098c149088e3cb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Apr 5 21:48:56 2022 -0600
+
+ Increment version to 2.81.
+
+commit 52f5c99018d24883f6e115ae72beaa88a15d0669
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Apr 5 11:32:10 2022 -0600
+
+ Fix last revision.
+
+commit 6992734bf38c28328ba829944596fa43d3d40512
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Apr 4 23:00:20 2022 -0600
+
+ TRANSPARENCY: Restrict number and size of workgroups as needed.
+
+commit 561986f58f96e407e92979207d66d4bc864b9556
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Apr 3 21:56:20 2022 -0600
+
+ TRANSPARENCY: Optimize global summation on CPU.
+
+commit e80e073ca6e2bfdc06c277ba17544e71533cecf7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Mar 29 23:04:53 2022 -0600
+
+ TRANSPARENCY: Fix export.
+
+commit 0fb93b6435910d57594ab4fc5542efd9e0543103
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 28 09:44:08 2022 -0600
+
+ TRANSPARENCY: Check for empty pixels with -noGPUCOMPRESS.
+
+commit 6d3df54aa7801a97ce35824dfa6ffc9109b1a4eb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 28 09:29:58 2022 -0600
+
+ TRANSPARENCY: Fix buffer allocation.
+
+commit 36c947e404b55985d949c7d2313e2f94334762f3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 28 08:22:31 2022 -0600
+
+ TRANSPARENCY: Use no more than 8 SSBOs.
+
+commit 5e1c855ab8287c60a278d3ed3eb93e7eca644418
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Mar 27 13:21:14 2022 -0600
+
+ Implement GPUcompress=false option for non-NVIDIA GPU cards.
+
+commit 554a81c8898bc97d0d4841178e92f5ee3d2a5f22
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 26 12:33:24 2022 -0600
+
+ Fix commit 56df79e03bb18523f47be46620b7be5e62d92eac.
+
+commit 9d0c1b6afea89eeba8c90b54c1f3ee73fd8094a1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 26 11:24:03 2022 -0600
+
+ TRANSPARENCY: Fix floating point exception.
+
+commit 56df79e03bb18523f47be46620b7be5e62d92eac
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 26 10:23:23 2022 -0600
+
+ TRANSPARENCY: Fix export when GPUindexing=false.
+
+commit 25650a26253bfcc81b4a7d4448f352e41236d392
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 26 09:52:06 2022 -0600
+
+ TRANSPARENCY: Fix segmentation fault.
+
+commit 5649ac09e2deb90d4929b34e47677395bac20b48
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Mar 25 22:17:45 2022 -0600
+
+ TRANSPARENCY: Fix atomic counter initialization.
+
+commit f88c7598b4b01a1d4c0c0bd5412a48d1a0eb5160
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Mar 25 00:56:59 2022 -0600
+
+ TRANSPARENCY: Transmit maxSize in global sum array.
+
+commit 3e0cd170f6fe57e38265fff7547d2374ae05bee6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Mar 23 23:29:14 2022 -0600
+
+ TRANSPARENCY: Discard empty counts.
+
+commit afe3b3291af5d8f02ebb2e286612d90fa96cf7c1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 21 09:50:25 2022 -0600
+
+ TRANSPARENCY: Fix data format.
+
+commit d962523e868ae3240b4196cdaf498337dde34ff3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Mar 20 10:43:27 2022 -0600
+
+ TRANSPARENCY: Transfer maxSize via globalSum buffer.
+
+commit a0c83db864e01587c64c47c96004e62455682ecc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 19 22:52:32 2022 -0600
+
+ TRANSPARENCY: Check ARRAYSIZE on every frame.
+
+commit 50aaba78229e7401a1d3863ab3c4184dfc432585
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 19 22:10:22 2022 -0600
+
+ TRANSPARENCY: Don't zero offset buffer.
+
+commit 6ac4803bd0c0af840dcf8609087d521883fe46ca
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 19 18:28:38 2022 -0600
+
+ TRANSPARENCY: Improve last revision.
+
+commit bd35596b24cde31b551ae4c6a3ea02e97ce1f0b1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 19 15:13:35 2022 -0600
+
+ TRANSPARENCY: Optimize case of one transparent fragment.
+
+commit 8b061a48bdf27b5e142bf48869087c73562169fb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 19 14:46:06 2022 -0600
+
+ TRANSPARENCY: Simplify code.
+
+commit 9946580b30f18817b09a46ab62fd9e20d113b303
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Mar 19 14:06:40 2022 -0600
+
+ TRANSPARENCY: Fix depth lookup.
+
+commit 4c6980c4001d493e83d8ba5d11ba56d9f21c38c9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Mar 18 22:50:54 2022 -0600
+
+ TRANSPARENCY: Conditionally define uniform.
+
+commit 638bb757747216fae868e8a6e152b6eb690c30ce
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 14 12:25:40 2022 -0600
+
+ Implement weighted least-squares fit.
+
+commit 6afedcba8989cac33ce677387160528d828ea269
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Mar 13 19:28:03 2022 -0600
+
+ TRANSPARENCY: Combine local index and depth into structure.
+
+commit fd3d794762fd6e532b916318625d4361f54467bb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Mar 13 17:15:29 2022 -0600
+
+ Remove unused code.
+
+commit dbafbb86b583bc1671f6111c7518219efb74de18
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Mar 13 17:01:26 2022 -0600
+
+ Merge conditionals.
+
+commit a6e12dda261cad07593c988952b2fe62cf317600
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Mar 13 14:19:01 2022 -0600
+
+ Avoid unnecessary writes to OpaqueDepth SSBO.
+
+commit 115e01faf97e2b1cc6b9ba9c8928d80bc0b00aa0
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Mar 10 12:01:47 2022 -0700
+
+ Use UNIX line terminators.
+
+commit b007afcc67cf18fd431492f9f2cf449daac10b95
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Mar 10 11:56:22 2022 -0700
+
+ git subrepo commit (merge) LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "a311aa1d"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "19411f6c"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit 0ce8a977de9a3f01ac63c895d56da4f3848d2035
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Mar 8 23:56:24 2022 -0700
+
+ git subrepo commit (merge) LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "574c2530"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "95cf6780"
+ git-subrepo:
+ version: "0.4.1"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "a04d8c2"
+
+commit d12b2dd06788452e0a4fe68b10cc181c6747e42d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Mar 8 23:36:37 2022 -0700
+
+ Remove all invisible files from release.
+
+commit 1cc029d5b9f573282f0e36daa12c28366130fce8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 7 21:09:49 2022 -0700
+
+ LSP: Clean up generated files; fix permissions.
+
+commit c7e039c39c71323575a1c80ffc2405ab244339b0
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 7 20:04:26 2022 -0700
+
+ git subrepo commit (merge) LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "05c9d022"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "b1e44c8f"
+ git-subrepo:
+ version: "0.4.1"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "a04d8c2"
+
+commit 94fe097db546f1de9e5b43e6b31fe1d2d4e4edaf
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Mar 7 14:23:48 2022 -0700
+
+ Increment version to 2.80.
+
commit 70dcf303c069ce3669f5f589aa3642650665278b
Author: John Bowman <bowman@ualberta.ca>
Date: Mon Mar 7 11:40:50 2022 -0700
diff --git a/Build/source/utils/asymptote/GL/glew.c b/Build/source/utils/asymptote/GL/glew.c
index 18a2853da0b..62cc2f563b9 100644
--- a/Build/source/utils/asymptote/GL/glew.c
+++ b/Build/source/utils/asymptote/GL/glew.c
@@ -253,7 +253,7 @@ static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b,
if(*na >= nb)
{
GLuint i=0;
- while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++;
+ while (i < nb && (*a)[i] == b[i]) i++;
if(i == nb)
{
*a = *a + nb;
@@ -269,7 +269,7 @@ static GLboolean _glewStrSame2 (const GLubyte** a, GLuint* na, const GLubyte* b,
if(*na >= nb)
{
GLuint i=0;
- while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++;
+ while (i < nb && (*a)[i] == b[i]) i++;
if(i == nb)
{
*a = *a + nb;
@@ -285,7 +285,7 @@ static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b,
if(*na >= nb)
{
GLuint i=0;
- while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++;
+ while (i < nb && (*a)[i] == b[i]) i++;
if (i == nb && (*na == nb || (*a)[i] == ' ' || (*a)[i] == '\n' || (*a)[i] == '\r' || (*a)[i] == '\t'))
{
*a = *a + nb;
diff --git a/Build/source/utils/asymptote/GUI/ContextWindow.py b/Build/source/utils/asymptote/GUI/ContextWindow.py
new file mode 100644
index 00000000000..2711cfeca73
--- /dev/null
+++ b/Build/source/utils/asymptote/GUI/ContextWindow.py
@@ -0,0 +1,320 @@
+import PyQt5.QtWidgets as Qw
+import PyQt5.QtGui as Qg
+import PyQt5.QtCore as Qc
+import xasyVersion
+
+import xasyUtils as xu
+import xasy2asy as x2a
+import xasyFile as xf
+import xasyOptions as xo
+import UndoRedoStack as Urs
+import xasyArgs as xa
+import xasyBezierInterface as xbi
+from xasyTransform import xasyTransform as xT
+import xasyStrings as xs
+
+import PrimitiveShape
+import InplaceAddObj
+
+import CustMatTransform
+import SetCustomAnchor
+import GuidesManager
+import time
+
+class AnotherWindow(Qw.QWidget):
+ def __init__(self, shape, parent):
+ super().__init__()
+ self.shape = shape
+ self.parent = parent
+ self.newShape = self.shape
+ self.layout = Qw.QVBoxLayout(self)
+
+ # Initialize tab screen
+ self.tabs = Qw.QTabWidget()
+ self.fillTab = Qw.QWidget()
+ self.lineTab = Qw.QWidget()
+ self.arrowTab = Qw.QWidget()
+ self.othersTab = Qw.QWidget()
+ self.tabs.resize(300,200)
+ self.fillTab.layout = Qw.QVBoxLayout(self.fillTab)
+ self.lineTab.layout = Qw.QVBoxLayout(self.lineTab)
+ self.arrowTab.layout = Qw.QVBoxLayout(self.arrowTab)
+ self.othersTab.layout = Qw.QVBoxLayout(self.othersTab)
+ self.tabs.addTab(self.fillTab,"Fill Options")
+ self.tabs.addTab(self.lineTab,"Line Options")
+ self.tabs.addTab(self.arrowTab,"Arrow Options")
+ self.tabs.addTab(self.othersTab,"Misc. Options")
+
+ self.layout.addWidget(self.tabs)
+ self.setLayout(self.layout)
+ self.setWindowTitle("Shape Options Window")
+
+ self.label = Qw.QLabel("Fill:")
+ self.fillTab.layout.addWidget(self.label)
+ self.fillButton = Qw.QComboBox()
+ self.fillButton.addItem("Unfilled")
+ self.fillButton.addItem("Filled")
+ self.fillButton.currentIndexChanged.connect(self.fillChange)
+ self.fillTab.layout.addWidget(self.fillButton)
+
+ if isinstance(self.shape, x2a.asyArrow):
+ self.colorButton = Qw.QPushButton("Set Line Colour")
+ self.colorButton.clicked.connect(self.pickColor)
+ self.fillTab.layout.addWidget(self.colorButton)
+
+ self.colorButton = Qw.QPushButton("Set Fill Colour")
+ self.colorButton.clicked.connect(self.pickFillColor)
+ self.fillTab.layout.addWidget(self.colorButton)
+
+ elif isinstance(self.shape, x2a.xasyShape):
+ self.colorButton = Qw.QPushButton("Set Colour")
+ self.colorButton.clicked.connect(self.pickColor)
+ self.fillTab.layout.addWidget(self.colorButton)
+
+ self.label = Qw.QLabel("Reflection:")
+ self.othersTab.layout.addWidget(self.label)
+ self.reflectionButton = Qw.QComboBox()
+ self.reflectionButton.addItem("None")
+ self.reflectionButton.addItem("Horizontal")
+ self.reflectionButton.addItem("Vertical")
+ self.reflectionButton.currentIndexChanged.connect(self.reflectionChange)
+ self.othersTab.layout.addWidget(self.reflectionButton)
+
+ self.label = Qw.QLabel("Opacity:")
+ self.othersTab.layout.addWidget(self.label)
+ self.opacityBox = Qw.QLineEdit()
+ self.othersTab.layout.addWidget(self.opacityBox)
+ self.opacityBox.setPlaceholderText(str(self.shape.pen.opacity))
+
+ self.label = Qw.QLabel("Arrowhead:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowheadButton = Qw.QComboBox()
+ self.arrowList = ["None","Arrow","ArcArrow"]
+ for arrowMode in self.arrowList:
+ self.arrowheadButton.addItem(arrowMode)
+ self.arrowheadButton.currentIndexChanged.connect(self.arrowheadChange)
+ self.arrowTab.layout.addWidget(self.arrowheadButton)
+
+ self.label = Qw.QLabel("Line Style:")
+ self.lineTab.layout.addWidget(self.label)
+ self.linestyleButton = Qw.QComboBox()
+ self.lineList = ["solid","dashed","dotted","dashdotted"]
+
+ for lineMode in self.lineList:
+ self.linestyleButton.addItem(lineMode)
+ self.linestyleButton.currentIndexChanged.connect(self.linestyleChange)
+ self.lineTab.layout.addWidget(self.linestyleButton)
+ self.linestyleButton.setCurrentIndex(self.lineList.index(self.shape.pen.style))
+
+ self.label = Qw.QLabel("Line Cap Style:")
+ self.lineTab.layout.addWidget(self.label)
+ self.lineCapStyleButton = Qw.QComboBox()
+ self.lineCapListStrings = ["extendcap","flatcap","roundcap"] #Is there a way to pull these directly
+ self.lineCapList = [Qc.Qt.PenCapStyle.SquareCap,Qc.Qt.PenCapStyle.FlatCap,Qc.Qt.PenCapStyle.RoundCap]
+
+ for lineMode in self.lineCapListStrings:
+ self.lineCapStyleButton.addItem(lineMode)
+ self.lineCapStyleButton.currentIndexChanged.connect(self.lineCapStyleChange)
+ self.lineTab.layout.addWidget(self.lineCapStyleButton)
+ self.lineCapStyleButton.setCurrentIndex(self.lineCapList.index(self.shape.pen.capStyle))
+
+ #TODO: Make this a function.
+ if not isinstance(self.shape, x2a.xasyShape):
+ self.fillButton.setCurrentIndex(int(self.shape.arrowSettings["fill"]))
+ if isinstance(self.shape, x2a.asyArrow):
+ self.arrowheadButton.setCurrentIndex(int(self.shape.arrowSettings["active"]))
+ else:
+ self.arrowheadButton.setDisabled(True)
+ else:
+ self.fillButton.setCurrentIndex(int(self.shape.path.fill))
+
+ if isinstance(self.shape, x2a.asyArrow) and self.shape.arrowSettings["active"]: #Make these all a list or something.
+ self.label = Qw.QLabel("Arrow Style:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowstyleButton = Qw.QComboBox()
+ for arrowStyle in self.shape.arrowStyleList:
+ self.arrowstyleButton.addItem(arrowStyle if arrowStyle else "(default)")
+ self.arrowstyleButton.currentIndexChanged.connect(self.arrowstyleChange)
+ self.arrowTab.layout.addWidget(self.arrowstyleButton)
+
+ self.label = Qw.QLabel("Arrow Size:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowSizeBox = Qw.QLineEdit()
+ self.arrowTab.layout.addWidget(self.arrowSizeBox)
+ self.arrowSizeBox.setPlaceholderText(self.getInfo("DefaultHead.size(currentpen)"))
+
+ self.label = Qw.QLabel("Arrow Angle:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowAngleBox = Qw.QLineEdit()
+ self.arrowTab.layout.addWidget(self.arrowAngleBox)
+ self.arrowAngleBox.setPlaceholderText(self.getInfo("arrowangle"))
+
+ self.label = Qw.QLabel("Arrow Fill:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowFillButton = Qw.QComboBox()
+ for arrowFillStyle in self.shape.arrowFillList:
+ self.arrowFillButton.addItem(arrowFillStyle if arrowFillStyle else "(default)")
+ self.arrowFillButton.currentIndexChanged.connect(self.arrowFillChange)
+ self.arrowTab.layout.addWidget(self.arrowFillButton)
+
+ self.arrowstyleButton.setCurrentIndex(int(self.shape.arrowSettings["style"]))
+ self.arrowFillButton.setCurrentIndex(int(self.shape.arrowSettings["fill"]))
+
+ self.fillTab.setLayout(self.fillTab.layout)
+ self.lineTab.setLayout(self.lineTab.layout)
+ self.arrowTab.setLayout(self.arrowTab.layout)
+ self.othersTab.setLayout(self.othersTab.layout)
+
+ self.confirmButton = Qw.QPushButton("Render")
+ self.confirmButton.clicked.connect(self.renderChanges)
+ self.layout.addWidget(self.confirmButton)
+
+ def arrowheadChange(self, i):
+ #None, {Arrow, ArcArrow} x {(),(SimpleHead),(HookHead),(TeXHead)}
+ if isinstance(self.shape, x2a.xasyShape):
+ if i != 0:
+ if isinstance(self.newShape,x2a.asyArrow):
+ self.newShape.arrowSettings["active"] = i
+ else:
+ self.newShape = self.shape.arrowify(arrowhead=i)
+ else:
+ self.newShape.arrowSettings["active"] = i #Simplify the logic
+
+ def arrowstyleChange(self, i):
+ self.newShape.arrowSettings["style"] = i
+
+ def linestyleChange(self, i): #I think add an attribute to asyPen
+ self.shape.pen.setStyle(self.lineList[i])
+
+ def lineCapStyleChange(self, i): #I think add an attribute to asyPen
+ self.shape.pen.setCapStyle(self.lineCapList[i])
+
+ def fillChange(self, i):
+ if isinstance(self.shape, x2a.asyArrow):
+ self.shape.arrowSettings["fill"] = bool(i)
+ elif (self.shape.path.fill != bool(i)) and not isinstance(self.newShape, x2a.asyArrow):
+ if self.newShape:
+ self.newShape = self.newShape.swapFill()
+ if isinstance(self.newShape, x2a.asyArrow):
+ self.newShape.arrowSettings["fill"] = bool(i)
+
+ def reflectionChange(self, i): #TODO: Modernize this.
+ reflectionList = [[1,1],[1,-1],[-1,1]]
+ self.parent.newTransform = xT.makeScaleTransform(*reflectionList[i], self.parent.currentAnchor).toQTransform()
+ self.parent.currentlySelectedObj['selectedIndex'] = self.parent.mostRecentObject
+ self.parent.releaseTransform()
+ self.parent.newTransform = Qg.QTransform()
+
+ def sizeChange(self):
+ try:
+ newSize = self.arrowSizeBox.text()
+ self.newShape.arrowSettings["size"] = float(newSize)
+ except:
+ return #TODO: Show error message.
+
+ def angleChange(self): #Refactor this with the above.
+ try:
+ newAngle = self.arrowAngleBox.text()
+ self.newShape.arrowSettings["angle"] = float(newAngle)
+ except:
+ return #TODO: Show error message.
+
+ def arrowFillChange(self, i): #Can I lambda this?
+ self.newShape.arrowSettings["fill"] = i
+
+ def opacityChange(self):
+ newOpacity = self.opacityBox.text()
+ try:
+ newOpacity = int(newOpacity)
+ if newOpacity >= 0 and newOpacity <= 255:
+ self.shape.pen.setOpacity(newOpacity)
+ self.newShape.pen.setOpacity(newOpacity)
+ except:
+ pass
+
+ def renderChanges(self): #Pull from text boxes here.
+ self.opacityChange()
+ if isinstance(self.shape, x2a.asyArrow) and self.shape.arrowSettings["active"]:
+ self.sizeChange()
+ self.angleChange()
+ elif (not isinstance(self.shape, x2a.asyArrow)):
+ self.renderLineStyle()
+ if self.newShape:
+ self.parent.replaceObject(self.parent.contextWindowObject,self.newShape)
+ self.parent.terminateContextWindow()
+
+ def getInfo(self,value):
+ """ Find out the size of an arbitrary Asymptote pen """
+ self.asyEngine = self.parent.asyEngine
+ assert isinstance(self.asyEngine, x2a.AsymptoteEngine)
+ assert self.asyEngine.active
+
+ fout = self.asyEngine.ostream
+ fin = self.asyEngine.istream
+
+ fout.write("write(_outpipe,{},endl);\n".format(value))
+ fout.write(self.asyEngine.xasy)
+ fout.flush()
+
+ return fin.readline()
+
+ def getPattern(self,pattern,path):
+ """ Find out the adjusted pattern of an Asymptote pen """
+ self.asyEngine = self.parent.asyEngine
+ assert isinstance(self.asyEngine, x2a.AsymptoteEngine)
+ assert self.asyEngine.active
+
+ fout = self.asyEngine.ostream
+ fin = self.asyEngine.istream
+
+ #fout.write("pen p=adjust({pattern},arclength({path}),cyclic({path}));\n")
+ #print(f"write(_outpipe,adjust({pattern},arclength({path}),cyclic({path})),endl);\n")
+ fout.write(f"write(_outpipe,adjust({pattern},arclength({path}),cyclic({path})),endl);\n")
+ fout.write(self.asyEngine.xasy)
+ fout.flush()
+
+ return fin.readline()
+
+ def renderLineStyle(self):
+ #Should only get called with asy shapes
+ if not self.newShape:
+ self.newShape=self.shape
+ if not isinstance(self.newShape,x2a.asyArrow):
+ rawPattern = self.getPattern(self.lineList[self.linestyleButton.currentIndex()],self.newShape.path.getCode())
+ else:
+ #self.newShape.updateCode() #idk if this is necessary.
+ rawPattern = self.getPattern(self.lineList[self.linestyleButton.currentIndex()],self.newShape.code)
+
+ pattern = []
+ if len(rawPattern) == 5:
+ pattern=[1,0]
+ else:
+ for value in rawPattern[2:-3].split(' '):
+ pattern.append(float(value)+1)
+
+ try:
+ self.newShape.pen.setDashPattern(pattern) #pen is going to be a asyPen, add as an attribute
+ except:
+ print("Pen format error")
+
+ def pickColor(self):
+ self.colorDialog = Qw.QColorDialog(x2a.asyPen.convertToQColor(self.shape.pen.color), self)
+ self.colorDialog.show()
+ result = self.colorDialog.exec()
+ if result == Qw.QDialog.Accepted:
+ self.shape.pen.setColorFromQColor(self.colorDialog.selectedColor())
+ self.parent.updateFrameDispColor()
+
+ def pickFillColor(self): #This is a copy of the above, how do you set the var as it is set?
+ self.colorDialog = Qw.QColorDialog(x2a.asyPen.convertToQColor(self.shape.fillPen.color), self)
+ self.colorDialog.show()
+ result = self.colorDialog.exec()
+ if result == Qw.QDialog.Accepted:
+ self.shape.fillPen.setColorFromQColor(self.colorDialog.selectedColor())
+ self.parent.updateFrameDispColor()
+
+ @Qc.pyqtSlot()
+ def on_click(self):
+ print("\n")
+ for currentQTableWidgetItem in self.tableWidget.selectedItems():
+ print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())
diff --git a/Build/source/utils/asymptote/GUI/Window1.py b/Build/source/utils/asymptote/GUI/Window1.py
index 134d3cd1968..21d9691e642 100644
--- a/Build/source/utils/asymptote/GUI/Window1.py
+++ b/Build/source/utils/asymptote/GUI/Window1.py
@@ -32,6 +32,7 @@ import xasyStrings as xs
import PrimitiveShape
import InplaceAddObj
+import ContextWindow
import CustMatTransform
import SetCustomAnchor
@@ -127,6 +128,7 @@ class MainWindow1(Qw.QMainWindow):
devicePixelRatio=self.devicePixelRatio()
self.ui.setupUi(self)
self.ui.menubar.setNativeMenuBar(False)
+ self.setWindowIcon(Qg.QIcon("../asy.ico"))
self.settings = xo.BasicConfigs.defaultOpt
self.keyMaps = xo.BasicConfigs.keymaps
@@ -229,7 +231,7 @@ class MainWindow1(Qw.QMainWindow):
self.previewCurve = None
self.mouseDown = False
- self.globalObjectCounter = 0
+ self.globalObjectCounter = 1
self.fileItems = []
self.drawObjects = []
@@ -569,9 +571,6 @@ class MainWindow1(Qw.QMainWindow):
self.ui.txtTerminalPrompt.clear()
def btnFillOnClick(self, checked):
- if self.currentModeStack == [SelectionMode.selectEdit]:
- if isinstance(self.addMode,xbi.InteractiveBezierEditor):
- self.addMode.swapObjFill() #Check for crashes
self.currAddOptions['fill'] = checked
self.ui.btnOpenCurve.setEnabled(not checked)
self.ui.btnOpenPoly.setEnabled(not checked)
@@ -893,16 +892,34 @@ class MainWindow1(Qw.QMainWindow):
if result:
self.execCustomCommand(commandText)
- def addXasyShapeFromPath(self, path, pen = None, transform = x2a.identity(), key = None):
+ def addXasyShapeFromPath(self, path, pen = None, transform = x2a.identity(), key = None, fill = False):
+ dashPattern = pen['dashPattern'] #?
if not pen:
pen = self.currentPen
else:
pen = x2a.asyPen(self.asyEngine, color = pen['color'], width = pen['width'], pen_options = pen['options'])
+ if dashPattern:
+ pen.setDashPattern(dashPattern)
newItem = x2a.xasyShape(path, self.asyEngine, pen = pen, transform = transform)
+ if fill:
+ newItem.swapFill()
newItem.setKey(key)
self.fileItems.append(newItem)
+ def addXasyArrowFromPath(self, pen, transform, key, arrowSettings, code, dashPattern = None):
+ if not pen:
+ pen = self.currentPen
+ else:
+ pen = x2a.asyPen(self.asyEngine, color = pen['color'], width = pen['width'], pen_options = pen['options'])
+ if dashPattern:
+ pen.setDashPattern(dashPattern)
+
+ newItem = x2a.asyArrow(self.asyEngine, pen, transform, key, canvas=self.xasyDrawObj, code=code)
+ newItem.setKey(key)
+ newItem.arrowSettings = arrowSettings
+ self.fileItems.append(newItem)
+
def addXasyTextFromData(self, text, location, pen, transform, key, align, fontSize):
if not pen:
pen = self.currentPen
@@ -998,6 +1015,8 @@ class MainWindow1(Qw.QMainWindow):
ext = 'asy'
else:
ext = ext[1][1:]
+ if ext == '':
+ ext='asy'
if ext == 'asy':
pathToFile = os.path.splitext(file)[0]+'.'+ext
asyFile = io.open(os.path.realpath(pathToFile), 'w')
@@ -1060,9 +1079,10 @@ class MainWindow1(Qw.QMainWindow):
for item in xasyObjects['objects']:
key=item['transfKey']
- if(key) in obj.transfKeymap.keys():
- continue
- obj.maxKey=max(obj.maxKey,int(key))
+ if existsAsy:
+ if(key) in obj.transfKeymap.keys():
+ continue
+ obj.maxKey=max(obj.maxKey,int(key))
if item['type'] == 'xasyScript':
print("Uh oh, there should not be any asy objects loaded")
@@ -1078,12 +1098,18 @@ class MainWindow1(Qw.QMainWindow):
linkSet = item['links']
path = x2a.asyPath(self.asyEngine)
path.initFromNodeList(nodeSet, linkSet)
- self.addXasyShapeFromPath(path, pen = item['pen'], transform = x2a.asyTransform(item['transform']), key = item['transfKey'])
+ self.addXasyShapeFromPath(path, pen = item['pen'], transform = x2a.asyTransform(item['transform']), key = item['transfKey'], fill = item['fill'])
+
+ elif item['type'] == 'asyArrow':
+ self.addXasyArrowFromPath(item['pen'], x2a.asyTransform(item['transform']), item['transfKey'], item['settings'], item['code'])
+ #self.addXasyArrowFromPath(item['oldpath'], item['pen'], x2a.asyTransform(item['transform']), item['transfKey'], item['settings'])
+
else:
print("ERROR")
self.asy2psmap = x2a.asyTransform(xasyObjects['asy2psmap'])
- self.globalObjectCounter = obj.maxKey+1
+ if existsAsy:
+ self.globalObjectCounter = obj.maxKey+1
self.asyfyCanvas()
@@ -1923,7 +1949,7 @@ class MainWindow1(Qw.QMainWindow):
preCanvas.setPen(minorGridCol)
self.makePenCosmetic(preCanvas)
for xMinor in range(1, minorGridCount + 1):
- xCoord = x + ((xMinor / (minorGridCount + 1)) * majorGrid)
+ xCoord = round(x + ((xMinor / (minorGridCount + 1)) * majorGrid))
preCanvas.drawLine(Qc.QLine(xCoord, -9999, xCoord, 9999))
preCanvas.drawLine(Qc.QLine(-xCoord, -9999, -xCoord, 9999))
@@ -1931,20 +1957,22 @@ class MainWindow1(Qw.QMainWindow):
preCanvas.setPen(minorGridCol)
self.makePenCosmetic(preCanvas)
for yMinor in range(1, minorGridCount + 1):
- yCoord = y + ((yMinor / (minorGridCount + 1)) * majorGrid)
+ yCoord = round(y + ((yMinor / (minorGridCount + 1)) * majorGrid))
preCanvas.drawLine(Qc.QLine(-9999, yCoord, 9999, yCoord))
preCanvas.drawLine(Qc.QLine(-9999, -yCoord, 9999, -yCoord))
preCanvas.setPen(majorGridCol)
self.makePenCosmetic(preCanvas)
- preCanvas.drawLine(Qc.QLine(-9999, y, 9999, y))
- preCanvas.drawLine(Qc.QLine(-9999, -y, 9999, -y))
+ roundY = round(y)
+ preCanvas.drawLine(Qc.QLine(-9999, roundY, 9999, roundY))
+ preCanvas.drawLine(Qc.QLine(-9999, -roundY, 9999, -roundY))
for x in np.arange(0, 2 * x_range + 1, majorGrid):
preCanvas.setPen(majorGridCol)
self.makePenCosmetic(preCanvas)
- preCanvas.drawLine(Qc.QLine(x, -9999, x, 9999))
- preCanvas.drawLine(Qc.QLine(-x, -9999, -x, 9999))
+ roundX = round(x)
+ preCanvas.drawLine(Qc.QLine(roundX, -9999, roundX, 9999))
+ preCanvas.drawLine(Qc.QLine(-roundX, -9999, -roundX, 9999))
def drawPolarGrid(self, preCanvas):
center = Qc.QPointF(0, 0)
@@ -2046,7 +2074,7 @@ class MainWindow1(Qw.QMainWindow):
with Qg.QPainter(self.postCanvasPixmap) as postCanvas:
postCanvas.setRenderHints(self.mainCanvas.renderHints())
postCanvas.setTransform(self.getScrsTransform())
- # self.makePenCosmetic(postCanvas)
+ self.makePenCosmetic(postCanvas)
self.drawTransformPreview(postCanvas)
@@ -2423,3 +2451,60 @@ class MainWindow1(Qw.QMainWindow):
self.quickUpdate()
else:
self.ui.statusbar.showMessage('No object to paste')
+
+ def contextMenuEvent(self, event):
+ #Note that we can't get anything from self.selectOnHover() here.
+ try:
+ self.contextWindowIndex = self.selectObject()[0] #for arrowifying
+ maj = self.contextWindowIndex[0]
+ except:
+ return
+
+ if self.fileItems[maj] is not None:
+ self.contextWindowObject = self.fileItems[maj] #For arrowifying
+ self.contextWindow = ContextWindow.AnotherWindow(self.fileItems[maj],self)
+ self.contextWindow.setMinimumWidth(420)
+ #self.setCentralWidget(self.contextWindow) #I don't know what this does tbh.
+ self.contextWindow.show()
+
+ def focusInEvent(self,event):
+ if self.mainCanvas.isActive():
+ self.quickUpdate()
+
+ def replaceObject(self,objectIndex,newObject):
+ maj, minor = self.contextWindowIndex
+ selectedObj = self.drawObjects[maj][minor]
+
+ parent = selectedObj.parent()
+
+ if isinstance(parent, x2a.xasyScript):
+ objKey=(selectedObj.key, selectedObj.keyIndex)
+ self.hiddenKeys.add(objKey)
+ self.undoRedoStack.add(self.createAction(
+ SoftDeletionChanges(selectedObj.parent(), objKey)
+ ))
+ self.softDeleteObj((maj, minor))
+ else:
+ index = self.fileItems.index(selectedObj.parent())
+
+ self.undoRedoStack.add(self.createAction(
+ HardDeletionChanges(selectedObj.parent(), index)
+ ))
+
+ self.fileItems.remove(selectedObj.parent())
+
+ self.fileItems.append(newObject)
+ self.drawObjects.append(newObject.generateDrawObjects(True)) #THIS DOES WORK, IT'S JUST REGENERATING THE SHAPE.
+
+ self.checkUndoRedoButtons()
+ self.fileChanged = True
+
+ self.clearSelection()
+ #self.asyfyCanvas()
+ #self.quickUpdate()
+
+ def terminateContextWindow(self):
+ if self.contextWindow is not None:
+ self.contextWindow.close()
+ self.asyfyCanvas()
+ self.quickUpdate()
diff --git a/Build/source/utils/asymptote/GUI/requirements.txt b/Build/source/utils/asymptote/GUI/requirements.txt
index b319223a3c0..6e0a44196a0 100644
--- a/Build/source/utils/asymptote/GUI/requirements.txt
+++ b/Build/source/utils/asymptote/GUI/requirements.txt
@@ -1,4 +1,4 @@
-numpy==1.21.0
+numpy==1.22.0
cson==0.7
PyQt5==5.11
rsvg-convert==2.42.3
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-arrow-back.svg b/Build/source/utils/asymptote/GUI/res/icons/android-arrow-back.svg
index 79cfe814a1b..309afd31065 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-arrow-back.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-arrow-back.svg
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_8_">
- <g>
- <path d="M427,234.625H167.296l119.702-119.702L256,85L85,256l171,171l29.922-29.924L167.296,277.375H427V234.625z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_8_">
+ <g>
+ <path d="M427,234.625H167.296l119.702-119.702L256,85L85,256l171,171l29.922-29.924L167.296,277.375H427V234.625z"/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-arrow-forward.svg b/Build/source/utils/asymptote/GUI/res/icons/android-arrow-forward.svg
index d63794dcc0a..e40696fd38b 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-arrow-forward.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-arrow-forward.svg
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_8_">
- <g>
- <path d="M85,277.375h259.704L225.002,397.077L256,427l171-171L256,85l-29.922,29.924l118.626,119.701H85V277.375z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_8_">
+ <g>
+ <path d="M85,277.375h259.704L225.002,397.077L256,427l171-171L256,85l-29.922,29.924l118.626,119.701H85V277.375z"/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-camera.svg b/Build/source/utils/asymptote/GUI/res/icons/android-camera.svg
index 73aeaabe49c..2dd4720ad65 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-camera.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-camera.svg
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
- <circle cx="256" cy="280" r="63"/>
- <path d="M440,96h-88l-32-32H192l-32,32H72c-22.092,0-40,17.908-40,40v272c0,22.092,17.908,40,40,40h368c22.092,0,40-17.908,40-40
- V136C480,113.908,462.092,96,440,96z M256,392c-61.855,0-112-50.145-112-112s50.145-112,112-112s112,50.145,112,112
- S317.855,392,256,392z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+ <circle cx="256" cy="280" r="63"/>
+ <path d="M440,96h-88l-32-32H192l-32,32H72c-22.092,0-40,17.908-40,40v272c0,22.092,17.908,40,40,40h368c22.092,0,40-17.908,40-40
+ V136C480,113.908,462.092,96,440,96z M256,392c-61.855,0-112-50.145-112-112s50.145-112,112-112s112,50.145,112,112
+ S317.855,392,256,392z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-close.svg b/Build/source/utils/asymptote/GUI/res/icons/android-close.svg
index aee0f9f630e..3184bc13d8c 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-close.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-close.svg
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_5_">
- <g>
- <polygon points="405,136.798 375.202,107 256,226.202 136.798,107 107,136.798 226.202,256 107,375.202 136.798,405 256,285.798
- 375.202,405 405,375.202 285.798,256 "/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_5_">
+ <g>
+ <polygon points="405,136.798 375.202,107 256,226.202 136.798,107 107,136.798 226.202,256 107,375.202 136.798,405 256,285.798
+ 375.202,405 405,375.202 285.798,256 "/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-color-palette.svg b/Build/source/utils/asymptote/GUI/res/icons/android-color-palette.svg
index d700fe6b9d2..fddb19cfead 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-color-palette.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-color-palette.svg
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_12_">
- <g>
- <path d="M256,64C150.401,64,64,150.401,64,256c0,105.604,86.401,192,192,192c18.136,0,32-13.864,32-32
- c0-8.531-3.198-16-8.531-21.333c-5.333-5.334-8.531-12.803-8.531-21.334c0-18.135,13.864-32,32-32h38.396
- c58.667,0,106.667-48,106.667-106.666C448,140.802,361.604,64,256,64z M138.667,256c-18.136,0-32-13.864-32-32s13.864-32,32-32
- c18.135,0,32,13.864,32,32S156.802,256,138.667,256z M202.667,170.667c-18.136,0-32-13.865-32-32c0-18.136,13.864-32,32-32
- c18.135,0,32,13.864,32,32C234.667,156.802,220.802,170.667,202.667,170.667z M309.333,170.667c-18.135,0-32-13.865-32-32
- c0-18.136,13.865-32,32-32c18.136,0,32,13.864,32,32C341.333,156.802,327.469,170.667,309.333,170.667z M373.333,256
- c-18.135,0-32-13.864-32-32s13.865-32,32-32c18.136,0,32,13.864,32,32S391.469,256,373.333,256z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_12_">
+ <g>
+ <path d="M256,64C150.401,64,64,150.401,64,256c0,105.604,86.401,192,192,192c18.136,0,32-13.864,32-32
+ c0-8.531-3.198-16-8.531-21.333c-5.333-5.334-8.531-12.803-8.531-21.334c0-18.135,13.864-32,32-32h38.396
+ c58.667,0,106.667-48,106.667-106.666C448,140.802,361.604,64,256,64z M138.667,256c-18.136,0-32-13.864-32-32s13.864-32,32-32
+ c18.135,0,32,13.864,32,32S156.802,256,138.667,256z M202.667,170.667c-18.136,0-32-13.865-32-32c0-18.136,13.864-32,32-32
+ c18.135,0,32,13.864,32,32C234.667,156.802,220.802,170.667,202.667,170.667z M309.333,170.667c-18.135,0-32-13.865-32-32
+ c0-18.136,13.865-32,32-32c18.136,0,32,13.864,32,32C341.333,156.802,327.469,170.667,309.333,170.667z M373.333,256
+ c-18.135,0-32-13.864-32-32s13.865-32,32-32c18.136,0,32,13.864,32,32S391.469,256,373.333,256z"/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-delete.svg b/Build/source/utils/asymptote/GUI/res/icons/android-delete.svg
index 49cfa5ade43..9159a4859f3 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-delete.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-delete.svg
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
- <path d="M128,405.429C128,428.846,147.198,448,170.667,448h170.667C364.802,448,384,428.846,384,405.429V160H128V405.429z M416,96
- h-80l-26.785-32H202.786L176,96H96v32h320V96z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+ <path d="M128,405.429C128,428.846,147.198,448,170.667,448h170.667C364.802,448,384,428.846,384,405.429V160H128V405.429z M416,96
+ h-80l-26.785-32H202.786L176,96H96v32h320V96z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-done.svg b/Build/source/utils/asymptote/GUI/res/icons/android-done.svg
index 4bcb946f058..fbd6e5cd7be 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-done.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-done.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_1_">
- <g>
- <g>
- <polygon points="186.301,339.893 96,249.461 64,279.968 186.301,402 448,140.506 416,110 "/>
- </g>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_1_">
+ <g>
+ <g>
+ <polygon points="186.301,339.893 96,249.461 64,279.968 186.301,402 448,140.506 416,110 "/>
+ </g>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-expand.svg b/Build/source/utils/asymptote/GUI/res/icons/android-expand.svg
index 51be003c07a..beb08b2eeed 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-expand.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-expand.svg
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
- <polygon points="396.795,396.8 320,396.8 320,448 448,448 448,320 396.795,320 "/>
- <polygon points="396.8,115.205 396.8,192 448,192 448,64 320,64 320,115.205 "/>
- <polygon points="115.205,115.2 192,115.2 192,64 64,64 64,192 115.205,192 "/>
- <polygon points="115.2,396.795 115.2,320 64,320 64,448 192,448 192,396.795 "/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+ <polygon points="396.795,396.8 320,396.8 320,448 448,448 448,320 396.795,320 "/>
+ <polygon points="396.8,115.205 396.8,192 448,192 448,64 320,64 320,115.205 "/>
+ <polygon points="115.205,115.2 192,115.2 192,64 64,64 64,192 115.205,192 "/>
+ <polygon points="115.2,396.795 115.2,320 64,320 64,448 192,448 192,396.795 "/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-folder-open.svg b/Build/source/utils/asymptote/GUI/res/icons/android-folder-open.svg
index fa77fea2154..19545aa6bc8 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-folder-open.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-folder-open.svg
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<path d="M437.334,144H256.006l-42.668-48H74.666C51.197,96,32,115.198,32,138.667v234.666C32,396.802,51.197,416,74.666,416h362.668
- C460.803,416,480,396.802,480,373.333V186.667C480,163.198,460.803,144,437.334,144z M448,373.333
- c0,5.782-4.885,10.667-10.666,10.667H74.666C68.884,384,64,379.115,64,373.333V176h373.334c5.781,0,10.666,4.885,10.666,10.667
- V373.333z"/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M437.334,144H256.006l-42.668-48H74.666C51.197,96,32,115.198,32,138.667v234.666C32,396.802,51.197,416,74.666,416h362.668
+ C460.803,416,480,396.802,480,373.333V186.667C480,163.198,460.803,144,437.334,144z M448,373.333
+ c0,5.782-4.885,10.667-10.666,10.667H74.666C68.884,384,64,379.115,64,373.333V176h373.334c5.781,0,10.666,4.885,10.666,10.667
+ V373.333z"/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-hand.svg b/Build/source/utils/asymptote/GUI/res/icons/android-hand.svg
index 5035d875be1..5fdc8100db6 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-hand.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-hand.svg
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<path d="M450.679,273.5c-14.585-14.577-36.054-15.89-50.639-1.312l-41.687,41.664c-10.852,10.836-23.93,10.859-31.564,1.852
- c-5.057-5.968-3.061-24.374-1.644-36.049l20.907-171.849c1.867-15.353-9.07-30.185-24.43-32.051
- c-15.358-1.867-29.322,9.939-31.191,25.289L267.37,236.021c-1.205,3.358-3.79,3.938-4.081-0.582L255.44,60
- c0-15.465-12.542-28-28.014-28c-15.473,0-28.015,12.535-28.015,28l-0.552,176.752c0.146,2.04-1.604,2.624-1.92,0.294L172.016,99.077
- c-2.75-15.219-17.323-26.203-32.548-23.453c-15.227,2.748-25.339,18.187-22.591,33.403l22.193,161.455
- c0.023,2.872-0.941,4.513-2.308,0.831l-33.109-88.517c-5.18-14.572-21.196-23.065-35.776-17.889
- c-14.579,5.177-22.201,22.061-17.023,36.631l58.042,189.625c0.303,1.046,0.624,2.085,0.953,3.118l0.121,0.39
- c0.011,0.031,0.025,0.058,0.035,0.088C126.079,444.233,172.57,480,227.427,480c35.116,0,71.591-12.378,99.357-33.672
- c0.001,0,0.003-0.002,0.003-0.002c29.99-18.051,126.071-121.347,126.071-121.347C467.445,310.402,465.266,288.08,450.679,273.5z"/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<path d="M450.679,273.5c-14.585-14.577-36.054-15.89-50.639-1.312l-41.687,41.664c-10.852,10.836-23.93,10.859-31.564,1.852
+ c-5.057-5.968-3.061-24.374-1.644-36.049l20.907-171.849c1.867-15.353-9.07-30.185-24.43-32.051
+ c-15.358-1.867-29.322,9.939-31.191,25.289L267.37,236.021c-1.205,3.358-3.79,3.938-4.081-0.582L255.44,60
+ c0-15.465-12.542-28-28.014-28c-15.473,0-28.015,12.535-28.015,28l-0.552,176.752c0.146,2.04-1.604,2.624-1.92,0.294L172.016,99.077
+ c-2.75-15.219-17.323-26.203-32.548-23.453c-15.227,2.748-25.339,18.187-22.591,33.403l22.193,161.455
+ c0.023,2.872-0.941,4.513-2.308,0.831l-33.109-88.517c-5.18-14.572-21.196-23.065-35.776-17.889
+ c-14.579,5.177-22.201,22.061-17.023,36.631l58.042,189.625c0.303,1.046,0.624,2.085,0.953,3.118l0.121,0.39
+ c0.011,0.031,0.025,0.058,0.035,0.088C126.079,444.233,172.57,480,227.427,480c35.116,0,71.591-12.378,99.357-33.672
+ c0.001,0,0.003-0.002,0.003-0.002c29.99-18.051,126.071-121.347,126.071-121.347C467.445,310.402,465.266,288.08,450.679,273.5z"/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-locate.svg b/Build/source/utils/asymptote/GUI/res/icons/android-locate.svg
index e2dd098cbd3..a7b72bc4b1c 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-locate.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-locate.svg
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon">
- <g>
- <path d="M256,176c-44.004,0-80.001,36-80.001,80c0,44.004,35.997,80,80.001,80c44.005,0,79.999-35.996,79.999-80
- C335.999,212,300.005,176,256,176z M446.938,234.667c-9.605-88.531-81.074-160-169.605-169.599V32h-42.666v33.067
- c-88.531,9.599-160,81.068-169.604,169.599H32v42.667h33.062c9.604,88.531,81.072,160,169.604,169.604V480h42.666v-33.062
- c88.531-9.604,160-81.073,169.605-169.604H480v-42.667H446.938z M256,405.333c-82.137,0-149.334-67.198-149.334-149.333
- c0-82.136,67.197-149.333,149.334-149.333c82.135,0,149.332,67.198,149.332,149.333C405.332,338.135,338.135,405.333,256,405.333z
- "/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon">
+ <g>
+ <path d="M256,176c-44.004,0-80.001,36-80.001,80c0,44.004,35.997,80,80.001,80c44.005,0,79.999-35.996,79.999-80
+ C335.999,212,300.005,176,256,176z M446.938,234.667c-9.605-88.531-81.074-160-169.605-169.599V32h-42.666v33.067
+ c-88.531,9.599-160,81.068-169.604,169.599H32v42.667h33.062c9.604,88.531,81.072,160,169.604,169.604V480h42.666v-33.062
+ c88.531-9.604,160-81.073,169.605-169.604H480v-42.667H446.938z M256,405.333c-82.137,0-149.334-67.198-149.334-149.333
+ c0-82.136,67.197-149.333,149.334-149.333c82.135,0,149.332,67.198,149.332,149.333C405.332,338.135,338.135,405.333,256,405.333z
+ "/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-off.svg b/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-off.svg
index d36fa657c03..59042e31418 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-off.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-off.svg
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_20_">
- <g>
- <path d="M256,48C141.601,48,48,141.601,48,256s93.601,208,208,208s208-93.601,208-208S370.399,48,256,48z M256,422.399
- c-91.518,0-166.399-74.882-166.399-166.399S164.482,89.6,256,89.6S422.4,164.482,422.4,256S347.518,422.399,256,422.399z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_20_">
+ <g>
+ <path d="M256,48C141.601,48,48,141.601,48,256s93.601,208,208,208s208-93.601,208-208S370.399,48,256,48z M256,422.399
+ c-91.518,0-166.399-74.882-166.399-166.399S164.482,89.6,256,89.6S422.4,164.482,422.4,256S347.518,422.399,256,422.399z"/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-on.svg b/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-on.svg
index 1f7f54c0f24..06c0235e9fe 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-on.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-radio-button-on.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g id="Icon_21_">
- <g>
- <path d="M256,152c-57.2,0-104,46.8-104,104s46.8,104,104,104s104-46.8,104-104S313.2,152,256,152z M256,48
- C141.601,48,48,141.601,48,256s93.601,208,208,208s208-93.601,208-208S370.399,48,256,48z M256,422.4
- c-91.518,0-166.4-74.883-166.4-166.4S164.482,89.6,256,89.6S422.4,164.482,422.4,256S347.518,422.4,256,422.4z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g id="Icon_21_">
+ <g>
+ <path d="M256,152c-57.2,0-104,46.8-104,104s46.8,104,104,104s104-46.8,104-104S313.2,152,256,152z M256,48
+ C141.601,48,48,141.601,48,256s93.601,208,208,208s208-93.601,208-208S370.399,48,256,48z M256,422.4
+ c-91.518,0-166.4-74.883-166.4-166.4S164.482,89.6,256,89.6S422.4,164.482,422.4,256S347.518,422.4,256,422.4z"/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/android-refresh.svg b/Build/source/utils/asymptote/GUI/res/icons/android-refresh.svg
index 066f7d22c6b..5b8867c2e88 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/android-refresh.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/android-refresh.svg
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
- <path d="M256,388c-72.597,0-132-59.405-132-132c0-72.601,59.403-132,132-132c36.3,0,69.299,15.4,92.406,39.601L278,234h154V80
- l-51.698,51.702C348.406,99.798,304.406,80,256,80c-96.797,0-176,79.203-176,176s78.094,176,176,176
- c81.045,0,148.287-54.134,169.401-128H378.85C360.105,353.561,311.712,388,256,388z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+ <path d="M256,388c-72.597,0-132-59.405-132-132c0-72.601,59.403-132,132-132c36.3,0,69.299,15.4,92.406,39.601L278,234h154V80
+ l-51.698,51.702C348.406,99.798,304.406,80,256,80c-96.797,0-176,79.203-176,176s78.094,176,176,176
+ c81.045,0,148.287-54.134,169.401-128H378.85C360.105,353.561,311.712,388,256,388z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/arrow-move.svg b/Build/source/utils/asymptote/GUI/res/icons/arrow-move.svg
index 1d4263f45a2..52541875355 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/arrow-move.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/arrow-move.svg
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<polygon points="480,256 384,160 384,236 276,236 276,128 352,128 256,32 160,128 236,128 236,236 128,236 128,160 32,256 128,352
- 128,276 236,276 236,384 160,384 256,480 352,384 275.8,384 275.4,275.5 384,275.8 384,352 "/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<polygon points="480,256 384,160 384,236 276,236 276,128 352,128 256,32 160,128 236,128 236,236 128,236 128,160 32,256 128,352
+ 128,276 236,276 236,384 160,384 256,480 352,384 275.8,384 275.4,275.5 384,275.8 384,352 "/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/arrow-resize.svg b/Build/source/utils/asymptote/GUI/res/icons/arrow-resize.svg
index a9c3b3cc140..24feb2556c4 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/arrow-resize.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/arrow-resize.svg
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<polygon points="288,96 337.9,145.9 274,209.7 274,209.7 145.9,337.9 96,288 96,416 224,416 174.1,366.1 357.4,182.9 366.1,174.1
- 416,224 416,96 "/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<polygon points="288,96 337.9,145.9 274,209.7 274,209.7 145.9,337.9 96,288 96,416 224,416 174.1,366.1 357.4,182.9 366.1,174.1
+ 416,224 416,96 "/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/brush.svg b/Build/source/utils/asymptote/GUI/res/icons/brush.svg
index 0c6a54340bd..da358605d89 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/brush.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/brush.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
- <path d="M48.451,464.828c40.023-0.315,45.01-9.955,58.052-50.132c24.057-63.408,132.419,16.591,65.269,44.374
- C104.622,486.852,8.428,465.143,48.451,464.828z"/>
- <path d="M458.857,46.902c-19.417-15.647-51.592-7.938-71.864,17.219L181.645,355.849c-20.272,25.154-20.171,20.347-0.754,35.992
- c19.417,15.648,14.738,16.77,35.011-8.388l241.406-262.669C477.581,95.628,478.275,62.55,458.857,46.902z M406.065,81.825
- c0,0-3-3.5-13-11.5c15-24.5,44.5-20,44.5-20C409.565,66.825,406.065,81.825,406.065,81.825z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+ <path d="M48.451,464.828c40.023-0.315,45.01-9.955,58.052-50.132c24.057-63.408,132.419,16.591,65.269,44.374
+ C104.622,486.852,8.428,465.143,48.451,464.828z"/>
+ <path d="M458.857,46.902c-19.417-15.647-51.592-7.938-71.864,17.219L181.645,355.849c-20.272,25.154-20.171,20.347-0.754,35.992
+ c19.417,15.648,14.738,16.77,35.011-8.388l241.406-262.669C477.581,95.628,478.275,62.55,458.857,46.902z M406.065,81.825
+ c0,0-3-3.5-13-11.5c15-24.5,44.5-20,44.5-20C409.565,66.825,406.065,81.825,406.065,81.825z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/check.svg b/Build/source/utils/asymptote/GUI/res/icons/check.svg
index 08ee56d87de..5da9a531d64 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/check.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/check.svg
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Check" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
-<path d="M8.294,16.998c-0.435,0-0.847-0.203-1.111-0.553L3.61,11.724c-0.465-0.613-0.344-1.486,0.27-1.951
- c0.615-0.467,1.488-0.344,1.953,0.27l2.351,3.104l5.911-9.492c0.407-0.652,1.267-0.852,1.921-0.445
- c0.653,0.406,0.854,1.266,0.446,1.92L9.478,16.34c-0.242,0.391-0.661,0.635-1.12,0.656C8.336,16.998,8.316,16.998,8.294,16.998z"/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Check" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+<path d="M8.294,16.998c-0.435,0-0.847-0.203-1.111-0.553L3.61,11.724c-0.465-0.613-0.344-1.486,0.27-1.951
+ c0.615-0.467,1.488-0.344,1.953,0.27l2.351,3.104l5.911-9.492c0.407-0.652,1.267-0.852,1.921-0.445
+ c0.653,0.406,0.854,1.266,0.446,1.92L9.478,16.34c-0.242,0.391-0.661,0.635-1.12,0.656C8.336,16.998,8.316,16.998,8.294,16.998z"/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-left.svg b/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-left.svg
index 4035c688e8f..e2084b954ea 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-left.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Chevron_circled_left" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
- x="0px" y="0px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g transform='matrix(24 0 0 24 0 0)'>
-<path d="M11.302,6.776c-0.196-0.197-0.515-0.197-0.71,0L7.785,9.641c-0.196,0.199-0.196,0.52,0,0.717l2.807,2.864
- c0.195,0.199,0.514,0.198,0.71,0c0.196-0.197,0.196-0.518,0-0.717L9,10l2.302-2.506C11.498,7.296,11.498,6.976,11.302,6.776z
- M10,0.4c-5.302,0-9.6,4.298-9.6,9.6c0,5.303,4.298,9.6,9.6,9.6s9.6-4.297,9.6-9.6C19.6,4.698,15.302,0.4,10,0.4z M10,18.354
- c-4.615,0-8.354-3.74-8.354-8.354c0-4.614,3.739-8.354,8.354-8.354c4.613,0,8.354,3.74,8.354,8.354
- C18.354,14.614,14.613,18.354,10,18.354z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Chevron_circled_left" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px" y="0px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g transform='matrix(24 0 0 24 0 0)'>
+<path d="M11.302,6.776c-0.196-0.197-0.515-0.197-0.71,0L7.785,9.641c-0.196,0.199-0.196,0.52,0,0.717l2.807,2.864
+ c0.195,0.199,0.514,0.198,0.71,0c0.196-0.197,0.196-0.518,0-0.717L9,10l2.302-2.506C11.498,7.296,11.498,6.976,11.302,6.776z
+ M10,0.4c-5.302,0-9.6,4.298-9.6,9.6c0,5.303,4.298,9.6,9.6,9.6s9.6-4.297,9.6-9.6C19.6,4.698,15.302,0.4,10,0.4z M10,18.354
+ c-4.615,0-8.354-3.74-8.354-8.354c0-4.614,3.739-8.354,8.354-8.354c4.613,0,8.354,3.74,8.354,8.354
+ C18.354,14.614,14.613,18.354,10,18.354z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-right.svg b/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-right.svg
index f6e3a5e89c7..1d37a3903aa 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/chevron-with-circle-right.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Chevron_circled_right" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
- x="0px" y="0px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g transform='matrix(24 0 0 24 0 0)'>
-<path d="M11,10L8.698,7.494c-0.196-0.198-0.196-0.519,0-0.718c0.196-0.197,0.515-0.197,0.71,0l2.807,2.864
- c0.196,0.199,0.196,0.52,0,0.717l-2.807,2.864c-0.195,0.199-0.514,0.198-0.71,0c-0.196-0.197-0.196-0.518,0-0.717L11,10z M10,0.4
- c5.302,0,9.6,4.298,9.6,9.6c0,5.303-4.298,9.6-9.6,9.6S0.4,15.303,0.4,10C0.4,4.698,4.698,0.4,10,0.4z M10,18.354
- c4.613,0,8.354-3.74,8.354-8.354c0-4.614-3.741-8.354-8.354-8.354c-4.615,0-8.354,3.74-8.354,8.354
- C1.645,14.614,5.385,18.354,10,18.354z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Chevron_circled_right" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px" y="0px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g transform='matrix(24 0 0 24 0 0)'>
+<path d="M11,10L8.698,7.494c-0.196-0.198-0.196-0.519,0-0.718c0.196-0.197,0.515-0.197,0.71,0l2.807,2.864
+ c0.196,0.199,0.196,0.52,0,0.717l-2.807,2.864c-0.195,0.199-0.514,0.198-0.71,0c-0.196-0.197-0.196-0.518,0-0.717L11,10z M10,0.4
+ c5.302,0,9.6,4.298,9.6,9.6c0,5.303-4.298,9.6-9.6,9.6S0.4,15.303,0.4,10C0.4,4.698,4.698,0.4,10,0.4z M10,18.354
+ c4.613,0,8.354-3.74,8.354-8.354c0-4.614-3.741-8.354-8.354-8.354c-4.615,0-8.354,3.74-8.354,8.354
+ C1.645,14.614,5.385,18.354,10,18.354z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/circle.svg b/Build/source/utils/asymptote/GUI/res/icons/circle.svg
index e344602bcbe..1645280ddc3 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/circle.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/circle.svg
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Circle" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="512px" y="512px"
- viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g transform='matrix(24 0 0 24 0 0)'>
-<path d="M10,0.4C4.698,0.4,0.4,4.698,0.4,10C0.4,15.302,4.698,19.6,10,19.6c5.301,0,9.6-4.298,9.6-9.601
- C19.6,4.698,15.301,0.4,10,0.4z M10,17.599c-4.197,0-7.6-3.402-7.6-7.6S5.802,2.4,10,2.4c4.197,0,7.601,3.402,7.601,7.6
- S14.197,17.599,10,17.599z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Circle" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="512px" y="512px"
+ viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g transform='matrix(24 0 0 24 0 0)'>
+<path d="M10,0.4C4.698,0.4,0.4,4.698,0.4,10C0.4,15.302,4.698,19.6,10,19.6c5.301,0,9.6-4.298,9.6-9.601
+ C19.6,4.698,15.301,0.4,10,0.4z M10,17.599c-4.197,0-7.6-3.402-7.6-7.6S5.802,2.4,10,2.4c4.197,0,7.601,3.402,7.601,7.6
+ S14.197,17.599,10,17.599z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/close-round.svg b/Build/source/utils/asymptote/GUI/res/icons/close-round.svg
index d8b5554c5c1..e011f7bd657 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/close-round.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/close-round.svg
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<path d="M437.5,386.6L306.9,256l130.6-130.6c14.1-14.1,14.1-36.8,0-50.9c-14.1-14.1-36.8-14.1-50.9,0L256,205.1L125.4,74.5
- c-14.1-14.1-36.8-14.1-50.9,0c-14.1,14.1-14.1,36.8,0,50.9L205.1,256L74.5,386.6c-14.1,14.1-14.1,36.8,0,50.9
- c14.1,14.1,36.8,14.1,50.9,0L256,306.9l130.6,130.6c14.1,14.1,36.8,14.1,50.9,0C451.5,423.4,451.5,400.6,437.5,386.6z"/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<path d="M437.5,386.6L306.9,256l130.6-130.6c14.1-14.1,14.1-36.8,0-50.9c-14.1-14.1-36.8-14.1-50.9,0L256,205.1L125.4,74.5
+ c-14.1-14.1-36.8-14.1-50.9,0c-14.1,14.1-14.1,36.8,0,50.9L205.1,256L74.5,386.6c-14.1,14.1-14.1,36.8,0,50.9
+ c14.1,14.1,36.8,14.1,50.9,0L256,306.9l130.6,130.6c14.1,14.1,36.8,14.1,50.9,0C451.5,423.4,451.5,400.6,437.5,386.6z"/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/code.svg b/Build/source/utils/asymptote/GUI/res/icons/code.svg
index b62357776a9..d0a62b3bb6d 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/code.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/code.svg
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Code" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="24px" y="24px"
- viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g transform='matrix(24 0 0 24 0 0)'><path d="M5.719,14.75c-0.236,0-0.474-0.083-0.664-0.252L-0.005,10l5.341-4.748C5.748,4.887,6.38,4.922,6.747,5.335
- c0.367,0.413,0.33,1.045-0.083,1.412L3.005,10l3.378,3.002c0.413,0.367,0.45,0.999,0.083,1.412
- C6.269,14.637,5.994,14.75,5.719,14.75z M14.664,14.748L20.005,10l-5.06-4.498c-0.413-0.367-1.045-0.33-1.411,0.083
- c-0.367,0.413-0.33,1.045,0.083,1.412L16.995,10l-3.659,3.252c-0.413,0.367-0.45,0.999-0.083,1.412C13.45,14.887,13.725,15,14,15
- C14.236,15,14.474,14.917,14.664,14.748z M9.986,16.165l2-12c0.091-0.545-0.277-1.06-0.822-1.151
- c-0.547-0.092-1.061,0.277-1.15,0.822l-2,12c-0.091,0.545,0.277,1.06,0.822,1.151C8.892,16.996,8.946,17,9.001,17
- C9.481,17,9.905,16.653,9.986,16.165z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Code" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="24px" y="24px"
+ viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g transform='matrix(24 0 0 24 0 0)'><path d="M5.719,14.75c-0.236,0-0.474-0.083-0.664-0.252L-0.005,10l5.341-4.748C5.748,4.887,6.38,4.922,6.747,5.335
+ c0.367,0.413,0.33,1.045-0.083,1.412L3.005,10l3.378,3.002c0.413,0.367,0.45,0.999,0.083,1.412
+ C6.269,14.637,5.994,14.75,5.719,14.75z M14.664,14.748L20.005,10l-5.06-4.498c-0.413-0.367-1.045-0.33-1.411,0.083
+ c-0.367,0.413-0.33,1.045,0.083,1.412L16.995,10l-3.659,3.252c-0.413,0.367-0.45,0.999-0.083,1.412C13.45,14.887,13.725,15,14,15
+ C14.236,15,14.474,14.917,14.664,14.748z M9.986,16.165l2-12c0.091-0.545-0.277-1.06-0.822-1.151
+ c-0.547-0.092-1.061,0.277-1.15,0.822l-2,12c-0.091,0.545,0.277,1.06,0.822,1.151C8.892,16.996,8.946,17,9.001,17
+ C9.481,17,9.905,16.653,9.986,16.165z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/edit.svg b/Build/source/utils/asymptote/GUI/res/icons/edit.svg
index a0be3454e12..50d410ce59b 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/edit.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/edit.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
-
- <rect x="178.846" y="92.087" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 224.3476 631.1498)" width="128.085" height="354.049"/>
- <path d="M471.723,88.393l-48.115-48.114c-11.723-11.724-31.558-10.896-44.304,1.85l-45.202,45.203l90.569,90.568l45.202-45.202
- C482.616,119.952,483.445,100.116,471.723,88.393z"/>
- <polygon points="64.021,363.252 32,480 148.737,447.979 "/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+
+ <rect x="178.846" y="92.087" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 224.3476 631.1498)" width="128.085" height="354.049"/>
+ <path d="M471.723,88.393l-48.115-48.114c-11.723-11.724-31.558-10.896-44.304,1.85l-45.202,45.203l90.569,90.568l45.202-45.202
+ C482.616,119.952,483.445,100.116,471.723,88.393z"/>
+ <polygon points="64.021,363.252 32,480 148.737,447.979 "/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/eye.svg b/Build/source/utils/asymptote/GUI/res/icons/eye.svg
index 6b64633fce1..4b83a783f67 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/eye.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/eye.svg
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<g>
- <path d="M256,128c-81.9,0-145.7,48.8-224,128c67.4,67.7,124,128,224,128c99.9,0,173.4-76.4,224-126.6
- C428.2,198.6,354.8,128,256,128z M256,347.3c-49.4,0-89.6-41-89.6-91.3c0-50.4,40.2-91.3,89.6-91.3s89.6,41,89.6,91.3
- C345.6,306.4,305.4,347.3,256,347.3z"/>
- <g>
- <path d="M256,224c0-7.9,2.9-15.1,7.6-20.7c-2.5-0.4-5-0.6-7.6-0.6c-28.8,0-52.3,23.9-52.3,53.3c0,29.4,23.5,53.3,52.3,53.3
- s52.3-23.9,52.3-53.3c0-2.3-0.2-4.6-0.4-6.9c-5.5,4.3-12.3,6.9-19.8,6.9C270.3,256,256,241.7,256,224z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+ <path d="M256,128c-81.9,0-145.7,48.8-224,128c67.4,67.7,124,128,224,128c99.9,0,173.4-76.4,224-126.6
+ C428.2,198.6,354.8,128,256,128z M256,347.3c-49.4,0-89.6-41-89.6-91.3c0-50.4,40.2-91.3,89.6-91.3s89.6,41,89.6,91.3
+ C345.6,306.4,305.4,347.3,256,347.3z"/>
+ <g>
+ <path d="M256,224c0-7.9,2.9-15.1,7.6-20.7c-2.5-0.4-5-0.6-7.6-0.6c-28.8,0-52.3,23.9-52.3,53.3c0,29.4,23.5,53.3,52.3,53.3
+ s52.3-23.9,52.3-53.3c0-2.3-0.2-4.6-0.4-6.9c-5.5,4.3-12.3,6.9-19.8,6.9C270.3,256,256,241.7,256,224z"/>
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/grid.svg b/Build/source/utils/asymptote/GUI/res/icons/grid.svg
index 456e5011317..7100f22e850 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/grid.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/grid.svg
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<g>
- <g>
- <path d="M160,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z"
- />
- <path d="M288,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z"
- />
- <path d="M416,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z"
- />
- </g>
- <g>
- <path d="M160,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z"
- />
- <path d="M288,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z"
- />
- <path d="M416,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z"
- />
- </g>
- <g>
- <path d="M160,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z"
- />
- <path d="M288,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z"
- />
- <path d="M416,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z"
- />
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+ <g>
+ <path d="M160,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z"
+ />
+ <path d="M288,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z"
+ />
+ <path d="M416,153.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V153.3z"
+ />
+ </g>
+ <g>
+ <path d="M160,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z"
+ />
+ <path d="M288,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z"
+ />
+ <path d="M416,281.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V281.3z"
+ />
+ </g>
+ <g>
+ <path d="M160,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z"
+ />
+ <path d="M288,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z"
+ />
+ <path d="M416,409.3c0,3.7-3,6.7-6.7,6.7h-50.5c-3.7,0-6.7-3-6.7-6.7v-50.5c0-3.7,3-6.7,6.7-6.7h50.5c3.7,0,6.7,3,6.7,6.7V409.3z"
+ />
+ </g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/magnifying-glass.svg b/Build/source/utils/asymptote/GUI/res/icons/magnifying-glass.svg
index 1e93ba4f952..f1ac1ec321a 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/magnifying-glass.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/magnifying-glass.svg
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Magnifying_glass" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
- y="0px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g transform='matrix(24 0 0 24 0 0)'>
-<path d="M17.545,15.467l-3.779-3.779c0.57-0.935,0.898-2.035,0.898-3.21c0-3.417-2.961-6.377-6.378-6.377
- C4.869,2.1,2.1,4.87,2.1,8.287c0,3.416,2.961,6.377,6.377,6.377c1.137,0,2.2-0.309,3.115-0.844l3.799,3.801
- c0.372,0.371,0.975,0.371,1.346,0l0.943-0.943C18.051,16.307,17.916,15.838,17.545,15.467z M4.004,8.287
- c0-2.366,1.917-4.283,4.282-4.283c2.366,0,4.474,2.107,4.474,4.474c0,2.365-1.918,4.283-4.283,4.283
- C6.111,12.76,4.004,10.652,4.004,8.287z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Magnifying_glass" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
+ y="0px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g transform='matrix(24 0 0 24 0 0)'>
+<path d="M17.545,15.467l-3.779-3.779c0.57-0.935,0.898-2.035,0.898-3.21c0-3.417-2.961-6.377-6.378-6.377
+ C4.869,2.1,2.1,4.87,2.1,8.287c0,3.416,2.961,6.377,6.377,6.377c1.137,0,2.2-0.309,3.115-0.844l3.799,3.801
+ c0.372,0.371,0.975,0.371,1.346,0l0.943-0.943C18.051,16.307,17.916,15.838,17.545,15.467z M4.004,8.287
+ c0-2.366,1.917-4.283,4.282-4.283c2.366,0,4.474,2.107,4.474,4.474c0,2.365-1.918,4.283-4.283,4.283
+ C6.111,12.76,4.004,10.652,4.004,8.287z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/plus-round.svg b/Build/source/utils/asymptote/GUI/res/icons/plus-round.svg
index 465d937802b..b2d86e5083d 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/plus-round.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/plus-round.svg
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<path d="M417.4,224H288V94.6c0-16.9-14.3-30.6-32-30.6c-17.7,0-32,13.7-32,30.6V224H94.6C77.7,224,64,238.3,64,256
- c0,17.7,13.7,32,30.6,32H224v129.4c0,16.9,14.3,30.6,32,30.6c17.7,0,32-13.7,32-30.6V288h129.4c16.9,0,30.6-14.3,30.6-32
- C448,238.3,434.3,224,417.4,224z"/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<path d="M417.4,224H288V94.6c0-16.9-14.3-30.6-32-30.6c-17.7,0-32,13.7-32,30.6V224H94.6C77.7,224,64,238.3,64,256
+ c0,17.7,13.7,32,30.6,32H224v129.4c0,16.9,14.3,30.6,32,30.6c17.7,0,32-13.7,32-30.6V288h129.4c16.9,0,30.6-14.3,30.6-32
+ C448,238.3,434.3,224,417.4,224z"/>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/redo.svg b/Build/source/utils/asymptote/GUI/res/icons/redo.svg
index a8647d7a3c1..6c9d9c83fbb 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/redo.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/redo.svg
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 423.754 423.754" style="enable-background:new 0 0 423.754 423.754;" xml:space="preserve">
-<path d="M407.516,123.239l-27.717,11.48c18.585,44.869,18.585,94.291,0,139.159c-18.585,44.869-53.531,79.815-98.4,98.4
- c-22.438,9.293-46.004,13.94-69.579,13.939c-23.569-0.001-47.147-4.647-69.579-13.939c-44.869-18.585-79.815-53.531-98.4-98.4
- C13.507,200.647,34.758,118.71,90.758,68.644l60.801,60.801V7.521H29.635L69.514,47.4C5.222,105.826-18.985,200.6,16.123,285.359
- c21.652,52.272,62.364,92.984,114.636,114.636c26.137,10.826,53.599,16.239,81.061,16.239s54.924-5.413,81.06-16.239
- c52.272-21.652,92.984-62.364,114.637-114.636C429.167,233.087,429.167,175.511,407.516,123.239z"/>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 423.754 423.754" style="enable-background:new 0 0 423.754 423.754;" xml:space="preserve">
+<path d="M407.516,123.239l-27.717,11.48c18.585,44.869,18.585,94.291,0,139.159c-18.585,44.869-53.531,79.815-98.4,98.4
+ c-22.438,9.293-46.004,13.94-69.579,13.939c-23.569-0.001-47.147-4.647-69.579-13.939c-44.869-18.585-79.815-53.531-98.4-98.4
+ C13.507,200.647,34.758,118.71,90.758,68.644l60.801,60.801V7.521H29.635L69.514,47.4C5.222,105.826-18.985,200.6,16.123,285.359
+ c21.652,52.272,62.364,92.984,114.636,114.636c26.137,10.826,53.599,16.239,81.061,16.239s54.924-5.413,81.06-16.239
+ c52.272-21.652,92.984-62.364,114.637-114.636C429.167,233.087,429.167,175.511,407.516,123.239z"/>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/save.svg b/Build/source/utils/asymptote/GUI/res/icons/save.svg
index 7f9cbd56d3f..517b6944259 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/save.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/save.svg
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Save" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="512px" y="512px"
- viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g transform='matrix(24 0 0 24 0 0)'>
-<path d="M15.173,2H4C2.899,2,2,2.9,2,4v12c0,1.1,0.899,2,2,2h12c1.101,0,2-0.9,2-2V5.127L15.173,2z M14,8c0,0.549-0.45,1-1,1H7
- C6.45,9,6,8.549,6,8V3h8V8z M13,4h-2v4h2V4z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Save" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="512px" y="512px"
+ viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g transform='matrix(24 0 0 24 0 0)'>
+<path d="M15.173,2H4C2.899,2,2,2.9,2,4v12c0,1.1,0.899,2,2,2h12c1.101,0,2-0.9,2-2V5.127L15.173,2z M14,8c0,0.549-0.45,1-1,1H7
+ C6.45,9,6,8.549,6,8V3h8V8z M13,4h-2v4h2V4z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/social-python.svg b/Build/source/utils/asymptote/GUI/res/icons/social-python.svg
index 35fcdde7c10..ab523e4b6ca 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/social-python.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/social-python.svg
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-<g>
- <path d="M193.46,249.056c3.723-0.67,7.589-1.041,11.586-1.041L201.924,248h103.823c4.503,0,8.806-0.617,12.908-1.754
- c19.37-5.363,33.345-22.537,33.345-43.663v-30.822v-56.402c0-24.832-21.15-43.484-46.289-47.606
- c-15.931-2.624-39.258-3.827-55.089-3.749c-15.829,0.086-30.981,1.404-44.277,3.749C167.143,74.576,160,88.928,160,115.359V144h96
- v16H128.82c-35.628,0-64.538,42.571-64.813,95.242C64.005,255.495,64,255.747,64,256c0,9.523,0.94,18.72,2.685,27.404
- C74.648,323.07,99.451,352,128.82,352H144v-2.662v-43.273C144,279.238,164.146,254.332,193.46,249.056z M203.656,127.002
- c-9.592,0-17.384-7.785-17.384-17.403c0-9.664,7.774-17.52,17.384-17.52c9.574,0,17.399,7.855,17.399,17.52
- C221.056,119.217,213.246,127.002,203.656,127.002z"/>
- <path d="M443.951,222.543C434.78,186.021,411.033,160,383.18,160H368v2.626v38.046c0,33.915-22.286,58.474-49.489,62.681
- c-2.737,0.424-5.483,0.646-8.301,0.646H206.351c-4.518,0-8.904,0.584-13.049,1.672C174.18,270.689,160,286.6,160,307.236v32.922
- v54.305c0,24.832,24.977,39.426,49.481,46.551c29.327,8.531,61.267,10.068,96.366,0C329.15,434.354,352,420.893,352,394.463V368
- h-96v-16h127.18c25.24,0,47.107-21.365,57.814-52.549C445.474,286.404,448,271.641,448,256
- C448,244.232,446.567,232.962,443.951,222.543z M307.867,382.82c9.59,0,17.381,7.785,17.381,17.4
- c0,9.65-7.791,17.521-17.381,17.521c-9.577,0-17.399-7.871-17.399-17.521C290.468,390.59,298.274,382.82,307.867,382.82z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+ <path d="M193.46,249.056c3.723-0.67,7.589-1.041,11.586-1.041L201.924,248h103.823c4.503,0,8.806-0.617,12.908-1.754
+ c19.37-5.363,33.345-22.537,33.345-43.663v-30.822v-56.402c0-24.832-21.15-43.484-46.289-47.606
+ c-15.931-2.624-39.258-3.827-55.089-3.749c-15.829,0.086-30.981,1.404-44.277,3.749C167.143,74.576,160,88.928,160,115.359V144h96
+ v16H128.82c-35.628,0-64.538,42.571-64.813,95.242C64.005,255.495,64,255.747,64,256c0,9.523,0.94,18.72,2.685,27.404
+ C74.648,323.07,99.451,352,128.82,352H144v-2.662v-43.273C144,279.238,164.146,254.332,193.46,249.056z M203.656,127.002
+ c-9.592,0-17.384-7.785-17.384-17.403c0-9.664,7.774-17.52,17.384-17.52c9.574,0,17.399,7.855,17.399,17.52
+ C221.056,119.217,213.246,127.002,203.656,127.002z"/>
+ <path d="M443.951,222.543C434.78,186.021,411.033,160,383.18,160H368v2.626v38.046c0,33.915-22.286,58.474-49.489,62.681
+ c-2.737,0.424-5.483,0.646-8.301,0.646H206.351c-4.518,0-8.904,0.584-13.049,1.672C174.18,270.689,160,286.6,160,307.236v32.922
+ v54.305c0,24.832,24.977,39.426,49.481,46.551c29.327,8.531,61.267,10.068,96.366,0C329.15,434.354,352,420.893,352,394.463V368
+ h-96v-16h127.18c25.24,0,47.107-21.365,57.814-52.549C445.474,286.404,448,271.641,448,256
+ C448,244.232,446.567,232.962,443.951,222.543z M307.867,382.82c9.59,0,17.381,7.785,17.381,17.4
+ c0,9.65-7.791,17.521-17.381,17.521c-9.577,0-17.399-7.871-17.399-17.521C290.468,390.59,298.274,382.82,307.867,382.82z"/>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/res/icons/undo.svg b/Build/source/utils/asymptote/GUI/res/icons/undo.svg
index 76a7f0d32c8..2da3133f891 100644
--- a/Build/source/utils/asymptote/GUI/res/icons/undo.svg
+++ b/Build/source/utils/asymptote/GUI/res/icons/undo.svg
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 423.754 423.754" style="enable-background:new 0 0 423.754 423.754;" xml:space="preserve">
-<path d="M354.24,47.4l39.879-39.879H272.196v121.924l60.801-60.801c56,50.066,77.251,132.004,46.918,205.235
- c-18.585,44.869-53.531,79.815-98.4,98.4c-44.866,18.585-94.288,18.585-139.158,0c-44.869-18.585-79.815-53.531-98.4-98.4
- c-18.585-44.869-18.585-94.29,0-139.159l-27.717-11.48c-21.651,52.272-21.651,109.848,0,162.12
- c21.652,52.272,62.364,92.984,114.637,114.636c26.14,10.827,53.595,16.24,81.06,16.239c27.459-0.001,54.927-5.414,81.061-16.239
- c52.271-21.652,92.983-62.364,114.636-114.636C442.739,200.6,418.532,105.826,354.24,47.4z"/>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 423.754 423.754" style="enable-background:new 0 0 423.754 423.754;" xml:space="preserve">
+<path d="M354.24,47.4l39.879-39.879H272.196v121.924l60.801-60.801c56,50.066,77.251,132.004,46.918,205.235
+ c-18.585,44.869-53.531,79.815-98.4,98.4c-44.866,18.585-94.288,18.585-139.158,0c-44.869-18.585-79.815-53.531-98.4-98.4
+ c-18.585-44.869-18.585-94.29,0-139.159l-27.717-11.48c-21.651,52.272-21.651,109.848,0,162.12
+ c21.652,52.272,62.364,92.984,114.637,114.636c26.14,10.827,53.595,16.24,81.06,16.239c27.459-0.001,54.927-5.414,81.061-16.239
+ c52.271-21.652,92.983-62.364,114.636-114.636C442.739,200.6,418.532,105.826,354.24,47.4z"/>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+</svg>
diff --git a/Build/source/utils/asymptote/GUI/xasy2asy.py b/Build/source/utils/asymptote/GUI/xasy2asy.py
index 1829ce436ba..661426249d4 100755
--- a/Build/source/utils/asymptote/GUI/xasy2asy.py
+++ b/Build/source/utils/asymptote/GUI/xasy2asy.py
@@ -416,6 +416,10 @@ class asyPen(asyObj):
self.color = (0, 0, 0)
self.options = pen_options
self.width = width
+ self.style = "solid"
+ self.capStyle = QtCore.Qt.PenCapStyle.SquareCap
+ self.opacity = 255 #Should these be in a dictionary?
+ self.dashPattern = [1,0]
self._asyengine = asyengine
self._deferAsyfy = False
if pen_options:
@@ -431,6 +435,14 @@ class asyPen(asyObj):
def asyEngine(self, value):
self._asyengine = value
+ def qtCapStyleToAsyCapStyle(self, style):
+ lineCapList = [QtCore.Qt.PenCapStyle.SquareCap,QtCore.Qt.PenCapStyle.FlatCap,QtCore.Qt.PenCapStyle.RoundCap]
+ asyCapList = ["extendcap","flatcap","roundcap"]
+ if style in lineCapList:
+ return asyCapList[lineCapList.index(style)]
+ else:
+ return False
+
def updateCode(self, asy2psmap = identity()):
""" Generate the pen's code """
if self._deferAsyfy:
@@ -438,12 +450,30 @@ class asyPen(asyObj):
self.asyCode = 'rgb({:g},{:g},{:g})+{:s}'.format(self.color[0], self.color[1], self.color[2], str(self.width))
if len(self.options) > 0:
self.asyCode = self.asyCode + '+' + self.options
+ if self.style != "solid":
+ self.asyCode = self.style + '+' + self.asyCode
def setWidth(self, newWidth):
""" Set the pen's width """
self.width = newWidth
self.updateCode()
+ def setDashPattern(self, pattern):
+ self.dashPattern = pattern
+ self.updateCode() #Get working
+
+ def setStyle(self, style):
+ self.style = style
+ self.updateCode()
+
+ def setCapStyle(self, style):
+ self.capStyle = style
+ self.updateCode()
+
+ def setOpacity(self, opacity):
+ self.opacity = opacity
+ self.updateCode()
+
def setColor(self, color):
""" Set the pen's color """
if isinstance(color, tuple) and len(color) == 3:
@@ -493,8 +523,13 @@ class asyPen(asyObj):
if self._deferAsyfy:
self.computeColor()
newPen = QtGui.QPen()
- newPen.setColor(asyPen.convertToQColor(self.color))
+ color = asyPen.convertToQColor(self.color)
+ color.setAlpha(self.opacity)
+ newPen.setColor(color)
+ newPen.setCapStyle(self.capStyle)
newPen.setWidthF(self.width)
+ if self.dashPattern:
+ newPen.setDashPattern(self.dashPattern)
return newPen
@@ -969,7 +1004,7 @@ class xasyItem(QtCore.QObject):
if transfExists:
transfExists = localCount <= len(self.transfKeymap[key]) - 1
if transfExists:
- validKey = not self.transfKeymap[key][localCount].deleted
+ validKey = not self.transfKeymap[key][localCount].deleted #Does this ever exist?
else:
validKey = False
@@ -1290,6 +1325,11 @@ class xasyShape(xasyDrawnItem):
def copy(self):
return type(self)(self.path,self._asyengine,self.pen)
+ def arrowify(self,arrowhead=0):
+ newObj = asyArrow(self.path.asyengine, pen=self.pen, transfKey = self.transfKey, transfKeymap = self.transfKeymap, canvas = self.onCanvas, arrowActive = arrowhead, code = self.path.getCode(yflip())) #transform
+ newObj.arrowSettings["fill"] = self.path.fill
+ return newObj
+
class xasyFilledShape(xasyShape):
""" A filled shape drawn on the GUI """
@@ -1555,11 +1595,23 @@ class xasyScript(xasyItem):
if i + 1 in keylist.keys():
# this case, we have a key.
with io.StringIO() as raw_line:
- for j in range(len(curr_str)):
+ n=len(curr_str)
+ for j in range(n):
raw_line.write(curr_str[j])
if j + 1 in keylist[i + 1]:
# at this point, replace keys with xkey
- raw_line.write('KEY="{0:s}",'.format(linenum2key[(i + 1, j + 1)]))
+ sep=','
+ k=j+1
+ # assume begingroup is on a single line for now
+ while k < n:
+ c=curr_str[k]
+ if c == ')':
+ sep=''
+ break
+ if not c.isspace():
+ break
+ ++k
+ raw_line.write('KEY="{0:s}"'.format(linenum2key[(i + 1, j + 1)])+sep)
self.userKeys.add(linenum2key[(i + 1, j + 1)])
curr_str = raw_line.getvalue()
# else, skip and just write the line.
@@ -1819,3 +1871,125 @@ class DrawObject(QtCore.QObject):
def getID(self):
return self.originalObj
+
+
+class asyArrow(xasyItem):
+
+ def __init__(self, asyengine, pen=None, transform=identity(), transfKey=None, transfKeymap = None, canvas=None, arrowActive=False, code=None):
+ #super().__init__(path=path, engine=asyengine, pen=pen, transform=transform)
+ """Initialize the label with the given test, location, and pen"""
+ #asyObj.__init__(self)
+ super().__init__(canvas=canvas, asyengine=asyengine) #CANVAS? Seems to work.
+ if pen is None:
+ pen = asyPen()
+ if pen.asyEngine is None:
+ pen.asyEngine = asyengine
+ self.pen = pen
+ self.fillPen = asyPen()
+ self.fillPen.asyEngine = asyengine
+ self.code = code
+ #self.path = path
+ #self.path.asyengine = asyengine
+ self.transfKey = transfKey
+ if transfKeymap == None: #Better way?
+ self.transfKeymap = {self.transfKey: [transform]}
+ else:
+ self.transfKeymap = transfKeymap
+ self.location = (0,0)
+ self.asyfied = False
+ self.onCanvas = canvas
+
+ self.arrowSettings = {"active": arrowActive, "style": 0, "fill": 0} #Rename active?
+ self.arrowList = ["","Arrow","ArcArrow"] #The first setting corresponds to no arrow.
+ self.arrowStyleList = ["","SimpleHead","HookHead","TeXHead"]
+ self.arrowFillList = ["","FillDraw","Fill","NoFill","UnFill","Draw"]
+
+ def getArrowSettings(self):
+ settings = "("
+
+ if self.arrowSettings["style"] != 0:
+ settings += "arrowhead="
+ settings += self.arrowStyleList[self.arrowSettings["style"]]
+
+ if "size" in self.arrowSettings:
+ if settings != "(": #This is really messy.
+ settings += ","
+ settings += "size=" + str(self.arrowSettings["size"]) #Should I add options to this? Like for cm?
+
+ if "angle" in self.arrowSettings: #This is so similar, you should be able to turn this into a function or something.
+ if settings != "(":
+ settings += ","
+ settings += "angle=" + str(self.arrowSettings["angle"])
+
+ if self.arrowSettings["fill"] != 0:
+ if settings != "(":
+ settings += ","
+ settings += "filltype="
+ settings += self.arrowFillList[self.arrowSettings["fill"]]
+
+ settings += ")"
+ #print(settings)
+ return settings
+
+ def setKey(self, newKey = None):
+ transform = self.transfKeymap[self.transfKey][0]
+
+ self.transfKey = newKey
+ self.transfKeymap = {self.transfKey: [transform]}
+
+ def updateCode(self, asy2psmap = identity()):
+ newLoc = asy2psmap.inverted() * self.location
+ self.asyCode = ''
+ if self.arrowSettings["active"]:
+ if self.arrowSettings["fill"]:
+ self.asyCode += 'begingroup(KEY="{0}");'.format(self.transfKey)+'\n\n'
+ self.asyCode += 'fill({0},{1});'.format(self.code, self.fillPen.getCode())+'\n\n'
+ self.asyCode += 'draw({0},{1},arrow={2}{3});'.format(self.code, self.pen.getCode(), self.arrowList[self.arrowSettings["active"]],self.getArrowSettings())+'\n\n'
+ else:
+ self.asyCode += 'draw(KEY="{0}",{1},{2},arrow={3}{4});'.format(self.transfKey, self.code, self.pen.getCode(), self.arrowList[self.arrowSettings["active"]],self.getArrowSettings())+'\n\n'
+ if self.arrowSettings["fill"]:
+ self.asyCode += 'endgroup();\n\n'
+ else:
+ self.asyCode = 'draw(KEY="{0}",{1},{2});'.format(self.transfKey, self.code, self.pen.getCode())+'\n\n'
+
+ def setPen(self, pen):
+ """ Set the label's pen """
+ self.pen = pen
+ self.updateCode()
+
+ def moveTo(self, newl):
+ """ Translate the label's location """
+ self.location = newl
+
+ def getObjectCode(self, asy2psmap=identity()):
+ self.updateCode()
+ return self.asyCode
+
+ def getTransformCode(self, asy2psmap=identity()):
+ transf = self.transfKeymap[self.transfKey][0]
+ if transf == identity():
+ return ''
+ else:
+ return xasyItem.setKeyFormatStr.format(self.transfKey, transf.getCode(asy2psmap))+'\n'
+
+ def generateDrawObjects(self, forceUpdate=False):
+ self.asyfy(forceUpdate)
+ transf = self.transfKeymap[self.transfKey][0]
+ for drawObject in self.drawObjects:
+ drawObject.pTransform = transf
+ return self.drawObjects
+
+ def __str__(self):
+ """ Create a string describing this shape """
+ return "xasyShape code:{:s}".format("\n\t".join(self.getCode().splitlines()))
+
+ def swapFill(self):
+ self.arrowSettings["fill"] = not self.arrowSettings["fill"]
+
+ def getBoundingBox(self):
+ self.asyfy()
+ return self.imageList[0].bbox
+
+ def copy(self):
+ #Include all parameters?
+ return type(self)(self._asyengine,pen=self.pen,canvas=self.onCanvas,arrowActive=self.arrowSettings["active"])
diff --git a/Build/source/utils/asymptote/GUI/xasyBezierInterface.py b/Build/source/utils/asymptote/GUI/xasyBezierInterface.py
index d8792d421e8..abe8d9b0ea5 100644
--- a/Build/source/utils/asymptote/GUI/xasyBezierInterface.py
+++ b/Build/source/utils/asymptote/GUI/xasyBezierInterface.py
@@ -51,13 +51,7 @@ class InteractiveBezierEditor(InplaceAddObj.InplaceObjProcess):
self.prospectiveCtrlPts = []
#The magnification isn't being set. Here I'm manually setting it to be the square root of the determinant.
- self.info['magnification'] = math.sqrt(self.transf.xx * self.transf.yy - self.transf.xy * self.transf.yx)
- self.parent = parent
- if isinstance(obj,xasy2asy.xasyFilledShape) or isinstance(obj,xasy2asy.xasyShape):
- parent.ui.btnFill.setChecked(obj.path.fill)
-
- def swapObjFill(self):
- self.obj.swapFill() #This may end up being more in the future
+ self.info['magnification'] = math.sqrt(abs(self.transf.xx * self.transf.yy - self.transf.xy * self.transf.yx))
def setSelectionBoundaries(self):
self.nodeSelRects = self.handleNodeSelectionBounds()
diff --git a/Build/source/utils/asymptote/GUI/xasyFile.py b/Build/source/utils/asymptote/GUI/xasyFile.py
index 54c70cf5c2b..e980a3c1832 100755
--- a/Build/source/utils/asymptote/GUI/xasyFile.py
+++ b/Build/source/utils/asymptote/GUI/xasyFile.py
@@ -103,15 +103,27 @@ def xasyToDict(file, xasyItems, asy2psmap):
})
elif isinstance(item, xasy2asy.xasyShape):
- penData = {'color': item.pen.color, 'width': item.pen.width, 'options': item.pen.options}
+ penData = {'color': item.pen.color, 'width': item.pen.width, 'dashPattern': item.pen.dashPattern, 'options': item.pen.options}
fileItems.append({'type': 'xasyShape',
'nodes': item.path.nodeSet,
'links': item.path.linkSet,
+ 'fill': item.path.fill,
'transform': item.transfKeymap[item.transfKey][0].t,
'transfKey': item.transfKey,
'pen': penData
})
+ elif isinstance(item, xasy2asy.asyArrow): #Will this ever even be reached?
+ penData = {'color': item.pen.color, 'width': item.pen.width, 'dashPattern': item.pen.dashPattern, 'options': item.pen.options}
+ fileItems.append({'type': 'asyArrow',
+ 'pen': penData,
+ 'arrowSettings': item.arrowSettings,
+ 'transform': item.transfKeymap[item.transfKey][0].t,
+ 'transfKey': item.transfKey,
+ 'settings': item.arrowSettings,
+ 'code': item.code
+ })
+
else:
# DEBUGGING PURPOSES ONLY
print(type(item))
diff --git a/Build/source/utils/asymptote/LspCpp/CMakeLists.txt b/Build/source/utils/asymptote/LspCpp/CMakeLists.txt
index ed420b2955c..fe35bfcb8c4 100644
--- a/Build/source/utils/asymptote/LspCpp/CMakeLists.txt
+++ b/Build/source/utils/asymptote/LspCpp/CMakeLists.txt
@@ -197,7 +197,7 @@ if(USE_SYSTEM_RAPIDJSON)
endif()
endif()
if(NOT RapidJSON_FOUND)
- if(EXISTS "${CMAKE_SOURCE_DIR}/third_party/rapidjson/include")
+ if(EXISTS "${PROJECT_SOURCE_DIR}/third_party/rapidjson/include")
message(STATUS "Using local RapidJSON")
set(RapidJSON_INCLUDE_DIRS third_party/rapidjson/include)
else()
@@ -227,7 +227,6 @@ target_include_directories(lspcpp
target_link_libraries(lspcpp PUBLIC network-uri ${Boost_LIBRARIES})
set(LSPCPP_THIRD_PARTY_DIR_LIST
- ${LSPCPP_THIRD_PARTY_DIR}/threadpool
${LSPCPP_THIRD_PARTY_DIR}/utfcpp/source
)
diff --git a/Build/source/utils/asymptote/LspCpp/LICENSE b/Build/source/utils/asymptote/LspCpp/LICENSE
index f9e07552ce5..e2016d48011 100644
--- a/Build/source/utils/asymptote/LspCpp/LICENSE
+++ b/Build/source/utils/asymptote/LspCpp/LICENSE
@@ -1,21 +1,21 @@
-MIT License
-
-Copyright (c) 2020 kuafuwang
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+MIT License
+
+Copyright (c) 2020 kuafuwang
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Build/source/utils/asymptote/LspCpp/README.md b/Build/source/utils/asymptote/LspCpp/README.md
index ace8de5cb48..afdd8814cfc 100644
--- a/Build/source/utils/asymptote/LspCpp/README.md
+++ b/Build/source/utils/asymptote/LspCpp/README.md
@@ -1,7 +1,7 @@
# LspCpp
## Dependencies
-`LspCpp` depends on boost, rapidjson, utfcpp, uri, and threadpool.
+`LspCpp` depends on boost, rapidjson, utfcpp, uri.
## Build
@@ -50,3 +50,4 @@
[1]: https://github.com/cquery-project/cquery "cquery:"
[2]: https://www.javacardos.com/tools "JcKit:"
[3]: https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore "Package Restore"
+
diff --git a/Build/source/utils/asymptote/LspCpp/examples/StdIOClientExample.cpp b/Build/source/utils/asymptote/LspCpp/examples/StdIOClientExample.cpp
index 2ce67d18620..1c759749123 100755
--- a/Build/source/utils/asymptote/LspCpp/examples/StdIOClientExample.cpp
+++ b/Build/source/utils/asymptote/LspCpp/examples/StdIOClientExample.cpp
@@ -29,190 +29,190 @@ class DummyLog :public lsp::Log
{
public:
- void log(Level level, std::wstring&& msg)
- {
-
- std::wcerr << msg << std::endl;
- };
- void log(Level level, const std::wstring& msg)
- {
- std::wcerr << msg << std::endl;
- };
- void log(Level level, std::string&& msg)
- {
- std::cerr << msg << std::endl;
- };
- void log(Level level, const std::string& msg)
- {
- std::cerr << msg << std::endl;
- };
+ void log(Level level, std::wstring&& msg)
+ {
+
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, const std::wstring& msg)
+ {
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, std::string&& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
+ void log(Level level, const std::string& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
};
struct boost_process_ipstream : lsp::base_istream< boost::process::ipstream >
{
- explicit boost_process_ipstream(boost::process::ipstream& _t)
- : base_istream<boost::process::ipstream>(_t)
- {
- }
-
- std::string what() override
- {
- return {};
- }
- void clear() override
- {
-
- }
+ explicit boost_process_ipstream(boost::process::ipstream& _t)
+ : base_istream<boost::process::ipstream>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ void clear() override
+ {
+
+ }
};
struct boost_process_opstream : lsp::base_ostream< boost::process::opstream >
{
- explicit boost_process_opstream(boost::process::opstream& _t)
- : lsp::base_ostream<boost::process::opstream>(_t)
- {
- }
-
- std::string what() override
- {
- return {};
- }
- void clear() override
- {
-
- }
+ explicit boost_process_opstream(boost::process::opstream& _t)
+ : lsp::base_ostream<boost::process::opstream>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ void clear() override
+ {
+
+ }
};
class Client
{
public:
- Client(std::string& execPath,const std::vector<std::string>& args)
- :point(protocol_json_handler, endpoint, _log)
- {
- std::error_code ec;
- namespace bp = boost::process;
- c = std::make_shared<bp::child>(asio_io.getIOService(), execPath,
- bp::args = args,
- ec,
-
- bp::std_out > read_from_service,
- bp::std_in < write_to_service,
- bp::on_exit([&](int exit_code, const std::error_code& ec_in){
-
- }));
- if (ec)
- {
- // fail
- _log.log(lsp::Log::Level::SEVERE, "Start server failed.");
- }
- else {
- //success
- point.startProcessingMessages(read_from_service_proxy, write_to_service_proxy);
- }
- }
- ~Client()
- {
- point.Stop();
+ Client(std::string& execPath,const std::vector<std::string>& args)
+ :point(protocol_json_handler, endpoint, _log)
+ {
+ std::error_code ec;
+ namespace bp = boost::process;
+ c = std::make_shared<bp::child>(asio_io.getIOService(), execPath,
+ bp::args = args,
+ ec,
+
+ bp::std_out > read_from_service,
+ bp::std_in < write_to_service,
+ bp::on_exit([&](int exit_code, const std::error_code& ec_in){
+
+ }));
+ if (ec)
+ {
+ // fail
+ _log.log(lsp::Log::Level::SEVERE, "Start server failed.");
+ }
+ else {
+ //success
+ point.startProcessingMessages(read_from_service_proxy, write_to_service_proxy);
+ }
+ }
+ ~Client()
+ {
+ point.stop();
std::this_thread::sleep_for(std::chrono::milliseconds (1000));
- }
+ }
- lsp::ProcessIoService asio_io;
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
- DummyLog _log;
+ lsp::ProcessIoService asio_io;
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
+ DummyLog _log;
- std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
+ std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
- boost::process::opstream write_to_service;
- boost::process::ipstream read_from_service;
+ boost::process::opstream write_to_service;
+ boost::process::ipstream read_from_service;
- std::shared_ptr<lsp::ostream> write_to_service_proxy = std::make_shared<boost_process_opstream>(write_to_service);
- std::shared_ptr<lsp::istream> read_from_service_proxy = std::make_shared< boost_process_ipstream >(read_from_service);
+ std::shared_ptr<lsp::ostream> write_to_service_proxy = std::make_shared<boost_process_opstream>(write_to_service);
+ std::shared_ptr<lsp::istream> read_from_service_proxy = std::make_shared< boost_process_ipstream >(read_from_service);
- std::shared_ptr<boost::process::child> c;
- RemoteEndPoint point;
+ std::shared_ptr<boost::process::child> c;
+ RemoteEndPoint point;
};
int main(int argc, char* argv[])
{
- using namespace boost::program_options;
- options_description desc("Allowed options");
- desc.add_options()
- ("help,h", "produce help message")
- ("execPath", value<string>(), "LSP server's path");
-
-
-
- variables_map vm;
- try {
- store(parse_command_line(argc, argv, desc), vm);
- }
- catch (std::exception& e) {
- std::cout << "Undefined input.Reason:" << e.what() << std::endl;
- return 0;
- }
- notify(vm);
-
-
- if (vm.count("help"))
- {
- cout << desc << endl;
- return 1;
- }
- string execPath;
- if (vm.count("execPath"))
- {
- execPath = vm["execPath"].as<string>();
- }
- else
- {
- execPath = "STDIO_SERVER_EXAMPLE.exe";
- }
-
- Client client(execPath, {});
- {
- td_initialize::request req;
- auto rsp = client.point.waitResponse(req);
- if (rsp)
- {
- std::cerr << rsp->ToJson() << std::endl;
- }
- else
- {
- std::cerr << "get initialze response time out" << std::endl;
- }
- }
- {
- td_definition::request req;
- auto future_rsp = client.point.send(req);
- auto state = future_rsp.wait_for(std::chrono::seconds(4));
- if (std::future_status::timeout == state)
- {
- std::cerr << "get textDocument/definition response time out" << std::endl;
- return 0;
- }
- auto rsp = future_rsp.get();
- if (rsp.is_error)
- {
- std::cerr << "get textDocument/definition response error" << std::endl;
-
- }
- else
- {
- std::cerr << rsp.response.ToJson() << std::endl;
- }
- }
- {
- td_initialize::request req;
- auto rsp = client.point.waitResponse(req);
- if (rsp)
- {
- std::cerr << rsp->ToJson() << std::endl;
- }
- else
- {
- std::cerr << "get initialze response time out" << std::endl;
- }
- }
- Notify_Exit::notify notify;
- client.point.send(notify);
- return 0;
+ using namespace boost::program_options;
+ options_description desc("Allowed options");
+ desc.add_options()
+ ("help,h", "produce help message")
+ ("execPath", value<string>(), "LSP server's path");
+
+
+
+ variables_map vm;
+ try {
+ store(parse_command_line(argc, argv, desc), vm);
+ }
+ catch (std::exception& e) {
+ std::cout << "Undefined input.Reason:" << e.what() << std::endl;
+ return 0;
+ }
+ notify(vm);
+
+
+ if (vm.count("help"))
+ {
+ cout << desc << endl;
+ return 1;
+ }
+ string execPath;
+ if (vm.count("execPath"))
+ {
+ execPath = vm["execPath"].as<string>();
+ }
+ else
+ {
+ execPath = "STDIO_SERVER_EXAMPLE.exe";
+ }
+
+ Client client(execPath, {});
+ {
+ td_initialize::request req;
+ auto rsp = client.point.waitResponse(req);
+ if (rsp)
+ {
+ std::cerr << rsp->ToJson() << std::endl;
+ }
+ else
+ {
+ std::cerr << "get initialze response time out" << std::endl;
+ }
+ }
+ {
+ td_definition::request req;
+ auto future_rsp = client.point.send(req);
+ auto state = future_rsp.wait_for(std::chrono::seconds(4));
+ if (lsp::future_status::timeout == state)
+ {
+ std::cerr << "get textDocument/definition response time out" << std::endl;
+ return 0;
+ }
+ auto rsp = future_rsp.get();
+ if (rsp.is_error)
+ {
+ std::cerr << "get textDocument/definition response error" << std::endl;
+
+ }
+ else
+ {
+ std::cerr << rsp.response.ToJson() << std::endl;
+ }
+ }
+ {
+ td_initialize::request req;
+ auto rsp = client.point.waitResponse(req);
+ if (rsp)
+ {
+ std::cerr << rsp->ToJson() << std::endl;
+ }
+ else
+ {
+ std::cerr << "get initialze response time out" << std::endl;
+ }
+ }
+ Notify_Exit::notify notify;
+ client.point.send(notify);
+ return 0;
}
diff --git a/Build/source/utils/asymptote/LspCpp/examples/StdIOServerExample.cpp b/Build/source/utils/asymptote/LspCpp/examples/StdIOServerExample.cpp
index 1fccf2a859c..028283ab8db 100755
--- a/Build/source/utils/asymptote/LspCpp/examples/StdIOServerExample.cpp
+++ b/Build/source/utils/asymptote/LspCpp/examples/StdIOServerExample.cpp
@@ -26,100 +26,100 @@ class DummyLog :public lsp::Log
{
public:
- void log(Level level, std::wstring&& msg)
- {
-
- std::wcerr << msg << std::endl;
- };
- void log(Level level, const std::wstring& msg)
- {
- std::wcerr << msg << std::endl;
- };
- void log(Level level, std::string&& msg)
- {
- std::cerr << msg << std::endl;
- };
- void log(Level level, const std::string& msg)
- {
- std::cerr << msg << std::endl;
- };
+ void log(Level level, std::wstring&& msg)
+ {
+
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, const std::wstring& msg)
+ {
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, std::string&& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
+ void log(Level level, const std::string& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
};
class StdIOServer
{
public:
-
- StdIOServer() : remote_end_point_(protocol_json_handler, endpoint, _log)
- {
- remote_end_point_.registerHandler([&](const td_initialize::request& req)
- {
- td_initialize::response rsp;
- rsp.id = req.id;
- CodeLensOptions code_lens_options;
- code_lens_options.resolveProvider = true;
- rsp.result.capabilities.codeLensProvider = code_lens_options;
- return rsp;
- });
-
- remote_end_point_.registerHandler([&](Notify_Exit::notify& notify)
- {
- remote_end_point_.Stop();
- esc_event.notify(std::make_unique<bool>(true));
- });
- remote_end_point_.registerHandler([&](const td_definition::request& req,
- const CancelMonitor& monitor)
- {
- td_definition::response rsp;
- rsp.result.first = std::vector<lsLocation>();
- if (monitor && monitor())
- {
- _log.info("textDocument/definition request had been cancel.");
- }
- return rsp;
- });
-
- remote_end_point_.startProcessingMessages(input, output);
- }
- ~StdIOServer()
- {
-
- }
-
- struct ostream : lsp::base_ostream<std::ostream>
- {
- explicit ostream(std::ostream& _t)
- : base_ostream<std::ostream>(_t)
- {
-
- }
-
- std::string what() override
- {
- return {};
- }
- };
- struct istream :lsp::base_istream<std::istream>
- {
- explicit istream(std::istream& _t)
- : base_istream<std::istream>(_t)
- {
- }
-
- std::string what() override
- {
- return {};
- }
- };
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
- DummyLog _log;
-
- std::shared_ptr<ostream> output = std::make_shared<ostream>(std::cout);
- std::shared_ptr<istream> input = std::make_shared<istream>(std::cin);
-
- std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
- RemoteEndPoint remote_end_point_;
- Condition<bool> esc_event;
+
+ StdIOServer() : remote_end_point_(protocol_json_handler, endpoint, _log)
+ {
+ remote_end_point_.registerHandler([&](const td_initialize::request& req)
+ {
+ td_initialize::response rsp;
+ rsp.id = req.id;
+ CodeLensOptions code_lens_options;
+ code_lens_options.resolveProvider = true;
+ rsp.result.capabilities.codeLensProvider = code_lens_options;
+ return rsp;
+ });
+
+ remote_end_point_.registerHandler([&](Notify_Exit::notify& notify)
+ {
+ remote_end_point_.stop();
+ esc_event.notify(std::make_unique<bool>(true));
+ });
+ remote_end_point_.registerHandler([&](const td_definition::request& req,
+ const CancelMonitor& monitor)
+ {
+ td_definition::response rsp;
+ rsp.result.first = std::vector<lsLocation>();
+ if (monitor && monitor())
+ {
+ _log.info("textDocument/definition request had been cancel.");
+ }
+ return rsp;
+ });
+
+ remote_end_point_.startProcessingMessages(input, output);
+ }
+ ~StdIOServer()
+ {
+
+ }
+
+ struct ostream : lsp::base_ostream<std::ostream>
+ {
+ explicit ostream(std::ostream& _t)
+ : base_ostream<std::ostream>(_t)
+ {
+
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ };
+ struct istream :lsp::base_istream<std::istream>
+ {
+ explicit istream(std::istream& _t)
+ : base_istream<std::istream>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ };
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
+ DummyLog _log;
+
+ std::shared_ptr<ostream> output = std::make_shared<ostream>(std::cout);
+ std::shared_ptr<istream> input = std::make_shared<istream>(std::cin);
+
+ std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
+ RemoteEndPoint remote_end_point_;
+ Condition<bool> esc_event;
};
@@ -127,33 +127,33 @@ public:
int main(int argc, char* argv[])
{
- using namespace boost::program_options;
- options_description desc("Allowed options");
- desc.add_options()
- ("help,h", "produce help message");
+ using namespace boost::program_options;
+ options_description desc("Allowed options");
+ desc.add_options()
+ ("help,h", "produce help message");
- variables_map vm;
- try {
- store(parse_command_line(argc, argv, desc), vm);
- }
- catch (std::exception& e) {
- std::cout << "Undefined input.Reason:" << e.what() << std::endl;
- return 0;
- }
- notify(vm);
+ variables_map vm;
+ try {
+ store(parse_command_line(argc, argv, desc), vm);
+ }
+ catch (std::exception& e) {
+ std::cout << "Undefined input.Reason:" << e.what() << std::endl;
+ return 0;
+ }
+ notify(vm);
- if (vm.count("help"))
- {
- cout << desc << endl;
- return 1;
- }
- StdIOServer server;
- server.esc_event.wait();
+ if (vm.count("help"))
+ {
+ cout << desc << endl;
+ return 1;
+ }
+ StdIOServer server;
+ server.esc_event.wait();
- return 0;
+ return 0;
}
diff --git a/Build/source/utils/asymptote/LspCpp/examples/TcpServerExample.cpp b/Build/source/utils/asymptote/LspCpp/examples/TcpServerExample.cpp
index 80f77b5eb95..42ed73407ed 100755
--- a/Build/source/utils/asymptote/LspCpp/examples/TcpServerExample.cpp
+++ b/Build/source/utils/asymptote/LspCpp/examples/TcpServerExample.cpp
@@ -25,22 +25,22 @@ class DummyLog :public lsp::Log
{
public:
- void log(Level level, std::wstring&& msg)
- {
- std::wcout << msg << std::endl;
- };
- void log(Level level, const std::wstring& msg)
- {
- std::wcout << msg << std::endl;
- };
- void log(Level level, std::string&& msg)
- {
- std::cout << msg << std::endl;
- };
- void log(Level level, const std::string& msg)
- {
- std::cout << msg << std::endl;
- };
+ void log(Level level, std::wstring&& msg)
+ {
+ std::wcout << msg << std::endl;
+ };
+ void log(Level level, const std::wstring& msg)
+ {
+ std::wcout << msg << std::endl;
+ };
+ void log(Level level, std::string&& msg)
+ {
+ std::cout << msg << std::endl;
+ };
+ void log(Level level, const std::string& msg)
+ {
+ std::cout << msg << std::endl;
+ };
};
std::string _address = "127.0.0.1";
@@ -51,149 +51,157 @@ class Server
public:
- Server():server(_address,_port,protocol_json_handler, endpoint, _log)
- {
- server.point.registerHandler(
- [&](const td_initialize::request& req)
- ->lsp::ResponseOrError< td_initialize::response >{
-
- td_initialize::response rsp;
- CodeLensOptions code_lens_options;
- code_lens_options.resolveProvider = true;
- rsp.result.capabilities.codeLensProvider = code_lens_options;
-
- return rsp;
- });
- server.point.registerHandler([&](const td_definition::request& req
- ,const CancelMonitor& monitor)
- {
- td_definition::response rsp;
- rsp.result.first= std::vector<lsLocation>();
- std::this_thread::sleep_for(std::chrono::seconds(8));
- if(monitor && monitor())
- {
- _log.info("textDocument/definition request had been cancel.");
- }
- return rsp;
- });
-
- server.point.registerHandler([=](Notify_Exit::notify& notify)
- {
- std::cout << notify.ToJson() << std::endl;
- });
- std::thread([&]()
- {
- server.run();
- }).detach();
- }
- ~Server()
- {
- server.stop();
- }
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
- DummyLog _log;
-
- std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
- lsp::TcpServer server;
+ Server():server(_address,_port,protocol_json_handler, endpoint, _log)
+ {
+ server.point.registerHandler(
+ [&](const td_initialize::request& req)
+ ->lsp::ResponseOrError< td_initialize::response >{
+
+ td_initialize::response rsp;
+ CodeLensOptions code_lens_options;
+ code_lens_options.resolveProvider = true;
+ rsp.result.capabilities.codeLensProvider = code_lens_options;
+
+ return rsp;
+ });
+ server.point.registerHandler([&](const td_definition::request& req
+ ,const CancelMonitor& monitor) -> lsp::ResponseOrError<td_definition::response>
+ {
+
+ std::this_thread::sleep_for(std::chrono::seconds(8));
+
+ if( monitor && monitor() )
+ {
+ _log.info("textDocument/definition request had been cancel.");
+ Rsp_Error rsp;
+ rsp.error.code = lsErrorCodes::RequestCancelled;
+ rsp.error.message = "textDocument/definition request had been cancel.";
+ return rsp;
+ }
+ else
+ {
+ td_definition::response rsp;
+ rsp.result.first= std::vector<lsLocation>();
+ return rsp;
+ }
+
+ });
+
+ server.point.registerHandler([=](Notify_Exit::notify& notify)
+ {
+ std::cout << notify.ToJson() << std::endl;
+ });
+ std::thread([&]()
+ {
+ server.run();
+ }).detach();
+ }
+ ~Server()
+ {
+ server.stop();
+ }
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
+ DummyLog _log;
+
+ std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
+ lsp::TcpServer server;
};
class Client
{
public:
- struct iostream :public lsp::base_iostream<tcp::iostream>
- {
- explicit iostream(boost::asio::basic_socket_iostream<tcp>& _t)
- : base_iostream<boost::asio::basic_socket_iostream<tcp>>(_t)
- {
- }
-
- std::string what() override
- {
- auto msg = _impl.error().message();
- return msg;
- }
-
- };
- Client() :remote_end_point_(protocol_json_handler, endpoint, _log)
- {
- tcp::endpoint end_point( address::from_string(_address), 9333);
-
- socket_ = std::make_shared<tcp::iostream>();
- socket_->connect(end_point);
- if (!socket_)
- {
- string temp = "Unable to connect: " + socket_->error().message();
- std::cout << temp << std::endl;
- }
-
- vector<string> args;
- socket_proxy = std::make_shared<iostream>(*socket_.get());
-
- remote_end_point_.startProcessingMessages(socket_proxy, socket_proxy);
- }
- ~Client()
- {
- remote_end_point_.Stop();
- std::this_thread::sleep_for(std::chrono::milliseconds (1000));
- socket_->close();
- }
-
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
- DummyLog _log;
-
- std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
-
- std::shared_ptr < iostream> socket_proxy;
- std::shared_ptr<tcp::iostream> socket_;
- RemoteEndPoint remote_end_point_;
+ struct iostream :public lsp::base_iostream<tcp::iostream>
+ {
+ explicit iostream(boost::asio::basic_socket_iostream<tcp>& _t)
+ : base_iostream<boost::asio::basic_socket_iostream<tcp>>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ auto msg = _impl.error().message();
+ return msg;
+ }
+
+ };
+ Client() :remote_end_point_(protocol_json_handler, endpoint, _log)
+ {
+ tcp::endpoint end_point( address::from_string(_address), 9333);
+
+ socket_ = std::make_shared<tcp::iostream>();
+ socket_->connect(end_point);
+ if (!socket_)
+ {
+ string temp = "Unable to connect: " + socket_->error().message();
+ std::cout << temp << std::endl;
+ }
+
+ vector<string> args;
+ socket_proxy = std::make_shared<iostream>(*socket_.get());
+
+ remote_end_point_.startProcessingMessages(socket_proxy, socket_proxy);
+ }
+ ~Client()
+ {
+ remote_end_point_.stop();
+ std::this_thread::sleep_for(std::chrono::milliseconds (1000));
+ socket_->close();
+ }
+
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
+ DummyLog _log;
+
+ std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
+
+ std::shared_ptr < iostream> socket_proxy;
+ std::shared_ptr<tcp::iostream> socket_;
+ RemoteEndPoint remote_end_point_;
};
-int main()
+int main()
{
- Server server;
- Client client;
-
- {
- td_initialize::request req;
- auto rsp = client.remote_end_point_.waitResponse(req);
- if (rsp)
- {
- std::cout << rsp->response.ToJson() << std::endl;
- }
- else
- {
- std::cout << "get initialze response time out" << std::endl;
- }
- }
- {
- td_definition::request req;
- auto future_rsp = client.remote_end_point_.send(req);
- Notify_Cancellation::notify cancel_notify;
- cancel_notify.params.id = req.id;
- client.remote_end_point_.send(cancel_notify);
-
- auto state = future_rsp.wait_for(std::chrono::seconds(16));
- if (std::future_status::timeout == state)
- {
- std::cout << "get textDocument/definition response time out" << std::endl;
- return 0;
- }
- auto rsp = future_rsp.get();
- if (rsp.is_error)
- {
- std::cout << "get textDocument/definition response error" << std::endl;
-
- }
- else
- {
- std::cout << rsp.response.ToJson() << std::endl;
- }
- }
- Notify_Exit::notify notify;
- client.remote_end_point_.send(notify);
- return 0;
+ Server server;
+ Client client;
+
+ {
+ td_initialize::request req;
+ auto rsp = client.remote_end_point_.waitResponse(req);
+ if (rsp)
+ {
+ std::cout << rsp->response.ToJson() << std::endl;
+ }
+ else
+ {
+ std::cout << "get initialze response time out" << std::endl;
+ }
+ }
+ {
+ td_definition::request req;
+ auto future_rsp = client.remote_end_point_.send(req);
+ client.remote_end_point_.cancelRequest(req.id);
+
+ auto state = future_rsp.wait_for(std::chrono::seconds(16));
+ if (lsp::future_status::timeout == state)
+ {
+ std::cout << "get textDocument/definition response time out" << std::endl;
+ return 0;
+ }
+ auto rsp = future_rsp.get();
+ if (rsp.is_error)
+ {
+ std::cout << "get textDocument/definition response error :" << rsp.ToJson() << std::endl;
+
+ }
+ else
+ {
+ std::cout << rsp.response.ToJson() << std::endl;
+ }
+ }
+ Notify_Exit::notify notify;
+ client.remote_end_point_.send(notify);
+ return 0;
}
diff --git a/Build/source/utils/asymptote/LspCpp/examples/WebsocketExample.cpp b/Build/source/utils/asymptote/LspCpp/examples/WebsocketExample.cpp
index 40d920ac001..b0474bc2881 100755
--- a/Build/source/utils/asymptote/LspCpp/examples/WebsocketExample.cpp
+++ b/Build/source/utils/asymptote/LspCpp/examples/WebsocketExample.cpp
@@ -89,9 +89,9 @@ class Client : public std::enable_shared_from_this<Client>
std::string user_agent_;
std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
DummyLog _log;
-
+
std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
-
+
std::shared_ptr<lsp::websocket_stream_wrapper> proxy_;
public:
RemoteEndPoint point;
@@ -104,7 +104,7 @@ public:
, ws_(net::make_strand(ioc)),point(protocol_json_handler, endpoint, _log)
{
proxy_ = std::make_shared<lsp::websocket_stream_wrapper>(ws_);
-
+
}
// Start the asynchronous operation
@@ -127,12 +127,12 @@ public:
{
ioc.run();
}).detach();
- while (!point.IsWorking())
+ while (!point.isWorking())
{
std::this_thread::sleep_for(std::chrono::milliseconds (50));
}
}
-
+
void
on_resolve(
beast::error_code ec,
@@ -189,7 +189,7 @@ public:
return;
// Send the message
-
+
point.startProcessingMessages(proxy_, proxy_);
// Read a message into our buffer
@@ -215,7 +215,7 @@ public:
std::vector<char> elements(data, data + bytes_transferred);
buffer_.clear();
proxy_->on_request.EnqueueAll(std::move(elements), false);
-
+
ws_.async_read(
buffer_,
beast::bind_front_handler(
@@ -249,7 +249,7 @@ public:
code_lens_options.resolveProvider = true;
rsp.result.capabilities.codeLensProvider = code_lens_options;
return rsp;
- });
+ });
std::thread([&]()
{
server.run();
@@ -261,7 +261,7 @@ public:
}
std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
DummyLog _log;
-
+
std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
lsp::WebSocketServer server;
@@ -271,11 +271,11 @@ int main()
{
std::string user_agent = std::string(BOOST_BEAST_VERSION_STRING) +" websocket-server-async";
Server server(user_agent);
-
+
auto client = std::make_shared<Client>();
user_agent = std::string(BOOST_BEAST_VERSION_STRING) + " websocket-client-async";
client->run(_address.c_str(), _port.c_str(), user_agent.c_str());
-
+
td_initialize::request req;
auto rsp = client->point.waitResponse(req);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
index b89f32f1663..496be298443 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
@@ -7,12 +7,12 @@ namespace Cancellation
{
struct Params {
- /**
- * The request id to cancel.
- */
- lsRequestId id;
-
- MAKE_SWAP_METHOD(Cancellation::Params, id);
+ /**
+ * The request id to cancel.
+ */
+ lsRequestId id;
+
+ MAKE_SWAP_METHOD(Cancellation::Params, id);
};
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
index a5f550041d3..6a8cf7a2a64 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
@@ -5,44 +5,44 @@ class Condition
{
public:
- std::mutex m_mutex;
- std::condition_variable m_condition;
- ~Condition() {
- m_condition.notify_all();
- }
- void notify(std::unique_ptr<T> data) noexcept
- {
- {
- std::lock_guard<std::mutex> eventLock(m_mutex);
- any.swap(data);
- }
- // wake up one waiter
- m_condition.notify_one();
- };
+ std::mutex m_mutex;
+ std::condition_variable m_condition;
+ ~Condition() {
+ m_condition.notify_all();
+ }
+ void notify(std::unique_ptr<T> data) noexcept
+ {
+ {
+ std::lock_guard<std::mutex> eventLock(m_mutex);
+ any.swap(data);
+ }
+ // wake up one waiter
+ m_condition.notify_one();
+ };
-
- std::unique_ptr<T> wait(unsigned timeout=0)
- {
- std::unique_lock<std::mutex> ul(m_mutex);
- if (!timeout) {
- m_condition.wait(ul,[&]() {
- if (!any)
- return false;
- return true;
- });
- }
- else{
- if(!any){
- std::cv_status status = m_condition.wait_for(ul, std::chrono::milliseconds(timeout));
- if (status == std::cv_status::timeout)
- {
- return {};
- }
- }
- }
- return std::unique_ptr<T>(any.release());
-
- }
+
+ std::unique_ptr<T> wait(unsigned timeout=0)
+ {
+ std::unique_lock<std::mutex> ul(m_mutex);
+ if (!timeout) {
+ m_condition.wait(ul,[&]() {
+ if (!any)
+ return false;
+ return true;
+ });
+ }
+ else{
+ if(!any){
+ std::cv_status status = m_condition.wait_for(ul, std::chrono::milliseconds(timeout));
+ if (status == std::cv_status::timeout)
+ {
+ return {};
+ }
+ }
+ }
+ return std::unique_ptr<T>(any.release());
+
+ }
private:
- std::unique_ptr<T> any;
+ std::unique_ptr<T> any;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
index 01d8e8ca91e..d752711a3a9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
@@ -15,38 +15,38 @@ using GenericNotificationHandler = std::function< bool(std::unique_ptr<LspMessag
class Endpoint
{
public:
- virtual ~Endpoint() = default;
- virtual bool onRequest(std::unique_ptr<LspMessage>) = 0;
- virtual bool notify(std::unique_ptr<LspMessage>) = 0;
-
- virtual bool onResponse(const std::string&, std::unique_ptr<LspMessage>) = 0;
- virtual void registerRequestHandler(const std::string&, GenericResponseHandler ) = 0;
- virtual void registerNotifyHandler(const std::string&, GenericNotificationHandler ) = 0;
+ virtual ~Endpoint() = default;
+ virtual bool onRequest(std::unique_ptr<LspMessage>) = 0;
+ virtual bool notify(std::unique_ptr<LspMessage>) = 0;
+
+ virtual bool onResponse(const std::string&, std::unique_ptr<LspMessage>) = 0;
+ virtual void registerRequestHandler(const std::string&, GenericResponseHandler ) = 0;
+ virtual void registerNotifyHandler(const std::string&, GenericNotificationHandler ) = 0;
};
class GenericEndpoint :public Endpoint
{
public:
- GenericEndpoint(lsp::Log& l):log(l){}
- bool notify(std::unique_ptr<LspMessage>) override;
- bool onResponse(const std::string&, std::unique_ptr<LspMessage>) override;
-
- bool onRequest(std::unique_ptr<LspMessage>) override;
- std::map< std::string, GenericRequestHandler > method2request;
- std::map< std::string, GenericResponseHandler > method2response;
- std::map< std::string, GenericNotificationHandler > method2notification;
-
- void registerRequestHandler(const std::string& method, GenericResponseHandler cb) override
- {
- method2request[method] = cb;
- }
-
- void registerNotifyHandler(const std::string& method, GenericNotificationHandler cb) override
- {
- method2notification[method] = cb;
- }
- lsp::Log& log;
+ GenericEndpoint(lsp::Log& l):log(l){}
+ bool notify(std::unique_ptr<LspMessage>) override;
+ bool onResponse(const std::string&, std::unique_ptr<LspMessage>) override;
+
+ bool onRequest(std::unique_ptr<LspMessage>) override;
+ std::map< std::string, GenericRequestHandler > method2request;
+ std::map< std::string, GenericResponseHandler > method2response;
+ std::map< std::string, GenericNotificationHandler > method2notification;
+
+ void registerRequestHandler(const std::string& method, GenericResponseHandler cb) override
+ {
+ method2request[method] = cb;
+ }
+
+ void registerNotifyHandler(const std::string& method, GenericNotificationHandler cb) override
+ {
+ method2notification[method] = cb;
+ }
+ lsp::Log& log;
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
index bda6e65d46d..6c29ee8f0e7 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
@@ -4,179 +4,179 @@
#include <vector>
namespace lsp
{
- class Log
- {
- public:
- virtual ~Log() = default;
-
- enum class Level
- {
- /**
- * OFF is a special level that can be used to turn off logging.
-
- */
- OFF = 1,
-
- /**
- * SEVERE is a message level indicating a serious failure.
- * <p>
- * In general SEVERE messages should describe events that are
- * of considerable importance and which will prevent normal
- * program execution. They should be reasonably intelligible
- * to end users and to system administrators.
-
- */
- SEVERE = 2,
-
- /**
- * WARNING is a message level indicating a potential problem.
- * <p>
- * In general WARNING messages should describe events that will
- * be of interest to end users or system managers, or which
- * indicate potential problems.
-
- *
- */
- WARNING = 3,
- /**
- * INFO is a message level for informational messages.
- * <p>
- * Typically INFO messages will be written to the console
- * or its equivalent. So the INFO level should only be
- * used for reasonably significant messages that will
- * make sense to end users and system administrators.
-
- */
- INFO = 3,
- /**
- * CONFIG is a message level for static configuration messages.
- * <p>
- * CONFIG messages are intended to provide a variety of static
- * configuration information, to assist in debugging problems
- * that may be associated with particular configurations.
- * For example, CONFIG message might include the CPU type,
- * the graphics depth, the GUI look-and-feel, etc.
- * This level is initialized to <CODE>4</CODE>.
- */
-
- CONFIG = 4,
-
-
-
- /**
- * FINE is a message level providing tracing information.
- * <p>
- * All of FINE, FINER, and FINEST are intended for relatively
- * detailed tracing. The exact meaning of the three levels will
- * vary between subsystems, but in general, FINEST should be used
- * for the most voluminous detailed output, FINER for somewhat
- * less detailed output, and FINE for the lowest volume (and
- * most important) messages.
- * <p>
- * In general the FINE level should be used for information
- * that will be broadly interesting to developers who do not have
- * a specialized interest in the specific subsystem.
- * <p>
- * FINE messages might include things like minor (recoverable)
- * failures. Issues indicating potential performance problems
- * are also worth logging as FINE.
- * This level is initialized to <CODE>5</CODE>.
- */
- FINE = 5,
-
- /**
- * FINER indicates a fairly detailed tracing message.
- * By default logging calls for entering, returning, or throwing
- * an exception are traced at this level.
- * This level is initialized to <CODE>400</CODE>.
- */
- FINER = 6,
-
- /**
- * FINEST indicates a highly detailed tracing message.
- * This level is initialized to <CODE>300</CODE>.
- */
- FINEST = 7,
-
- /**
- * ALL indicates that all messages should be logged.
- * This level is initialized to <CODE>Integer.MIN_VALUE</CODE>.
- */
- ALL,
- };
- virtual void log(Level level, std::wstring&& msg) = 0;
- virtual void log(Level level, const std::wstring& msg) = 0;
- virtual void log(Level level, std::string&& msg) = 0;
- virtual void log(Level level, const std::string& msg) = 0;
-
- void info(const std::string& msg)
- {
- log(Level::INFO, msg);
- }
- void info(const std::wstring& msg)
- {
- log(Level::INFO, msg);
- }
- void error(const std::string& msg)
- {
- log(Level::SEVERE, msg);
- }
- void error(const std::wstring& msg)
- {
- log(Level::SEVERE, msg);
- }
- void warning(const std::string& msg)
- {
- log(Level::WARNING, msg);
- }
- void warning(const std::wstring& msg)
- {
- log(Level::WARNING, msg);
- }
- };
+ class Log
+ {
+ public:
+ virtual ~Log() = default;
+
+ enum class Level
+ {
+ /**
+ * OFF is a special level that can be used to turn off logging.
+
+ */
+ OFF = 1,
+
+ /**
+ * SEVERE is a message level indicating a serious failure.
+ * <p>
+ * In general SEVERE messages should describe events that are
+ * of considerable importance and which will prevent normal
+ * program execution. They should be reasonably intelligible
+ * to end users and to system administrators.
+
+ */
+ SEVERE = 2,
+
+ /**
+ * WARNING is a message level indicating a potential problem.
+ * <p>
+ * In general WARNING messages should describe events that will
+ * be of interest to end users or system managers, or which
+ * indicate potential problems.
+
+ *
+ */
+ WARNING = 3,
+ /**
+ * INFO is a message level for informational messages.
+ * <p>
+ * Typically INFO messages will be written to the console
+ * or its equivalent. So the INFO level should only be
+ * used for reasonably significant messages that will
+ * make sense to end users and system administrators.
+
+ */
+ INFO = 3,
+ /**
+ * CONFIG is a message level for static configuration messages.
+ * <p>
+ * CONFIG messages are intended to provide a variety of static
+ * configuration information, to assist in debugging problems
+ * that may be associated with particular configurations.
+ * For example, CONFIG message might include the CPU type,
+ * the graphics depth, the GUI look-and-feel, etc.
+ * This level is initialized to <CODE>4</CODE>.
+ */
+
+ CONFIG = 4,
+
+
+
+ /**
+ * FINE is a message level providing tracing information.
+ * <p>
+ * All of FINE, FINER, and FINEST are intended for relatively
+ * detailed tracing. The exact meaning of the three levels will
+ * vary between subsystems, but in general, FINEST should be used
+ * for the most voluminous detailed output, FINER for somewhat
+ * less detailed output, and FINE for the lowest volume (and
+ * most important) messages.
+ * <p>
+ * In general the FINE level should be used for information
+ * that will be broadly interesting to developers who do not have
+ * a specialized interest in the specific subsystem.
+ * <p>
+ * FINE messages might include things like minor (recoverable)
+ * failures. Issues indicating potential performance problems
+ * are also worth logging as FINE.
+ * This level is initialized to <CODE>5</CODE>.
+ */
+ FINE = 5,
+
+ /**
+ * FINER indicates a fairly detailed tracing message.
+ * By default logging calls for entering, returning, or throwing
+ * an exception are traced at this level.
+ * This level is initialized to <CODE>400</CODE>.
+ */
+ FINER = 6,
+
+ /**
+ * FINEST indicates a highly detailed tracing message.
+ * This level is initialized to <CODE>300</CODE>.
+ */
+ FINEST = 7,
+
+ /**
+ * ALL indicates that all messages should be logged.
+ * This level is initialized to <CODE>Integer.MIN_VALUE</CODE>.
+ */
+ ALL,
+ };
+ virtual void log(Level level, std::wstring&& msg) = 0;
+ virtual void log(Level level, const std::wstring& msg) = 0;
+ virtual void log(Level level, std::string&& msg) = 0;
+ virtual void log(Level level, const std::string& msg) = 0;
+
+ void info(const std::string& msg)
+ {
+ log(Level::INFO, msg);
+ }
+ void info(const std::wstring& msg)
+ {
+ log(Level::INFO, msg);
+ }
+ void error(const std::string& msg)
+ {
+ log(Level::SEVERE, msg);
+ }
+ void error(const std::wstring& msg)
+ {
+ log(Level::SEVERE, msg);
+ }
+ void warning(const std::string& msg)
+ {
+ log(Level::WARNING, msg);
+ }
+ void warning(const std::wstring& msg)
+ {
+ log(Level::WARNING, msg);
+ }
+ };
}
class MessageIssue {
public:
- std::string text;
+ std::string text;
- lsp::Log::Level code;
+ lsp::Log::Level code;
- MessageIssue(const std::string& text, lsp::Log::Level code) :text(text), code(code)
- {
+ MessageIssue(const std::string& text, lsp::Log::Level code) :text(text), code(code)
+ {
- }
- MessageIssue(std::string&& text, lsp::Log::Level code) :text(text), code(code)
- {
+ }
+ MessageIssue(std::string&& text, lsp::Log::Level code) :text(text), code(code)
+ {
- }
+ }
- std::string getText() {
- return text;
- }
+ std::string getText() {
+ return text;
+ }
- lsp::Log::Level getIssueCode() {
- return code;
- }
+ lsp::Log::Level getIssueCode() {
+ return code;
+ }
- std::string toString() {
- return getText();
- }
+ std::string toString() {
+ return getText();
+ }
};
class MessageIssueHandler
{
public:
- /**
- * Handle issues found while parsing or validating a message. The list of issues must not be empty.
- */
- virtual ~MessageIssueHandler() = default;
-
- virtual void handle(std::vector<MessageIssue>&&) = 0;
- virtual void handle( MessageIssue&&) = 0;
+ /**
+ * Handle issues found while parsing or validating a message. The list of issues must not be empty.
+ */
+ virtual ~MessageIssueHandler() = default;
+
+ virtual void handle(std::vector<MessageIssue>&&) = 0;
+ virtual void handle( MessageIssue&&) = 0;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
index 7e238b0cf6e..f019fbf1212 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
@@ -13,49 +13,49 @@ using GenericNotificationJsonHandler = std::function< std::unique_ptr<LspMessag
class MessageJsonHandler
{
public:
- std::map< std::string, GenericRequestJsonHandler > method2request;
- std::map< std::string, GenericResponseJsonHandler > method2response;
- std::map< std::string, GenericNotificationJsonHandler > method2notification;
-
-
- const GenericRequestJsonHandler* GetRequestJsonHandler(const char* methodInfo) const
- {
- const auto findIt = method2request.find(methodInfo);
- return findIt == method2request.end() ? nullptr : &findIt->second;
- }
-
- void SetRequestJsonHandler(const std::string& methodInfo, GenericRequestJsonHandler handler)
- {
- method2request[methodInfo] = handler;
- }
-
- const GenericResponseJsonHandler* GetResponseJsonHandler(const char* methodInfo) const
- {
- const auto findIt = method2response.find(methodInfo);
- return findIt == method2response.end() ? nullptr : &findIt->second;
- }
-
- void SetResponseJsonHandler(const std::string& methodInfo,GenericResponseJsonHandler handler)
- {
- method2response[methodInfo] = handler;
- }
-
- const GenericNotificationJsonHandler* GetNotificationJsonHandler(const char* methodInfo) const
- {
- const auto findIt = method2notification.find(methodInfo);
- return findIt == method2notification.end() ? nullptr : &findIt->second;
- }
-
- void SetNotificationJsonHandler(const std::string& methodInfo, GenericNotificationJsonHandler handler)
- {
- method2notification[methodInfo] = handler;
- }
-
-
-
- std::unique_ptr<LspMessage> parseResponseMessage(const std::string&, Reader&);
- std::unique_ptr<LspMessage> parseRequstMessage(const std::string&, Reader&);
- bool resovleResponseMessage(Reader&, std::pair<std::string, std::unique_ptr<LspMessage>>& result);
- std::unique_ptr<LspMessage> parseNotificationMessage(const std::string&, Reader&);
+ std::map< std::string, GenericRequestJsonHandler > method2request;
+ std::map< std::string, GenericResponseJsonHandler > method2response;
+ std::map< std::string, GenericNotificationJsonHandler > method2notification;
+
+
+ const GenericRequestJsonHandler* GetRequestJsonHandler(const char* methodInfo) const
+ {
+ const auto findIt = method2request.find(methodInfo);
+ return findIt == method2request.end() ? nullptr : &findIt->second;
+ }
+
+ void SetRequestJsonHandler(const std::string& methodInfo, GenericRequestJsonHandler handler)
+ {
+ method2request[methodInfo] = handler;
+ }
+
+ const GenericResponseJsonHandler* GetResponseJsonHandler(const char* methodInfo) const
+ {
+ const auto findIt = method2response.find(methodInfo);
+ return findIt == method2response.end() ? nullptr : &findIt->second;
+ }
+
+ void SetResponseJsonHandler(const std::string& methodInfo,GenericResponseJsonHandler handler)
+ {
+ method2response[methodInfo] = handler;
+ }
+
+ const GenericNotificationJsonHandler* GetNotificationJsonHandler(const char* methodInfo) const
+ {
+ const auto findIt = method2notification.find(methodInfo);
+ return findIt == method2notification.end() ? nullptr : &findIt->second;
+ }
+
+ void SetNotificationJsonHandler(const std::string& methodInfo, GenericNotificationJsonHandler handler)
+ {
+ method2notification[methodInfo] = handler;
+ }
+
+
+
+ std::unique_ptr<LspMessage> parseResponseMessage(const std::string&, Reader&);
+ std::unique_ptr<LspMessage> parseRequstMessage(const std::string&, Reader&);
+ bool resovleResponseMessage(Reader&, std::pair<std::string, std::unique_ptr<LspMessage>>& result);
+ std::unique_ptr<LspMessage> parseNotificationMessage(const std::string&, Reader&);
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
index ab7a29a17f7..2affe3b3ff2 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
@@ -5,9 +5,9 @@
class MessageProducer
{
public:
-
-
- typedef std::function< void(std::string&&) > MessageConsumer;
- virtual ~MessageProducer() = default;
- virtual void listen(MessageConsumer) = 0;
+
+
+ typedef std::function< void(std::string&&) > MessageConsumer;
+ virtual ~MessageProducer() = default;
+ virtual void listen(MessageConsumer) = 0;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
index e4841b5703c..cdee9e572e7 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
@@ -9,54 +9,54 @@
// NotificationInMessage does not have |id|.
struct NotificationInMessage : public LspMessage {
- Kind GetKid() override
- {
- return NOTIFICATION_MESSAGE;
- }
- MethodType GetMethodType() const override
- {
- return method.c_str();
- }
- void SetMethodType(MethodType _t) override
- {
- method = _t;
- }
- std::string method;
+ Kind GetKid() override
+ {
+ return NOTIFICATION_MESSAGE;
+ }
+ MethodType GetMethodType() const override
+ {
+ return method.c_str();
+ }
+ void SetMethodType(MethodType _t) override
+ {
+ method = _t;
+ }
+ std::string method;
};
template <class T, class TDerived >
struct lsNotificationInMessage : NotificationInMessage {
- void ReflectWriter(Writer& writer) override {
- Reflect(writer, static_cast<TDerived&>(*this));
- }
- lsNotificationInMessage(MethodType _method)
- {
- method = _method;
- }
-
- static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
-
- TDerived* temp = new TDerived();
-
- std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
- // Reflect may throw and *message will be partially deserialized.
- Reflect(visitor, static_cast<TDerived&>(*temp));
- return message;
-
- }
- void swap(lsNotificationInMessage& arg) noexcept
- {
- method.swap(method);
- std::swap(params, arg.params);
- }
- T params;
+ void ReflectWriter(Writer& writer) override {
+ Reflect(writer, static_cast<TDerived&>(*this));
+ }
+ lsNotificationInMessage(MethodType _method)
+ {
+ method = _method;
+ }
+
+ static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
+
+ TDerived* temp = new TDerived();
+
+ std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
+ // Reflect may throw and *message will be partially deserialized.
+ Reflect(visitor, static_cast<TDerived&>(*temp));
+ return message;
+
+ }
+ void swap(lsNotificationInMessage& arg) noexcept
+ {
+ method.swap(method);
+ std::swap(params, arg.params);
+ }
+ T params;
};
#define DEFINE_NOTIFICATION_TYPE(MSG,paramType,methodInfo)\
namespace MSG {\
- struct notify : public lsNotificationInMessage< paramType , notify >{\
- static constexpr MethodType kMethodInfo = methodInfo;\
- notify():lsNotificationInMessage(kMethodInfo){} \
- };\
+ struct notify : public lsNotificationInMessage< paramType , notify >{\
+ static constexpr MethodType kMethodInfo = methodInfo;\
+ notify():lsNotificationInMessage(kMethodInfo){} \
+ };\
};\
MAKE_REFLECT_STRUCT(MSG::notify, jsonrpc,method, params)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
index 3ae6b567a5c..4045098f1bf 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
@@ -12,6 +12,7 @@
#include "MessageIssue.h"
#include "LibLsp/JsonRpc/MessageJsonHandler.h"
#include "Endpoint.h"
+#include "future.h"
class MessageJsonHandler;
@@ -19,74 +20,74 @@ class Endpoint;
struct LspMessage;
class RemoteEndPoint;
namespace lsp {
- class ostream;
- class istream;
-
- ////////////////////////////////////////////////////////////////////////////////
- // ResponseOrError<T>
- ////////////////////////////////////////////////////////////////////////////////
-
- // ResponseOrError holds either the response to a request or an error
- // message.
- template <typename T>
- struct ResponseOrError {
- using Request = T;
- ResponseOrError();
- ResponseOrError(const T& response);
- ResponseOrError(T&& response);
- ResponseOrError(const Rsp_Error& error);
- ResponseOrError(Rsp_Error&& error);
- ResponseOrError(const ResponseOrError& other);
- ResponseOrError(ResponseOrError&& other) noexcept;
-
- ResponseOrError& operator=(const ResponseOrError& other);
- ResponseOrError& operator=(ResponseOrError&& other) noexcept;
- bool IsError() const { return is_error; }
- std::string ToJson()
- {
- if (is_error) return error.ToJson();
- return response.ToJson();
- }
- T response;
- Rsp_Error error; // empty represents success.
- bool is_error;
- };
-
- template <typename T>
- ResponseOrError<T>::ResponseOrError(): is_error(false)
- {
- }
-
- template <typename T>
- ResponseOrError<T>::ResponseOrError(const T& resp) : response(resp), is_error(false) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(T&& resp) : response(std::move(resp)), is_error(false) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(const Rsp_Error& err) : error(err), is_error(true) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(Rsp_Error&& err) : error(std::move(err)), is_error(true) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(const ResponseOrError& other)
- : response(other.response), error(other.error), is_error(other.is_error) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(ResponseOrError&& other) noexcept
- : response(std::move(other.response)), error(std::move(other.error)), is_error(other.is_error) {}
- template <typename T>
- ResponseOrError<T>& ResponseOrError<T>::operator=(
- const ResponseOrError& other) {
- response = other.response;
- error = other.error;
- is_error = other.is_error;
- return *this;
- }
- template <typename T>
- ResponseOrError<T>& ResponseOrError<T>::operator=(ResponseOrError&& other) noexcept
- {
- response = std::move(other.response);
- error = std::move(other.error);
- is_error = other.is_error;
- return *this;
- }
+ class ostream;
+ class istream;
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // ResponseOrError<T>
+ ////////////////////////////////////////////////////////////////////////////////
+
+ // ResponseOrError holds either the response to a request or an error
+ // message.
+ template <typename T>
+ struct ResponseOrError {
+ using Request = T;
+ ResponseOrError();
+ ResponseOrError(const T& response);
+ ResponseOrError(T&& response);
+ ResponseOrError(const Rsp_Error& error);
+ ResponseOrError(Rsp_Error&& error);
+ ResponseOrError(const ResponseOrError& other);
+ ResponseOrError(ResponseOrError&& other) noexcept;
+
+ ResponseOrError& operator=(const ResponseOrError& other);
+ ResponseOrError& operator=(ResponseOrError&& other) noexcept;
+ bool IsError() const { return is_error; }
+ std::string ToJson()
+ {
+ if (is_error) return error.ToJson();
+ return response.ToJson();
+ }
+ T response;
+ Rsp_Error error; // empty represents success.
+ bool is_error;
+ };
+
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(): is_error(false)
+ {
+ }
+
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(const T& resp) : response(resp), is_error(false) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(T&& resp) : response(std::move(resp)), is_error(false) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(const Rsp_Error& err) : error(err), is_error(true) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(Rsp_Error&& err) : error(std::move(err)), is_error(true) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(const ResponseOrError& other)
+ : response(other.response), error(other.error), is_error(other.is_error) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(ResponseOrError&& other) noexcept
+ : response(std::move(other.response)), error(std::move(other.error)), is_error(other.is_error) {}
+ template <typename T>
+ ResponseOrError<T>& ResponseOrError<T>::operator=(
+ const ResponseOrError& other) {
+ response = other.response;
+ error = other.error;
+ is_error = other.is_error;
+ return *this;
+ }
+ template <typename T>
+ ResponseOrError<T>& ResponseOrError<T>::operator=(ResponseOrError&& other) noexcept
+ {
+ response = std::move(other.response);
+ error = std::move(other.error);
+ is_error = other.is_error;
+ return *this;
+ }
}
@@ -94,247 +95,253 @@ namespace lsp {
class RemoteEndPoint :MessageIssueHandler
{
- template <typename F, int N>
- using ParamType = lsp::traits::ParameterType<F, N>;
+ template <typename F, int N>
+ using ParamType = lsp::traits::ParameterType<F, N>;
- template <typename T>
- using IsRequest = lsp::traits::EnableIfIsType<RequestInMessage, T>;
+ template <typename T>
+ using IsRequest = lsp::traits::EnableIfIsType<RequestInMessage, T>;
- template <typename T>
- using IsResponse = lsp::traits::EnableIfIsType<ResponseInMessage, T>;
+ template <typename T>
+ using IsResponse = lsp::traits::EnableIfIsType<ResponseInMessage, T>;
- template <typename T>
- using IsNotify = lsp::traits::EnableIfIsType<NotificationInMessage, T>;
+ template <typename T>
+ using IsNotify = lsp::traits::EnableIfIsType<NotificationInMessage, T>;
- template <typename F, typename ReturnType>
- using IsRequestHandler = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
- F,
- std::function<ReturnType(const RequestInMessage&)>>::
- value>;
+ template <typename F, typename ReturnType>
+ using IsRequestHandler = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
+ F,
+ std::function<ReturnType(const RequestInMessage&)>>::
+ value>;
- template <typename F, typename ReturnType>
- using IsRequestHandlerWithMonitor = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
- F,
- std::function<ReturnType(const RequestInMessage&,const CancelMonitor&)>>::
- value>;
+ template <typename F, typename ReturnType>
+ using IsRequestHandlerWithMonitor = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
+ F,
+ std::function<ReturnType(const RequestInMessage&,const CancelMonitor&)>>::
+ value>;
public:
-
- RemoteEndPoint(const std::shared_ptr <MessageJsonHandler>& json_handler,
- const std::shared_ptr < Endpoint >& localEndPoint,
- lsp::Log& _log, uint8_t max_workers = 2);
-
- ~RemoteEndPoint() override;
- template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
- IsRequestHandler< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler)
- {
- ProcessRequestJsonHandler(handler);
- local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
- auto req = reinterpret_cast<const RequestType*>(msg.get());
- lsp::ResponseOrError<ResponseType> res(handler(*req));
- if (res.is_error) {
- res.error.id = req->id;
- send(res.error);
- }
- else
- {
- res.response.id = req->id;
- send(res.response);
- }
- return true;
- });
- }
- template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
- IsRequestHandlerWithMonitor< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler) {
- ProcessRequestJsonHandler(handler);
- local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
- auto req = static_cast<const RequestType*>(msg.get());
- lsp::ResponseOrError<ResponseType> res(handler(*req , getCancelMonitor(req->id)));
- if (res.is_error) {
- res.error.id = req->id;
- send(res.error);
- }
- else
- {
- res.response.id = req->id;
- send(res.response);
- }
- return true;
- });
- }
- using RequestErrorCallback = std::function<void(const Rsp_Error&)>;
-
- template <typename T, typename F, typename ResponseType = ParamType<F, 0> >
- void send(T& request, F&& handler, RequestErrorCallback onError)
- {
- ProcessRequestJsonHandler(handler);
- auto cb = [=](std::unique_ptr<LspMessage> msg) {
- if (!msg)
- return true;
- const auto result = msg.get();
-
- if (static_cast<ResponseInMessage*>(result)->IsErrorType()) {
- const auto rsp_error = static_cast<const Rsp_Error*>(result);
- onError(*rsp_error);
- }
- else {
- handler(*static_cast<ResponseType*>(result));
- }
-
- return true;
- };
- internalSendRequest(request, cb);
- }
-
-
- template <typename F, typename NotifyType = ParamType<F, 0> >
- IsNotify<NotifyType> registerHandler(F&& handler) {
- {
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!jsonHandler->GetNotificationJsonHandler(NotifyType::kMethodInfo))
- {
- jsonHandler->SetNotificationJsonHandler(NotifyType::kMethodInfo,
- [](Reader& visitor)
- {
- return NotifyType::ReflectReader(visitor);
- });
- }
- }
- local_endpoint->registerNotifyHandler(NotifyType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
- handler(*static_cast<NotifyType*>(msg.get()));
- return true;
- });
- }
-
- template <typename T, typename = IsRequest<T>>
- std::future< lsp::ResponseOrError<typename T::Response> > send(T& request) {
-
- ProcessResponseJsonHandler(request);
- using Response = typename T::Response;
- auto promise = std::make_shared< std::promise<lsp::ResponseOrError<Response>>>();
- auto cb = [=](std::unique_ptr<LspMessage> msg) {
- if (!msg)
- return true;
- auto result = msg.get();
-
- if (reinterpret_cast<ResponseInMessage*>(result)->IsErrorType())
- {
- Rsp_Error* rsp_error = static_cast<Rsp_Error*>(result);
- Rsp_Error temp;
- std::swap(temp, *rsp_error);
- promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
- }
- else
- {
- Response temp;
- std::swap(temp, *static_cast<Response*>(result));
- promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
- }
- return true;
- };
- internalSendRequest(request, cb);
- return promise->get_future();
- }
-
- template <typename T, typename = IsRequest<T>>
- std::unique_ptr<lsp::ResponseOrError<typename T::Response>> waitResponse(T& request, const unsigned time_out = 0)
- {
- auto future_rsp = send(request);
- if (time_out == 0)
- {
- future_rsp.wait();
- }
- else
- {
- auto state = future_rsp.wait_for(std::chrono::milliseconds(time_out));
- if (std::future_status::timeout == state)
- {
- return {};
- }
- }
-
- using Response = typename T::Response;
- return std::make_unique<lsp::ResponseOrError<Response>>(std::move(future_rsp.get()));
- }
-
- void send(NotificationInMessage& msg)
- {
- sendMsg(msg);
- }
-
- void send(ResponseInMessage& msg)
- {
- sendMsg(msg);
- }
-
- void sendNotification(NotificationInMessage& msg)
- {
- send(msg);
- }
- void sendResponse(ResponseInMessage& msg)
- {
- send(msg);
- }
- void startProcessingMessages(std::shared_ptr<lsp::istream> r,
- std::shared_ptr<lsp::ostream> w);
-
- bool IsWorking() const
- {
- if (message_producer_thread_)
- return true;
- return false;
- }
- void Stop();
-
- std::unique_ptr<LspMessage> internalWaitResponse(RequestInMessage&, unsigned time_out = 0);
-
- void internalSendRequest(RequestInMessage&, GenericResponseHandler);
-
- void handle(std::vector<MessageIssue>&&) override;
- void handle(MessageIssue&&) override;
+
+ RemoteEndPoint(const std::shared_ptr <MessageJsonHandler>& json_handler,
+ const std::shared_ptr < Endpoint >& localEndPoint,
+ lsp::Log& _log, uint8_t max_workers = 2);
+
+ ~RemoteEndPoint() override;
+ template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
+ IsRequestHandler< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler)
+ {
+ processRequestJsonHandler(handler);
+ local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
+ auto req = reinterpret_cast<const RequestType*>(msg.get());
+ lsp::ResponseOrError<ResponseType> res(handler(*req));
+ if (res.is_error) {
+ res.error.id = req->id;
+ send(res.error);
+ }
+ else
+ {
+ res.response.id = req->id;
+ send(res.response);
+ }
+ return true;
+ });
+ }
+ template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
+ IsRequestHandlerWithMonitor< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler) {
+ processRequestJsonHandler(handler);
+ local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
+ auto req = static_cast<const RequestType*>(msg.get());
+ lsp::ResponseOrError<ResponseType> res(handler(*req , getCancelMonitor(req->id)));
+ if (res.is_error) {
+ res.error.id = req->id;
+ send(res.error);
+ }
+ else
+ {
+ res.response.id = req->id;
+ send(res.response);
+ }
+ return true;
+ });
+ }
+ using RequestErrorCallback = std::function<void(const Rsp_Error&)>;
+
+ template <typename T, typename F, typename ResponseType = ParamType<F, 0> >
+ void send(T& request, F&& handler, RequestErrorCallback onError)
+ {
+ processRequestJsonHandler(handler);
+ auto cb = [=](std::unique_ptr<LspMessage> msg) {
+ if (!msg)
+ return true;
+ const auto result = msg.get();
+
+ if (static_cast<ResponseInMessage*>(result)->IsErrorType()) {
+ const auto rsp_error = static_cast<const Rsp_Error*>(result);
+ onError(*rsp_error);
+ }
+ else {
+ handler(*static_cast<ResponseType*>(result));
+ }
+
+ return true;
+ };
+ internalSendRequest(request, cb);
+ }
+
+
+ template <typename F, typename NotifyType = ParamType<F, 0> >
+ IsNotify<NotifyType> registerHandler(F&& handler) {
+ {
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!jsonHandler->GetNotificationJsonHandler(NotifyType::kMethodInfo))
+ {
+ jsonHandler->SetNotificationJsonHandler(NotifyType::kMethodInfo,
+ [](Reader& visitor)
+ {
+ return NotifyType::ReflectReader(visitor);
+ });
+ }
+ }
+ local_endpoint->registerNotifyHandler(NotifyType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
+ handler(*static_cast<NotifyType*>(msg.get()));
+ return true;
+ });
+ }
+
+ template <typename T, typename = IsRequest<T>>
+ lsp::future< lsp::ResponseOrError<typename T::Response> > send(T& request) {
+
+ processResponseJsonHandler(request);
+ using Response = typename T::Response;
+ auto promise = std::make_shared< lsp::promise<lsp::ResponseOrError<Response>>>();
+ auto cb = [=](std::unique_ptr<LspMessage> msg) {
+ if (!msg)
+ return true;
+ auto result = msg.get();
+
+ if (reinterpret_cast<ResponseInMessage*>(result)->IsErrorType())
+ {
+ Rsp_Error* rsp_error = static_cast<Rsp_Error*>(result);
+ Rsp_Error temp;
+ std::swap(temp, *rsp_error);
+ promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
+ }
+ else
+ {
+ Response temp;
+ std::swap(temp, *static_cast<Response*>(result));
+ promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
+ }
+ return true;
+ };
+ internalSendRequest(request, cb);
+ return promise->get_future();
+ }
+
+ template <typename T, typename = IsRequest<T>>
+ std::unique_ptr<lsp::ResponseOrError<typename T::Response>> waitResponse(T& request, const unsigned time_out = 0)
+ {
+ auto future_rsp = send(request);
+ if (time_out == 0)
+ {
+ future_rsp.wait();
+ }
+ else
+ {
+ auto state = future_rsp.wait_for(std::chrono::milliseconds(time_out));
+ if (lsp::future_status::timeout == state)
+ {
+ return {};
+ }
+ }
+
+ using Response = typename T::Response;
+ return std::make_unique<lsp::ResponseOrError<Response>>(std::move(future_rsp.get()));
+ }
+
+ void send(NotificationInMessage& msg)
+ {
+ sendMsg(msg);
+ }
+
+ void send(ResponseInMessage& msg)
+ {
+ sendMsg(msg);
+ }
+
+ void sendNotification(NotificationInMessage& msg)
+ {
+ send(msg);
+ }
+ void sendResponse(ResponseInMessage& msg)
+ {
+ send(msg);
+ }
+ template <typename T>
+ T createRequest() {
+ auto req = T();
+ req.id.set(getNextRequestId());
+ return req;
+ }
+
+ int getNextRequestId();
+
+ bool cancelRequest(const lsRequestId&);
+
+ void startProcessingMessages(std::shared_ptr<lsp::istream> r,
+ std::shared_ptr<lsp::ostream> w);
+
+ bool isWorking() const;
+ void stop();
+
+ std::unique_ptr<LspMessage> internalWaitResponse(RequestInMessage&, unsigned time_out = 0);
+
+ bool internalSendRequest(RequestInMessage &info, GenericResponseHandler handler);
+
+ void handle(std::vector<MessageIssue>&&) override;
+ void handle(MessageIssue&&) override;
private:
- CancelMonitor getCancelMonitor(const lsRequestId&);
- void sendMsg(LspMessage& msg);
- void mainLoop(std::unique_ptr<LspMessage>);
- bool dispatch(const std::string&);
- template <typename F, typename RequestType = ParamType<F, 0>>
- IsRequest<RequestType> ProcessRequestJsonHandler(const F& handler) {
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!jsonHandler->GetRequestJsonHandler(RequestType::kMethodInfo))
- {
- jsonHandler->SetRequestJsonHandler(RequestType::kMethodInfo,
- [](Reader& visitor)
- {
- return RequestType::ReflectReader(visitor);
- });
- }
- }
- template <typename T, typename = IsRequest<T>>
- void ProcessResponseJsonHandler(T& request)
- {
- using Response = typename T::Response;
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!jsonHandler->GetResponseJsonHandler(T::kMethodInfo))
- {
- jsonHandler->SetResponseJsonHandler(T::kMethodInfo, [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return Response::ReflectReader(visitor);
- });
- }
- }
-
- struct Data;
-
- Data* d_ptr;
-
- std::shared_ptr < MessageJsonHandler> jsonHandler;
- std::mutex m_sendMutex;
-
- std::shared_ptr < Endpoint > local_endpoint;
+ CancelMonitor getCancelMonitor(const lsRequestId&);
+ void sendMsg(LspMessage& msg);
+ void mainLoop(std::unique_ptr<LspMessage>);
+ bool dispatch(const std::string&);
+ template <typename F, typename RequestType = ParamType<F, 0>>
+ IsRequest<RequestType> processRequestJsonHandler(const F& handler) {
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!jsonHandler->GetRequestJsonHandler(RequestType::kMethodInfo))
+ {
+ jsonHandler->SetRequestJsonHandler(RequestType::kMethodInfo,
+ [](Reader& visitor)
+ {
+ return RequestType::ReflectReader(visitor);
+ });
+ }
+ }
+ template <typename T, typename = IsRequest<T>>
+ void processResponseJsonHandler(T& request)
+ {
+ using Response = typename T::Response;
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!jsonHandler->GetResponseJsonHandler(T::kMethodInfo))
+ {
+ jsonHandler->SetResponseJsonHandler(T::kMethodInfo, [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return Response::ReflectReader(visitor);
+ });
+ }
+ }
+
+ struct Data;
+
+ Data* d_ptr;
+
+ std::shared_ptr < MessageJsonHandler> jsonHandler;
+ std::mutex m_sendMutex;
+
+ std::shared_ptr < Endpoint > local_endpoint;
public:
- std::shared_ptr < std::thread > message_producer_thread_;
+ std::shared_ptr < std::thread > message_producer_thread_;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
index 163d038a2ee..0775b36dbaf 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
@@ -10,14 +10,14 @@
#include "lsResponseMessage.h"
struct RequestInMessage : public LspMessage {
- // number or string, actually no null
- lsRequestId id;
- std::string method;
- Kind GetKid() override
- {
- return REQUEST_MESSAGE;
- }
-
+ // number or string, actually no null
+ lsRequestId id;
+ std::string method;
+ Kind GetKid() override
+ {
+ return REQUEST_MESSAGE;
+ }
+
};
@@ -25,45 +25,45 @@ struct RequestInMessage : public LspMessage {
template <class T, class TDerived >
struct lsRequest : public RequestInMessage
{
- lsRequest(MethodType _method)
- {
- method = _method;
- }
- MethodType GetMethodType() const override { return method.c_str(); }
- void SetMethodType(MethodType _method) override
- {
- method = _method;
- } \
- void ReflectWriter(Writer& writer) override {
- Reflect(writer, static_cast<TDerived&>(*this));
- }
-
- static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
+ lsRequest(MethodType _method)
+ {
+ method = _method;
+ }
+ MethodType GetMethodType() const override { return method.c_str(); }
+ void SetMethodType(MethodType _method) override
+ {
+ method = _method;
+ } \
+ void ReflectWriter(Writer& writer) override {
+ Reflect(writer, static_cast<TDerived&>(*this));
+ }
+
+ static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
- TDerived* temp = new TDerived();
- std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
- // Reflect may throw and *message will be partially deserialized.
- Reflect(visitor, static_cast<TDerived&>(*temp));
- return message;
- }
- void swap(lsRequest& arg) noexcept
- {
- id.swap(arg.id);
- method.swap(method);
- std::swap(params, arg.params);
- }
- T params;
+ TDerived* temp = new TDerived();
+ std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
+ // Reflect may throw and *message will be partially deserialized.
+ Reflect(visitor, static_cast<TDerived&>(*temp));
+ return message;
+ }
+ void swap(lsRequest& arg) noexcept
+ {
+ id.swap(arg.id);
+ method.swap(method);
+ std::swap(params, arg.params);
+ }
+ T params;
};
#define DEFINE_REQUEST_RESPONSE_TYPE(MSG,request_param,response_result,methodInfo)\
namespace MSG {\
- struct response :public ResponseMessage< response_result, response> {}; \
- struct request : public lsRequest< request_param , request >{\
- static constexpr MethodType kMethodInfo = methodInfo;\
- request():lsRequest(kMethodInfo){} \
- using Response = response;\
- };\
+ struct response :public ResponseMessage< response_result, response> {}; \
+ struct request : public lsRequest< request_param , request >{\
+ static constexpr MethodType kMethodInfo = methodInfo;\
+ request():lsRequest(kMethodInfo){} \
+ using Response = response;\
+ };\
};\
MAKE_REFLECT_STRUCT(MSG::request, jsonrpc, id, method, params);\
MAKE_REFLECT_STRUCT(MSG::response, jsonrpc, id, result);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
index 439a9f1b0eb..e039891f5f9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
@@ -7,42 +7,42 @@
#include "MessageIssue.h"
namespace lsp {
- class istream;
+ class istream;
}
class StreamMessageProducer : public MessageProducer
{
public:
- struct Headers
- {
- int contentLength = -1;
- std::string charset;
- void clear()
- {
- contentLength = -1;
- charset.clear();
- }
- };
- bool handleMessage(Headers& headers, MessageConsumer callBack);
- StreamMessageProducer(
- MessageIssueHandler& message_issue_handler, std::shared_ptr < lsp::istream> _input)
- : issueHandler(message_issue_handler),
- input(_input)
- {
- }
- StreamMessageProducer(
- MessageIssueHandler& message_issue_handler)
- : issueHandler(message_issue_handler)
- {
- }
-
- bool keepRunning = false;
- void listen(MessageConsumer) override;
- void bind(std::shared_ptr < lsp::istream>);
- void parseHeader(std::string& line, Headers& headers);
+ struct Headers
+ {
+ int contentLength = -1;
+ std::string charset;
+ void clear()
+ {
+ contentLength = -1;
+ charset.clear();
+ }
+ };
+ bool handleMessage(Headers& headers, MessageConsumer callBack);
+ StreamMessageProducer(
+ MessageIssueHandler& message_issue_handler, std::shared_ptr < lsp::istream> _input)
+ : issueHandler(message_issue_handler),
+ input(_input)
+ {
+ }
+ StreamMessageProducer(
+ MessageIssueHandler& message_issue_handler)
+ : issueHandler(message_issue_handler)
+ {
+ }
+
+ bool keepRunning = false;
+ void listen(MessageConsumer) override;
+ void bind(std::shared_ptr < lsp::istream>);
+ void parseHeader(std::string& line, Headers& headers);
private:
- MessageIssueHandler& issueHandler;
- std::shared_ptr < lsp::istream> input;
-
+ MessageIssueHandler& issueHandler;
+ std::shared_ptr < lsp::istream> input;
+
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
index e533acf0569..a377be8c3e3 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
@@ -36,5 +36,5 @@ namespace lsp
void do_stop();
Data* d_ptr = nullptr;
};
-} // namespace
+} // namespace
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h
new file mode 100644
index 00000000000..8e241d96e9b
--- /dev/null
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h
@@ -0,0 +1,178 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#pragma once
+
+#include <condition_variable>
+#include <memory>
+#include <mutex>
+
+namespace lsp {
+
+// internal functionality
+namespace detail {
+template <typename T>
+struct promise_state {
+ T val;
+ std::mutex mutex;
+ std::condition_variable cv;
+ bool hasVal = false;
+};
+} // namespace detail
+
+// forward declaration
+template <typename T>
+class promise;
+
+// future_status is the enumeration returned by future::wait_for and
+// future::wait_until.
+enum class future_status {
+ ready,
+ timeout,
+};
+
+// future is a minimal reimplementation of std::future, that does not suffer
+// from TSAN false positives. See:
+// https://gcc.gnu.org/bugzilla//show_bug.cgi?id=69204
+template <typename T>
+class future {
+ public:
+ using State = detail::promise_state<T>;
+
+ // constructors
+ inline future() = default;
+ inline future(future&&) = default;
+
+ // valid() returns true if the future has an internal state.
+ bool valid() const;
+
+ // get() blocks until the future has a valid result, and returns it.
+ // The future must have a valid internal state to call this method.
+ inline T get();
+
+ // wait() blocks until the future has a valid result.
+ // The future must have a valid internal state to call this method.
+ void wait() const;
+
+ // wait_for() blocks until the future has a valid result, or the timeout is
+ // reached.
+ // The future must have a valid internal state to call this method.
+ template <class Rep, class Period>
+ future_status wait_for(
+ const std::chrono::duration<Rep, Period>& timeout) const;
+
+ // wait_until() blocks until the future has a valid result, or the timeout is
+ // reached.
+ // The future must have a valid internal state to call this method.
+ template <class Clock, class Duration>
+ future_status wait_until(
+ const std::chrono::time_point<Clock, Duration>& timeout) const;
+
+ private:
+ friend promise<T>;
+ future(const future&) = delete;
+ inline future(const std::shared_ptr<State>& state);
+
+ std::shared_ptr<State> state = std::make_shared<State>();
+};
+
+template <typename T>
+future<T>::future(const std::shared_ptr<State>& s) : state(s) {}
+
+template <typename T>
+bool future<T>::valid() const {
+ return static_cast<bool>(state);
+}
+
+template <typename T>
+T future<T>::get() {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->cv.wait(lock, [&] { return state->hasVal; });
+ return state->val;
+}
+
+template <typename T>
+void future<T>::wait() const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->cv.wait(lock, [&] { return state->hasVal; });
+}
+
+template <typename T>
+template <class Rep, class Period>
+future_status future<T>::wait_for(
+ const std::chrono::duration<Rep, Period>& timeout) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ return state->cv.wait_for(lock, timeout, [&] { return state->hasVal; })
+ ? future_status::ready
+ : future_status::timeout;
+}
+
+template <typename T>
+template <class Clock, class Duration>
+future_status future<T>::wait_until(
+ const std::chrono::time_point<Clock, Duration>& timeout) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ return state->cv.wait_until(lock, timeout, [&] { return state->hasVal; })
+ ? future_status::ready
+ : future_status::timeout;
+}
+
+// promise is a minimal reimplementation of std::promise, that does not suffer
+// from TSAN false positives. See:
+// https://gcc.gnu.org/bugzilla//show_bug.cgi?id=69204
+template <typename T>
+class promise {
+ public:
+ // constructors
+ inline promise() = default;
+ inline promise(promise&& other) = default;
+ inline promise(const promise& other) = default;
+
+ // set_value() stores value to the shared state.
+ // set_value() must only be called once.
+ inline void set_value(const T& value) const;
+ inline void set_value(T&& value) const;
+
+ // get_future() returns a future sharing this promise's state.
+ future<T> get_future();
+
+ private:
+ using State = detail::promise_state<T>;
+ std::shared_ptr<State> state = std::make_shared<State>();
+};
+
+template <typename T>
+future<T> promise<T>::get_future() {
+ return future<T>(state);
+}
+
+template <typename T>
+void promise<T>::set_value(const T& value) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->val = value;
+ state->hasVal = true;
+ state->cv.notify_all();
+}
+
+template <typename T>
+void promise<T>::set_value(T&& value) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->val = std::move(value);
+ state->hasVal = true;
+ state->cv.notify_all();
+}
+
+} // namespace lsp
+
+
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
index 98ee91b544a..34e62329175 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
@@ -10,7 +10,7 @@ class JsonReader : public Reader {
std::vector<const char*> path_;
public:
- rapidjson::GenericValue<rapidjson::UTF8<>>* m_;
+ rapidjson::GenericValue<rapidjson::UTF8<>>* m_;
JsonReader(rapidjson::GenericValue<rapidjson::UTF8<>>* m) : m_(m) {}
SerializeFormat Format() const override { return SerializeFormat::Json; }
@@ -35,10 +35,10 @@ class JsonReader : public Reader {
bool HasMember(const char* x) override
{
- if (m_->IsObject())
- return m_->HasMember(x);
- else
- return false;
+ if (m_->IsObject())
+ return m_->HasMember(x);
+ else
+ return false;
}
std::unique_ptr<Reader> operator[](const char* x) override {
auto& sub = (*m_)[x];
@@ -59,7 +59,7 @@ class JsonReader : public Reader {
class JsonWriter : public Writer {
public:
- rapidjson::Writer<rapidjson::StringBuffer>* m_;
+ rapidjson::Writer<rapidjson::StringBuffer>* m_;
JsonWriter(rapidjson::Writer<rapidjson::StringBuffer>* m) : m_(m) {}
SerializeFormat Format() const override { return SerializeFormat::Json; }
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
index 87e94669ab6..2efc80b19a8 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
@@ -3,49 +3,49 @@
#include "LibLsp/JsonRpc/serializer.h"
struct lsRequestId {
- // The client can send the request id as an int or a string. We should output
- // the same format we received.
- enum Type { kNone, kInt, kString };
- Type type = kNone;
+ // The client can send the request id as an int or a string. We should output
+ // the same format we received.
+ enum Type { kNone, kInt, kString };
+ Type type = kNone;
- int value = -1;
- std::string k_string;
- bool has_value() const { return type != kNone; }
- void swap(lsRequestId& arg) noexcept
- {
- std::swap(arg, *this);
- }
- void set(int v)
- {
- value = v;
- type = kInt;
- }
- void set(const std::string& v)
- {
- k_string = v;
- type = kString;
- }
- bool operator==(const lsRequestId& rhs) const
- {
- if (type != rhs.type) return false;
- if (type == kInt)
- return value == rhs.value;
- return k_string == rhs.k_string;
- }
- bool operator!=(const lsRequestId& rhs) const
- {
- return !operator==(rhs);
- }
- bool operator<(const lsRequestId& rhs) const
- {
- if (type != rhs.type) return false;
- if (type == kInt)
- return value < rhs.value;
- return k_string < rhs.k_string;
- }
+ int value = -1;
+ std::string k_string;
+ bool has_value() const { return type != kNone; }
+ void swap(lsRequestId& arg) noexcept
+ {
+ std::swap(arg, *this);
+ }
+ void set(int v)
+ {
+ value = v;
+ type = kInt;
+ }
+ void set(const std::string& v)
+ {
+ k_string = v;
+ type = kString;
+ }
+ bool operator==(const lsRequestId& rhs) const
+ {
+ if (type != rhs.type) return false;
+ if (type == kInt)
+ return value == rhs.value;
+ return k_string == rhs.k_string;
+ }
+ bool operator!=(const lsRequestId& rhs) const
+ {
+ return !operator==(rhs);
+ }
+ bool operator<(const lsRequestId& rhs) const
+ {
+ if (type != rhs.type) return false;
+ if (type == kInt)
+ return value < rhs.value;
+ return k_string < rhs.k_string;
+ }
};
void Reflect(Reader& visitor, lsRequestId& value);
void Reflect(Writer& visitor, lsRequestId& value);
// Debug method to convert an id to a string.
-std::string ToString(const lsRequestId& id); \ No newline at end of file
+std::string ToString(const lsRequestId& id);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
index ba94167cf8b..68ad502b0c2 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
@@ -7,65 +7,65 @@
struct ResponseInMessage :public LspMessage {
- lsRequestId id;
- std::string m_methodType;
+ lsRequestId id;
+ std::string m_methodType;
- virtual MethodType GetMethodType() const override
- {
- return m_methodType.data();
- };
- virtual void SetMethodType(MethodType _type) override
- {
- m_methodType = _type;
- };
+ virtual MethodType GetMethodType() const override
+ {
+ return m_methodType.data();
+ };
+ virtual void SetMethodType(MethodType _type) override
+ {
+ m_methodType = _type;
+ };
- Kind GetKid() override
- {
- return RESPONCE_MESSAGE;
- }
- virtual bool IsErrorType()
- {
- return false;
- }
+ Kind GetKid() override
+ {
+ return RESPONCE_MESSAGE;
+ }
+ virtual bool IsErrorType()
+ {
+ return false;
+ }
};
template <class TDerived >
struct BaseResponseMessage : ResponseInMessage {
- void ReflectWriter(Writer& writer) override {
- Reflect(writer, static_cast<TDerived&>(*this));
- }
- static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
+ void ReflectWriter(Writer& writer) override {
+ Reflect(writer, static_cast<TDerived&>(*this));
+ }
+ static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
- TDerived* temp = new TDerived();
- std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
- // Reflect may throw and *message will be partially deserialized.
- Reflect(visitor, static_cast<TDerived&>(*temp));
- return message;
- }
+ TDerived* temp = new TDerived();
+ std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
+ // Reflect may throw and *message will be partially deserialized.
+ Reflect(visitor, static_cast<TDerived&>(*temp));
+ return message;
+ }
};
template <class T, class TDerived >
struct ResponseMessage : BaseResponseMessage<TDerived> {
- T result;
- void swap(ResponseMessage<T, TDerived>& arg) noexcept
- {
- std::swap(result, arg.result);
- this->id.swap(arg.id);
- this->m_methodType.swap(arg.m_methodType);
- }
+ T result;
+ void swap(ResponseMessage<T, TDerived>& arg) noexcept
+ {
+ std::swap(result, arg.result);
+ this->id.swap(arg.id);
+ this->m_methodType.swap(arg.m_methodType);
+ }
};
template <class T, class TDerived >
struct ResponseError : BaseResponseMessage<TDerived> {
- T error;
- bool IsErrorType() override { return true; }
- void swap(ResponseError<T, TDerived>& arg) noexcept
- {
+ T error;
+ bool IsErrorType() override { return true; }
+ void swap(ResponseError<T, TDerived>& arg) noexcept
+ {
- this->id.swap(arg.id);
- this->m_methodType.swap(arg.m_methodType);
- std::swap(error, arg.error);
- }
+ this->id.swap(arg.id);
+ this->m_methodType.swap(arg.m_methodType);
+ std::swap(error, arg.error);
+ }
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
index f09ba5b1a74..19a96342869 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
@@ -27,7 +27,7 @@ DEALINGS IN THE SOFTWARE.
// Taken from https://github.com/cbeck88/visit_struct.
//
// Usage
-//
+//
// #define PRINT_DOUBLE(x) printf(#x " = %d\n", x);
//
// MACRO_MAP(PRINT_DOUBLE, 1, 2, 3)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
index 6603f3fb3a2..57f4932520d 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
@@ -9,26 +9,26 @@
struct LspMessage
{
public:
- std::string jsonrpc = "2.0";
- virtual void ReflectWriter(Writer&) = 0;
-
- // Send the message to the language client by writing it to stdout.
- void Write(std::ostream& out);
-
-
- virtual MethodType GetMethodType() const = 0;
- virtual void SetMethodType(MethodType) = 0;
-
- virtual ~LspMessage()=default;
- enum Kind
- {
- REQUEST_MESSAGE,
- RESPONCE_MESSAGE,
- NOTIFICATION_MESSAGE
- };
-
- virtual Kind GetKid() = 0;
- virtual std::string ToJson() ;
-
+ std::string jsonrpc = "2.0";
+ virtual void ReflectWriter(Writer&) = 0;
+
+ // Send the message to the language client by writing it to stdout.
+ void Write(std::ostream& out);
+
+
+ virtual MethodType GetMethodType() const = 0;
+ virtual void SetMethodType(MethodType) = 0;
+
+ virtual ~LspMessage()=default;
+ enum Kind
+ {
+ REQUEST_MESSAGE,
+ RESPONCE_MESSAGE,
+ NOTIFICATION_MESSAGE
+ };
+
+ virtual Kind GetKid() = 0;
+ virtual std::string ToJson() ;
+
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
index 71b6bede593..477c8228451 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
@@ -24,64 +24,64 @@ enum class SerializeFormat { Json, MessagePack };
// A tag type that can be used to write `null` to json.
struct JsonNull
{
- void swap(JsonNull& arg) noexcept;
+ void swap(JsonNull& arg) noexcept;
};
class Reader {
public:
- virtual ~Reader() {}
- virtual SerializeFormat Format() const = 0;
-
- virtual bool IsBool() = 0;
- virtual bool IsNull() = 0;
- virtual bool IsArray() = 0;
- virtual bool IsInt() = 0;
- virtual bool IsInt64() = 0;
- virtual bool IsUint64() = 0;
- virtual bool IsDouble() = 0;
+ virtual ~Reader() {}
+ virtual SerializeFormat Format() const = 0;
+
+ virtual bool IsBool() = 0;
+ virtual bool IsNull() = 0;
+ virtual bool IsArray() = 0;
+ virtual bool IsInt() = 0;
+ virtual bool IsInt64() = 0;
+ virtual bool IsUint64() = 0;
+ virtual bool IsDouble() = 0;
virtual bool IsNumber() = 0;
virtual bool IsString() = 0;
- virtual void GetNull() = 0;
- virtual bool GetBool() = 0;
- virtual int GetInt() = 0;
- virtual uint32_t GetUint32() = 0;
- virtual int64_t GetInt64() = 0;
- virtual uint64_t GetUint64() = 0;
- virtual double GetDouble() = 0;
- virtual std::string GetString() = 0;
-
- virtual bool HasMember(const char* x) = 0;
- virtual std::unique_ptr<Reader> operator[](const char* x) = 0;
- virtual void IterMap( std::function<void(const char*, Reader&)> fn) = 0;
- virtual void IterArray(std::function<void(Reader&)> fn) = 0;
- virtual void DoMember(const char* name, std::function<void(Reader&)> fn) = 0;
- virtual std::string ToString() const = 0;
+ virtual void GetNull() = 0;
+ virtual bool GetBool() = 0;
+ virtual int GetInt() = 0;
+ virtual uint32_t GetUint32() = 0;
+ virtual int64_t GetInt64() = 0;
+ virtual uint64_t GetUint64() = 0;
+ virtual double GetDouble() = 0;
+ virtual std::string GetString() = 0;
+
+ virtual bool HasMember(const char* x) = 0;
+ virtual std::unique_ptr<Reader> operator[](const char* x) = 0;
+ virtual void IterMap( std::function<void(const char*, Reader&)> fn) = 0;
+ virtual void IterArray(std::function<void(Reader&)> fn) = 0;
+ virtual void DoMember(const char* name, std::function<void(Reader&)> fn) = 0;
+ virtual std::string ToString() const = 0;
};
class Writer {
public:
- virtual ~Writer() {}
- virtual SerializeFormat Format() const = 0;
-
- virtual void Null() = 0;
- virtual void Bool(bool x) = 0;
- virtual void Int(int x) = 0;
- virtual void Uint32(uint32_t x) = 0;
- virtual void Int64(int64_t x) = 0;
- virtual void Uint64(uint64_t x) = 0;
- virtual void Double(double x) = 0;
- virtual void String(const char* x) = 0;
- virtual void String(const char* x, size_t len) = 0;
- virtual void StartArray(size_t) = 0;
- virtual void EndArray() = 0;
- virtual void StartObject() = 0;
- virtual void EndObject() = 0;
- virtual void Key(const char* name) = 0;
+ virtual ~Writer() {}
+ virtual SerializeFormat Format() const = 0;
+
+ virtual void Null() = 0;
+ virtual void Bool(bool x) = 0;
+ virtual void Int(int x) = 0;
+ virtual void Uint32(uint32_t x) = 0;
+ virtual void Int64(int64_t x) = 0;
+ virtual void Uint64(uint64_t x) = 0;
+ virtual void Double(double x) = 0;
+ virtual void String(const char* x) = 0;
+ virtual void String(const char* x, size_t len) = 0;
+ virtual void StartArray(size_t) = 0;
+ virtual void EndArray() = 0;
+ virtual void StartObject() = 0;
+ virtual void EndObject() = 0;
+ virtual void Key(const char* name) = 0;
};
@@ -130,9 +130,9 @@ struct optionals_mandatory_tag {};
#define _MAPPABLE_SWAP_MEMBER(name) std::swap(name,arg.name);
-#define MAKE_SWAP_METHOD(type, ...) \
-void swap(type& arg) noexcept{ \
- MACRO_MAP(_MAPPABLE_SWAP_MEMBER, __VA_ARGS__) \
+#define MAKE_SWAP_METHOD(type, ...) \
+void swap(type& arg) noexcept{ \
+ MACRO_MAP(_MAPPABLE_SWAP_MEMBER, __VA_ARGS__) \
}
#define MAKE_REFLECT_STRUCT_OPTIONALS_MANDATORY(type, ...) \
@@ -208,171 +208,171 @@ void Reflect(Writer& visitor, SerializeFormat& value);
template <typename T>
void Reflect(Reader& visitor, boost::optional<T>& value) {
- if (visitor.IsNull()) {
- visitor.GetNull();
- return;
- }
- T real_value;
- Reflect(visitor, real_value);
- value = std::move(real_value);
+ if (visitor.IsNull()) {
+ visitor.GetNull();
+ return;
+ }
+ T real_value;
+ Reflect(visitor, real_value);
+ value = std::move(real_value);
}
template <typename T>
void Reflect(Writer& visitor, boost::optional<T>& value) {
- if (value)
- Reflect(visitor, *value);
- else
- visitor.Null();
+ if (value)
+ Reflect(visitor, *value);
+ else
+ visitor.Null();
}
template <typename T>
void ReflectMember(Writer& visitor, const char* name, boost::optional<T>& value) {
- // For TypeScript optional property key?: value in the spec,
- // We omit both key and value if value is std::nullopt (null) for JsonWriter
- // to reduce output. But keep it for other serialization formats.
- if (value || visitor.Format() != SerializeFormat::Json) {
- visitor.Key(name);
- Reflect(visitor, value);
- }
+ // For TypeScript optional property key?: value in the spec,
+ // We omit both key and value if value is std::nullopt (null) for JsonWriter
+ // to reduce output. But keep it for other serialization formats.
+ if (value || visitor.Format() != SerializeFormat::Json) {
+ visitor.Key(name);
+ Reflect(visitor, value);
+ }
}
template <typename T>
void ReflectMember(Writer& visitor,
- const char* name,
- T& value,
- optionals_mandatory_tag) {
- visitor.Key(name);
- Reflect(visitor, value);
+ const char* name,
+ T& value,
+ optionals_mandatory_tag) {
+ visitor.Key(name);
+ Reflect(visitor, value);
}
template <typename T>
void ReflectMember(Reader& visitor,
- const char* name,
- T& value,
- optionals_mandatory_tag) {
- Reflect(visitor, value);
+ const char* name,
+ T& value,
+ optionals_mandatory_tag) {
+ Reflect(visitor, value);
}
template<class T >
void Reflect(Reader& visitor, std::map<std::string, T>& value)
{
- visitor.IterMap([&](const char* name,Reader& entry) {
- T entry_value;
- Reflect(entry, entry_value);
- value[name]=(std::move(entry_value));
- });
+ visitor.IterMap([&](const char* name,Reader& entry) {
+ T entry_value;
+ Reflect(entry, entry_value);
+ value[name]=(std::move(entry_value));
+ });
}
template<class _Ty >
void Reflect(Writer& visitor, std::map<std::string, _Ty>& value)
{
- REFLECT_MEMBER_START();
- for (auto& it : value)
- {
- visitor.Key(it.first.c_str());
- Reflect(visitor, it.second);
- }
- REFLECT_MEMBER_END();
+ REFLECT_MEMBER_START();
+ for (auto& it : value)
+ {
+ visitor.Key(it.first.c_str());
+ Reflect(visitor, it.second);
+ }
+ REFLECT_MEMBER_END();
}
// std::vector
template <typename T>
void Reflect(Reader& visitor, std::vector<T>& values) {
- visitor.IterArray([&](Reader& entry) {
- T entry_value;
- Reflect(entry, entry_value);
- values.push_back(std::move(entry_value));
- });
+ visitor.IterArray([&](Reader& entry) {
+ T entry_value;
+ Reflect(entry, entry_value);
+ values.push_back(std::move(entry_value));
+ });
}
template <typename T>
void Reflect(Writer& visitor, std::vector<T>& values) {
- visitor.StartArray(values.size());
- for (auto& value : values)
- Reflect(visitor, value);
- visitor.EndArray();
+ visitor.StartArray(values.size());
+ for (auto& value : values)
+ Reflect(visitor, value);
+ visitor.EndArray();
}
// ReflectMember
inline void DefaultReflectMemberStart(Writer& visitor) {
- visitor.StartObject();
+ visitor.StartObject();
}
inline void DefaultReflectMemberStart(Reader& visitor) {}
template <typename T>
bool ReflectMemberStart(Reader& visitor, T& value) {
- return false;
+ return false;
}
template <typename T>
bool ReflectMemberStart(Writer& visitor, T& value) {
- visitor.StartObject();
- return true;
+ visitor.StartObject();
+ return true;
}
template <typename T>
void ReflectMemberEnd(Reader& visitor, T& value) {}
template <typename T>
void ReflectMemberEnd(Writer& visitor, T& value) {
- visitor.EndObject();
+ visitor.EndObject();
}
template <typename T>
void ReflectMember(Reader& visitor, const char* name, T& value) {
- visitor.DoMember(name, [&](Reader& child) { Reflect(child, value); });
+ visitor.DoMember(name, [&](Reader& child) { Reflect(child, value); });
}
template <typename T>
void ReflectMember(Writer& visitor, const char* name, T& value) {
- visitor.Key(name);
- Reflect(visitor, value);
+ visitor.Key(name);
+ Reflect(visitor, value);
}
template<class _Ty1, class _Ty2>
void Reflect(Writer& visitor, std::pair< boost::optional<_Ty1>, boost::optional<_Ty2> >& value)
{
- if (value.first)
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
+ if (value.first)
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
}
template<class _Ty2>
void Reflect(Reader& visitor, std::pair< boost::optional<bool>, boost::optional<_Ty2> >& value)
{
- if(visitor.IsBool())
- {
- Reflect(visitor, value.first);
- return;
- }
+ if(visitor.IsBool())
+ {
+ Reflect(visitor, value.first);
+ return;
+ }
- Reflect(visitor, value.second);
+ Reflect(visitor, value.second);
}
template<class _Ty2>
void Reflect(Reader& visitor, std::pair< boost::optional<std::string>, boost::optional<_Ty2> >& value)
{
- if (visitor.IsString())
- {
- Reflect(visitor, value.first);
- return;
- }
+ if (visitor.IsString())
+ {
+ Reflect(visitor, value.first);
+ return;
+ }
- Reflect(visitor, value.second);
+ Reflect(visitor, value.second);
}
template<class _Ty1, class _Ty2>
void Reflect(Reader& visitor, std::pair< boost::optional<_Ty1>, boost::optional<_Ty2> >& value)
{
- try
- {
- Reflect(visitor, value.second);
- }
- catch (...)
- {
- Reflect(visitor, value.first);
- }
+ try
+ {
+ Reflect(visitor, value.second);
+ }
+ catch (...)
+ {
+ Reflect(visitor, value.first);
+ }
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
index 549c361950a..3dd3def9930 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
@@ -3,194 +3,194 @@
#include <string>
namespace lsp
{
- class stream
- {
- public:
- virtual ~stream() = default;
- virtual bool fail() = 0;
- virtual bool bad() = 0;
- virtual bool eof() = 0;
- virtual bool good() = 0;
- virtual void clear() = 0;
- virtual std::string what() = 0;
- virtual bool need_to_clear_the_state()
- {
- return false;
- }
-
- bool operator!()
- {
- return bad();
- }
- };
- class istream : public stream
- {
- public:
- virtual int get() = 0;
- virtual ~istream() = default;
- virtual istream& read(char* str, std::streamsize count) = 0;
- };
- template <class T >
- class base_istream : public istream
- {
- public:
- explicit base_istream(T& _t) :_impl(_t)
- {
-
- }
-
- int get() override
- {
- return _impl.get();
- }
- bool fail() override
- {
- return _impl.fail();
- }
- bool bad() override
- {
- return _impl.bad();
- }
- bool eof() override
- {
- return _impl.eof();
- }
- bool good() override
- {
- return _impl.good();
- }
- istream& read(char* str, std::streamsize count) override
- {
- _impl.read(str, count);
- return *this;
- }
-
- void clear() override
- {
- _impl.clear();
- }
- T& _impl;
- };
- class ostream : public stream
- {
- public:
- virtual ~ostream() = default;
-
- virtual ostream& write(const std::string&) = 0;
- virtual ostream& write(std::streamsize) = 0;
- virtual ostream& flush() = 0;
-
- };
- template <class T >
- class base_ostream : public ostream
- {
- public:
- explicit base_ostream(T& _t) :_impl(_t)
- {
-
- }
-
- bool fail() override
- {
- return _impl.fail();
- }
- bool good() override
- {
- return _impl.good();
- }
- bool bad() override
- {
- return _impl.bad();
- }
- bool eof() override
- {
- return _impl.eof();
- }
-
- ostream& write(const std::string& c) override
- {
- _impl << c;
- return *this;
- }
-
- ostream& write(std::streamsize _s) override
- {
-
- _impl << std::to_string(_s);
- return *this;
- }
-
- ostream& flush() override
- {
- _impl.flush();
- return *this;
- }
-
- void clear() override
- {
- _impl.clear();
- }
- protected:
- T& _impl;
- };
-
- template <class T >
- class base_iostream : public istream, public ostream
- {
- public:
- explicit base_iostream(T& _t) :_impl(_t)
- {
-
- }
-
- int get() override
- {
- return _impl.get();
- }
- bool fail() override
- {
- return _impl.fail();
- }
- bool bad() override
- {
- return _impl.bad();
- }
- bool eof() override
- {
- return _impl.eof();
- }
- bool good() override
- {
- return _impl.good();
- }
- istream& read(char* str, std::streamsize count) override
- {
- _impl.read(str, count);
- return *this;
- }
- ostream& write(const std::string& c) override
- {
- _impl << c;
- return *this;
- }
-
- ostream& write(std::streamsize _s) override
- {
- _impl << std::to_string(_s);
- return *this;
- }
-
- ostream& flush() override
- {
- _impl.flush();
- return *this;
- }
-
- void clear() override
- {
- _impl.clear();
- }
- protected:
- T& _impl;
- };
+ class stream
+ {
+ public:
+ virtual ~stream() = default;
+ virtual bool fail() = 0;
+ virtual bool bad() = 0;
+ virtual bool eof() = 0;
+ virtual bool good() = 0;
+ virtual void clear() = 0;
+ virtual std::string what() = 0;
+ virtual bool need_to_clear_the_state()
+ {
+ return false;
+ }
+
+ bool operator!()
+ {
+ return bad();
+ }
+ };
+ class istream : public stream
+ {
+ public:
+ virtual int get() = 0;
+ virtual ~istream() = default;
+ virtual istream& read(char* str, std::streamsize count) = 0;
+ };
+ template <class T >
+ class base_istream : public istream
+ {
+ public:
+ explicit base_istream(T& _t) :_impl(_t)
+ {
+
+ }
+
+ int get() override
+ {
+ return _impl.get();
+ }
+ bool fail() override
+ {
+ return _impl.fail();
+ }
+ bool bad() override
+ {
+ return _impl.bad();
+ }
+ bool eof() override
+ {
+ return _impl.eof();
+ }
+ bool good() override
+ {
+ return _impl.good();
+ }
+ istream& read(char* str, std::streamsize count) override
+ {
+ _impl.read(str, count);
+ return *this;
+ }
+
+ void clear() override
+ {
+ _impl.clear();
+ }
+ T& _impl;
+ };
+ class ostream : public stream
+ {
+ public:
+ virtual ~ostream() = default;
+
+ virtual ostream& write(const std::string&) = 0;
+ virtual ostream& write(std::streamsize) = 0;
+ virtual ostream& flush() = 0;
+
+ };
+ template <class T >
+ class base_ostream : public ostream
+ {
+ public:
+ explicit base_ostream(T& _t) :_impl(_t)
+ {
+
+ }
+
+ bool fail() override
+ {
+ return _impl.fail();
+ }
+ bool good() override
+ {
+ return _impl.good();
+ }
+ bool bad() override
+ {
+ return _impl.bad();
+ }
+ bool eof() override
+ {
+ return _impl.eof();
+ }
+
+ ostream& write(const std::string& c) override
+ {
+ _impl << c;
+ return *this;
+ }
+
+ ostream& write(std::streamsize _s) override
+ {
+
+ _impl << std::to_string(_s);
+ return *this;
+ }
+
+ ostream& flush() override
+ {
+ _impl.flush();
+ return *this;
+ }
+
+ void clear() override
+ {
+ _impl.clear();
+ }
+ protected:
+ T& _impl;
+ };
+
+ template <class T >
+ class base_iostream : public istream, public ostream
+ {
+ public:
+ explicit base_iostream(T& _t) :_impl(_t)
+ {
+
+ }
+
+ int get() override
+ {
+ return _impl.get();
+ }
+ bool fail() override
+ {
+ return _impl.fail();
+ }
+ bool bad() override
+ {
+ return _impl.bad();
+ }
+ bool eof() override
+ {
+ return _impl.eof();
+ }
+ bool good() override
+ {
+ return _impl.good();
+ }
+ istream& read(char* str, std::streamsize count) override
+ {
+ _impl.read(str, count);
+ return *this;
+ }
+ ostream& write(const std::string& c) override
+ {
+ _impl << c;
+ return *this;
+ }
+
+ ostream& write(std::streamsize _s) override
+ {
+ _impl << std::to_string(_s);
+ return *this;
+ }
+
+ ostream& flush() override
+ {
+ _impl.flush();
+ return *this;
+ }
+
+ void clear() override
+ {
+ _impl.clear();
+ }
+ protected:
+ T& _impl;
+ };
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
index cca9f9a486a..3e1ba547ca0 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
@@ -57,23 +57,23 @@ struct MultiQueueWaiter {
static bool HasState(std::initializer_list<BaseThreadQueue*> queues);
bool ValidateWaiter(std::initializer_list<BaseThreadQueue*> queues);
-
+
template <typename... BaseThreadQueue>
bool Wait(std::atomic<bool>& quit, BaseThreadQueue... queues) {
- MultiQueueLock<BaseThreadQueue...> l(queues...);
- while (!quit.load(std::memory_order_relaxed)) {
- if (HasState({ queues... }))
- return false;
- cv.wait(l);
- }
- return true;
+ MultiQueueLock<BaseThreadQueue...> l(queues...);
+ while (!quit.load(std::memory_order_relaxed)) {
+ if (HasState({ queues... }))
+ return false;
+ cv.wait(l);
+ }
+ return true;
}
template <typename... BaseThreadQueue>
void WaitUntil(std::chrono::steady_clock::time_point t,
- BaseThreadQueue... queues) {
- MultiQueueLock<BaseThreadQueue...> l(queues...);
- if (!HasState({ queues... }))
- cv.wait_until(l, t);
+ BaseThreadQueue... queues) {
+ MultiQueueLock<BaseThreadQueue...> l(queues...);
+ if (!HasState({ queues... }))
+ cv.wait_until(l, t);
}
template <typename... BaseThreadQueue>
void Wait(BaseThreadQueue... queues) {
@@ -181,22 +181,22 @@ struct ThreadedQueue : public BaseThreadQueue {
}
// Return all elements in the queue.
std::vector<T> DequeueAll() {
- std::lock_guard<std::mutex> lock(mutex);
-
- total_count_ = 0;
-
- std::vector<T> result;
- result.reserve(priority_.size() + queue_.size());
- while (!priority_.empty()) {
- result.emplace_back(std::move(priority_.front()));
- priority_.pop_front();
- }
- while (!queue_.empty()) {
- result.emplace_back(std::move(queue_.front()));
- queue_.pop_front();
- }
-
- return result;
+ std::lock_guard<std::mutex> lock(mutex);
+
+ total_count_ = 0;
+
+ std::vector<T> result;
+ result.reserve(priority_.size() + queue_.size());
+ while (!priority_.empty()) {
+ result.emplace_back(std::move(priority_.front()));
+ priority_.pop_front();
+ }
+ while (!queue_.empty()) {
+ result.emplace_back(std::move(queue_.front()));
+ queue_.pop_front();
+ }
+
+ return result;
}
std::vector<T> TryDequeueSome(size_t num) {
std::lock_guard<std::mutex> lock(mutex);
@@ -213,7 +213,7 @@ struct ThreadedQueue : public BaseThreadQueue {
}
else
{
- break;
+ break;
}
num -= 1;
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
index ef1ee438603..4f9aae08515 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
@@ -4,21 +4,21 @@
#include <string>
struct AbsolutePath {
- static AbsolutePath BuildDoNotUse(const std::string& path);
+ static AbsolutePath BuildDoNotUse(const std::string& path);
- // Try not to use this.
- AbsolutePath();
+ // Try not to use this.
+ AbsolutePath();
- // Provide implicit conversions to std::string for the time being.
- AbsolutePath(const std::string& path, bool validate = true);
- operator std::string() const;
+ // Provide implicit conversions to std::string for the time being.
+ AbsolutePath(const std::string& path, bool validate = true);
+ operator std::string() const;
- bool operator==(const AbsolutePath& rhs) const;
- bool operator!=(const AbsolutePath& rhs) const;
- bool operator<(const AbsolutePath& rhs) const;
- bool operator>(const AbsolutePath& rhs) const;
- std::string path;
- bool qualify = true;
+ bool operator==(const AbsolutePath& rhs) const;
+ bool operator!=(const AbsolutePath& rhs) const;
+ bool operator<(const AbsolutePath& rhs) const;
+ bool operator>(const AbsolutePath& rhs) const;
+ std::string path;
+ bool qualify = true;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
index 7adf557f83a..29ab82b1c6b 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
@@ -9,298 +9,298 @@ class ClientPreferences
{
public:
- std::shared_ptr<lsWorkspaceClientCapabilites> workspace;
- lsTextDocumentClientCapabilities textDocument ;
-
- ClientPreferences(const lsClientCapabilities& capabilities)
- {
- v3supported = capabilities.textDocument.has_value();
- if (v3supported)
- textDocument = capabilities.textDocument.value();
- if(capabilities.workspace)
- {
- workspace = std::make_shared<lsWorkspaceClientCapabilites>(capabilities.workspace.value());
- }
- }
-
- bool v3supported=false;
-
- bool isSignatureHelpSupported() {
-
- return v3supported && (textDocument.signatureHelp);
- }
- bool isWorkspaceDidChangeConfigurationSupported() const
- {
- return workspace && isDynamicRegistrationSupported(workspace->didChangeConfiguration);
- }
- bool isWorkspaceFoldersSupported() {
- return workspace != nullptr && isTrue(workspace->workspaceFolders);
- }
-
- bool isCompletionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.completion);
- }
-
- bool isCompletionSnippetsSupported() {
- //@formatter:off
- if(!v3supported || !textDocument.completion)
- {
- return false;
- }
- const auto& completion = textDocument.completion.value();
- if(completion.completionItem)
- {
- return isTrue(completion.completionItem.value().snippetSupport);
- }
- return false;
- }
-
- bool isV3Supported() {
- return v3supported;
- }
-
- bool isFormattingDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.formatting);
- }
-
- bool isRangeFormattingDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.rangeFormatting);
- }
-
- bool isOnTypeFormattingDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.onTypeFormatting);
- }
-
- bool isCodeLensDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.codeLens);
- }
-
- bool isSignatureHelpDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.signatureHelp);
- }
- template<typename T>
- static bool isDynamicRegistrationSupported(boost::optional<T>& capability)
- {
- if(capability)
- return (capability.value().dynamicRegistration.value());
- return false;
- }
-
- bool isTrue(const boost::optional<bool>& value)
- {
- return value.get_value_or(false);
- }
-
- bool isRenameDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.rename);
- }
-
- bool isExecuteCommandDynamicRegistrationSupported() {
- return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->executeCommand);
- }
-
- bool isWorkspaceSymbolDynamicRegistered() {
- return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->symbol);
- }
-
- bool isWorkspaceChangeWatchedFilesDynamicRegistered() {
- return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->didChangeWatchedFiles);
- }
-
- bool isDocumentSymbolDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.documentSymbol);
- }
-
- bool isCodeActionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.codeAction);
- }
-
- bool isDefinitionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.definition);
- }
-
- bool isTypeDefinitionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.typeDefinition);
- }
-
- bool isHoverDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.hover);
- }
-
- bool isReferencesDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.references);
- }
-
- bool isDocumentHighlightDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.documentHighlight);
- }
-
- bool isFoldgingRangeDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.foldingRange);
- }
-
- bool isImplementationDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.implementation);
- }
-
- bool isSelectionRangeDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.selectionRange);
- }
-
- bool isWillSaveRegistered() {
- return v3supported && isTrue(textDocument.synchronization.willSave);
- }
-
- bool isWillSaveWaitUntilRegistered() {
- return v3supported && isTrue(textDocument.synchronization.willSaveWaitUntil);
- }
-
- bool isWorkspaceApplyEditSupported() {
- return workspace != nullptr && isTrue(workspace->applyEdit);
- }
-
- bool isSupportsCompletionDocumentationMarkdown() {
-
- if (!v3supported || !textDocument.completion)
- {
- return false;
- }
- const auto& completion = textDocument.completion.value();
- if (completion.completionItem)
- {
- auto& documentationFormat = completion.completionItem.value().documentationFormat;
- if(documentationFormat)
- {
- auto& data = documentationFormat.value();
- for(auto& it : data)
- {
- if(it == "markdown")
- {
- return true;
- }
- }
- }
- }
- return false;
-
- }
-
-
- bool isWorkspaceEditResourceChangesSupported() {
- if(!workspace) return false;
-
- if(workspace->workspaceEdit)
- {
- return isTrue(workspace->workspaceEdit.value().resourceChanges);
- }
- return false;
- }
- static bool contains(const std::vector<std::string>& v, const std::string& target)
- {
- for(auto& it : v)
- {
- if(it == target) return true;
- }
- return false;
- }
- bool isResourceOperationSupported() const
- {
- if (!workspace) return false;
- if (!workspace->workspaceEdit)
- {
- return false;
- }
- auto& it = (workspace->workspaceEdit.value());
- if(!it.resourceOperations) return false;
- const auto& resourceOperations = it.resourceOperations.value();
- return contains(resourceOperations, "create") && contains(resourceOperations, "rename") && contains(resourceOperations, "delete");
-
- }
-
- /**
- * {@code true} if the client has explicitly set the
- * {@code textDocument.documentSymbol.hierarchicalDocumentSymbolSupport} to
- * {@code true} when initializing the LS. Otherwise, {@code false}.
- */
- bool isHierarchicalDocumentSymbolSupported() {
- if(!v3supported || !textDocument.documentSymbol) return false;
- return isTrue(textDocument.documentSymbol.value().hierarchicalDocumentSymbolSupport);
-
- }
-
- bool isSemanticHighlightingSupported() {
- //@formatter:off
- if (!v3supported || !textDocument.semanticHighlightingCapabilities) return false;
- return isTrue(textDocument.semanticHighlightingCapabilities.value().semanticHighlighting);
- //@formatter:on
- }
-
- /**
- * {@code true} if the client has explicitly set the
- * {@code textDocument.codeAction.codeActionLiteralSupport.codeActionKind.valueSet}
- * value. Otherwise, {@code false}.
- */
- bool isSupportedCodeActionKind(const std::string& kind) {
- if (!v3supported || !textDocument.codeAction) return false;
- //@formatter:off
- const auto& codeAction = textDocument.codeAction.value();
- if(codeAction.codeActionLiteralSupport)
- {
- const auto& codeActionKind = codeAction.codeActionLiteralSupport.value().codeActionKind;
- if(codeActionKind)
- {
- const auto& valueSet = codeActionKind.value().valueSet;
- if(valueSet)
- {
- for(auto& k : valueSet.value())
- {
- if(lsp::StartsWith(kind,k))
- {
- return true;
- }
- }
- }
- }
- }
- return false;
-
- //@formatter:on
- }
-
- /**
- * {@code true} if the client has explicitly set the
- * {@code textDocument.publishDiagnostics.tagSupport} to
- * {@code true} when initializing the LS. Otherwise, {@code false}.
- */
- bool isDiagnosticTagSupported() {
- if (!v3supported || !textDocument.publishDiagnostics) return false;
- const auto& publishDiagnostics = textDocument.publishDiagnostics.value();
- if(publishDiagnostics.tagSupport)
- {
- isTagSupported(publishDiagnostics.tagSupport);
- }
- return false;
- }
-
- bool isTagSupported(const boost::optional < std::pair<boost::optional<bool>,
- boost::optional<DiagnosticsTagSupport> > >& tagSupport) {
- if(tagSupport)
- {
- auto &v = tagSupport.value();
- if (v.first)
- {
- return v.first.value();
- }
- if (v.second) {
- return !v.second.value().valueSet.empty();
- }
- }
- return false;
- }
-
- bool isCallHierarchyDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.callHierarchy);
- }
+ std::shared_ptr<lsWorkspaceClientCapabilites> workspace;
+ lsTextDocumentClientCapabilities textDocument ;
+
+ ClientPreferences(const lsClientCapabilities& capabilities)
+ {
+ v3supported = capabilities.textDocument.has_value();
+ if (v3supported)
+ textDocument = capabilities.textDocument.value();
+ if(capabilities.workspace)
+ {
+ workspace = std::make_shared<lsWorkspaceClientCapabilites>(capabilities.workspace.value());
+ }
+ }
+
+ bool v3supported=false;
+
+ bool isSignatureHelpSupported() {
+
+ return v3supported && (textDocument.signatureHelp);
+ }
+ bool isWorkspaceDidChangeConfigurationSupported() const
+ {
+ return workspace && isDynamicRegistrationSupported(workspace->didChangeConfiguration);
+ }
+ bool isWorkspaceFoldersSupported() {
+ return workspace != nullptr && isTrue(workspace->workspaceFolders);
+ }
+
+ bool isCompletionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.completion);
+ }
+
+ bool isCompletionSnippetsSupported() {
+ //@formatter:off
+ if(!v3supported || !textDocument.completion)
+ {
+ return false;
+ }
+ const auto& completion = textDocument.completion.value();
+ if(completion.completionItem)
+ {
+ return isTrue(completion.completionItem.value().snippetSupport);
+ }
+ return false;
+ }
+
+ bool isV3Supported() {
+ return v3supported;
+ }
+
+ bool isFormattingDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.formatting);
+ }
+
+ bool isRangeFormattingDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.rangeFormatting);
+ }
+
+ bool isOnTypeFormattingDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.onTypeFormatting);
+ }
+
+ bool isCodeLensDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.codeLens);
+ }
+
+ bool isSignatureHelpDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.signatureHelp);
+ }
+ template<typename T>
+ static bool isDynamicRegistrationSupported(boost::optional<T>& capability)
+ {
+ if(capability)
+ return (capability.value().dynamicRegistration.value());
+ return false;
+ }
+
+ bool isTrue(const boost::optional<bool>& value)
+ {
+ return value.get_value_or(false);
+ }
+
+ bool isRenameDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.rename);
+ }
+
+ bool isExecuteCommandDynamicRegistrationSupported() {
+ return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->executeCommand);
+ }
+
+ bool isWorkspaceSymbolDynamicRegistered() {
+ return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->symbol);
+ }
+
+ bool isWorkspaceChangeWatchedFilesDynamicRegistered() {
+ return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->didChangeWatchedFiles);
+ }
+
+ bool isDocumentSymbolDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.documentSymbol);
+ }
+
+ bool isCodeActionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.codeAction);
+ }
+
+ bool isDefinitionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.definition);
+ }
+
+ bool isTypeDefinitionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.typeDefinition);
+ }
+
+ bool isHoverDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.hover);
+ }
+
+ bool isReferencesDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.references);
+ }
+
+ bool isDocumentHighlightDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.documentHighlight);
+ }
+
+ bool isFoldgingRangeDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.foldingRange);
+ }
+
+ bool isImplementationDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.implementation);
+ }
+
+ bool isSelectionRangeDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.selectionRange);
+ }
+
+ bool isWillSaveRegistered() {
+ return v3supported && isTrue(textDocument.synchronization.willSave);
+ }
+
+ bool isWillSaveWaitUntilRegistered() {
+ return v3supported && isTrue(textDocument.synchronization.willSaveWaitUntil);
+ }
+
+ bool isWorkspaceApplyEditSupported() {
+ return workspace != nullptr && isTrue(workspace->applyEdit);
+ }
+
+ bool isSupportsCompletionDocumentationMarkdown() {
+
+ if (!v3supported || !textDocument.completion)
+ {
+ return false;
+ }
+ const auto& completion = textDocument.completion.value();
+ if (completion.completionItem)
+ {
+ auto& documentationFormat = completion.completionItem.value().documentationFormat;
+ if(documentationFormat)
+ {
+ auto& data = documentationFormat.value();
+ for(auto& it : data)
+ {
+ if(it == "markdown")
+ {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+
+ }
+
+
+ bool isWorkspaceEditResourceChangesSupported() {
+ if(!workspace) return false;
+
+ if(workspace->workspaceEdit)
+ {
+ return isTrue(workspace->workspaceEdit.value().resourceChanges);
+ }
+ return false;
+ }
+ static bool contains(const std::vector<std::string>& v, const std::string& target)
+ {
+ for(auto& it : v)
+ {
+ if(it == target) return true;
+ }
+ return false;
+ }
+ bool isResourceOperationSupported() const
+ {
+ if (!workspace) return false;
+ if (!workspace->workspaceEdit)
+ {
+ return false;
+ }
+ auto& it = (workspace->workspaceEdit.value());
+ if(!it.resourceOperations) return false;
+ const auto& resourceOperations = it.resourceOperations.value();
+ return contains(resourceOperations, "create") && contains(resourceOperations, "rename") && contains(resourceOperations, "delete");
+
+ }
+
+ /**
+ * {@code true} if the client has explicitly set the
+ * {@code textDocument.documentSymbol.hierarchicalDocumentSymbolSupport} to
+ * {@code true} when initializing the LS. Otherwise, {@code false}.
+ */
+ bool isHierarchicalDocumentSymbolSupported() {
+ if(!v3supported || !textDocument.documentSymbol) return false;
+ return isTrue(textDocument.documentSymbol.value().hierarchicalDocumentSymbolSupport);
+
+ }
+
+ bool isSemanticHighlightingSupported() {
+ //@formatter:off
+ if (!v3supported || !textDocument.semanticHighlightingCapabilities) return false;
+ return isTrue(textDocument.semanticHighlightingCapabilities.value().semanticHighlighting);
+ //@formatter:on
+ }
+
+ /**
+ * {@code true} if the client has explicitly set the
+ * {@code textDocument.codeAction.codeActionLiteralSupport.codeActionKind.valueSet}
+ * value. Otherwise, {@code false}.
+ */
+ bool isSupportedCodeActionKind(const std::string& kind) {
+ if (!v3supported || !textDocument.codeAction) return false;
+ //@formatter:off
+ const auto& codeAction = textDocument.codeAction.value();
+ if(codeAction.codeActionLiteralSupport)
+ {
+ const auto& codeActionKind = codeAction.codeActionLiteralSupport.value().codeActionKind;
+ if(codeActionKind)
+ {
+ const auto& valueSet = codeActionKind.value().valueSet;
+ if(valueSet)
+ {
+ for(auto& k : valueSet.value())
+ {
+ if(lsp::StartsWith(kind,k))
+ {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+
+ //@formatter:on
+ }
+
+ /**
+ * {@code true} if the client has explicitly set the
+ * {@code textDocument.publishDiagnostics.tagSupport} to
+ * {@code true} when initializing the LS. Otherwise, {@code false}.
+ */
+ bool isDiagnosticTagSupported() {
+ if (!v3supported || !textDocument.publishDiagnostics) return false;
+ const auto& publishDiagnostics = textDocument.publishDiagnostics.value();
+ if(publishDiagnostics.tagSupport)
+ {
+ isTagSupported(publishDiagnostics.tagSupport);
+ }
+ return false;
+ }
+
+ bool isTagSupported(const boost::optional < std::pair<boost::optional<bool>,
+ boost::optional<DiagnosticsTagSupport> > >& tagSupport) {
+ if(tagSupport)
+ {
+ auto &v = tagSupport.value();
+ if (v.first)
+ {
+ return v.first.value();
+ }
+ if (v.second) {
+ return !v.second.value().valueSet.empty();
+ }
+ }
+ return false;
+ }
+
+ bool isCallHierarchyDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.callHierarchy);
+ }
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
index a1e3f1dcc1e..1704dd33c6c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
@@ -7,98 +7,98 @@
#include "LibLsp/lsp/lsCodeAction.h"
namespace JDT
{
- namespace CodeActionKind {
-
-
- /**
- * Base kind for quickfix actions: 'quickfix'
- */
- extern const char* QuickFix;
-
- /**
- * Base kind for refactoring actions: 'refactor'
- */
- extern const char* Refactor;
-
- /**
- * Base kind for refactoring extraction actions: 'refactor.extract'
- *
- * Example extract actions:
- *
- * - Extract method - Extract function - Extract variable - Extract interface
- * from class - ...
- */
- extern const char* RefactorExtract;
-
- /**
- * Base kind for refactoring inline actions: 'refactor.inline'
- *
- * Example inline actions:
- *
- * - Inline function - Inline variable - Inline constant - ...
- */
- extern const char* RefactorInline;
-
- /**
- * Base kind for refactoring rewrite actions: 'refactor.rewrite'
- *
- * Example rewrite actions:
- *
- * - Convert JavaScript function to class - Add or remove parameter -
- * Encapsulate field - Make method static - Move method to base class - ...
- */
- extern const char* RefactorRewrite;
-
- /**
- * Base kind for source actions: `source`
- *
- * Source code actions apply to the entire file.
- */
- extern const char* Source ;
-
- /**
- * Base kind for an organize imports source action: `source.organizeImports`
- */
- extern const char* SourceOrganizeImports;
-
- extern const char* COMMAND_ID_APPLY_EDIT;
- };
+ namespace CodeActionKind {
+
+
+ /**
+ * Base kind for quickfix actions: 'quickfix'
+ */
+ extern const char* QuickFix;
+
+ /**
+ * Base kind for refactoring actions: 'refactor'
+ */
+ extern const char* Refactor;
+
+ /**
+ * Base kind for refactoring extraction actions: 'refactor.extract'
+ *
+ * Example extract actions:
+ *
+ * - Extract method - Extract function - Extract variable - Extract interface
+ * from class - ...
+ */
+ extern const char* RefactorExtract;
+
+ /**
+ * Base kind for refactoring inline actions: 'refactor.inline'
+ *
+ * Example inline actions:
+ *
+ * - Inline function - Inline variable - Inline constant - ...
+ */
+ extern const char* RefactorInline;
+
+ /**
+ * Base kind for refactoring rewrite actions: 'refactor.rewrite'
+ *
+ * Example rewrite actions:
+ *
+ * - Convert JavaScript function to class - Add or remove parameter -
+ * Encapsulate field - Make method static - Move method to base class - ...
+ */
+ extern const char* RefactorRewrite;
+
+ /**
+ * Base kind for source actions: `source`
+ *
+ * Source code actions apply to the entire file.
+ */
+ extern const char* Source ;
+
+ /**
+ * Base kind for an organize imports source action: `source.organizeImports`
+ */
+ extern const char* SourceOrganizeImports;
+
+ extern const char* COMMAND_ID_APPLY_EDIT;
+ };
}
struct lsCodeActionContext {
- // An array of diagnostics.
- std::vector<lsDiagnostic> diagnostics;
- /**
- * Requested kind of actions to return.
- *
- * Actions not of this kind are filtered out by the client before being shown. So servers
- * can omit computing them.
- *
- * See {@link CodeActionKind} for allowed values.
- */
- boost::optional<std::vector<std::string>> only;
-
- MAKE_SWAP_METHOD(lsCodeActionContext,
- diagnostics, only);
+ // An array of diagnostics.
+ std::vector<lsDiagnostic> diagnostics;
+ /**
+ * Requested kind of actions to return.
+ *
+ * Actions not of this kind are filtered out by the client before being shown. So servers
+ * can omit computing them.
+ *
+ * See {@link CodeActionKind} for allowed values.
+ */
+ boost::optional<std::vector<std::string>> only;
+
+ MAKE_SWAP_METHOD(lsCodeActionContext,
+ diagnostics, only);
};
MAKE_REFLECT_STRUCT(lsCodeActionContext,
- diagnostics, only);
+ diagnostics, only);
// Params for the CodeActionRequest
struct lsCodeActionParams {
- // The document in which the command was invoked.
- lsTextDocumentIdentifier textDocument;
- // The range for which the command was invoked.
- lsRange range;
- // Context carrying additional information.
- lsCodeActionContext context;
-
- MAKE_SWAP_METHOD(lsCodeActionParams,
- textDocument,
- range,
- context);
+ // The document in which the command was invoked.
+ lsTextDocumentIdentifier textDocument;
+ // The range for which the command was invoked.
+ lsRange range;
+ // Context carrying additional information.
+ lsCodeActionContext context;
+
+ MAKE_SWAP_METHOD(lsCodeActionParams,
+ textDocument,
+ range,
+ context);
};
MAKE_REFLECT_STRUCT(lsCodeActionParams,
textDocument,
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Directory.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
index 93f2c0807d3..77b6cbb3e79 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
@@ -4,10 +4,10 @@
struct AbsolutePath;
struct Directory {
- explicit Directory(const AbsolutePath& path);
+ explicit Directory(const AbsolutePath& path);
- bool operator==(const Directory& rhs) const;
- bool operator!=(const Directory& rhs) const;
+ bool operator==(const Directory& rhs) const;
+ bool operator!=(const Directory& rhs) const;
- std::string path;
+ std::string path;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
index c06eed4b1ce..5ad4e07d8d4 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
@@ -2,19 +2,19 @@
#include "lsAny.h"
struct ExecuteCommandParams {
- /**
- * The identifier of the actual command handler.
- */
+ /**
+ * The identifier of the actual command handler.
+ */
- std::string command;
+ std::string command;
- /**
- * Arguments that the command should be invoked with.
- * The arguments are typically specified when a command is returned from the server to the client.
- * Example requests that return a command are textDocument/codeAction or textDocument/codeLens.
- */
- boost::optional<std::vector<lsp::Any>> arguments;
-
- MAKE_SWAP_METHOD(ExecuteCommandParams, command, arguments);
+ /**
+ * Arguments that the command should be invoked with.
+ * The arguments are typically specified when a command is returned from the server to the client.
+ * Example requests that return a command are textDocument/codeAction or textDocument/codeLens.
+ */
+ boost::optional<std::vector<lsp::Any>> arguments;
+
+ MAKE_SWAP_METHOD(ExecuteCommandParams, command, arguments);
};
MAKE_REFLECT_STRUCT(ExecuteCommandParams,command,arguments)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
index bf1337e44fe..369ebb2a6da 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
@@ -2,7 +2,7 @@
#include <string>
-namespace lsp {
+namespace lsp {
/**
* The <code>IProgressMonitor</code> interface is implemented
* by objects that monitor the progress of an activity; the methods
@@ -36,110 +36,108 @@ namespace lsp {
* Clients may implement this interface.
* </p>
*/
- class IProgressMonitor {
- public:
- virtual ~IProgressMonitor()
- {
- }
-
- /** Constant indicating an unknown amount of work.
- */
-
- const static int UNKNOWN = -1;
-
- /**
- * Notifies that the main task is beginning. This must only be called once
- * on a given progress monitor instance.
- *
- * @param name the name (or description) of the main task
- * @param totalWork the total number of work units into which
- * the main task is been subdivided. If the value is <code>UNKNOWN</code>
- * the implemenation is free to indicate progress in a way which
- * doesn't require the total number of work units in advance.
- */
- virtual void beginTask(void* , int totalWork)
- {
-
- };
- /**
- * Notifies that the work is done; that is, either the main task is completed
- * or the user canceled it. This method may be called more than once
- * (implementations should be prepared to handle this case).
- */
-
- virtual void endTask(void*, int totalWork)
- {
-
- }
-
- virtual void done(void*) = 0;
-
- /**
- * Internal method to handle scaling correctly. This method
- * must not be called by a client. Clients should
- * always use the method </code>worked(int)</code>.
- */
- virtual void internalWorked(double work)
- {
-
- }
- /**
- * Returns whether cancelation of current operation has been requested.
- * Long-running operations should poll to see if cancelation
- * has been requested.
- *
- * @return <code>true</code> if cancellation has been requested,
- * and <code>false</code> otherwise
- * @see #setCanceled
- */
- virtual bool isCanceled() = 0;
- /**
- * Sets the cancel state to the given value.
- *
- * @param value <code>true</code> indicates that cancelation has
- * been requested (but not necessarily acknowledged);
- * <code>false</code> clears this flag
- *
- * @see #isCanceled
- */
- virtual void setCanceled(bool value) = 0;
- /**
- * Sets the task name to the given value. This method is used to
- * restore the task label after a nested operation was executed.
- * Normally there is no need for clients to call this method.
- *
- * @param name the name (or description) of the main task
- * @see #beginTask(java.lang.const wstring&, int)
- */
- virtual void setTaskName(void*)
- {
-
- };
- /**
- * Notifies that a subtask of the main task is beginning.
- * Subtasks are optional; the main task might not have subtasks.
- *
- * @param name the name (or description) of the subtask
- */
- virtual void subTask(void* )
- {
-
- }
- /**
- * Notifies that a given number of work unit of the main task
- * has been completed. Note that this amount represents an
- * installment, as opposed to a cumulative amount of work done
- * to date.
- *
- * @param work the number of work units just completed
- */
- virtual void worked(int work)
- {
-
- };
-
- virtual void catch_exception(void*) = 0;
- };
+ class IProgressMonitor {
+ public:
+ virtual ~IProgressMonitor()
+ {
+ }
+
+ /** Constant indicating an unknown amount of work.
+ */
+
+ const static int UNKNOWN = -1;
+
+ /**
+ * Notifies that the main task is beginning. This must only be called once
+ * on a given progress monitor instance.
+ *
+ * @param name the name (or description) of the main task
+ * @param totalWork the total number of work units into which
+ * the main task is been subdivided. If the value is <code>UNKNOWN</code>
+ * the implemenation is free to indicate progress in a way which
+ * doesn't require the total number of work units in advance.
+ */
+ virtual void beginTask(void* , int totalWork)
+ {
+
+ };
+ /**
+ * Notifies that the work is done; that is, either the main task is completed
+ * or the user canceled it. This method may be called more than once
+ * (implementations should be prepared to handle this case).
+ */
+
+ virtual void endTask(void*, int totalWork)
+ {
+
+ }
+
+ virtual void done(void*) = 0;
+
+ /**
+ * Internal method to handle scaling correctly. This method
+ * must not be called by a client. Clients should
+ * always use the method <code>worked(int)</code>.
+ */
+ virtual void internalWorked(double work)
+ {
+
+ }
+ /**
+ * Returns whether cancelation of current operation has been requested.
+ * Long-running operations should poll to see if cancelation
+ * has been requested.
+ *
+ * @return <code>true</code> if cancellation has been requested,
+ * and <code>false</code> otherwise
+ * @see #setCanceled
+ */
+ virtual bool isCanceled() = 0;
+ /**
+ * Sets the cancel state to the given value.
+ *
+ * @param value <code>true</code> indicates that cancelation has
+ * been requested (but not necessarily acknowledged);
+ * <code>false</code> clears this flag
+ *
+ * @see #isCanceled
+ */
+ virtual void setCanceled(bool value) = 0;
+ /**
+ * Sets the task name to the given value. This method is used to
+ * restore the task label after a nested operation was executed.
+ * Normally there is no need for clients to call this method.
+ *
+ * @param name the name (or description) of the main task
+ * @see #beginTask(java.lang.const wstring&, int)
+ */
+ virtual void setTaskName(void*)
+ {
+
+ };
+ /**
+ * Notifies that a subtask of the main task is beginning.
+ * Subtasks are optional; the main task might not have subtasks.
+ *
+ * @param name the name (or description) of the subtask
+ */
+ virtual void subTask(void* )
+ {
+
+ }
+ /**
+ * Notifies that a given number of work unit of the main task
+ * has been completed. Note that this amount represents an
+ * installment, as opposed to a cumulative amount of work done
+ * to date.
+ *
+ * @param work the number of work units just completed
+ */
+ virtual void worked(int work)
+ {
+
+ };
+
+ virtual void catch_exception(void*) = 0;
+ };
}
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
index 92d773db0cc..1618939c698 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
@@ -1,5 +1,5 @@
#pragma once
-#include <cctype>
+#include <cctype>
#include <clocale>
#include <cstddef>
#include <memory>
@@ -11,7 +11,7 @@
namespace lsp
{
-
+
/// Holds text and knows how to lay it out. Multiple blocks can be grouped to
/// form a document. Blocks include their own trailing newlines, std::string_ref
/// should trim them if need be.
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
index 220817a1a27..bac8fbbaf51 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
@@ -12,877 +12,877 @@
namespace std
{
- /**
- * An extension of STL's string providing additional functionality that is often availiable in
- * higher-level languages such as Python.
- */
- class string_ref : public string
- {
- public:
-
- //static unsigned GetAutoSenseRadix(string_ref& Str) {
- // if (Str.empty())
- // return 10;
-
- // if (Str.start_with("0x") || Str.start_with("0X")) {
- // Str = Str.substr(2);
- // return 16;
- // }
-
- // if (Str.start_with("0b") || Str.start_with("0B")) {
- // Str = Str.substr(2);
- // return 2;
- // }
-
- // if (Str.start_with("0o")) {
- // Str = Str.substr(2);
- // return 8;
- // }
-
- // if (Str[0] == '0' && Str.size() > 1 && std::isdigit(Str[1])) {
- // Str = Str.substr(1);
- // return 8;
- // }
-
- // return 10;
- //}
-
- //static bool consumeUnsignedInteger(string_ref& Str, unsigned Radix,
- // unsigned long long& Result) {
- // // Autosense radix if not specified.
- // if (Radix == 0)
- // Radix = GetAutoSenseRadix(Str);
-
- // // Empty strings (after the radix autosense) are invalid.
- // if (Str.empty()) return true;
-
- // // Parse all the bytes of the string given this radix. Watch for overflow.
- // string_ref Str2 = Str;
- // Result = 0;
- // while (!Str2.empty()) {
- // unsigned CharVal;
- // if (Str2[0] >= '0' && Str2[0] <= '9')
- // CharVal = Str2[0] - '0';
- // else if (Str2[0] >= 'a' && Str2[0] <= 'z')
- // CharVal = Str2[0] - 'a' + 10;
- // else if (Str2[0] >= 'A' && Str2[0] <= 'Z')
- // CharVal = Str2[0] - 'A' + 10;
- // else
- // break;
-
- // // If the parsed value is larger than the integer radix, we cannot
- // // consume any more characters.
- // if (CharVal >= Radix)
- // break;
-
- // // Add in this character.
- // unsigned long long PrevResult = Result;
- // Result = Result * Radix + CharVal;
-
- // // Check for overflow by shifting back and seeing if bits were lost.
- // if (Result / Radix < PrevResult)
- // return true;
-
- // Str2 = Str2.substr(1);
- // }
-
- // // We consider the operation a failure if no characters were consumed
- // // successfully.
- // if (Str.size() == Str2.size())
- // return true;
-
- // Str = Str2;
- // return false;
- //}
-
- //static bool consumeSignedInteger(string_ref& Str, unsigned Radix,
- // long long& Result) {
- // unsigned long long ULLVal;
-
- // // Handle positive strings first.
- // if (Str.empty() || Str.front() != '-') {
- // if (consumeUnsignedInteger(Str, Radix, ULLVal) ||
- // // Check for value so large it overflows a signed value.
- // (long long)ULLVal < 0)
- // return true;
- // Result = ULLVal;
- // return false;
- // }
-
- // // Get the positive part of the value.
- // string_ref Str2 = Str.drop_front(1);
- // if (consumeUnsignedInteger(Str2, Radix, ULLVal) ||
- // // Reject values so large they'd overflow as negative signed, but allow
- // // "-0". This negates the unsigned so that the negative isn't undefined
- // // on signed overflow.
- // (long long)-ULLVal > 0)
- // return true;
-
- // Str = Str2;
- // Result = -ULLVal;
- // return false;
- //}
-
- ///// GetAsUnsignedInteger - Workhorse method that converts a integer character
- ///// sequence of radix up to 36 to an unsigned long long value.
- //static bool getAsUnsignedInteger(string_ref Str, unsigned Radix,
- // unsigned long long& Result) {
- // if (consumeUnsignedInteger(Str, Radix, Result))
- // return true;
-
- // // For getAsUnsignedInteger, we require the whole string to be consumed or
- // // else we consider it a failure.
- // return !Str.empty();
- //}
-
- //static bool getAsSignedInteger(string_ref Str, unsigned Radix,
- // long long& Result) {
- // if (consumeSignedInteger(Str, Radix, Result))
- // return true;
-
- // // For getAsSignedInteger, we require the whole string to be consumed or else
- // // we consider it a failure.
- // return !Str.empty();
- //}
-
-
- ///// Parse the current string as an integer of the specified radix. If
- ///// \p Radix is specified as zero, this does radix autosensing using
- ///// extended C rules: 0 is octal, 0x is hex, 0b is binary.
- /////
- ///// If the string is invalid or if only a subset of the string is valid,
- ///// this returns true to signify the error. The string is considered
- ///// erroneous if empty or if it overflows T.
- //template <typename T>
- //std::enable_if_t<std::numeric_limits<T>::is_signed, bool>
- // getAsInteger(unsigned Radix, T& Result) const {
- // long long LLVal;
- // if (getAsSignedInteger(*this, Radix, LLVal) ||
- // static_cast<T>(LLVal) != LLVal)
- // return true;
- // Result = LLVal;
- // return false;
- //}
-
- //template <typename T>
- //std::enable_if_t<!std::numeric_limits<T>::is_signed, bool>
- // getAsInteger(unsigned Radix, T& Result) const {
- // unsigned long long ULLVal;
- // // The additional cast to unsigned long long is required to avoid the
- // // Visual C++ warning C4805: '!=' : unsafe mix of type 'bool' and type
- // // 'unsigned __int64' when instantiating getAsInteger with T = bool.
- // if (getAsUnsignedInteger(*this, Radix, ULLVal) ||
- // static_cast<unsigned long long>(static_cast<T>(ULLVal)) != ULLVal)
- // return true;
- // Result = ULLVal;
- // return false;
- //}
-
-
-
- /**`
- * Default constructor
- *
- * Constructs an empty string_ref ("")
- */
- string_ref() : string() { }
-
- /**
- * Duplicate the STL string copy constructor
- *
- * @param[in] s The string to copy
- * @param[in] pos The starting position in the string to copy from
- * @param[in] n The number of characters to copy
- */
- string_ref(const string &s, size_type pos = 0, size_type n = npos) : string(s, pos, npos) { }
-
- /**
- * Construct an string_ref from a null-terminated character array
- *
- * @param[in] s The character array to copy into the new string
- */
- string_ref(const value_type *s) : string(s) { }
-
- /**
- * Construct an string_ref from a character array and a length
- *
- * @param[in] s The character array to copy into the new string
- * @param[in] n The number of characters to copy
- */
- string_ref(const value_type *s, size_type n) : string(s, n) { }
-
- /**
- * Create an string_ref with @p n copies of @p c
- *
- * @param[in] n The number of copies
- * @param[in] c The character to copy @p n times
- */
- string_ref(size_type n, value_type c) : string(n, c) { }
-
- /**
- * Create a string from a range
- *
- * @param[in] first The first element to copy in
- * @param[in] last The last element to copy in
- */
- template <class InputIterator>
- string_ref(InputIterator first, InputIterator last) : string(first, last) { }
-
- /**
- * The destructor
- */
- ~string_ref() { }
-
- /**
- * Split a string by whitespace
- *
- * @return A vector of strings, each of which is a substring of the string
- */
- vector<string_ref> split(size_type limit = npos) const
- {
- vector<string_ref> v;
-
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++)
- {
- if (*i == ' ' || *i == '\n' || *i == '\t' || *i == '\r')
- {
- if (i + 1 != end() && (i[1] == ' ' || i[1] == '\n' || i[1] == '\t' || i[1] == '\r'))
- continue;
- v.push_back(string_ref(last, i));
- last = i + 1;
- if (v.size() >= limit - 1)
- {
- v.push_back(string_ref(last, end()));
- return v;
- }
- }
- }
-
- if (last != i)
- v.push_back(string_ref(last, i));
-
- return v;
- }
-
- /**
- * Split a string by a character
- *
- * Returns a vector of ext_strings, each of which is a substring of the string formed by splitting
- * it on boundaries formed by the character @p separator. If @p limit is set, the returned vector
- * will contain a maximum of @p limit elements with the last element containing the rest of
- * the string.
- *
- * If @p separator is not found in the string, a single element will be returned in the vector
- * containing the entire string.
- *
- * The separators are removed from the output
- *
- * @param[in] separator The character separator to split the string on
- * @param[in] limit The maximum number of output elements
- * @return A vector of strings, each of which is a substring of the string
- *
- * @section split_ex Example
- * @code
- * std::string_ref s("This|is|a|test.");
- * std::vector<std::string_ref> v = s.split('|');
- * std::copy(v.begin(), v.end(), std::ostream_iterator<std::string_ref>(std::cout, "\n"));
- *
- * This
- * is
- * a
- * test.
- * @endcode
- */
- vector<string_ref> split(value_type separator, size_type limit = npos) const
- {
- vector<string_ref> v;
-
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++)
- {
- if (*i == separator)
- {
- v.push_back(string_ref(last, i));
- last = i + 1;
- if (v.size() >= limit - 1)
- {
- v.push_back(string_ref(last, end()));
- return v;
- }
- }
- }
-
- if (last != i)
- v.push_back(string_ref(last, i));
-
- return v;
- }
-
- /**
- * Split a string by another string
- *
- * Returns a vector of ext_strings, each of which is a substring of the string formed by
- * splitting it on boundaries formed by the string @p separator. If @p limit is set, the
- * returned vector will contain a maximum of @p limit elements with the last element
- * containing the rest of the string.
- *
- * If @p separator is not found in the string, a single element will be returned in the
- * vector containing the entire string.
- *
- * The separators are removed from the output
- *
- * @param[in] separator The string separator to split the string on
- * @param[in] limit The maximum number of output elements
- * @return A vector of strings, each of which is a substring of the string
- *
- * @ref split_ex
- */
- vector<string_ref> split(const string &separator, size_type limit = npos) const
- {
- vector<string_ref> v;
-
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++)
- {
- if (string(i, i + separator.length()) == separator)
- {
- v.push_back(string_ref(last, i));
- last = i + separator.length();
-
- if (v.size() >= limit - 1)
- {
- v.push_back(string_ref(last, end()));
- return v;
- }
- }
- }
-
- if (last != i)
- v.push_back(string_ref(last, i));
-
- return v;
- }
-
- /**
- * Convert a string into an integer
- *
- * Convert the initial portion of a string into a signed integer. Once a non-numeric
- * character is reached, the remainder of @p string is ignored and the integer that was
- * read returned.
- *
- * @param s The string to convert
- * @return The integer converted from @p string
- */
- static long int integer(const string &s)
- {
- long int retval = 0;
- bool neg = false;
-
- for (const_iterator i = s.begin(); i != s.end(); i++)
- {
- if (i == s.begin())
- {
- if (*i == '-')
- {
- neg = true;
- continue;
- }
- else if (*i == '+')
- continue;
- }
- if (*i >= '0' && *i <= '9')
- {
- retval *= 10;
- retval += *i - '0';
- }
- else
- break;
- }
-
- if (neg)
- retval *= -1;
-
- return retval;
- }
-
- /**
- * Convert the string to an integer
- *
- * Convert the initial portion of the string into a signed integer. Once a non-numeric
- * character is reached, the remainder of the string is ignored and the integer that had
- * been read thus far is returned.
- *
- * @return The integer converted from the string
- */
- long int integer() const
- {
- return integer(*this);
- }
-
- /**
- * Split a string into chunks of size @p chunklen. Returns a vector of strings.
- *
- * Splits a string into chunks of the given size. The final chunk may not fill its
- * entire allocated number of characters.
- *
- * @param[in] chunklen The number of characters per chunk
- * @return A vector of strings, each of length <= chunklen
- *
- * @section chunk_split-ex Example
- * @code
- * std::string_ref s("abcdefghijk");
- * std::vector<std::string_ref> v = s.chunk_split(3);
- * std::copy(v.begin(), v.end(), ostream_iterator<std::string_ref>(cout, " "));
- *
- * abc def ghi jk
- * @endcode
- */
- vector<string_ref> chunk_split(size_type chunklen) const
- {
- vector<string_ref> retval;
- retval.reserve(size() / chunklen + 1);
-
- size_type count = 0;
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++, count++)
- {
- if (count == chunklen)
- {
- count = 0;
- retval.push_back(string_ref(last, i));
- last = i;
- }
- }
-
- if (last != i)
- retval.push_back(string_ref(last, i));
-
- return retval;
- }
-
- /**
- * Join a sequence of strings by some glue to create a new string
- *
- * Glue is not added to the end of the string.
- *
- * @pre [first, last) is a valid range
- * @pre InputIterator is a model of STL's Input Iterator
- * @pre InputIterator must point to a string type (std::string, std::string_ref, char *)
- *
- * @param[in] glue The glue to join strings with
- * @param[in] first The beginning of the range to join
- * @param[in] last The end of the range to join
- * @return A string constructed of each element of the range connected together with @p glue
- *
- * @section join_ex Example
- * @code
- * std::vector<std::string_ref> v;
- * v.push_back("This");
- * v.push_back("is");
- * v.push_back("a");
- * v.push_back("test.");
- * std::cout << std::string_ref::join("|", v.begin(), v.end()) << std::endl;
- *
- * This|is|a|test.
- * @endcode
- */
- template <class InputIterator>
- static string_ref join(const string &glue, InputIterator first, InputIterator last)
- {
- string_ref retval;
-
- for (; first != last; ++first)
- {
- retval.append(*first);
- retval.append(glue);
- }
- retval.erase(retval.length() - glue.length());
-
- return retval;
- }
-
- /**
- * Join a sequence of strings by some glue to create a new string
- *
- * @copydoc join
- * @ref join_ex
- */
- template <class InputIterator>
- static string_ref join(value_type glue, InputIterator first, InputIterator last)
- {
- string_ref retval;
-
- for (; first != last; ++first)
- {
- retval.append(*first);
- retval.append(1, glue);
- }
- retval.erase(retval.length() - 1);
-
- return retval;
- }
-
- /**
- * Search for any instances of @p needle and replace them with @p s
- *
- * @param[in] needle The string to replace
- * @param[in] s The replacement string
- * @return *this
- * @post All instances of @p needle in the string are replaced with @p s
- *
- * @section replace-ex Example
- * @code
- * std::string_ref s("This is a test.");
- * s.replace("is", "ere");
- * std::cout << s << std::endl;
- *
- * There ere a test.
- * @endcode
- */
- string_ref &replace(const string &needle, const string &s)
- {
- size_type
- lastpos = 0,
- thispos;
-
- while ((thispos = find(needle, lastpos)) != npos)
- {
- string::replace(thispos, needle.length(), s);
- lastpos = thispos + 1;
- }
- return *this;
- }
- string_ref &replace_first(const string &needle, const string &s)
- {
- size_type
- lastpos = 0,
- thispos;
-
- if ((thispos = find(needle, lastpos)) != npos)
- {
- string::replace(thispos, needle.length(), s);
- lastpos = thispos + 1;
- }
- return *this;
- }
- /**
- * Search of any instances of @p needle and replace them with @p c
- *
- * @param[in] needle The character to replace
- * @param[in] c The replacement character
- * @return *this
- * @post All instances of @p needle in the string are replaced with @p c
- *
- * @ref replace-ex
- */
- string_ref &replace(value_type needle, value_type c)
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i == needle)
- *i = c;
-
- return *this;
- }
-
- /**
- * Repeat a string @p n times
- *
- * @param[in] n The number of times to repeat the string
- * @return string_ref containing @p n copies of the string
- *
- * @section repeat-ex Example
- * @code
- * std::string_ref s("123");
- * s = s * 3;
- * std::cout << s << std::endl;
- *
- * 123123123
- * @endcode
- */
- string_ref operator*(size_type n)
- {
- string_ref retval;
- for (size_type i = 0; i < n; i++)
- retval.append(*this);
-
- return retval;
- }
-
- /**
- * Convert the string to lowercase
- *
- * @return *this
- * @post The string is converted to lowercase
- */
- string_ref &tolower()
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i >= 'A' && *i <= 'Z')
- *i = (*i) + ('a' - 'A');
- return *this;
- }
-
- /**
- * Convert the string to uppercase
- *
- * @return *this
- * @post The string is converted to uppercase
- */
- string_ref &toupper()
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i >= 'a' && *i <= 'z')
- *i = (*i) - ('a' - 'A');
- return *this;
- }
-
- /**
- * Count the occurances of @p str in the string.
- *
- * @return The count of substrings @p str in the string
- */
- size_type count(const string &str) const
- {
- size_type
- count = 0,
- last = 0,
- cur = 0;
-
- while ((cur = find(str, last + 1)) != npos)
- {
- count++;
- last = cur;
- }
-
- return count;
- }
-
- /**
- * Determine if the string is alphanumeric
- *
- * @return true if the string contains only characters between a-z, A-Z and 0-9 and
- * contains at least one character, else false
- */
- bool is_alnum() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- {
- if (*i < 'A' || *i > 'Z')
- if (*i < '0' || *i > '9')
- if (*i < 'a' || *i > 'z')
- return false;
- }
-
- return true;
- }
-
- /**
- * Determine if the string is alphabetic only
- *
- * @return true of the string contains only characters between a-z and A-Z and contains at
- * least one character, else false
- */
- bool is_alpha() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < 'A' || (*i > 'Z' && (*i < 'a' || *i > 'z')))
- return false;
-
- return true;
- }
-
- /**
- * Determine if the string is numeric only
- *
- * @return true if the string contains only characters between 0-9 and contains at least
- * one character, else false
- */
- bool is_numeric() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < '0' || *i > '9')
- return false;
-
- return true;
- }
-
- /**
- * Determine if a string is all lower case
- *
- * @return true if there is at least one character, and all characters are lowercase
- * letters, else false
- */
- bool is_lower() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < 'a' || *i < 'z')
- return false;
-
- return true;
- }
-
- /**
- * Determine if a string is all upper case
- *
- * @return true if there is at least one character, and all characters are uppercase
- * letters, else false
- */
- bool is_upper() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < 'A' || *i > 'Z')
- return false;
-
- return true;
- }
-
- /**
- * Swap the case of a string
- *
- * @post Converts all uppercase to lowercase, and all lowercase to uppercase in the string
- * @return *this
- */
- string_ref &swapcase()
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i >= 'A' && *i <= 'Z')
- *i += ('a' - 'A');
- else if (*i >= 'a' && *i <= 'z')
- *i -= ('a' - 'A');
-
- return *this;
- }
-
- /*******************************************************************************
- Function: std::string_ref::start_with
- Access: public
- Qualifier: const
- Parameter: const string & str
- Returns: bool
-
- Purpose: is the string start with str
- *******************************************************************************/
- bool start_with(const string& str) const
- {
- return ( this->find(str) == 0 );
- }
-
- /// Return a string_ref equal to 'this' but with only the last \p N
- /// elements remaining. If \p N is greater than the length of the
- /// string, the entire string is returned.
-
- string_ref take_back(size_t N = 1) const {
- if (N >= size())
- return *this;
- return drop_front(size() - N);
- }
- /// Return a string_ref equal to 'this' but with the first \p N elements
- /// dropped.
-
- string_ref drop_front(size_t N = 1) const {
- //assert(size() >= N && "Dropping more elements than exist");
- return substr(N);
- }
-
-
-
- /// Return a string_ref equal to 'this' but with the last \p N elements
- /// dropped.
-
- string_ref drop_back(size_t N = 1) const {
-
- return substr(0, size() - N);
- }
-
- /// Return a string_ref equal to 'this', but with all characters satisfying
- /// the given predicate dropped from the beginning of the string.
-
- string_ref drop_while(std::function<bool(char)> F) const {
- return substr(std::find_if_not(begin(),end(),F)-begin());
- }
-
- /// Return a string_ref equal to 'this', but with all characters not
- /// satisfying the given predicate dropped from the beginning of the string.
-
- string_ref drop_until(std::function<bool(char)> F) const {
- return substr(std::find_if(begin(), end(), F) - begin());
- }
-
- /// Returns true if this string_ref has the given prefix and removes that
- /// prefix.
- bool consume_front(string_ref Prefix) {
- if (!start_with(Prefix))
- return false;
-
- *this = drop_front(Prefix.size());
- return true;
- }
-
- /// Returns true if this string_ref has the given suffix and removes that
- /// suffix.
- bool consume_back(string_ref Suffix) {
- if (!end_with(Suffix))
- return false;
-
- *this = drop_back(Suffix.size());
- return true;
- }
-
- /*******************************************************************************
- Function: std::string_ref::end_with
- Access: public
- Qualifier: const
- Parameter: const string & str
- Returns: bool
-
- Purpose: is the string end with str
- *******************************************************************************/
- bool end_with(const string& str) const
- {
- if (str.length() > this->length())
- {
- return false;
- }
- size_type off = this->length() - str.length();
- return ( find(str, off) == off);
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::format
- Access: public
- Qualifier:
- Parameter: const char * format_string
- Parameter: ...
- Returns: string_ref&
-
- Purpose: format the string
- *******************************************************************************/
- string_ref& format(const char* format_string, ...)
- {
+ /**
+ * An extension of STL's string providing additional functionality that is often availiable in
+ * higher-level languages such as Python.
+ */
+ class string_ref : public string
+ {
+ public:
+
+ //static unsigned GetAutoSenseRadix(string_ref& Str) {
+ // if (Str.empty())
+ // return 10;
+
+ // if (Str.start_with("0x") || Str.start_with("0X")) {
+ // Str = Str.substr(2);
+ // return 16;
+ // }
+
+ // if (Str.start_with("0b") || Str.start_with("0B")) {
+ // Str = Str.substr(2);
+ // return 2;
+ // }
+
+ // if (Str.start_with("0o")) {
+ // Str = Str.substr(2);
+ // return 8;
+ // }
+
+ // if (Str[0] == '0' && Str.size() > 1 && std::isdigit(Str[1])) {
+ // Str = Str.substr(1);
+ // return 8;
+ // }
+
+ // return 10;
+ //}
+
+ //static bool consumeUnsignedInteger(string_ref& Str, unsigned Radix,
+ // unsigned long long& Result) {
+ // // Autosense radix if not specified.
+ // if (Radix == 0)
+ // Radix = GetAutoSenseRadix(Str);
+
+ // // Empty strings (after the radix autosense) are invalid.
+ // if (Str.empty()) return true;
+
+ // // Parse all the bytes of the string given this radix. Watch for overflow.
+ // string_ref Str2 = Str;
+ // Result = 0;
+ // while (!Str2.empty()) {
+ // unsigned CharVal;
+ // if (Str2[0] >= '0' && Str2[0] <= '9')
+ // CharVal = Str2[0] - '0';
+ // else if (Str2[0] >= 'a' && Str2[0] <= 'z')
+ // CharVal = Str2[0] - 'a' + 10;
+ // else if (Str2[0] >= 'A' && Str2[0] <= 'Z')
+ // CharVal = Str2[0] - 'A' + 10;
+ // else
+ // break;
+
+ // // If the parsed value is larger than the integer radix, we cannot
+ // // consume any more characters.
+ // if (CharVal >= Radix)
+ // break;
+
+ // // Add in this character.
+ // unsigned long long PrevResult = Result;
+ // Result = Result * Radix + CharVal;
+
+ // // Check for overflow by shifting back and seeing if bits were lost.
+ // if (Result / Radix < PrevResult)
+ // return true;
+
+ // Str2 = Str2.substr(1);
+ // }
+
+ // // We consider the operation a failure if no characters were consumed
+ // // successfully.
+ // if (Str.size() == Str2.size())
+ // return true;
+
+ // Str = Str2;
+ // return false;
+ //}
+
+ //static bool consumeSignedInteger(string_ref& Str, unsigned Radix,
+ // long long& Result) {
+ // unsigned long long ULLVal;
+
+ // // Handle positive strings first.
+ // if (Str.empty() || Str.front() != '-') {
+ // if (consumeUnsignedInteger(Str, Radix, ULLVal) ||
+ // // Check for value so large it overflows a signed value.
+ // (long long)ULLVal < 0)
+ // return true;
+ // Result = ULLVal;
+ // return false;
+ // }
+
+ // // Get the positive part of the value.
+ // string_ref Str2 = Str.drop_front(1);
+ // if (consumeUnsignedInteger(Str2, Radix, ULLVal) ||
+ // // Reject values so large they'd overflow as negative signed, but allow
+ // // "-0". This negates the unsigned so that the negative isn't undefined
+ // // on signed overflow.
+ // (long long)-ULLVal > 0)
+ // return true;
+
+ // Str = Str2;
+ // Result = -ULLVal;
+ // return false;
+ //}
+
+ ///// GetAsUnsignedInteger - Workhorse method that converts a integer character
+ ///// sequence of radix up to 36 to an unsigned long long value.
+ //static bool getAsUnsignedInteger(string_ref Str, unsigned Radix,
+ // unsigned long long& Result) {
+ // if (consumeUnsignedInteger(Str, Radix, Result))
+ // return true;
+
+ // // For getAsUnsignedInteger, we require the whole string to be consumed or
+ // // else we consider it a failure.
+ // return !Str.empty();
+ //}
+
+ //static bool getAsSignedInteger(string_ref Str, unsigned Radix,
+ // long long& Result) {
+ // if (consumeSignedInteger(Str, Radix, Result))
+ // return true;
+
+ // // For getAsSignedInteger, we require the whole string to be consumed or else
+ // // we consider it a failure.
+ // return !Str.empty();
+ //}
+
+
+ ///// Parse the current string as an integer of the specified radix. If
+ ///// \p Radix is specified as zero, this does radix autosensing using
+ ///// extended C rules: 0 is octal, 0x is hex, 0b is binary.
+ /////
+ ///// If the string is invalid or if only a subset of the string is valid,
+ ///// this returns true to signify the error. The string is considered
+ ///// erroneous if empty or if it overflows T.
+ //template <typename T>
+ //std::enable_if_t<std::numeric_limits<T>::is_signed, bool>
+ // getAsInteger(unsigned Radix, T& Result) const {
+ // long long LLVal;
+ // if (getAsSignedInteger(*this, Radix, LLVal) ||
+ // static_cast<T>(LLVal) != LLVal)
+ // return true;
+ // Result = LLVal;
+ // return false;
+ //}
+
+ //template <typename T>
+ //std::enable_if_t<!std::numeric_limits<T>::is_signed, bool>
+ // getAsInteger(unsigned Radix, T& Result) const {
+ // unsigned long long ULLVal;
+ // // The additional cast to unsigned long long is required to avoid the
+ // // Visual C++ warning C4805: '!=' : unsafe mix of type 'bool' and type
+ // // 'unsigned __int64' when instantiating getAsInteger with T = bool.
+ // if (getAsUnsignedInteger(*this, Radix, ULLVal) ||
+ // static_cast<unsigned long long>(static_cast<T>(ULLVal)) != ULLVal)
+ // return true;
+ // Result = ULLVal;
+ // return false;
+ //}
+
+
+
+ /**`
+ * Default constructor
+ *
+ * Constructs an empty string_ref ("")
+ */
+ string_ref() : string() { }
+
+ /**
+ * Duplicate the STL string copy constructor
+ *
+ * @param[in] s The string to copy
+ * @param[in] pos The starting position in the string to copy from
+ * @param[in] n The number of characters to copy
+ */
+ string_ref(const string &s, size_type pos = 0, size_type n = npos) : string(s, pos, npos) { }
+
+ /**
+ * Construct an string_ref from a null-terminated character array
+ *
+ * @param[in] s The character array to copy into the new string
+ */
+ string_ref(const value_type *s) : string(s) { }
+
+ /**
+ * Construct an string_ref from a character array and a length
+ *
+ * @param[in] s The character array to copy into the new string
+ * @param[in] n The number of characters to copy
+ */
+ string_ref(const value_type *s, size_type n) : string(s, n) { }
+
+ /**
+ * Create an string_ref with @p n copies of @p c
+ *
+ * @param[in] n The number of copies
+ * @param[in] c The character to copy @p n times
+ */
+ string_ref(size_type n, value_type c) : string(n, c) { }
+
+ /**
+ * Create a string from a range
+ *
+ * @param[in] first The first element to copy in
+ * @param[in] last The last element to copy in
+ */
+ template <class InputIterator>
+ string_ref(InputIterator first, InputIterator last) : string(first, last) { }
+
+ /**
+ * The destructor
+ */
+ ~string_ref() { }
+
+ /**
+ * Split a string by whitespace
+ *
+ * @return A vector of strings, each of which is a substring of the string
+ */
+ vector<string_ref> split(size_type limit = npos) const
+ {
+ vector<string_ref> v;
+
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++)
+ {
+ if (*i == ' ' || *i == '\n' || *i == '\t' || *i == '\r')
+ {
+ if (i + 1 != end() && (i[1] == ' ' || i[1] == '\n' || i[1] == '\t' || i[1] == '\r'))
+ continue;
+ v.push_back(string_ref(last, i));
+ last = i + 1;
+ if (v.size() >= limit - 1)
+ {
+ v.push_back(string_ref(last, end()));
+ return v;
+ }
+ }
+ }
+
+ if (last != i)
+ v.push_back(string_ref(last, i));
+
+ return v;
+ }
+
+ /**
+ * Split a string by a character
+ *
+ * Returns a vector of ext_strings, each of which is a substring of the string formed by splitting
+ * it on boundaries formed by the character @p separator. If @p limit is set, the returned vector
+ * will contain a maximum of @p limit elements with the last element containing the rest of
+ * the string.
+ *
+ * If @p separator is not found in the string, a single element will be returned in the vector
+ * containing the entire string.
+ *
+ * The separators are removed from the output
+ *
+ * @param[in] separator The character separator to split the string on
+ * @param[in] limit The maximum number of output elements
+ * @return A vector of strings, each of which is a substring of the string
+ *
+ * @section split_ex Example
+ * @code
+ * std::string_ref s("This|is|a|test.");
+ * std::vector<std::string_ref> v = s.split('|');
+ * std::copy(v.begin(), v.end(), std::ostream_iterator<std::string_ref>(std::cout, "\n"));
+ *
+ * This
+ * is
+ * a
+ * test.
+ * @endcode
+ */
+ vector<string_ref> split(value_type separator, size_type limit = npos) const
+ {
+ vector<string_ref> v;
+
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++)
+ {
+ if (*i == separator)
+ {
+ v.push_back(string_ref(last, i));
+ last = i + 1;
+ if (v.size() >= limit - 1)
+ {
+ v.push_back(string_ref(last, end()));
+ return v;
+ }
+ }
+ }
+
+ if (last != i)
+ v.push_back(string_ref(last, i));
+
+ return v;
+ }
+
+ /**
+ * Split a string by another string
+ *
+ * Returns a vector of ext_strings, each of which is a substring of the string formed by
+ * splitting it on boundaries formed by the string @p separator. If @p limit is set, the
+ * returned vector will contain a maximum of @p limit elements with the last element
+ * containing the rest of the string.
+ *
+ * If @p separator is not found in the string, a single element will be returned in the
+ * vector containing the entire string.
+ *
+ * The separators are removed from the output
+ *
+ * @param[in] separator The string separator to split the string on
+ * @param[in] limit The maximum number of output elements
+ * @return A vector of strings, each of which is a substring of the string
+ *
+ * @ref split_ex
+ */
+ vector<string_ref> split(const string &separator, size_type limit = npos) const
+ {
+ vector<string_ref> v;
+
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++)
+ {
+ if (string(i, i + separator.length()) == separator)
+ {
+ v.push_back(string_ref(last, i));
+ last = i + separator.length();
+
+ if (v.size() >= limit - 1)
+ {
+ v.push_back(string_ref(last, end()));
+ return v;
+ }
+ }
+ }
+
+ if (last != i)
+ v.push_back(string_ref(last, i));
+
+ return v;
+ }
+
+ /**
+ * Convert a string into an integer
+ *
+ * Convert the initial portion of a string into a signed integer. Once a non-numeric
+ * character is reached, the remainder of @p string is ignored and the integer that was
+ * read returned.
+ *
+ * @param s The string to convert
+ * @return The integer converted from @p string
+ */
+ static long int integer(const string &s)
+ {
+ long int retval = 0;
+ bool neg = false;
+
+ for (const_iterator i = s.begin(); i != s.end(); i++)
+ {
+ if (i == s.begin())
+ {
+ if (*i == '-')
+ {
+ neg = true;
+ continue;
+ }
+ else if (*i == '+')
+ continue;
+ }
+ if (*i >= '0' && *i <= '9')
+ {
+ retval *= 10;
+ retval += *i - '0';
+ }
+ else
+ break;
+ }
+
+ if (neg)
+ retval *= -1;
+
+ return retval;
+ }
+
+ /**
+ * Convert the string to an integer
+ *
+ * Convert the initial portion of the string into a signed integer. Once a non-numeric
+ * character is reached, the remainder of the string is ignored and the integer that had
+ * been read thus far is returned.
+ *
+ * @return The integer converted from the string
+ */
+ long int integer() const
+ {
+ return integer(*this);
+ }
+
+ /**
+ * Split a string into chunks of size @p chunklen. Returns a vector of strings.
+ *
+ * Splits a string into chunks of the given size. The final chunk may not fill its
+ * entire allocated number of characters.
+ *
+ * @param[in] chunklen The number of characters per chunk
+ * @return A vector of strings, each of length <= chunklen
+ *
+ * @section chunk_split-ex Example
+ * @code
+ * std::string_ref s("abcdefghijk");
+ * std::vector<std::string_ref> v = s.chunk_split(3);
+ * std::copy(v.begin(), v.end(), ostream_iterator<std::string_ref>(cout, " "));
+ *
+ * abc def ghi jk
+ * @endcode
+ */
+ vector<string_ref> chunk_split(size_type chunklen) const
+ {
+ vector<string_ref> retval;
+ retval.reserve(size() / chunklen + 1);
+
+ size_type count = 0;
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++, count++)
+ {
+ if (count == chunklen)
+ {
+ count = 0;
+ retval.push_back(string_ref(last, i));
+ last = i;
+ }
+ }
+
+ if (last != i)
+ retval.push_back(string_ref(last, i));
+
+ return retval;
+ }
+
+ /**
+ * Join a sequence of strings by some glue to create a new string
+ *
+ * Glue is not added to the end of the string.
+ *
+ * @pre [first, last) is a valid range
+ * @pre InputIterator is a model of STL's Input Iterator
+ * @pre InputIterator must point to a string type (std::string, std::string_ref, char *)
+ *
+ * @param[in] glue The glue to join strings with
+ * @param[in] first The beginning of the range to join
+ * @param[in] last The end of the range to join
+ * @return A string constructed of each element of the range connected together with @p glue
+ *
+ * @section join_ex Example
+ * @code
+ * std::vector<std::string_ref> v;
+ * v.push_back("This");
+ * v.push_back("is");
+ * v.push_back("a");
+ * v.push_back("test.");
+ * std::cout << std::string_ref::join("|", v.begin(), v.end()) << std::endl;
+ *
+ * This|is|a|test.
+ * @endcode
+ */
+ template <class InputIterator>
+ static string_ref join(const string &glue, InputIterator first, InputIterator last)
+ {
+ string_ref retval;
+
+ for (; first != last; ++first)
+ {
+ retval.append(*first);
+ retval.append(glue);
+ }
+ retval.erase(retval.length() - glue.length());
+
+ return retval;
+ }
+
+ /**
+ * Join a sequence of strings by some glue to create a new string
+ *
+ * @copydoc join
+ * @ref join_ex
+ */
+ template <class InputIterator>
+ static string_ref join(value_type glue, InputIterator first, InputIterator last)
+ {
+ string_ref retval;
+
+ for (; first != last; ++first)
+ {
+ retval.append(*first);
+ retval.append(1, glue);
+ }
+ retval.erase(retval.length() - 1);
+
+ return retval;
+ }
+
+ /**
+ * Search for any instances of @p needle and replace them with @p s
+ *
+ * @param[in] needle The string to replace
+ * @param[in] s The replacement string
+ * @return *this
+ * @post All instances of @p needle in the string are replaced with @p s
+ *
+ * @section replace-ex Example
+ * @code
+ * std::string_ref s("This is a test.");
+ * s.replace("is", "ere");
+ * std::cout << s << std::endl;
+ *
+ * There ere a test.
+ * @endcode
+ */
+ string_ref &replace(const string &needle, const string &s)
+ {
+ size_type
+ lastpos = 0,
+ thispos;
+
+ while ((thispos = find(needle, lastpos)) != npos)
+ {
+ string::replace(thispos, needle.length(), s);
+ lastpos = thispos + 1;
+ }
+ return *this;
+ }
+ string_ref &replace_first(const string &needle, const string &s)
+ {
+ size_type
+ lastpos = 0,
+ thispos;
+
+ if ((thispos = find(needle, lastpos)) != npos)
+ {
+ string::replace(thispos, needle.length(), s);
+ lastpos = thispos + 1;
+ }
+ return *this;
+ }
+ /**
+ * Search of any instances of @p needle and replace them with @p c
+ *
+ * @param[in] needle The character to replace
+ * @param[in] c The replacement character
+ * @return *this
+ * @post All instances of @p needle in the string are replaced with @p c
+ *
+ * @ref replace-ex
+ */
+ string_ref &replace(value_type needle, value_type c)
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i == needle)
+ *i = c;
+
+ return *this;
+ }
+
+ /**
+ * Repeat a string @p n times
+ *
+ * @param[in] n The number of times to repeat the string
+ * @return string_ref containing @p n copies of the string
+ *
+ * @section repeat-ex Example
+ * @code
+ * std::string_ref s("123");
+ * s = s * 3;
+ * std::cout << s << std::endl;
+ *
+ * 123123123
+ * @endcode
+ */
+ string_ref operator*(size_type n)
+ {
+ string_ref retval;
+ for (size_type i = 0; i < n; i++)
+ retval.append(*this);
+
+ return retval;
+ }
+
+ /**
+ * Convert the string to lowercase
+ *
+ * @return *this
+ * @post The string is converted to lowercase
+ */
+ string_ref &tolower()
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i >= 'A' && *i <= 'Z')
+ *i = (*i) + ('a' - 'A');
+ return *this;
+ }
+
+ /**
+ * Convert the string to uppercase
+ *
+ * @return *this
+ * @post The string is converted to uppercase
+ */
+ string_ref &toupper()
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i >= 'a' && *i <= 'z')
+ *i = (*i) - ('a' - 'A');
+ return *this;
+ }
+
+ /**
+ * Count the occurances of @p str in the string.
+ *
+ * @return The count of substrings @p str in the string
+ */
+ size_type count(const string &str) const
+ {
+ size_type
+ count = 0,
+ last = 0,
+ cur = 0;
+
+ while ((cur = find(str, last + 1)) != npos)
+ {
+ count++;
+ last = cur;
+ }
+
+ return count;
+ }
+
+ /**
+ * Determine if the string is alphanumeric
+ *
+ * @return true if the string contains only characters between a-z, A-Z and 0-9 and
+ * contains at least one character, else false
+ */
+ bool is_alnum() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ {
+ if (*i < 'A' || *i > 'Z')
+ if (*i < '0' || *i > '9')
+ if (*i < 'a' || *i > 'z')
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Determine if the string is alphabetic only
+ *
+ * @return true of the string contains only characters between a-z and A-Z and contains at
+ * least one character, else false
+ */
+ bool is_alpha() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < 'A' || (*i > 'Z' && (*i < 'a' || *i > 'z')))
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Determine if the string is numeric only
+ *
+ * @return true if the string contains only characters between 0-9 and contains at least
+ * one character, else false
+ */
+ bool is_numeric() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < '0' || *i > '9')
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Determine if a string is all lower case
+ *
+ * @return true if there is at least one character, and all characters are lowercase
+ * letters, else false
+ */
+ bool is_lower() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < 'a' || *i < 'z')
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Determine if a string is all upper case
+ *
+ * @return true if there is at least one character, and all characters are uppercase
+ * letters, else false
+ */
+ bool is_upper() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < 'A' || *i > 'Z')
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Swap the case of a string
+ *
+ * @post Converts all uppercase to lowercase, and all lowercase to uppercase in the string
+ * @return *this
+ */
+ string_ref &swapcase()
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i >= 'A' && *i <= 'Z')
+ *i += ('a' - 'A');
+ else if (*i >= 'a' && *i <= 'z')
+ *i -= ('a' - 'A');
+
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: std::string_ref::start_with
+ Access: public
+ Qualifier: const
+ Parameter: const string & str
+ Returns: bool
+
+ Purpose: is the string start with str
+ *******************************************************************************/
+ bool start_with(const string& str) const
+ {
+ return ( this->find(str) == 0 );
+ }
+
+ /// Return a string_ref equal to 'this' but with only the last \p N
+ /// elements remaining. If \p N is greater than the length of the
+ /// string, the entire string is returned.
+
+ string_ref take_back(size_t N = 1) const {
+ if (N >= size())
+ return *this;
+ return drop_front(size() - N);
+ }
+ /// Return a string_ref equal to 'this' but with the first \p N elements
+ /// dropped.
+
+ string_ref drop_front(size_t N = 1) const {
+ //assert(size() >= N && "Dropping more elements than exist");
+ return substr(N);
+ }
+
+
+
+ /// Return a string_ref equal to 'this' but with the last \p N elements
+ /// dropped.
+
+ string_ref drop_back(size_t N = 1) const {
+
+ return substr(0, size() - N);
+ }
+
+ /// Return a string_ref equal to 'this', but with all characters satisfying
+ /// the given predicate dropped from the beginning of the string.
+
+ string_ref drop_while(std::function<bool(char)> F) const {
+ return substr(std::find_if_not(begin(),end(),F)-begin());
+ }
+
+ /// Return a string_ref equal to 'this', but with all characters not
+ /// satisfying the given predicate dropped from the beginning of the string.
+
+ string_ref drop_until(std::function<bool(char)> F) const {
+ return substr(std::find_if(begin(), end(), F) - begin());
+ }
+
+ /// Returns true if this string_ref has the given prefix and removes that
+ /// prefix.
+ bool consume_front(string_ref Prefix) {
+ if (!start_with(Prefix))
+ return false;
+
+ *this = drop_front(Prefix.size());
+ return true;
+ }
+
+ /// Returns true if this string_ref has the given suffix and removes that
+ /// suffix.
+ bool consume_back(string_ref Suffix) {
+ if (!end_with(Suffix))
+ return false;
+
+ *this = drop_back(Suffix.size());
+ return true;
+ }
+
+ /*******************************************************************************
+ Function: std::string_ref::end_with
+ Access: public
+ Qualifier: const
+ Parameter: const string & str
+ Returns: bool
+
+ Purpose: is the string end with str
+ *******************************************************************************/
+ bool end_with(const string& str) const
+ {
+ if (str.length() > this->length())
+ {
+ return false;
+ }
+ size_type off = this->length() - str.length();
+ return ( find(str, off) == off);
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::format
+ Access: public
+ Qualifier:
+ Parameter: const char * format_string
+ Parameter: ...
+ Returns: string_ref&
+
+ Purpose: format the string
+ *******************************************************************************/
+ string_ref& format(const char* format_string, ...)
+ {
if (format_string == 0)
{
return *this;
@@ -912,150 +912,150 @@ namespace std
#endif
va_end( argList );
return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::trim_left
- Access: public
- Qualifier:
- Parameter: value_type ch
- Returns: string_ref&
-
- Purpose: delete all char which is ch at the left of the string
- *******************************************************************************/
- string_ref& trim_left(value_type ch = ' ')
- {
- size_type off = this->find_first_not_of(ch);
- if (off != string::npos)
- {
- this->erase(0, off);
- }
- return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::trim_right
- Access: public
- Qualifier:
- Parameter: value_type ch
- Returns: string_ref&
-
- Purpose: delete all char which is ch at the right of the string
- *******************************************************************************/
- string_ref& trim_right(value_type ch = ' ')
- {
- size_type off = this->find_last_not_of(ch);
- if (off == string::npos)
- {
- off = 0;
- }
- else
- {
- off++;
- }
- this->erase(off, length() - off);
- return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::trim
- Access: public
- Qualifier:
- Parameter: value_type ch
- Returns: string_ref&
-
- Purpose: delete all char which is ch at the left and right of the string
- *******************************************************************************/
- string_ref& trim(value_type ch = ' ')
- {
- trim_left(ch);
- trim_right(ch);
- return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::float_num
- Access: public static
- Qualifier:
- Parameter: const string & str
- Returns: double
-
- Purpose: parse str to a float number
- *******************************************************************************/
- static double float_num(const string& str)
- {
- return atof(str.c_str());
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::float_num
- Access: public static
- Qualifier:
- Returns: double
-
- Purpose: parse this to a float number
- *******************************************************************************/
- double float_num() const
- {
- return float_num(*this);
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::compare_nocase
- Access: public
- Qualifier: const
- Parameter: const string & str
- Returns: int
-
- Purpose: compare string no case
- *******************************************************************************/
- int compare_nocase(const string& str) const
- {
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::trim_left
+ Access: public
+ Qualifier:
+ Parameter: value_type ch
+ Returns: string_ref&
+
+ Purpose: delete all char which is ch at the left of the string
+ *******************************************************************************/
+ string_ref& trim_left(value_type ch = ' ')
+ {
+ size_type off = this->find_first_not_of(ch);
+ if (off != string::npos)
+ {
+ this->erase(0, off);
+ }
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::trim_right
+ Access: public
+ Qualifier:
+ Parameter: value_type ch
+ Returns: string_ref&
+
+ Purpose: delete all char which is ch at the right of the string
+ *******************************************************************************/
+ string_ref& trim_right(value_type ch = ' ')
+ {
+ size_type off = this->find_last_not_of(ch);
+ if (off == string::npos)
+ {
+ off = 0;
+ }
+ else
+ {
+ off++;
+ }
+ this->erase(off, length() - off);
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::trim
+ Access: public
+ Qualifier:
+ Parameter: value_type ch
+ Returns: string_ref&
+
+ Purpose: delete all char which is ch at the left and right of the string
+ *******************************************************************************/
+ string_ref& trim(value_type ch = ' ')
+ {
+ trim_left(ch);
+ trim_right(ch);
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::float_num
+ Access: public static
+ Qualifier:
+ Parameter: const string & str
+ Returns: double
+
+ Purpose: parse str to a float number
+ *******************************************************************************/
+ static double float_num(const string& str)
+ {
+ return atof(str.c_str());
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::float_num
+ Access: public static
+ Qualifier:
+ Returns: double
+
+ Purpose: parse this to a float number
+ *******************************************************************************/
+ double float_num() const
+ {
+ return float_num(*this);
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::compare_nocase
+ Access: public
+ Qualifier: const
+ Parameter: const string & str
+ Returns: int
+
+ Purpose: compare string no case
+ *******************************************************************************/
+ int compare_nocase(const string& str) const
+ {
#ifdef _WIN32
- return _stricmp(this->c_str(), str.c_str());
+ return _stricmp(this->c_str(), str.c_str());
#else
- return strcasecmp(this->c_str(), str.c_str());
+ return strcasecmp(this->c_str(), str.c_str());
#endif
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::compare_nocase
- Access: public
- Qualifier: const
- Parameter: size_type index
- Parameter: size_type length
- Parameter: const string & str
- Returns: int
-
- Purpose: compare substring no case
- *******************************************************************************/
- int compare_nocase( size_type index, size_type length, const string &str ) const
- {
- string_ref temp = this->substr(index, length);
- return temp.compare_nocase(str);
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::compare_nocase
- Access: public
- Qualifier: const
- Parameter: size_type index
- Parameter: size_type length
- Parameter: const string & str
- Parameter: size_type index2
- Parameter: size_type length2
- Returns: int
-
- Purpose: compare two substring no case
- *******************************************************************************/
- int compare_nocase( size_type index, size_type length, const string &str, size_type index2, size_type length2) const
- {
- string_ref temp1 = this->substr(index, length);
- string_ref temp2 = str.substr(index2, length2);
- return temp1.compare_nocase(temp2);
- }
-
- };
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::compare_nocase
+ Access: public
+ Qualifier: const
+ Parameter: size_type index
+ Parameter: size_type length
+ Parameter: const string & str
+ Returns: int
+
+ Purpose: compare substring no case
+ *******************************************************************************/
+ int compare_nocase( size_type index, size_type length, const string &str ) const
+ {
+ string_ref temp = this->substr(index, length);
+ return temp.compare_nocase(str);
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::compare_nocase
+ Access: public
+ Qualifier: const
+ Parameter: size_type index
+ Parameter: size_type length
+ Parameter: const string & str
+ Parameter: size_type index2
+ Parameter: size_type length2
+ Returns: int
+
+ Purpose: compare two substring no case
+ *******************************************************************************/
+ int compare_nocase( size_type index, size_type length, const string &str, size_type index2, size_type length2) const
+ {
+ string_ref temp1 = this->substr(index, length);
+ string_ref temp2 = str.substr(index2, length2);
+ return temp1.compare_nocase(temp2);
+ }
+
+ };
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
index fa84e4109a5..6d082d2d2aa 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
@@ -6,12 +6,12 @@
class ParentProcessWatcher
{
public:
- struct ParentProcessWatcherData;
+ struct ParentProcessWatcherData;
- ParentProcessWatcher(lsp::Log& log, int pid, const std::function<void()>&& callback, uint32_t poll_delay_secs = 10);
+ ParentProcessWatcher(lsp::Log& log, int pid, const std::function<void()>&& callback, uint32_t poll_delay_secs = 10);
- ~ParentProcessWatcher();
+ ~ParentProcessWatcher();
- std::shared_ptr<ParentProcessWatcherData> d_ptr;
+ std::shared_ptr<ParentProcessWatcherData> d_ptr;
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
index 1389a1d5b7d..5edecef0b26 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
@@ -4,45 +4,45 @@
namespace lsp
{
- class ProcessIoService
- {
- public:
- using IOService = boost::asio::io_service;
- using Work = boost::asio::io_service::work;
- using WorkPtr = std::unique_ptr<Work>;
+ class ProcessIoService
+ {
+ public:
+ using IOService = boost::asio::io_service;
+ using Work = boost::asio::io_service::work;
+ using WorkPtr = std::unique_ptr<Work>;
- ProcessIoService() {
+ ProcessIoService() {
- work_ = std::unique_ptr<Work>(new Work(ioService_));
- auto temp_thread_ = new std::thread([this]
- {
- ioService_.run();
- });
- thread_ = std::unique_ptr<std::thread>(temp_thread_);
- }
+ work_ = std::unique_ptr<Work>(new Work(ioService_));
+ auto temp_thread_ = new std::thread([this]
+ {
+ ioService_.run();
+ });
+ thread_ = std::unique_ptr<std::thread>(temp_thread_);
+ }
- ProcessIoService(const ProcessIoService&) = delete;
- ProcessIoService& operator=(const ProcessIoService&) = delete;
+ ProcessIoService(const ProcessIoService&) = delete;
+ ProcessIoService& operator=(const ProcessIoService&) = delete;
- boost::asio::io_service& getIOService()
- {
- return ioService_;
- }
+ boost::asio::io_service& getIOService()
+ {
+ return ioService_;
+ }
- void stop()
- {
+ void stop()
+ {
- work_.reset();
+ work_.reset();
- thread_->join();
+ thread_->join();
- }
+ }
- private:
- IOService ioService_;
- WorkPtr work_;
- std::unique_ptr<std::thread> thread_;
+ private:
+ IOService ioService_;
+ WorkPtr work_;
+ std::unique_ptr<std::thread> thread_;
- };
+ };
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
index b563f810d2a..f6097fe1729 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
@@ -2,10 +2,10 @@
#include "LibLsp/JsonRpc/MessageJsonHandler.h"
namespace lsp {
- class ProtocolJsonHandler : public MessageJsonHandler
- {
- public:
- ProtocolJsonHandler();
- };
+ class ProtocolJsonHandler : public MessageJsonHandler
+ {
+ public:
+ ProtocolJsonHandler();
+ };
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
index caf2ea5d5fd..ea602059005 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
@@ -6,116 +6,116 @@
#include "LibLsp/lsp/lsAny.h"
#include "LibLsp/lsp/lsTextEdit.h"
struct ResourceOperation {
- std::string kind;
- virtual ~ResourceOperation() = default;
-
- MAKE_SWAP_METHOD(ResourceOperation, kind);
+ std::string kind;
+ virtual ~ResourceOperation() = default;
+
+ MAKE_SWAP_METHOD(ResourceOperation, kind);
};
MAKE_REFLECT_STRUCT(ResourceOperation, kind);
extern void Reflect(Writer& visitor, ResourceOperation* value);
struct CreateFileOptions{
- /**
- * Overwrite existing file. Overwrite wins over `ignoreIfExists`
- */
- boost::optional<bool> overwrite = false;
-
- /**
- * Ignore if exists.
- */
- boost::optional< bool> ignoreIfExists =false;
-
- MAKE_SWAP_METHOD(CreateFileOptions, overwrite, ignoreIfExists)
+ /**
+ * Overwrite existing file. Overwrite wins over `ignoreIfExists`
+ */
+ boost::optional<bool> overwrite = false;
+
+ /**
+ * Ignore if exists.
+ */
+ boost::optional< bool> ignoreIfExists =false;
+
+ MAKE_SWAP_METHOD(CreateFileOptions, overwrite, ignoreIfExists)
};
MAKE_REFLECT_STRUCT(CreateFileOptions, overwrite, ignoreIfExists)
struct lsCreateFile :public ResourceOperation {
- /**
- * The resource to create.
- */
- lsCreateFile();
- lsDocumentUri uri;
-
- /**
- * Additional options
- */
- boost::optional<CreateFileOptions> options;
-
-
- /**
- * An optional annotation identifer describing the operation.
- *
- * @since 3.16.0
- */
- boost::optional<lsChangeAnnotationIdentifier> annotationId;
-
- MAKE_SWAP_METHOD(lsCreateFile, kind, uri, options, annotationId)
+ /**
+ * The resource to create.
+ */
+ lsCreateFile();
+ lsDocumentUri uri;
+
+ /**
+ * Additional options
+ */
+ boost::optional<CreateFileOptions> options;
+
+
+ /**
+ * An optional annotation identifer describing the operation.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<lsChangeAnnotationIdentifier> annotationId;
+
+ MAKE_SWAP_METHOD(lsCreateFile, kind, uri, options, annotationId)
};
MAKE_REFLECT_STRUCT(lsCreateFile, kind, uri,options, annotationId)
struct DeleteFileOptions {
- /**
- * Delete the content recursively if a folder is denoted.
- */
- boost::optional<bool> recursive = false;
+ /**
+ * Delete the content recursively if a folder is denoted.
+ */
+ boost::optional<bool> recursive = false;
- /**
- * Ignore the operation if the file doesn't exist.
- */
- boost::optional<bool> ignoreIfNotExists = false;
+ /**
+ * Ignore the operation if the file doesn't exist.
+ */
+ boost::optional<bool> ignoreIfNotExists = false;
- MAKE_SWAP_METHOD(DeleteFileOptions, recursive, ignoreIfNotExists);
+ MAKE_SWAP_METHOD(DeleteFileOptions, recursive, ignoreIfNotExists);
};
MAKE_REFLECT_STRUCT(DeleteFileOptions, recursive, ignoreIfNotExists)
struct lsDeleteFile :public ResourceOperation {
- /**
- * The file to delete.
- */
- lsDeleteFile();
- lsDocumentUri uri;
-
- /**
- * Delete options.
- */
- boost::optional<DeleteFileOptions> options;
-
- MAKE_SWAP_METHOD(lsDeleteFile, kind, uri, options);
+ /**
+ * The file to delete.
+ */
+ lsDeleteFile();
+ lsDocumentUri uri;
+
+ /**
+ * Delete options.
+ */
+ boost::optional<DeleteFileOptions> options;
+
+ MAKE_SWAP_METHOD(lsDeleteFile, kind, uri, options);
};
MAKE_REFLECT_STRUCT(lsDeleteFile, kind, uri,options);
typedef CreateFileOptions RenameFileOptions;
struct lsRenameFile :public ResourceOperation {
- /**
- * The old (existing) location.
- */
- lsRenameFile();
- lsDocumentUri oldUri;
-
- /**
- * The new location.
- */
-
- lsDocumentUri newUri;
-
- /**
- * Rename options.
- */
- boost::optional<RenameFileOptions> options;
-
- /**
- * An optional annotation identifer describing the operation.
- *
- * @since 3.16.0
- */
- boost::optional<lsChangeAnnotationIdentifier> annotationId;
-
- MAKE_SWAP_METHOD(lsRenameFile, kind, oldUri, newUri, options, annotationId)
+ /**
+ * The old (existing) location.
+ */
+ lsRenameFile();
+ lsDocumentUri oldUri;
+
+ /**
+ * The new location.
+ */
+
+ lsDocumentUri newUri;
+
+ /**
+ * Rename options.
+ */
+ boost::optional<RenameFileOptions> options;
+
+ /**
+ * An optional annotation identifer describing the operation.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<lsChangeAnnotationIdentifier> annotationId;
+
+ MAKE_SWAP_METHOD(lsRenameFile, kind, oldUri, newUri, options, annotationId)
};
MAKE_REFLECT_STRUCT(lsRenameFile, kind, oldUri, newUri, options, annotationId);
-extern ResourceOperation* GetResourceOperation(lsp::Any& lspAny); \ No newline at end of file
+extern ResourceOperation* GetResourceOperation(lsp::Any& lspAny);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
index 0a2707979da..3178d25d69c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
@@ -9,7 +9,7 @@ class SimpleTimer
{
public:
SimpleTimer(unsigned int duration,const std::function<void()>& _call_back)
- :is_running_(true), call_back(_call_back), _deadline_timer(_ios, Duration(duration))
+ :is_running_(true), call_back(_call_back), _deadline_timer(_ios, Duration(duration))
{
_deadline_timer.async_wait([&](const boost::system::error_code& e)
{
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
index fa5d1114037..60484db56a0 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
@@ -7,20 +7,20 @@
*/
struct Registration {
- static Registration Create(const std::string& method);
- /**
- * The id used to register the request. The id can be used to deregister
- * the request again.
- */
- std::string id;
-
- /**
- * The method / capability to register for.
- */
-
- std::string method;
-
- MAKE_SWAP_METHOD(Registration, id, method);
+ static Registration Create(const std::string& method);
+ /**
+ * The id used to register the request. The id can be used to deregister
+ * the request again.
+ */
+ std::string id;
+
+ /**
+ * The method / capability to register for.
+ */
+
+ std::string method;
+
+ MAKE_SWAP_METHOD(Registration, id, method);
};
@@ -35,8 +35,8 @@ MAKE_REFLECT_STRUCT(Registration, id, method);
*/
struct RegistrationParams
{
- std::vector<Registration> registrations;
- MAKE_SWAP_METHOD(RegistrationParams, registrations);
+ std::vector<Registration> registrations;
+ MAKE_SWAP_METHOD(RegistrationParams, registrations);
};
/**
* The client/registerCapability request is sent from the server to the client
@@ -46,4 +46,4 @@ struct RegistrationParams
*/
MAKE_REFLECT_STRUCT(RegistrationParams, registrations);
-DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientRegisterCapability, RegistrationParams,JsonNull, "client/registerCapability"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientRegisterCapability, RegistrationParams,JsonNull, "client/registerCapability");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
index aa51d7efeee..33bf9d1db61 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
@@ -10,20 +10,20 @@
*/
struct Unregistration {
- /**
- * The id used to unregister the request or notification. Usually an id
- * provided during the register request.
- */
+ /**
+ * The id used to unregister the request or notification. Usually an id
+ * provided during the register request.
+ */
- std::string id;
+ std::string id;
- /**
- * The method / capability to unregister for.
- */
+ /**
+ * The method / capability to unregister for.
+ */
- std::string method;
-
- MAKE_SWAP_METHOD(Unregistration, id, method);
+ std::string method;
+
+ MAKE_SWAP_METHOD(Unregistration, id, method);
};
MAKE_REFLECT_STRUCT(Unregistration, id, method);
/**
@@ -32,10 +32,10 @@ MAKE_REFLECT_STRUCT(Unregistration, id, method);
*/
struct UnregistrationParams
{
- std::vector<Unregistration> unregisterations;
- MAKE_SWAP_METHOD(UnregistrationParams, unregisterations);
+ std::vector<Unregistration> unregisterations;
+ MAKE_SWAP_METHOD(UnregistrationParams, unregisterations);
};
MAKE_REFLECT_STRUCT(UnregistrationParams, unregisterations);
-DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientUnregisterCapability, UnregistrationParams,JsonNull, "client/unregisterCapability"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientUnregisterCapability, UnregistrationParams,JsonNull, "client/unregisterCapability");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
index cfb17fdf34d..dd0ada60cc7 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
@@ -4,31 +4,31 @@
#include <string>
struct OverridableMethod
{
- std::string bindingKey;
- std::string name;
- std::vector<std::string> parameters;
- bool unimplemented = false;
- std::string declaringClass;
- std::string declaringClassType;
+ std::string bindingKey;
+ std::string name;
+ std::vector<std::string> parameters;
+ bool unimplemented = false;
+ std::string declaringClass;
+ std::string declaringClassType;
- void swap(OverridableMethod& arg) noexcept
- {
- bindingKey.swap(arg.bindingKey);
- name.swap(arg.name);
- parameters.swap(arg.parameters);
- declaringClass.swap(arg.declaringClass);
- declaringClassType.swap(arg.declaringClassType);
- std::swap(unimplemented, arg.unimplemented);
- }
+ void swap(OverridableMethod& arg) noexcept
+ {
+ bindingKey.swap(arg.bindingKey);
+ name.swap(arg.name);
+ parameters.swap(arg.parameters);
+ declaringClass.swap(arg.declaringClass);
+ declaringClassType.swap(arg.declaringClassType);
+ std::swap(unimplemented, arg.unimplemented);
+ }
};
MAKE_REFLECT_STRUCT(OverridableMethod, bindingKey, name, parameters, unimplemented, declaringClass, declaringClassType);
struct OverridableMethodsResponse
{
- std::string type;
- std::vector<OverridableMethod> methods;
+ std::string type;
+ std::vector<OverridableMethod> methods;
- MAKE_SWAP_METHOD(OverridableMethodsResponse, type, methods)
+ MAKE_SWAP_METHOD(OverridableMethodsResponse, type, methods)
};
MAKE_REFLECT_STRUCT(OverridableMethodsResponse, type, methods)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
index c7faa94d6c9..c8ddbe3c013 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
@@ -6,8 +6,8 @@
struct WorkspaceSymbolParams
{
- std::string query;
- MAKE_SWAP_METHOD(WorkspaceSymbolParams, query);
+ std::string query;
+ MAKE_SWAP_METHOD(WorkspaceSymbolParams, query);
};
MAKE_REFLECT_STRUCT(WorkspaceSymbolParams, query);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
index 5da14a452a7..527b3b1827a 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
@@ -6,10 +6,10 @@
#include "LibLsp/JsonRpc/RequestInMessage.h"
#include "LibLsp/JsonRpc/lsResponseMessage.h"
struct AddOverridableMethodParams {
- lsCodeActionParams context;
- std::vector<OverridableMethod> overridableMethods;
+ lsCodeActionParams context;
+ std::vector<OverridableMethod> overridableMethods;
- MAKE_SWAP_METHOD(AddOverridableMethodParams, context, overridableMethods);
+ MAKE_SWAP_METHOD(AddOverridableMethodParams, context, overridableMethods);
};
MAKE_REFLECT_STRUCT(AddOverridableMethodParams, context, overridableMethods);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
index a2c2c062ccf..4809e360bbc 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
@@ -10,8 +10,8 @@
enum class BuildWorkspaceStatus : uint8_t{
- FAILED, SUCCEED, WITH_ERROR, CANCELLED,
+ FAILED, SUCCEED, WITH_ERROR, CANCELLED,
};
MAKE_REFLECT_TYPE_PROXY(BuildWorkspaceStatus)
-DEFINE_REQUEST_RESPONSE_TYPE(java_buildWorkspace, bool, BuildWorkspaceStatus, "java/buildWorkspace"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(java_buildWorkspace, bool, BuildWorkspaceStatus, "java/buildWorkspace");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
index 261a0cc5516..acb1e4caa61 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
@@ -6,19 +6,19 @@
#include "checkHashCodeEqualsStatus.h"
struct LspMethodBinding {
- std::string bindingKey;
- std::string name;
- std::vector< std::string> parameters;
+ std::string bindingKey;
+ std::string name;
+ std::vector< std::string> parameters;
- MAKE_SWAP_METHOD(LspMethodBinding, bindingKey, name, parameters);
+ MAKE_SWAP_METHOD(LspMethodBinding, bindingKey, name, parameters);
};
MAKE_REFLECT_STRUCT(LspMethodBinding, bindingKey, name, parameters);
struct CheckConstructorsResponse {
- std::vector<LspMethodBinding> constructors;
- std::vector<LspVariableBinding> fields;
- MAKE_SWAP_METHOD(CheckConstructorsResponse, constructors, fields)
+ std::vector<LspMethodBinding> constructors;
+ std::vector<LspVariableBinding> fields;
+ MAKE_SWAP_METHOD(CheckConstructorsResponse, constructors, fields)
};
MAKE_REFLECT_STRUCT(CheckConstructorsResponse, constructors,fields)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
index 729639eafa5..68a7ed6606c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
@@ -8,22 +8,22 @@
#include "checkConstructorsStatus.h"
struct LspDelegateField {
- LspVariableBinding field;
- std::vector<LspMethodBinding> delegateMethods;
+ LspVariableBinding field;
+ std::vector<LspMethodBinding> delegateMethods;
- MAKE_SWAP_METHOD(LspDelegateField, field, delegateMethods);
+ MAKE_SWAP_METHOD(LspDelegateField, field, delegateMethods);
};
MAKE_REFLECT_STRUCT(LspDelegateField, field, delegateMethods);
struct CheckDelegateMethodsResponse {
- std::vector<LspDelegateField> delegateFields;
+ std::vector<LspDelegateField> delegateFields;
- MAKE_SWAP_METHOD(CheckDelegateMethodsResponse, delegateFields)
+ MAKE_SWAP_METHOD(CheckDelegateMethodsResponse, delegateFields)
};
MAKE_REFLECT_STRUCT(CheckDelegateMethodsResponse, delegateFields)
DEFINE_REQUEST_RESPONSE_TYPE(java_checkDelegateMethodsStatus,
- lsCodeActionParams, CheckDelegateMethodsResponse, "java/checkDelegateMethodsStatus");
+ lsCodeActionParams, CheckDelegateMethodsResponse, "java/checkDelegateMethodsStatus");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
index 1d9652dd442..88731c29b58 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
@@ -8,29 +8,29 @@
#include "LibLsp/lsp/CodeActionParams.h"
struct LspVariableBinding {
- std::string bindingKey;
- std::string name;
- std::string type;
- bool isField;
- void swap(LspVariableBinding& arg) noexcept
- {
- bindingKey.swap(arg.bindingKey);
- name.swap(arg.name);
- type.swap(arg.type);
- std::swap(isField, arg.isField);
- }
+ std::string bindingKey;
+ std::string name;
+ std::string type;
+ bool isField;
+ void swap(LspVariableBinding& arg) noexcept
+ {
+ bindingKey.swap(arg.bindingKey);
+ name.swap(arg.name);
+ type.swap(arg.type);
+ std::swap(isField, arg.isField);
+ }
};
MAKE_REFLECT_STRUCT(LspVariableBinding, bindingKey, name, type, isField)
struct CheckHashCodeEqualsResponse {
- std::string type;
- std::vector<LspVariableBinding> fields;
- std::vector<std::string> existingMethods;
- MAKE_SWAP_METHOD(CheckHashCodeEqualsResponse, type, fields, type, existingMethods)
+ std::string type;
+ std::vector<LspVariableBinding> fields;
+ std::vector<std::string> existingMethods;
+ MAKE_SWAP_METHOD(CheckHashCodeEqualsResponse, type, fields, type, existingMethods)
};
MAKE_REFLECT_STRUCT(CheckHashCodeEqualsResponse, type, fields, type, existingMethods)
DEFINE_REQUEST_RESPONSE_TYPE(java_checkHashCodeEqualsStatus,
- lsCodeActionParams, CheckHashCodeEqualsResponse, "java/checkHashCodeEqualsStatus")
+ lsCodeActionParams, CheckHashCodeEqualsResponse, "java/checkHashCodeEqualsStatus")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
index 24580d94c07..cadb5ba7dd0 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
@@ -6,19 +6,19 @@
#include "LibLsp/lsp/CodeActionParams.h"
#include "checkHashCodeEqualsStatus.h"
struct CheckToStringResponse {
- std::string type;
- std::vector<LspVariableBinding> fields;
- bool exists;
- void swap(CheckToStringResponse& arg) noexcept
- {
- type.swap(arg.type);
- fields.swap(arg.fields);
- std::swap(exists, arg.exists);
- }
+ std::string type;
+ std::vector<LspVariableBinding> fields;
+ bool exists;
+ void swap(CheckToStringResponse& arg) noexcept
+ {
+ type.swap(arg.type);
+ fields.swap(arg.fields);
+ std::swap(exists, arg.exists);
+ }
};
MAKE_REFLECT_STRUCT(CheckToStringResponse,type,fields,exists)
DEFINE_REQUEST_RESPONSE_TYPE(java_checkToStringStatus,
- lsCodeActionParams, CheckToStringResponse ,"java/checkToStringStatus")
+ lsCodeActionParams, CheckToStringResponse ,"java/checkToStringStatus")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
index 02024e3d931..c0195908d03 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
@@ -9,14 +9,14 @@
namespace SourceAssistProcessor {
- /*std::set<std::string> UNSUPPORTED_RESOURCES = { "module-info.java", "package-info.java"
- };*/
+ /*std::set<std::string> UNSUPPORTED_RESOURCES = { "module-info.java", "package-info.java"
+ };*/
-// static const char* COMMAND_ID_ACTION_OVERRIDEMETHODSPROMPT = "java.action.overrideMethodsPrompt";
-// static const char* COMMAND_ID_ACTION_HASHCODEEQUALSPROMPT = "java.action.hashCodeEqualsPrompt";
-// static const char* COMMAND_ID_ACTION_ORGANIZEIMPORTS = "java.action.organizeImports";
-// static const char* COMMAND_ID_ACTION_GENERATETOSTRINGPROMPT = "java.action.generateToStringPrompt";
-// static const char* COMMAND_ID_ACTION_GENERATEACCESSORSPROMPT = "java.action.generateAccessorsPrompt";
-// static const char* COMMAND_ID_ACTION_GENERATECONSTRUCTORSPROMPT = "java.action.generateConstructorsPrompt";
-// static const char* COMMAND_ID_ACTION_GENERATEDELEGATEMETHODSPROMPT = "java.action.generateDelegateMethodsPrompt";
+// static const char* COMMAND_ID_ACTION_OVERRIDEMETHODSPROMPT = "java.action.overrideMethodsPrompt";
+// static const char* COMMAND_ID_ACTION_HASHCODEEQUALSPROMPT = "java.action.hashCodeEqualsPrompt";
+// static const char* COMMAND_ID_ACTION_ORGANIZEIMPORTS = "java.action.organizeImports";
+// static const char* COMMAND_ID_ACTION_GENERATETOSTRINGPROMPT = "java.action.generateToStringPrompt";
+// static const char* COMMAND_ID_ACTION_GENERATEACCESSORSPROMPT = "java.action.generateAccessorsPrompt";
+// static const char* COMMAND_ID_ACTION_GENERATECONSTRUCTORSPROMPT = "java.action.generateConstructorsPrompt";
+// static const char* COMMAND_ID_ACTION_GENERATEDELEGATEMETHODSPROMPT = "java.action.generateDelegateMethodsPrompt";
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
index 92d4a3627bf..19479adfaff 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
@@ -6,20 +6,20 @@
#include "LibLsp/lsp/ExecuteCommandParams.h"
namespace buildpath
{
-// static const char* EDIT_ORGNIZEIMPORTS = "java.edit.organizeImports";
-// static const char* RESOLVE_SOURCE_ATTACHMENT = "java.project.resolveSourceAttachment";
+// static const char* EDIT_ORGNIZEIMPORTS = "java.edit.organizeImports";
+// static const char* RESOLVE_SOURCE_ATTACHMENT = "java.project.resolveSourceAttachment";
-// static const char* UPDATE_SOURCE_ATTACHMENT = "java.project.updateSourceAttachment";
+// static const char* UPDATE_SOURCE_ATTACHMENT = "java.project.updateSourceAttachment";
-// static const char* ADD_TO_SOURCEPATH = "java.project.addToSourcePath";
+// static const char* ADD_TO_SOURCEPATH = "java.project.addToSourcePath";
-// static const char* REMOVE_FROM_SOURCEPATH = "java.project.removeFromSourcePath";
+// static const char* REMOVE_FROM_SOURCEPATH = "java.project.removeFromSourcePath";
-// static const char* LIST_SOURCEPATHS = "java.project.listSourcePaths";
- struct Result {
- bool status;
- std::string message;
- };
+// static const char* LIST_SOURCEPATHS = "java.project.listSourcePaths";
+ struct Result {
+ bool status;
+ std::string message;
+ };
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
index d184c675d83..fd470b17c88 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
@@ -8,11 +8,11 @@
#include "LibLsp/lsp/lsTextDocumentPositionParams.h"
struct FindLinksParams {
- // Supported link types: superImplementation
- std::string type;
- lsTextDocumentPositionParams position;
-
- MAKE_SWAP_METHOD(FindLinksParams, type, position)
+ // Supported link types: superImplementation
+ std::string type;
+ lsTextDocumentPositionParams position;
+
+ MAKE_SWAP_METHOD(FindLinksParams, type, position)
};
MAKE_REFLECT_STRUCT(FindLinksParams,type,position)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
index 200d840e940..82013096c70 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
@@ -8,11 +8,11 @@
struct GenerateAccessorsParams {
- lsCodeActionParams context;
- std::vector<AccessorField> accessors;
+ lsCodeActionParams context;
+ std::vector<AccessorField> accessors;
- MAKE_SWAP_METHOD(GenerateAccessorsParams, context, accessors)
+ MAKE_SWAP_METHOD(GenerateAccessorsParams, context, accessors)
};
MAKE_REFLECT_STRUCT(GenerateAccessorsParams, context, accessors)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
index 77c49a66a29..157fefed795 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
@@ -8,10 +8,10 @@
struct GenerateConstructorsParams {
- lsCodeActionParams context;
- std::vector<LspMethodBinding> constructors;
- std::vector< LspVariableBinding >fields;
- MAKE_SWAP_METHOD(GenerateConstructorsParams, context, fields)
+ lsCodeActionParams context;
+ std::vector<LspMethodBinding> constructors;
+ std::vector< LspVariableBinding >fields;
+ MAKE_SWAP_METHOD(GenerateConstructorsParams, context, fields)
};
MAKE_REFLECT_STRUCT(GenerateConstructorsParams, context, fields)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
index 8958ae4d7ed..c6b47293784 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
@@ -7,17 +7,17 @@
#include "checkConstructorsStatus.h"
struct LspDelegateEntry {
- LspVariableBinding field;
- LspMethodBinding delegateMethod;
- MAKE_SWAP_METHOD(LspDelegateEntry, field, delegateMethod);
+ LspVariableBinding field;
+ LspMethodBinding delegateMethod;
+ MAKE_SWAP_METHOD(LspDelegateEntry, field, delegateMethod);
};
MAKE_REFLECT_STRUCT(LspDelegateEntry, field, delegateMethod);
struct GenerateDelegateMethodsParams {
- lsCodeActionParams context;
- std::vector<LspDelegateEntry> delegateEntries;
- MAKE_SWAP_METHOD(GenerateDelegateMethodsParams, context, delegateEntries)
+ lsCodeActionParams context;
+ std::vector<LspDelegateEntry> delegateEntries;
+ MAKE_SWAP_METHOD(GenerateDelegateMethodsParams, context, delegateEntries)
};
MAKE_REFLECT_STRUCT(GenerateDelegateMethodsParams, context, delegateEntries)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
index 937c3587338..0881d305b18 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
@@ -8,15 +8,15 @@
#include "checkHashCodeEqualsStatus.h"
struct GenerateHashCodeEqualsParams {
- lsCodeActionParams context;
- std::vector<LspVariableBinding> fields;
- bool regenerate= false;
- void swap(GenerateHashCodeEqualsParams& arg) noexcept
- {
- context.swap(arg.context);
- fields.swap(arg.fields);
- std::swap(regenerate, arg.regenerate);
- }
+ lsCodeActionParams context;
+ std::vector<LspVariableBinding> fields;
+ bool regenerate= false;
+ void swap(GenerateHashCodeEqualsParams& arg) noexcept
+ {
+ context.swap(arg.context);
+ fields.swap(arg.fields);
+ std::swap(regenerate, arg.regenerate);
+ }
};
MAKE_REFLECT_STRUCT(GenerateHashCodeEqualsParams, context, fields, regenerate);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
index 1f8ccc73b87..5e5324a59bd 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
@@ -7,11 +7,11 @@
struct GenerateToStringParams {
- lsCodeActionParams context;
- std::vector< LspVariableBinding >fields;
-
- MAKE_SWAP_METHOD(GenerateToStringParams, context, fields)
-
+ lsCodeActionParams context;
+ std::vector< LspVariableBinding >fields;
+
+ MAKE_SWAP_METHOD(GenerateToStringParams, context, fields)
+
};
MAKE_REFLECT_STRUCT(GenerateToStringParams, context, fields)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
index bcbf6f8c2ba..56f09a0a537 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
@@ -8,54 +8,54 @@
struct MoveKindInfo
{
- static std::string moveResource()
- {
- return "moveResource";
- }
- static std::string moveInstanceMethod()
- {
- return "moveInstanceMethod";
- }
- static std::string moveStaticMember()
- {
- return "moveStaticMember";
- }
+ static std::string moveResource()
+ {
+ return "moveResource";
+ }
+ static std::string moveInstanceMethod()
+ {
+ return "moveInstanceMethod";
+ }
+ static std::string moveStaticMember()
+ {
+ return "moveStaticMember";
+ }
};
struct MoveParams {
- /**
- * The supported move kind: moveResource, moveInstanceMethod, moveStaticMember,
- * moveTypeToNewFile.
- */
- std::string moveKind;
- /**
- * The selected resource uris when the move operation is triggered.
- */
- std::vector<std::string> sourceUris;
- /**
- * The code action params when the move operation is triggered.
- */
- boost::optional<lsCodeActionParams> params;
- /**
- * The possible destination: a folder/package, class, instanceDeclaration.
- */
- lsp::Any destination;
- bool updateReferences;
- void swap(MoveParams& arg) noexcept
- {
- moveKind.swap(arg.moveKind);
- sourceUris.swap(arg.sourceUris);
- params.swap(arg.params);
- destination.swap(arg.destination);
- std::swap(updateReferences, arg.updateReferences);
- }
+ /**
+ * The supported move kind: moveResource, moveInstanceMethod, moveStaticMember,
+ * moveTypeToNewFile.
+ */
+ std::string moveKind;
+ /**
+ * The selected resource uris when the move operation is triggered.
+ */
+ std::vector<std::string> sourceUris;
+ /**
+ * The code action params when the move operation is triggered.
+ */
+ boost::optional<lsCodeActionParams> params;
+ /**
+ * The possible destination: a folder/package, class, instanceDeclaration.
+ */
+ lsp::Any destination;
+ bool updateReferences;
+ void swap(MoveParams& arg) noexcept
+ {
+ moveKind.swap(arg.moveKind);
+ sourceUris.swap(arg.sourceUris);
+ params.swap(arg.params);
+ destination.swap(arg.destination);
+ std::swap(updateReferences, arg.updateReferences);
+ }
};
MAKE_REFLECT_STRUCT(MoveParams, moveKind, sourceUris, params, destination, updateReferences);
struct MoveDestinationsResponse {
- std::string errorMessage;
- std::vector<lsp::Any > destinations;
- MAKE_SWAP_METHOD(MoveDestinationsResponse, errorMessage, destinations);
+ std::string errorMessage;
+ std::vector<lsp::Any > destinations;
+ MAKE_SWAP_METHOD(MoveDestinationsResponse, errorMessage, destinations);
};
MAKE_REFLECT_STRUCT(MoveDestinationsResponse, errorMessage, destinations);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
index e46327075a5..131612dc2e3 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
@@ -15,40 +15,40 @@
namespace
RefactorProposalUtility
{
- extern const char* APPLY_REFACTORING_COMMAND_ID;
- extern const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND;
- extern const char* EXTRACT_VARIABLE_COMMAND;
- extern const char* EXTRACT_CONSTANT_COMMAND;
- extern const char* EXTRACT_METHOD_COMMAND;
- extern const char* EXTRACT_FIELD_COMMAND;
- extern const char* CONVERT_VARIABLE_TO_FIELD_COMMAND;
- extern const char* MOVE_FILE_COMMAND;
- extern const char* MOVE_INSTANCE_METHOD_COMMAND;
- extern const char* MOVE_STATIC_MEMBER_COMMAND;
- extern const char* MOVE_TYPE_COMMAND;
+ extern const char* APPLY_REFACTORING_COMMAND_ID;
+ extern const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND;
+ extern const char* EXTRACT_VARIABLE_COMMAND;
+ extern const char* EXTRACT_CONSTANT_COMMAND;
+ extern const char* EXTRACT_METHOD_COMMAND;
+ extern const char* EXTRACT_FIELD_COMMAND;
+ extern const char* CONVERT_VARIABLE_TO_FIELD_COMMAND;
+ extern const char* MOVE_FILE_COMMAND;
+ extern const char* MOVE_INSTANCE_METHOD_COMMAND;
+ extern const char* MOVE_STATIC_MEMBER_COMMAND;
+ extern const char* MOVE_TYPE_COMMAND;
};
struct RenamePosition {
- lsDocumentUri uri;
- int offset = 0;
- int length = 0;
- void swap(RenamePosition& arg) noexcept
- {
- uri.swap(arg.uri);
- std::swap(offset, arg.offset);
- std::swap(length, arg.length);
- }
+ lsDocumentUri uri;
+ int offset = 0;
+ int length = 0;
+ void swap(RenamePosition& arg) noexcept
+ {
+ uri.swap(arg.uri);
+ std::swap(offset, arg.offset);
+ std::swap(length, arg.length);
+ }
};
MAKE_REFLECT_STRUCT(RenamePosition, uri, offset, length);
struct GetRefactorEditParams
{
- std::string command;
- std::vector<lsp::Any> commandArguments;
- lsCodeActionParams context;
- boost::optional<lsFormattingOptions> options;
- MAKE_SWAP_METHOD(GetRefactorEditParams, command, context, options);
+ std::string command;
+ std::vector<lsp::Any> commandArguments;
+ lsCodeActionParams context;
+ boost::optional<lsFormattingOptions> options;
+ MAKE_SWAP_METHOD(GetRefactorEditParams, command, context, options);
};
MAKE_REFLECT_STRUCT(GetRefactorEditParams, command, context, options);
@@ -56,20 +56,20 @@ MAKE_REFLECT_STRUCT(GetRefactorEditParams, command, context, options);
struct RefactorWorkspaceEdit {
- /**
- * The workspace edit this code action performs.
- */
- lsWorkspaceEdit edit;
- /**
- * A command this code action executes. If a code action provides a edit and a
- * command, first the edit is executed and then the command.
- */
-
- boost::optional<std::string> errorMessage;
-
- boost::optional < lsCommandWithAny > command;
-
- MAKE_SWAP_METHOD(RefactorWorkspaceEdit, edit, command, errorMessage)
+ /**
+ * The workspace edit this code action performs.
+ */
+ lsWorkspaceEdit edit;
+ /**
+ * A command this code action executes. If a code action provides a edit and a
+ * command, first the edit is executed and then the command.
+ */
+
+ boost::optional<std::string> errorMessage;
+
+ boost::optional < lsCommandWithAny > command;
+
+ MAKE_SWAP_METHOD(RefactorWorkspaceEdit, edit, command, errorMessage)
};
MAKE_REFLECT_STRUCT(RefactorWorkspaceEdit,edit,command,errorMessage)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
index ba77041474f..f8bd8a4f7a2 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
@@ -7,16 +7,16 @@
struct AccessorField {
- std::string fieldName;
- bool isStatic =false;
- bool generateGetter = false;
- bool generateSetter = false;
- void swap(AccessorField& arg) noexcept{
- fieldName.swap(arg.fieldName);
- std::swap(isStatic, arg.isStatic);
- std::swap(generateGetter, arg.generateGetter);
- std::swap(generateSetter, arg.generateSetter);
- }
+ std::string fieldName;
+ bool isStatic =false;
+ bool generateGetter = false;
+ bool generateSetter = false;
+ void swap(AccessorField& arg) noexcept{
+ fieldName.swap(arg.fieldName);
+ std::swap(isStatic, arg.isStatic);
+ std::swap(generateGetter, arg.generateGetter);
+ std::swap(generateSetter, arg.generateSetter);
+ }
};
MAKE_REFLECT_STRUCT(AccessorField, fieldName,isStatic,generateGetter,generateSetter)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
index ac8a2419f62..18a2f9999e5 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
@@ -13,10 +13,10 @@
struct SearchSymbolParams :public WorkspaceSymbolParams
{
- boost::optional<std::string> projectName;
- boost::optional< bool >sourceOnly;
- boost::optional< int> maxResults;
- MAKE_SWAP_METHOD(SearchSymbolParams, query, projectName, sourceOnly, maxResults);
+ boost::optional<std::string> projectName;
+ boost::optional< bool >sourceOnly;
+ boost::optional< int> maxResults;
+ MAKE_SWAP_METHOD(SearchSymbolParams, query, projectName, sourceOnly, maxResults);
};
MAKE_REFLECT_STRUCT(SearchSymbolParams, query, projectName, sourceOnly, maxResults);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
index d81c3eaa636..0823469ba90 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
@@ -9,46 +9,46 @@
struct LintRule
{
- std::string key;
- std::string name;
+ std::string key;
+ std::string name;
- std::string Display() const
- {
- return name + " (" + key + ")";
- }
- bool activeByDefault = true;
- boost::optional<std::string> severity;
- boost::optional<std::string> type;
- int icon_index = -1;
- MAKE_SWAP_METHOD(LintRule, key, name, activeByDefault, severity, type);
+ std::string Display() const
+ {
+ return name + " (" + key + ")";
+ }
+ bool activeByDefault = true;
+ boost::optional<std::string> severity;
+ boost::optional<std::string> type;
+ int icon_index = -1;
+ MAKE_SWAP_METHOD(LintRule, key, name, activeByDefault, severity, type);
};
MAKE_REFLECT_STRUCT(LintRule, key, name, activeByDefault, severity, type);
struct RuleParameter {
- std::string name;
- boost::optional<std::string> description;
- boost::optional<std::string> defaultValue;
+ std::string name;
+ boost::optional<std::string> description;
+ boost::optional<std::string> defaultValue;
};
MAKE_REFLECT_STRUCT(RuleParameter, name, description, defaultValue);
struct ShowRuleDescriptionParams {
- boost::optional<std::string> key;
+ boost::optional<std::string> key;
- boost::optional<std::string> name;
+ boost::optional<std::string> name;
- boost::optional<std::string> htmlDescription;
+ boost::optional<std::string> htmlDescription;
- boost::optional<std::string> type;
+ boost::optional<std::string> type;
- boost::optional<std::string> severity;
+ boost::optional<std::string> severity;
- boost::optional< std::vector<RuleParameter> > parameters;
- MAKE_SWAP_METHOD(ShowRuleDescriptionParams, key, name, htmlDescription, type, severity, parameters)
+ boost::optional< std::vector<RuleParameter> > parameters;
+ MAKE_SWAP_METHOD(ShowRuleDescriptionParams, key, name, htmlDescription, type, severity, parameters)
};
@@ -56,96 +56,96 @@ MAKE_REFLECT_STRUCT(ShowRuleDescriptionParams, key, name, htmlDescription, type,
struct GetJavaConfigResponse {
- std::string projectRoot;
- std::string sourceLevel;
- std::vector<std::string> classpath;
- bool isTest;
- std::string vmLocation;
- MAKE_SWAP_METHOD(GetJavaConfigResponse, projectRoot, sourceLevel, classpath, isTest, vmLocation);
+ std::string projectRoot;
+ std::string sourceLevel;
+ std::vector<std::string> classpath;
+ bool isTest;
+ std::string vmLocation;
+ MAKE_SWAP_METHOD(GetJavaConfigResponse, projectRoot, sourceLevel, classpath, isTest, vmLocation);
};
MAKE_REFLECT_STRUCT(GetJavaConfigResponse, projectRoot, sourceLevel, classpath, isTest, vmLocation);
struct SetTraceNotificationParams {
- lsInitializeParams::lsTrace value;
+ lsInitializeParams::lsTrace value;
};
MAKE_REFLECT_STRUCT(SetTraceNotificationParams, value);
struct ServerConnectionSettings {
- std::string SONARCLOUD_URL = "https://sonarcloud.io";
- std::vector<std::string>SONARCLOUD_ALIAS = { "https://sonarqube.com",
- "https://www.sonarqube.com",
- "https://www.sonarcloud.io",
- "https://sonarcloud.io" };
+ std::string SONARCLOUD_URL = "https://sonarcloud.io";
+ std::vector<std::string>SONARCLOUD_ALIAS = { "https://sonarqube.com",
+ "https://www.sonarqube.com",
+ "https://www.sonarcloud.io",
+ "https://sonarcloud.io" };
- std::string connectionId;
- std::string serverUrl;
- std::string token;
- boost::optional<std::string> organizationKey;
- MAKE_SWAP_METHOD(ServerConnectionSettings, connectionId, serverUrl, token, organizationKey)
+ std::string connectionId;
+ std::string serverUrl;
+ std::string token;
+ boost::optional<std::string> organizationKey;
+ MAKE_SWAP_METHOD(ServerConnectionSettings, connectionId, serverUrl, token, organizationKey)
};
MAKE_REFLECT_STRUCT(ServerConnectionSettings, connectionId, serverUrl, token, organizationKey)
struct RuleSetting
{
- bool IsOn();
- std::string level = "on";
- RuleSetting(bool activate);
- RuleSetting() = default;
- void toggle();
- void on()
- {
- level = "on";
- }
- void off()
- {
- level = "off";
- }
- void turn(bool activate)
- {
- if (activate)
- {
- on();
- }
- else
- {
- off();
- }
- }
- boost::optional< std::map<std::string, std::string > > parameters;
+ bool IsOn();
+ std::string level = "on";
+ RuleSetting(bool activate);
+ RuleSetting() = default;
+ void toggle();
+ void on()
+ {
+ level = "on";
+ }
+ void off()
+ {
+ level = "off";
+ }
+ void turn(bool activate)
+ {
+ if (activate)
+ {
+ on();
+ }
+ else
+ {
+ off();
+ }
+ }
+ boost::optional< std::map<std::string, std::string > > parameters;
};
MAKE_REFLECT_STRUCT(RuleSetting, level, parameters)
struct ConsoleParams
{
- boost::optional < bool >showAnalyzerLogs;
- boost::optional < bool >showVerboseLogs;
- MAKE_SWAP_METHOD(ConsoleParams, showAnalyzerLogs, showVerboseLogs)
+ boost::optional < bool >showAnalyzerLogs;
+ boost::optional < bool >showVerboseLogs;
+ MAKE_SWAP_METHOD(ConsoleParams, showAnalyzerLogs, showVerboseLogs)
};
MAKE_REFLECT_STRUCT(ConsoleParams, showAnalyzerLogs, showVerboseLogs)
struct SonarLintWorkspaceSettings
{
- boost::optional < bool > disableTelemetry;
- boost::optional < std::map<std::string, ServerConnectionSettings> >connectedMode;
- boost::optional<std::map<std::string, RuleSetting>> rules;
- boost::optional<ConsoleParams> output;
+ boost::optional < bool > disableTelemetry;
+ boost::optional < std::map<std::string, ServerConnectionSettings> >connectedMode;
+ boost::optional<std::map<std::string, RuleSetting>> rules;
+ boost::optional<ConsoleParams> output;
- boost::optional<std::string > pathToNodeExecutable;
+ boost::optional<std::string > pathToNodeExecutable;
- boost::optional< std::map<std::string, std::string > > getConfigurationParameters(const std::string& ruleKey);
+ boost::optional< std::map<std::string, std::string > > getConfigurationParameters(const std::string& ruleKey);
};
MAKE_REFLECT_STRUCT(SonarLintWorkspaceSettings, disableTelemetry, connectedMode,
- rules, output, pathToNodeExecutable)
+ rules, output, pathToNodeExecutable)
- DEFINE_REQUEST_RESPONSE_TYPE(slls_listAllRules, JsonNull, lsp::Any, "sonarlint/listAllRules");
+ DEFINE_REQUEST_RESPONSE_TYPE(slls_listAllRules, JsonNull, lsp::Any, "sonarlint/listAllRules");
@@ -173,4 +173,4 @@ DEFINE_REQUEST_RESPONSE_TYPE(slls_showRuleDescription, ShowRuleDescriptionParams
DEFINE_REQUEST_RESPONSE_TYPE(slls_getJavaConfig, lsDocumentUri, GetJavaConfigResponse, "sonarlint/getJavaConfig");
-DEFINE_NOTIFICATION_TYPE(slls_setTraceNotification, SetTraceNotificationParams, "$/setTraceNotification") \ No newline at end of file
+DEFINE_NOTIFICATION_TYPE(slls_setTraceNotification, SetTraceNotificationParams, "$/setTraceNotification")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
index f10080ea216..c07cc8149d6 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
@@ -6,10 +6,10 @@
#include "LibLsp/lsp/workspace/workspaceFolders.h"
struct ClientInfo {
- std::string name;
- boost::optional<std::string> version;
-
- MAKE_SWAP_METHOD(ClientInfo,name,version);
+ std::string name;
+ boost::optional<std::string> version;
+
+ MAKE_SWAP_METHOD(ClientInfo,name,version);
};
MAKE_REFLECT_STRUCT(ClientInfo,name,version);
@@ -19,7 +19,7 @@ struct lsInitializeParams {
// If the parent process is not alive then the server should exit (see exit
// notification) its process.
boost::optional<int> processId;
-
+
/**
* Information about the client
*
@@ -37,7 +37,7 @@ struct lsInitializeParams {
* @since 3.16.0
*/
boost::optional<std::string> locale;
-
+
// The rootPath of the workspace. Is null
// if no folder is open.
//
@@ -64,13 +64,13 @@ struct lsInitializeParams {
boost::optional< std::string >clientName;
-
+
enum class lsTrace {
// NOTE: serialized as a string, one of 'off' | 'messages' | 'verbose';
Off, // off
Messages, // messages
Verbose // verbose
-
+
};
// The initial trace setting. If omitted trace is disabled ('off').
@@ -117,9 +117,9 @@ struct lsInitializeError {
bool retry;
void swap(lsInitializeError& arg) noexcept
{
- auto tem = retry;
- retry = arg.retry;
- arg.retry = tem;
+ auto tem = retry;
+ retry = arg.retry;
+ arg.retry = tem;
}
};
MAKE_REFLECT_STRUCT(lsInitializeError, retry);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
index eb8810939ac..2198b158bfc 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
@@ -15,7 +15,7 @@
*/
struct InitializeResult {
lsServerCapabilities capabilities;
- MAKE_SWAP_METHOD(InitializeResult, capabilities);
+ MAKE_SWAP_METHOD(InitializeResult, capabilities);
};
MAKE_REFLECT_STRUCT(InitializeResult, capabilities);
@@ -26,7 +26,7 @@ MAKE_REFLECT_STRUCT(InitializeResult, capabilities);
* the server.
*
* If the server receives request or notification before the initialize request it should act as follows:
- * - for a request the respond should be errored with code: -32001. The message can be picked by the server.
+ * - for a request the respond should be errored with code: -32001. The message can be picked by the server.
* - notifications should be dropped, except for the exit notification. This will allow the exit a server without an initialize request.
*
* Until the server has responded to the initialize request with an InitializeResult
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
index fcf6634e13f..29129565e48 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
@@ -10,17 +10,17 @@
* @since 3.16.0
*/
struct MarkdownClientCapabilities {
- /**
- * The name of the parser.
- */
- std::string parser;
-
- /**
- * The version of the parser.
- */
- boost::optional<std::string> version;
- MAKE_SWAP_METHOD(MarkdownClientCapabilities, parser, version)
-
+ /**
+ * The name of the parser.
+ */
+ std::string parser;
+
+ /**
+ * The version of the parser.
+ */
+ boost::optional<std::string> version;
+ MAKE_SWAP_METHOD(MarkdownClientCapabilities, parser, version)
+
};
MAKE_REFLECT_STRUCT(MarkdownClientCapabilities, parser, version)
@@ -32,7 +32,7 @@ struct lsClientCapabilities {
boost::optional<lsTextDocumentClientCapabilities> textDocument;
/**
- * Window specific client capabilities.
+ * Window specific client capabilities.
*/
boost::optional<lsp::Any> window;
/**
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
index 66af2ced6b1..d62d3e4dfd6 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
@@ -16,77 +16,77 @@ extern void Reflect(Reader&, std::pair<boost::optional<lsTextDocumentSyncKind>,
// Code Action options.
//
struct CodeActionOptions : WorkDoneProgressOptions {
- //
- // CodeActionKinds that this server may return.
- //
- // The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
- // may list out every specific kind they provide.
- //
- typedef std::string CodeActionKind;
- std::vector<CodeActionKind> codeActionKinds;
-
- MAKE_SWAP_METHOD(CodeActionOptions, workDoneProgress, codeActionKinds);
+ //
+ // CodeActionKinds that this server may return.
+ //
+ // The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
+ // may list out every specific kind they provide.
+ //
+ typedef std::string CodeActionKind;
+ std::vector<CodeActionKind> codeActionKinds;
+
+ MAKE_SWAP_METHOD(CodeActionOptions, workDoneProgress, codeActionKinds);
};
MAKE_REFLECT_STRUCT(CodeActionOptions, workDoneProgress, codeActionKinds)
struct CodeLensOptions : WorkDoneProgressOptions {
- //
- // Code lens has a resolve provider as well.
- //
- boost::optional<bool> resolveProvider ;
- MAKE_SWAP_METHOD(CodeLensOptions, workDoneProgress, resolveProvider);
+ //
+ // Code lens has a resolve provider as well.
+ //
+ boost::optional<bool> resolveProvider ;
+ MAKE_SWAP_METHOD(CodeLensOptions, workDoneProgress, resolveProvider);
};
MAKE_REFLECT_STRUCT(CodeLensOptions, workDoneProgress, resolveProvider)
// Format document on type options
struct lsDocumentOnTypeFormattingOptions :WorkDoneProgressOptions {
- // A character on which formatting should be triggered, like `}`.
- std::string firstTriggerCharacter;
-
- // More trigger characters.
- std::vector<std::string> moreTriggerCharacter;
- MAKE_SWAP_METHOD(lsDocumentOnTypeFormattingOptions, workDoneProgress,
- firstTriggerCharacter,
- moreTriggerCharacter);
+ // A character on which formatting should be triggered, like `}`.
+ std::string firstTriggerCharacter;
+
+ // More trigger characters.
+ std::vector<std::string> moreTriggerCharacter;
+ MAKE_SWAP_METHOD(lsDocumentOnTypeFormattingOptions, workDoneProgress,
+ firstTriggerCharacter,
+ moreTriggerCharacter);
};
MAKE_REFLECT_STRUCT(lsDocumentOnTypeFormattingOptions, workDoneProgress,
- firstTriggerCharacter,
- moreTriggerCharacter);
+ firstTriggerCharacter,
+ moreTriggerCharacter);
struct RenameOptions : WorkDoneProgressOptions {
- //
- // Renames should be checked and tested before being executed.
- //
- boost::optional<bool> prepareProvider;
- MAKE_SWAP_METHOD(RenameOptions, workDoneProgress, prepareProvider);
+ //
+ // Renames should be checked and tested before being executed.
+ //
+ boost::optional<bool> prepareProvider;
+ MAKE_SWAP_METHOD(RenameOptions, workDoneProgress, prepareProvider);
};
MAKE_REFLECT_STRUCT(RenameOptions,workDoneProgress,prepareProvider)
struct DocumentFilter{
- //
- // A language id, like `typescript`.
- //
- boost::optional<std::string> language;
- //
- // A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
- //
- boost::optional<std::string>scheme;
- //
- // A glob pattern, like `*.{ts,js}`.
- //
- // Glob patterns can have the following syntax:
- // - `*` to match one or more characters in a path segment
- // - `?` to match on one character in a path segment
- // - `**` to match any number of path segments, including none
- // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}
- // matches all TypeScript and JavaScript files)
- // - `[]` to declare a range of characters to match in a path segment
- // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
- // - `[!...]` to negate a range of characters to match in a path segment
- // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
- // not `example.0`)
- //
- boost::optional<std::string>pattern;
- MAKE_SWAP_METHOD(DocumentFilter, language, scheme, pattern)
+ //
+ // A language id, like `typescript`.
+ //
+ boost::optional<std::string> language;
+ //
+ // A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
+ //
+ boost::optional<std::string>scheme;
+ //
+ // A glob pattern, like `*.{ts,js}`.
+ //
+ // Glob patterns can have the following syntax:
+ // - `*` to match one or more characters in a path segment
+ // - `?` to match on one character in a path segment
+ // - `**` to match any number of path segments, including none
+ // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}
+ // matches all TypeScript and JavaScript files)
+ // - `[]` to declare a range of characters to match in a path segment
+ // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
+ // - `[!...]` to negate a range of characters to match in a path segment
+ // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
+ // not `example.0`)
+ //
+ boost::optional<std::string>pattern;
+ MAKE_SWAP_METHOD(DocumentFilter, language, scheme, pattern)
};
MAKE_REFLECT_STRUCT(DocumentFilter, language, scheme, pattern)
@@ -95,17 +95,17 @@ using DocumentSelector = std::vector<DocumentFilter>;
// Document link options
struct lsDocumentLinkOptions :WorkDoneProgressOptions {
- // Document links have a resolve provider as well.
- boost::optional<bool> resolveProvider;
- MAKE_SWAP_METHOD(lsDocumentLinkOptions, workDoneProgress, resolveProvider);
+ // Document links have a resolve provider as well.
+ boost::optional<bool> resolveProvider;
+ MAKE_SWAP_METHOD(lsDocumentLinkOptions, workDoneProgress, resolveProvider);
};
MAKE_REFLECT_STRUCT(lsDocumentLinkOptions, workDoneProgress,resolveProvider);
// Execute command options.
struct lsExecuteCommandOptions : WorkDoneProgressOptions {
- // The commands to be executed on the server
- std::vector<std::string> commands;
- MAKE_SWAP_METHOD(lsExecuteCommandOptions, workDoneProgress, commands);
+ // The commands to be executed on the server
+ std::vector<std::string> commands;
+ MAKE_SWAP_METHOD(lsExecuteCommandOptions, workDoneProgress, commands);
};
MAKE_REFLECT_STRUCT(lsExecuteCommandOptions, workDoneProgress, commands);
@@ -116,9 +116,9 @@ struct TextDocumentRegistrationOptions
// A document selector to identify the scope of the registration. If set to null
// the document selector provided on the client side will be used.
//
- boost::optional<DocumentSelector> documentSelector;
+ boost::optional<DocumentSelector> documentSelector;
- MAKE_SWAP_METHOD(TextDocumentRegistrationOptions, documentSelector);
+ MAKE_SWAP_METHOD(TextDocumentRegistrationOptions, documentSelector);
};
MAKE_REFLECT_STRUCT(TextDocumentRegistrationOptions, documentSelector);
@@ -127,12 +127,12 @@ MAKE_REFLECT_STRUCT(TextDocumentRegistrationOptions, documentSelector);
//
struct StaticRegistrationOptions :public TextDocumentRegistrationOptions
{
- //
- // The id used to register the request. The id can be used to deregister
- // the request again. See also Registration#id.
- //
- boost::optional<std::string> id;
- MAKE_SWAP_METHOD(StaticRegistrationOptions, documentSelector, id)
+ //
+ // The id used to register the request. The id can be used to deregister
+ // the request again. See also Registration#id.
+ //
+ boost::optional<std::string> id;
+ MAKE_SWAP_METHOD(StaticRegistrationOptions, documentSelector, id)
};
MAKE_REFLECT_STRUCT(StaticRegistrationOptions, documentSelector,id)
@@ -143,22 +143,22 @@ MAKE_REFLECT_STRUCT(StaticRegistrationOptions, documentSelector,id)
//
struct WorkspaceFoldersOptions {
- //
- // The server has support for workspace folders
- //
- boost::optional<bool> supported;
-
- //
- // Whether the server wants to receive workspace folder
- // change notifications.
- //
- // If a string is provided, the string is treated as an ID
- // under which the notification is registered on the client
- // side. The ID can be used to unregister for these events
- // using the `client/unregisterCapability` request.
- //
- boost::optional<std::pair< boost::optional<std::string>, boost::optional<bool> > > changeNotifications;
- MAKE_SWAP_METHOD(WorkspaceFoldersOptions, supported, changeNotifications);
+ //
+ // The server has support for workspace folders
+ //
+ boost::optional<bool> supported;
+
+ //
+ // Whether the server wants to receive workspace folder
+ // change notifications.
+ //
+ // If a string is provided, the string is treated as an ID
+ // under which the notification is registered on the client
+ // side. The ID can be used to unregister for these events
+ // using the `client/unregisterCapability` request.
+ //
+ boost::optional<std::pair< boost::optional<std::string>, boost::optional<bool> > > changeNotifications;
+ MAKE_SWAP_METHOD(WorkspaceFoldersOptions, supported, changeNotifications);
};
MAKE_REFLECT_STRUCT(WorkspaceFoldersOptions, supported, changeNotifications);
@@ -170,8 +170,8 @@ MAKE_REFLECT_STRUCT(WorkspaceFoldersOptions, supported, changeNotifications);
//
enum lsFileOperationPatternKind
{
- file,
- folder
+ file,
+ folder
};
MAKE_REFLECT_TYPE_PROXY(lsFileOperationPatternKind)
@@ -182,11 +182,11 @@ MAKE_REFLECT_TYPE_PROXY(lsFileOperationPatternKind)
//
struct lsFileOperationPatternOptions {
- //
- // The pattern should be matched ignoring casing.
- //
- boost::optional<bool> ignoreCase;
- MAKE_SWAP_METHOD(lsFileOperationPatternOptions, ignoreCase)
+ //
+ // The pattern should be matched ignoring casing.
+ //
+ boost::optional<bool> ignoreCase;
+ MAKE_SWAP_METHOD(lsFileOperationPatternOptions, ignoreCase)
};
MAKE_REFLECT_STRUCT(lsFileOperationPatternOptions, ignoreCase)
//
@@ -196,33 +196,33 @@ MAKE_REFLECT_STRUCT(lsFileOperationPatternOptions, ignoreCase)
// @since 3.16.0
//
struct lsFileOperationPattern {
- //
- // The glob pattern to match. Glob patterns can have the following syntax:
- // - `*` to match one or more characters in a path segment
- // - `?` to match on one character in a path segment
- // - `**` to match any number of path segments, including none
- // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}`
- // matches all TypeScript and JavaScript files)
- // - `[]` to declare a range of characters to match in a path segment
- // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
- // - `[!...]` to negate a range of characters to match in a path segment
- // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
- // not `example.0`)
- //
- std::string glob;
-
- //
- // Whether to match files or folders with this pattern.
- //
- // Matches both if undefined.
- //
- boost::optional<lsFileOperationPatternKind> matches;
-
- //
- // Additional options used during matching.
- //
- boost::optional<lsFileOperationPatternOptions> options ;
- MAKE_SWAP_METHOD(lsFileOperationPattern, glob, matches, options)
+ //
+ // The glob pattern to match. Glob patterns can have the following syntax:
+ // - `*` to match one or more characters in a path segment
+ // - `?` to match on one character in a path segment
+ // - `**` to match any number of path segments, including none
+ // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}`
+ // matches all TypeScript and JavaScript files)
+ // - `[]` to declare a range of characters to match in a path segment
+ // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
+ // - `[!...]` to negate a range of characters to match in a path segment
+ // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
+ // not `example.0`)
+ //
+ std::string glob;
+
+ //
+ // Whether to match files or folders with this pattern.
+ //
+ // Matches both if undefined.
+ //
+ boost::optional<lsFileOperationPatternKind> matches;
+
+ //
+ // Additional options used during matching.
+ //
+ boost::optional<lsFileOperationPatternOptions> options ;
+ MAKE_SWAP_METHOD(lsFileOperationPattern, glob, matches, options)
};
MAKE_REFLECT_STRUCT(lsFileOperationPattern, glob, matches, options)
//
@@ -233,16 +233,16 @@ MAKE_REFLECT_STRUCT(lsFileOperationPattern, glob, matches, options)
//
struct lsFileOperationFilter {
- //
- // A Uri like `file` or `untitled`.
- //
- boost::optional<std::string> scheme;
+ //
+ // A Uri like `file` or `untitled`.
+ //
+ boost::optional<std::string> scheme;
- //
- // The actual file operation pattern.
- //
- boost::optional<lsFileOperationPattern> pattern;
- MAKE_SWAP_METHOD(lsFileOperationFilter, scheme, pattern)
+ //
+ // The actual file operation pattern.
+ //
+ boost::optional<lsFileOperationPattern> pattern;
+ MAKE_SWAP_METHOD(lsFileOperationFilter, scheme, pattern)
};
MAKE_REFLECT_STRUCT(lsFileOperationFilter, scheme, pattern)
//
@@ -251,69 +251,69 @@ MAKE_REFLECT_STRUCT(lsFileOperationFilter, scheme, pattern)
// @since 3.16.0
//
struct lsFileOperationRegistrationOptions {
- //
- // The actual filters.
- //
- boost::optional<std::vector<lsFileOperationFilter>> filters;
- MAKE_SWAP_METHOD(lsFileOperationRegistrationOptions, filters)
+ //
+ // The actual filters.
+ //
+ boost::optional<std::vector<lsFileOperationFilter>> filters;
+ MAKE_SWAP_METHOD(lsFileOperationRegistrationOptions, filters)
};
MAKE_REFLECT_STRUCT(lsFileOperationRegistrationOptions, filters)
struct WorkspaceServerCapabilities {
- //
- // The server supports workspace folder.
- //
- // Since 3.6.0
- //
- WorkspaceFoldersOptions workspaceFolders;
-
-
- //
- // The server is interested in file notifications/requests.
- //
- // @since 3.16.0
- //
- struct lsFileOperations
- {
- //
- // The server is interested in receiving didCreateFiles
- // notifications.
- //
- boost::optional<lsFileOperationRegistrationOptions> didCreate;
-
- //
- // The server is interested in receiving willCreateFiles requests.
- //
- boost::optional<lsFileOperationRegistrationOptions> willCreate;
-
- //
- // The server is interested in receiving didRenameFiles
- // notifications.
- //
- boost::optional<lsFileOperationRegistrationOptions> didRename;
-
- //
- // The server is interested in receiving willRenameFiles requests.
- //
- boost::optional<lsFileOperationRegistrationOptions> willRename;
-
- //
- // The server is interested in receiving didDeleteFiles file
- // notifications.
- //
- boost::optional<lsFileOperationRegistrationOptions> didDelete;
-
- //
- // The server is interested in receiving willDeleteFiles file
- // requests.
- //
- boost::optional<lsFileOperationRegistrationOptions> willDelete;
- MAKE_SWAP_METHOD(lsFileOperations, didCreate, willCreate, didRename, willRename, didDelete, willDelete)
- };
- boost::optional<lsFileOperations>fileOperations;
-
-
- MAKE_SWAP_METHOD(WorkspaceServerCapabilities, workspaceFolders, fileOperations)
+ //
+ // The server supports workspace folder.
+ //
+ // Since 3.6.0
+ //
+ WorkspaceFoldersOptions workspaceFolders;
+
+
+ //
+ // The server is interested in file notifications/requests.
+ //
+ // @since 3.16.0
+ //
+ struct lsFileOperations
+ {
+ //
+ // The server is interested in receiving didCreateFiles
+ // notifications.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> didCreate;
+
+ //
+ // The server is interested in receiving willCreateFiles requests.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> willCreate;
+
+ //
+ // The server is interested in receiving didRenameFiles
+ // notifications.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> didRename;
+
+ //
+ // The server is interested in receiving willRenameFiles requests.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> willRename;
+
+ //
+ // The server is interested in receiving didDeleteFiles file
+ // notifications.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> didDelete;
+
+ //
+ // The server is interested in receiving willDeleteFiles file
+ // requests.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> willDelete;
+ MAKE_SWAP_METHOD(lsFileOperations, didCreate, willCreate, didRename, willRename, didDelete, willDelete)
+ };
+ boost::optional<lsFileOperations>fileOperations;
+
+
+ MAKE_SWAP_METHOD(WorkspaceServerCapabilities, workspaceFolders, fileOperations)
};
MAKE_REFLECT_STRUCT(WorkspaceServerCapabilities, workspaceFolders, fileOperations)
MAKE_REFLECT_STRUCT(WorkspaceServerCapabilities::lsFileOperations, didCreate, willCreate, didRename, willRename, didDelete, willDelete)
@@ -328,77 +328,77 @@ MAKE_REFLECT_STRUCT(WorkspaceServerCapabilities::lsFileOperations, didCreate, wi
//
struct SemanticHighlightingServerCapabilities {
- //
- // A "lookup table" of semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">TextMate scopes</a>
- // supported by the language server. If not defined or empty, then the server does not support the semantic highlighting
- // feature. Otherwise, clients should reuse this "lookup table" when receiving semantic highlighting notifications from
- // the server.
- //
- std::vector< std::vector<std::string> > scopes;
- MAKE_SWAP_METHOD(SemanticHighlightingServerCapabilities, scopes)
+ //
+ // A "lookup table" of semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">TextMate scopes</a>
+ // supported by the language server. If not defined or empty, then the server does not support the semantic highlighting
+ // feature. Otherwise, clients should reuse this "lookup table" when receiving semantic highlighting notifications from
+ // the server.
+ //
+ std::vector< std::vector<std::string> > scopes;
+ MAKE_SWAP_METHOD(SemanticHighlightingServerCapabilities, scopes)
};
MAKE_REFLECT_STRUCT(SemanticHighlightingServerCapabilities, scopes)
struct SemanticTokensServerFull
{
- //
- // The server supports deltas for full documents.
- //
- bool delta =false;
- MAKE_SWAP_METHOD(SemanticTokensServerFull, delta)
+ //
+ // The server supports deltas for full documents.
+ //
+ bool delta =false;
+ MAKE_SWAP_METHOD(SemanticTokensServerFull, delta)
};
MAKE_REFLECT_STRUCT(SemanticTokensServerFull, delta)
struct SemanticTokensWithRegistrationOptions
{
- SemanticTokensLegend legend;
-
- //
- // Server supports providing semantic tokens for a specific range
- // of a document.
- //
- boost::optional< std::pair< boost::optional<bool>, boost::optional<lsp::Any> > > range;
-
- //
- // Server supports providing semantic tokens for a full document.
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<SemanticTokensServerFull> > > full;
-
- //
- // A document selector to identify the scope of the registration. If set to null
- // the document selector provided on the client side will be used.
- //
- boost::optional < std::vector<DocumentFilter> > documentSelector;
- //
- // The id used to register the request. The id can be used to deregister
- // the request again. See also Registration#id.
- //
- boost::optional<std::string> id;
- MAKE_SWAP_METHOD(SemanticTokensWithRegistrationOptions, legend, range, full, documentSelector, id)
+ SemanticTokensLegend legend;
+
+ //
+ // Server supports providing semantic tokens for a specific range
+ // of a document.
+ //
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<lsp::Any> > > range;
+
+ //
+ // Server supports providing semantic tokens for a full document.
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<SemanticTokensServerFull> > > full;
+
+ //
+ // A document selector to identify the scope of the registration. If set to null
+ // the document selector provided on the client side will be used.
+ //
+ boost::optional < std::vector<DocumentFilter> > documentSelector;
+ //
+ // The id used to register the request. The id can be used to deregister
+ // the request again. See also Registration#id.
+ //
+ boost::optional<std::string> id;
+ MAKE_SWAP_METHOD(SemanticTokensWithRegistrationOptions, legend, range, full, documentSelector, id)
};
MAKE_REFLECT_STRUCT(SemanticTokensWithRegistrationOptions, legend, range, full, documentSelector ,id)
using DocumentColorOptions = WorkDoneProgressOptions;
using FoldingRangeOptions = WorkDoneProgressOptions;
struct lsServerCapabilities {
- // Defines how text documents are synced. Is either a detailed structure
- // defining each notification or for backwards compatibility the
+ // Defines how text documents are synced. Is either a detailed structure
+ // defining each notification or for backwards compatibility the
- // TextDocumentSyncKind number.
- boost::optional< std::pair<boost::optional<lsTextDocumentSyncKind>,
- boost::optional<lsTextDocumentSyncOptions> >> textDocumentSync;
+ // TextDocumentSyncKind number.
+ boost::optional< std::pair<boost::optional<lsTextDocumentSyncKind>,
+ boost::optional<lsTextDocumentSyncOptions> >> textDocumentSync;
- // The server provides hover support.
- boost::optional<bool> hoverProvider;
+ // The server provides hover support.
+ boost::optional<bool> hoverProvider;
- // The server provides completion support.
- boost::optional < lsCompletionOptions > completionProvider;
+ // The server provides completion support.
+ boost::optional < lsCompletionOptions > completionProvider;
- // The server provides signature help support.
- boost::optional < lsSignatureHelpOptions > signatureHelpProvider;
+ // The server provides signature help support.
+ boost::optional < lsSignatureHelpOptions > signatureHelpProvider;
- // The server provides goto definition support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > definitionProvider;
+ // The server provides goto definition support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > definitionProvider;
//
@@ -406,184 +406,184 @@ struct lsServerCapabilities {
//
// Since 3.6.0
//
- boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > typeDefinitionProvider ;
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > typeDefinitionProvider ;
- // The server provides implementation support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > implementationProvider ;
+ // The server provides implementation support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > implementationProvider ;
- // The server provides find references support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > referencesProvider ;
+ // The server provides find references support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > referencesProvider ;
- // The server provides document highlight support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentHighlightProvider ;
+ // The server provides document highlight support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentHighlightProvider ;
- // The server provides document symbol support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentSymbolProvider ;
+ // The server provides document symbol support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentSymbolProvider ;
- // The server provides workspace symbol support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > workspaceSymbolProvider ;
+ // The server provides workspace symbol support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > workspaceSymbolProvider ;
- // The server provides code actions.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<CodeActionOptions> > > codeActionProvider ;
+ // The server provides code actions.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<CodeActionOptions> > > codeActionProvider ;
- // The server provides code lens.
- boost::optional<CodeLensOptions> codeLensProvider;
+ // The server provides code lens.
+ boost::optional<CodeLensOptions> codeLensProvider;
- // The server provides document formatting.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentFormattingProvider ;
+ // The server provides document formatting.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentFormattingProvider ;
- // The server provides document range formatting.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentRangeFormattingProvider ;
+ // The server provides document range formatting.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentRangeFormattingProvider ;
- // The server provides document formatting on typing.
- boost::optional<lsDocumentOnTypeFormattingOptions> documentOnTypeFormattingProvider;
+ // The server provides document formatting on typing.
+ boost::optional<lsDocumentOnTypeFormattingOptions> documentOnTypeFormattingProvider;
- // The server provides rename support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<RenameOptions> > > renameProvider;
+ // The server provides rename support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<RenameOptions> > > renameProvider;
- // The server provides document link support.
- boost::optional<lsDocumentLinkOptions > documentLinkProvider;
+ // The server provides document link support.
+ boost::optional<lsDocumentLinkOptions > documentLinkProvider;
-
- //
- // The server provides color provider support.
- //
- // @since 3.6.0
- //
- boost::optional< std::pair< boost::optional<bool>, boost::optional<DocumentColorOptions> > > colorProvider;
-
-
- //
- // The server provides folding provider support.
- //
- // @since 3.10.0
- //
- boost::optional < std::pair< boost::optional<bool>, boost::optional<FoldingRangeOptions> > > foldingRangeProvider;
-
- // The server provides execute command support.
- boost::optional < lsExecuteCommandOptions >executeCommandProvider;
-
-
- //
- // Workspace specific server capabilities
- //
- boost::optional< WorkspaceServerCapabilities > workspace;
-
- //
- // Semantic highlighting server capabilities.
- //
-
- boost::optional< SemanticHighlightingServerCapabilities >semanticHighlighting;
-
- //
- // Server capability for calculating super- and subtype hierarchies.
- // The LS supports the type hierarchy language feature, if this capability is set to {@code true}.
- //
- // <p>
- // <b>Note:</b> the <a href=
- // "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
- // language feature</a> is not yet part of the official LSP specification.
- //
-
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > typeHierarchyProvider;
-
- //
- // The server provides Call Hierarchy support.
- //
-
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > callHierarchyProvider;
-
- //
- // The server provides selection range support.
- //
- // Since 3.15.0
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > selectionRangeProvider;
-
- //
- // The server provides linked editing range support.
- //
- // Since 3.16.0
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > linkedEditingRangeProvider;
-
-
- //
- // The server provides semantic tokens support.
- //
- // Since 3.16.0
- //
- boost::optional < SemanticTokensWithRegistrationOptions> semanticTokensProvider;
-
- //
- // Whether server provides moniker support.
- //
- // Since 3.16.0
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > monikerProvider;
-
- boost::optional<lsp::Any> experimental;
-
-
- MAKE_SWAP_METHOD(lsServerCapabilities,
- textDocumentSync,
- hoverProvider,
- completionProvider,
- signatureHelpProvider,
- definitionProvider,
- typeDefinitionProvider,
- implementationProvider,
- referencesProvider,
- documentHighlightProvider,
- documentSymbolProvider,
- workspaceSymbolProvider,
- codeActionProvider,
- codeLensProvider,
- documentFormattingProvider,
- documentRangeFormattingProvider,
- documentOnTypeFormattingProvider,
- renameProvider,
- documentLinkProvider,
- executeCommandProvider,
- workspace,
- semanticHighlighting,
- typeHierarchyProvider,
- callHierarchyProvider,
- selectionRangeProvider,
- experimental, colorProvider, foldingRangeProvider,
- linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
+
+ //
+ // The server provides color provider support.
+ //
+ // @since 3.6.0
+ //
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<DocumentColorOptions> > > colorProvider;
+
+
+ //
+ // The server provides folding provider support.
+ //
+ // @since 3.10.0
+ //
+ boost::optional < std::pair< boost::optional<bool>, boost::optional<FoldingRangeOptions> > > foldingRangeProvider;
+
+ // The server provides execute command support.
+ boost::optional < lsExecuteCommandOptions >executeCommandProvider;
+
+
+ //
+ // Workspace specific server capabilities
+ //
+ boost::optional< WorkspaceServerCapabilities > workspace;
+
+ //
+ // Semantic highlighting server capabilities.
+ //
+
+ boost::optional< SemanticHighlightingServerCapabilities >semanticHighlighting;
+
+ //
+ // Server capability for calculating super- and subtype hierarchies.
+ // The LS supports the type hierarchy language feature, if this capability is set to {@code true}.
+ //
+ // <p>
+ // <b>Note:</b> the <a href=
+ // "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
+ // language feature</a> is not yet part of the official LSP specification.
+ //
+
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > typeHierarchyProvider;
+
+ //
+ // The server provides Call Hierarchy support.
+ //
+
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > callHierarchyProvider;
+
+ //
+ // The server provides selection range support.
+ //
+ // Since 3.15.0
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > selectionRangeProvider;
+
+ //
+ // The server provides linked editing range support.
+ //
+ // Since 3.16.0
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > linkedEditingRangeProvider;
+
+
+ //
+ // The server provides semantic tokens support.
+ //
+ // Since 3.16.0
+ //
+ boost::optional < SemanticTokensWithRegistrationOptions> semanticTokensProvider;
+
+ //
+ // Whether server provides moniker support.
+ //
+ // Since 3.16.0
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > monikerProvider;
+
+ boost::optional<lsp::Any> experimental;
+
+
+ MAKE_SWAP_METHOD(lsServerCapabilities,
+ textDocumentSync,
+ hoverProvider,
+ completionProvider,
+ signatureHelpProvider,
+ definitionProvider,
+ typeDefinitionProvider,
+ implementationProvider,
+ referencesProvider,
+ documentHighlightProvider,
+ documentSymbolProvider,
+ workspaceSymbolProvider,
+ codeActionProvider,
+ codeLensProvider,
+ documentFormattingProvider,
+ documentRangeFormattingProvider,
+ documentOnTypeFormattingProvider,
+ renameProvider,
+ documentLinkProvider,
+ executeCommandProvider,
+ workspace,
+ semanticHighlighting,
+ typeHierarchyProvider,
+ callHierarchyProvider,
+ selectionRangeProvider,
+ experimental, colorProvider, foldingRangeProvider,
+ linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
};
MAKE_REFLECT_STRUCT(lsServerCapabilities,
- textDocumentSync,
- hoverProvider,
- completionProvider,
- signatureHelpProvider,
- definitionProvider,
- typeDefinitionProvider,
- implementationProvider,
- referencesProvider,
- documentHighlightProvider,
- documentSymbolProvider,
- workspaceSymbolProvider,
- codeActionProvider,
- codeLensProvider,
- documentFormattingProvider,
- documentRangeFormattingProvider,
- documentOnTypeFormattingProvider,
- renameProvider,
- documentLinkProvider,
- executeCommandProvider,
- workspace,
- semanticHighlighting,
- typeHierarchyProvider,
- callHierarchyProvider,
- selectionRangeProvider,
- experimental, colorProvider, foldingRangeProvider,
- linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
+ textDocumentSync,
+ hoverProvider,
+ completionProvider,
+ signatureHelpProvider,
+ definitionProvider,
+ typeDefinitionProvider,
+ implementationProvider,
+ referencesProvider,
+ documentHighlightProvider,
+ documentSymbolProvider,
+ workspaceSymbolProvider,
+ codeActionProvider,
+ codeLensProvider,
+ documentFormattingProvider,
+ documentRangeFormattingProvider,
+ documentOnTypeFormattingProvider,
+ renameProvider,
+ documentLinkProvider,
+ executeCommandProvider,
+ workspace,
+ semanticHighlighting,
+ typeHierarchyProvider,
+ callHierarchyProvider,
+ selectionRangeProvider,
+ experimental, colorProvider, foldingRangeProvider,
+ linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
index 569f203c7a5..4e66bcb7ae9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
@@ -14,8 +14,8 @@
struct WorkDoneProgressOptions
{
- boost::optional<bool>workDoneProgress;
- MAKE_SWAP_METHOD(WorkDoneProgressOptions, workDoneProgress);
+ boost::optional<bool>workDoneProgress;
+ MAKE_SWAP_METHOD(WorkDoneProgressOptions, workDoneProgress);
};
MAKE_REFLECT_STRUCT(WorkDoneProgressOptions, workDoneProgress);
@@ -58,9 +58,9 @@ struct lsSaveOptions {
bool includeText = false;
void swap(lsSaveOptions& arg)noexcept
{
- auto temp = includeText;
- includeText = arg.includeText;
- arg.includeText = temp;
+ auto temp = includeText;
+ includeText = arg.includeText;
+ arg.includeText = temp;
}
};
MAKE_REFLECT_STRUCT(lsSaveOptions, includeText);
@@ -114,11 +114,11 @@ struct lsTextDocumentSyncOptions {
boost::optional<lsSaveOptions> save;
MAKE_SWAP_METHOD(lsTextDocumentSyncOptions,
- openClose,
- change,
- willSave,
- willSaveWaitUntil,
- save);
+ openClose,
+ change,
+ willSave,
+ willSaveWaitUntil,
+ save);
};
MAKE_REFLECT_STRUCT(lsTextDocumentSyncOptions,
openClose,
@@ -128,402 +128,402 @@ MAKE_REFLECT_STRUCT(lsTextDocumentSyncOptions,
save);
struct SynchronizationCapabilities {
- // Whether text document synchronization supports dynamic registration.
- boost::optional<bool> dynamicRegistration;
+ // Whether text document synchronization supports dynamic registration.
+ boost::optional<bool> dynamicRegistration;
- // The client supports sending will save notifications.
- boost::optional<bool> willSave;
+ // The client supports sending will save notifications.
+ boost::optional<bool> willSave;
- // The client supports sending a will save request and
- // waits for a response providing text edits which will
- // be applied to the document before it is saved.
- boost::optional<bool> willSaveWaitUntil;
+ // The client supports sending a will save request and
+ // waits for a response providing text edits which will
+ // be applied to the document before it is saved.
+ boost::optional<bool> willSaveWaitUntil;
- // The client supports did save notifications.
- boost::optional<bool> didSave;
+ // The client supports did save notifications.
+ boost::optional<bool> didSave;
- MAKE_SWAP_METHOD(SynchronizationCapabilities,
- dynamicRegistration,
- willSave,
- willSaveWaitUntil,
- didSave);
+ MAKE_SWAP_METHOD(SynchronizationCapabilities,
+ dynamicRegistration,
+ willSave,
+ willSaveWaitUntil,
+ didSave);
};
MAKE_REFLECT_STRUCT(SynchronizationCapabilities,
- dynamicRegistration,
- willSave,
- willSaveWaitUntil,
- didSave);
+ dynamicRegistration,
+ willSave,
+ willSaveWaitUntil,
+ didSave);
struct CompletionItemKindCapabilities
{
- boost::optional<std::vector<lsCompletionItemKind> >valueSet;
- MAKE_SWAP_METHOD(CompletionItemKindCapabilities, valueSet);
+ boost::optional<std::vector<lsCompletionItemKind> >valueSet;
+ MAKE_SWAP_METHOD(CompletionItemKindCapabilities, valueSet);
};
MAKE_REFLECT_STRUCT(CompletionItemKindCapabilities, valueSet);
struct CompletionItemCapabilities {
- // Client supports snippets as insert text.
- //
- // A snippet can define tab stops and placeholders with `$1`, `$2`
- // and `${3:foo}`. `$0` defines the final tab stop, it defaults to
- // the end of the snippet. Placeholders with equal identifiers are linked,
- // that is typing in one will update others too.
- boost::optional<bool> snippetSupport;
+ // Client supports snippets as insert text.
+ //
+ // A snippet can define tab stops and placeholders with `$1`, `$2`
+ // and `${3:foo}`. `$0` defines the final tab stop, it defaults to
+ // the end of the snippet. Placeholders with equal identifiers are linked,
+ // that is typing in one will update others too.
+ boost::optional<bool> snippetSupport;
// Client supports commit characters on a completion item.
- boost::optional<bool> commitCharactersSupport;
+ boost::optional<bool> commitCharactersSupport;
// Client supports the following content formats for the documentation
// property. The order describes the preferred format of the client.
- boost::optional< std::vector<std::string> > documentationFormat;
+ boost::optional< std::vector<std::string> > documentationFormat;
// Client supports the deprecated property on a completion item.
- boost::optional<bool> deprecatedSupport;
+ boost::optional<bool> deprecatedSupport;
- //
- // Client supports the preselect property on a completion item.
- //
- boost::optional<bool> preselectSupport;
+ //
+ // Client supports the preselect property on a completion item.
+ //
+ boost::optional<bool> preselectSupport;
- MAKE_SWAP_METHOD(CompletionItemCapabilities,
- snippetSupport,
- commitCharactersSupport,
- documentationFormat,
- deprecatedSupport, preselectSupport);
+ MAKE_SWAP_METHOD(CompletionItemCapabilities,
+ snippetSupport,
+ commitCharactersSupport,
+ documentationFormat,
+ deprecatedSupport, preselectSupport);
};
MAKE_REFLECT_STRUCT(CompletionItemCapabilities,
- snippetSupport,
- commitCharactersSupport,
- documentationFormat,
- deprecatedSupport, preselectSupport);
+ snippetSupport,
+ commitCharactersSupport,
+ documentationFormat,
+ deprecatedSupport, preselectSupport);
//
// Capabilities specific to the `textDocument/completion`
//
struct CompletionCapabilities {
- // Whether completion supports dynamic registration.
- boost::optional<bool> dynamicRegistration;
+ // Whether completion supports dynamic registration.
+ boost::optional<bool> dynamicRegistration;
- // The client supports the following `CompletionItem` specific
- // capabilities.
- boost::optional<CompletionItemCapabilities> completionItem;
+ // The client supports the following `CompletionItem` specific
+ // capabilities.
+ boost::optional<CompletionItemCapabilities> completionItem;
- //
- // The client supports the following `CompletionItemKind` specific
- // capabilities.
- //
- boost::optional<CompletionItemKindCapabilities> completionItemKind;
+ //
+ // The client supports the following `CompletionItemKind` specific
+ // capabilities.
+ //
+ boost::optional<CompletionItemKindCapabilities> completionItemKind;
- //
- // The client supports sending additional context information for a
- // `textDocument/completion` request.
- //
- boost::optional<bool> contextSupport;
+ //
+ // The client supports sending additional context information for a
+ // `textDocument/completion` request.
+ //
+ boost::optional<bool> contextSupport;
- MAKE_SWAP_METHOD(CompletionCapabilities,
- dynamicRegistration,
- completionItem, completionItemKind);
+ MAKE_SWAP_METHOD(CompletionCapabilities,
+ dynamicRegistration,
+ completionItem, completionItemKind);
};
MAKE_REFLECT_STRUCT(CompletionCapabilities,
- dynamicRegistration,
- completionItem , completionItemKind);
+ dynamicRegistration,
+ completionItem , completionItemKind);
struct HoverCapabilities:public DynamicRegistrationCapabilities
{
- //
+ //
// Client supports the following content formats for the content
// property. The order describes the preferred format of the client.
//
// See {@link MarkupKind} for allowed values.
//
- boost::optional<std::vector<std::string>> contentFormat;
+ boost::optional<std::vector<std::string>> contentFormat;
- MAKE_SWAP_METHOD(HoverCapabilities, dynamicRegistration, contentFormat);
+ MAKE_SWAP_METHOD(HoverCapabilities, dynamicRegistration, contentFormat);
};
MAKE_REFLECT_STRUCT(HoverCapabilities, dynamicRegistration, contentFormat);
//
// Client capabilities specific to parameter information.
//
-struct ParameterInformationCapabilities {
- //
- // The client supports processing label offsets instead of a
- // simple label string.
- //
- // Since 3.14.0
- //
- boost::optional<bool> labelOffsetSupport;
-
- MAKE_SWAP_METHOD(ParameterInformationCapabilities, labelOffsetSupport);
+struct ParameterInformationCapabilities {
+ //
+ // The client supports processing label offsets instead of a
+ // simple label string.
+ //
+ // Since 3.14.0
+ //
+ boost::optional<bool> labelOffsetSupport;
+
+ MAKE_SWAP_METHOD(ParameterInformationCapabilities, labelOffsetSupport);
};
MAKE_REFLECT_STRUCT(ParameterInformationCapabilities, labelOffsetSupport)
struct SignatureInformationCapabilities {
- //
- // Client supports the following content formats for the documentation
- // property. The order describes the preferred format of the client.
- //
- // See {@link MarkupKind} for allowed values.
- //
- std::vector<std::string> documentationFormat;
-
- //
- // Client capabilities specific to parameter information.
- //
- ParameterInformationCapabilities parameterInformation;
-
- MAKE_SWAP_METHOD(SignatureInformationCapabilities, documentationFormat, parameterInformation)
+ //
+ // Client supports the following content formats for the documentation
+ // property. The order describes the preferred format of the client.
+ //
+ // See {@link MarkupKind} for allowed values.
+ //
+ std::vector<std::string> documentationFormat;
+
+ //
+ // Client capabilities specific to parameter information.
+ //
+ ParameterInformationCapabilities parameterInformation;
+
+ MAKE_SWAP_METHOD(SignatureInformationCapabilities, documentationFormat, parameterInformation)
};
MAKE_REFLECT_STRUCT(SignatureInformationCapabilities,documentationFormat, parameterInformation)
struct SignatureHelpCapabilities :public DynamicRegistrationCapabilities
{
- //
- // The client supports the following `SignatureInformation`
- // specific properties.
- //
- boost::optional< SignatureInformationCapabilities > signatureInformation;
+ //
+ // The client supports the following `SignatureInformation`
+ // specific properties.
+ //
+ boost::optional< SignatureInformationCapabilities > signatureInformation;
- MAKE_SWAP_METHOD(SignatureHelpCapabilities, dynamicRegistration, signatureInformation)
+ MAKE_SWAP_METHOD(SignatureHelpCapabilities, dynamicRegistration, signatureInformation)
};
MAKE_REFLECT_STRUCT(SignatureHelpCapabilities, dynamicRegistration, signatureInformation)
struct DocumentSymbolCapabilities :public DynamicRegistrationCapabilities {
- //
- // Specific capabilities for the `SymbolKind`.
- //
- boost::optional<SymbolKindCapabilities> symbolKind;
+ //
+ // Specific capabilities for the `SymbolKind`.
+ //
+ boost::optional<SymbolKindCapabilities> symbolKind;
- //
- // The client support hierarchical document symbols.
- //
- boost::optional<bool> hierarchicalDocumentSymbolSupport;
+ //
+ // The client support hierarchical document symbols.
+ //
+ boost::optional<bool> hierarchicalDocumentSymbolSupport;
- MAKE_SWAP_METHOD(DocumentSymbolCapabilities, dynamicRegistration, symbolKind, hierarchicalDocumentSymbolSupport)
+ MAKE_SWAP_METHOD(DocumentSymbolCapabilities, dynamicRegistration, symbolKind, hierarchicalDocumentSymbolSupport)
};
MAKE_REFLECT_STRUCT(DocumentSymbolCapabilities, dynamicRegistration, symbolKind, hierarchicalDocumentSymbolSupport)
struct DeclarationCapabilities:public DynamicRegistrationCapabilities{
- //
- // The client supports additional metadata in the form of declaration links.
- //
- boost::optional<bool>linkSupport;
+ //
+ // The client supports additional metadata in the form of declaration links.
+ //
+ boost::optional<bool>linkSupport;
- MAKE_SWAP_METHOD(DeclarationCapabilities, dynamicRegistration, linkSupport);
+ MAKE_SWAP_METHOD(DeclarationCapabilities, dynamicRegistration, linkSupport);
};
MAKE_REFLECT_STRUCT(DeclarationCapabilities, dynamicRegistration, linkSupport)
struct CodeActionKindCapabilities
{
- //
- // The code action kind values the client supports. When this
- // property exists the client also guarantees that it will
- // handle values outside its set gracefully and falls back
- // to a default value when unknown.
- //
- // See {@link CodeActionKind} for allowed values.
- //
- boost::optional< std::vector< std::string> >valueSet;
-
- MAKE_SWAP_METHOD(CodeActionKindCapabilities, valueSet)
+ //
+ // The code action kind values the client supports. When this
+ // property exists the client also guarantees that it will
+ // handle values outside its set gracefully and falls back
+ // to a default value when unknown.
+ //
+ // See {@link CodeActionKind} for allowed values.
+ //
+ boost::optional< std::vector< std::string> >valueSet;
+
+ MAKE_SWAP_METHOD(CodeActionKindCapabilities, valueSet)
};
MAKE_REFLECT_STRUCT(CodeActionKindCapabilities,valueSet)
struct CodeActionLiteralSupportCapabilities
{
- boost::optional<CodeActionKindCapabilities> codeActionKind;
+ boost::optional<CodeActionKindCapabilities> codeActionKind;
- MAKE_SWAP_METHOD(CodeActionLiteralSupportCapabilities, codeActionKind)
+ MAKE_SWAP_METHOD(CodeActionLiteralSupportCapabilities, codeActionKind)
};
MAKE_REFLECT_STRUCT(CodeActionLiteralSupportCapabilities, codeActionKind)
struct CodeActionCapabilities:public DynamicRegistrationCapabilities{
- //
+ //
// The client support code action literals as a valid
// response of the `textDocument/codeAction` request.
//
- boost::optional<CodeActionLiteralSupportCapabilities> codeActionLiteralSupport;
+ boost::optional<CodeActionLiteralSupportCapabilities> codeActionLiteralSupport;
- MAKE_SWAP_METHOD(CodeActionCapabilities, dynamicRegistration, codeActionLiteralSupport)
+ MAKE_SWAP_METHOD(CodeActionCapabilities, dynamicRegistration, codeActionLiteralSupport)
};
MAKE_REFLECT_STRUCT(CodeActionCapabilities,dynamicRegistration,codeActionLiteralSupport)
struct RenameCapabilities :public DynamicRegistrationCapabilities {
- //
+ //
// The client support code action literals as a valid
// response of the `textDocument/codeAction` request.
//
- boost::optional<bool> prepareSupport;
+ boost::optional<bool> prepareSupport;
- MAKE_SWAP_METHOD(RenameCapabilities, dynamicRegistration, prepareSupport)
+ MAKE_SWAP_METHOD(RenameCapabilities, dynamicRegistration, prepareSupport)
};
MAKE_REFLECT_STRUCT(RenameCapabilities, dynamicRegistration, prepareSupport)
struct DiagnosticsTagSupport {
- /**
- * The tags supported by the client.
- */
- std::vector<DiagnosticTag> valueSet;
- MAKE_SWAP_METHOD(DiagnosticsTagSupport, valueSet)
+ /**
+ * The tags supported by the client.
+ */
+ std::vector<DiagnosticTag> valueSet;
+ MAKE_SWAP_METHOD(DiagnosticsTagSupport, valueSet)
};
MAKE_REFLECT_STRUCT(DiagnosticsTagSupport, valueSet)
struct PublishDiagnosticsClientCapabilities :public DynamicRegistrationCapabilities {
- /**
+ /**
* The client support code action literals as a valid
* response of the `textDocument/codeAction` request.
*/
- boost::optional<bool> relatedInformation;
-
- /**
- * Client supports the tag property to provide meta data about a diagnostic.
- * Clients supporting tags have to handle unknown tags gracefully.
- *
- * This property had been added and implemented as boolean before it was
- * added to the specification as {@link DiagnosticsTagSupport}. In order to
- * keep this implementation compatible with intermediate clients (including
- * vscode-language-client < 6.0.0) we add an either type here.
- *
- * Since 3.15
- */
- boost::optional < std::pair<boost::optional<bool>, boost::optional<DiagnosticsTagSupport> > > tagSupport;
-
- /**
- * Whether the client interprets the version property of the
- * `textDocument/publishDiagnostics` notification's parameter.
- *
- * Since 3.15.0
- */
- boost::optional<bool> versionSupport;
-
- /**
+ boost::optional<bool> relatedInformation;
+
+ /**
+ * Client supports the tag property to provide meta data about a diagnostic.
+ * Clients supporting tags have to handle unknown tags gracefully.
+ *
+ * This property had been added and implemented as boolean before it was
+ * added to the specification as {@link DiagnosticsTagSupport}. In order to
+ * keep this implementation compatible with intermediate clients (including
+ * vscode-language-client < 6.0.0) we add an either type here.
+ *
+ * Since 3.15
+ */
+ boost::optional < std::pair<boost::optional<bool>, boost::optional<DiagnosticsTagSupport> > > tagSupport;
+
+ /**
+ * Whether the client interprets the version property of the
+ * `textDocument/publishDiagnostics` notification's parameter.
+ *
+ * Since 3.15.0
+ */
+ boost::optional<bool> versionSupport;
+
+ /**
* Client supports a codeDescription property
*
* @since 3.16.0
*/
- boost::optional<bool> codeDescriptionSupport ;
+ boost::optional<bool> codeDescriptionSupport ;
- /**
- * Whether code action supports the `data` property which is
- * preserved between a `textDocument/publishDiagnostics` and
- * `textDocument/codeAction` request.
- *
- * @since 3.16.0
- */
- boost::optional<bool> dataSupport ;
+ /**
+ * Whether code action supports the `data` property which is
+ * preserved between a `textDocument/publishDiagnostics` and
+ * `textDocument/codeAction` request.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<bool> dataSupport ;
- MAKE_SWAP_METHOD(PublishDiagnosticsClientCapabilities, dynamicRegistration, relatedInformation, tagSupport,versionSupport,codeDescriptionSupport,dataSupport)
+ MAKE_SWAP_METHOD(PublishDiagnosticsClientCapabilities, dynamicRegistration, relatedInformation, tagSupport,versionSupport,codeDescriptionSupport,dataSupport)
};
MAKE_REFLECT_STRUCT(PublishDiagnosticsClientCapabilities, dynamicRegistration, relatedInformation, tagSupport, versionSupport, codeDescriptionSupport, dataSupport)
struct FoldingRangeCapabilities :public DynamicRegistrationCapabilities {
- //
- // The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
- // hint, servers are free to follow the limit.
- //
- boost::optional<int> rangeLimit;
-
- //
- // If set, the client signals that it only supports folding complete lines. If set, client will
- // ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
- //
- boost::optional<bool> lineFoldingOnly;
- MAKE_SWAP_METHOD(FoldingRangeCapabilities, dynamicRegistration, rangeLimit, lineFoldingOnly)
+ //
+ // The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
+ // hint, servers are free to follow the limit.
+ //
+ boost::optional<int> rangeLimit;
+
+ //
+ // If set, the client signals that it only supports folding complete lines. If set, client will
+ // ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
+ //
+ boost::optional<bool> lineFoldingOnly;
+ MAKE_SWAP_METHOD(FoldingRangeCapabilities, dynamicRegistration, rangeLimit, lineFoldingOnly)
};
MAKE_REFLECT_STRUCT(FoldingRangeCapabilities, dynamicRegistration, rangeLimit,lineFoldingOnly)
struct SemanticHighlightingCapabilities :public DynamicRegistrationCapabilities {
- //
+ //
// The client support code action literals as a valid
// response of the `textDocument/codeAction` request.
//
- boost::optional<bool> semanticHighlighting;
+ boost::optional<bool> semanticHighlighting;
- MAKE_SWAP_METHOD(SemanticHighlightingCapabilities, dynamicRegistration, semanticHighlighting)
+ MAKE_SWAP_METHOD(SemanticHighlightingCapabilities, dynamicRegistration, semanticHighlighting)
};
MAKE_REFLECT_STRUCT(SemanticHighlightingCapabilities, dynamicRegistration, semanticHighlighting)
struct SemanticTokensClientCapabilitiesRequestsFull {
- //
- // The client will send the `textDocument/semanticTokens/full/delta` request if
- // the server provides a corresponding handler.
- //
- bool delta = false;
- MAKE_SWAP_METHOD(SemanticTokensClientCapabilitiesRequestsFull, delta)
+ //
+ // The client will send the `textDocument/semanticTokens/full/delta` request if
+ // the server provides a corresponding handler.
+ //
+ bool delta = false;
+ MAKE_SWAP_METHOD(SemanticTokensClientCapabilitiesRequestsFull, delta)
};
MAKE_REFLECT_STRUCT(SemanticTokensClientCapabilitiesRequestsFull, delta)
struct SemanticTokensClientCapabilities : public DynamicRegistrationCapabilities
{
- //export TokenFormat = 'relative';
- struct lsRequests
- {
- //
- // The client will send the `textDocument/semanticTokens/range` request
- // if the server provides a corresponding handler.
- //
- boost::optional<std::pair< boost::optional<bool>,
- boost::optional<SemanticTokensClientCapabilitiesRequestsFull>>> range;
- //
- // The client will send the `textDocument/semanticTokens/full` request
- // if the server provides a corresponding handler.
- //
- boost::optional<std::pair< boost::optional<bool>, boost::optional<lsp::Any>>> full;
- MAKE_SWAP_METHOD(lsRequests, range, full)
- };
-
- lsRequests requests;
- //
- // The token types that the client supports.
- //
- std::vector<std::string> tokenTypes;
-
- //
- // The token modifiers that the client supports.
- //
- std::vector<std::string> tokenModifiers;
- //
- // The formats the clients supports.
- //
- std::vector<std::string> formats;
- //
- // Whether the client supports tokens that can overlap each other.
- //
- boost::optional < bool >overlappingTokenSupport;
-
- //
- // Whether the client supports tokens that can span multiple lines.
- //
- boost::optional < bool > multilineTokenSupport;
-
- MAKE_SWAP_METHOD(SemanticTokensClientCapabilities, dynamicRegistration,requests, tokenTypes, tokenModifiers,
- formats, overlappingTokenSupport, multilineTokenSupport)
+ //export TokenFormat = 'relative';
+ struct lsRequests
+ {
+ //
+ // The client will send the `textDocument/semanticTokens/range` request
+ // if the server provides a corresponding handler.
+ //
+ boost::optional<std::pair< boost::optional<bool>,
+ boost::optional<SemanticTokensClientCapabilitiesRequestsFull>>> range;
+ //
+ // The client will send the `textDocument/semanticTokens/full` request
+ // if the server provides a corresponding handler.
+ //
+ boost::optional<std::pair< boost::optional<bool>, boost::optional<lsp::Any>>> full;
+ MAKE_SWAP_METHOD(lsRequests, range, full)
+ };
+
+ lsRequests requests;
+ //
+ // The token types that the client supports.
+ //
+ std::vector<std::string> tokenTypes;
+
+ //
+ // The token modifiers that the client supports.
+ //
+ std::vector<std::string> tokenModifiers;
+ //
+ // The formats the clients supports.
+ //
+ std::vector<std::string> formats;
+ //
+ // Whether the client supports tokens that can overlap each other.
+ //
+ boost::optional < bool >overlappingTokenSupport;
+
+ //
+ // Whether the client supports tokens that can span multiple lines.
+ //
+ boost::optional < bool > multilineTokenSupport;
+
+ MAKE_SWAP_METHOD(SemanticTokensClientCapabilities, dynamicRegistration,requests, tokenTypes, tokenModifiers,
+ formats, overlappingTokenSupport, multilineTokenSupport)
};
MAKE_REFLECT_STRUCT(SemanticTokensClientCapabilities::lsRequests, range,full)
MAKE_REFLECT_STRUCT(SemanticTokensClientCapabilities, dynamicRegistration, requests, tokenTypes, tokenModifiers,
- formats, overlappingTokenSupport, multilineTokenSupport)
+ formats, overlappingTokenSupport, multilineTokenSupport)
// Text document specific client capabilities.
struct lsTextDocumentClientCapabilities {
- SynchronizationCapabilities synchronization;
+ SynchronizationCapabilities synchronization;
// Capabilities specific to the `textDocument/completion`
@@ -641,10 +641,10 @@ struct lsTextDocumentClientCapabilities {
boost::optional< DynamicRegistrationCapabilities > selectionRange;
//
- // Capabilities specific to the `textDocument/linkedEditingRange` request.
- //
- // @since 3.16.0
- //
+ // Capabilities specific to the `textDocument/linkedEditingRange` request.
+ //
+ // @since 3.16.0
+ //
boost::optional< DynamicRegistrationCapabilities > linkedEditingRange;
//
@@ -669,45 +669,45 @@ struct lsTextDocumentClientCapabilities {
boost::optional< DynamicRegistrationCapabilities > moniker;
MAKE_SWAP_METHOD(lsTextDocumentClientCapabilities,
- synchronization,
- completion,
- hover,
- signatureHelp,
- implementation,
- references,
- documentHighlight,
- documentSymbol,
- formatting,
- rangeFormatting,
- onTypeFormatting,
- declaration,
- definition, typeDefinition, implementation,
- codeAction,
- codeLens,
- documentLink, colorProvider,
- rename, publishDiagnostics, foldingRange,
- semanticHighlightingCapabilities, typeHierarchyCapabilities,
- callHierarchy, selectionRange , linkedEditingRange, semanticTokens, moniker)
+ synchronization,
+ completion,
+ hover,
+ signatureHelp,
+ implementation,
+ references,
+ documentHighlight,
+ documentSymbol,
+ formatting,
+ rangeFormatting,
+ onTypeFormatting,
+ declaration,
+ definition, typeDefinition, implementation,
+ codeAction,
+ codeLens,
+ documentLink, colorProvider,
+ rename, publishDiagnostics, foldingRange,
+ semanticHighlightingCapabilities, typeHierarchyCapabilities,
+ callHierarchy, selectionRange , linkedEditingRange, semanticTokens, moniker)
};
MAKE_REFLECT_STRUCT(lsTextDocumentClientCapabilities,
- synchronization,
- completion,
- hover,
- signatureHelp,
- implementation,
- references,
- documentHighlight,
- documentSymbol,
- formatting,
- rangeFormatting,
- onTypeFormatting,
- declaration,
- definition, typeDefinition, implementation,
- codeAction,
- codeLens,
- documentLink, colorProvider,
- rename, publishDiagnostics, foldingRange,
- semanticHighlightingCapabilities, typeHierarchyCapabilities,
- callHierarchy, selectionRange, linkedEditingRange, semanticTokens, moniker)
+ synchronization,
+ completion,
+ hover,
+ signatureHelp,
+ implementation,
+ references,
+ documentHighlight,
+ documentSymbol,
+ formatting,
+ rangeFormatting,
+ onTypeFormatting,
+ declaration,
+ definition, typeDefinition, implementation,
+ codeAction,
+ codeLens,
+ documentLink, colorProvider,
+ rename, publishDiagnostics, foldingRange,
+ semanticHighlightingCapabilities, typeHierarchyCapabilities,
+ callHierarchy, selectionRange, linkedEditingRange, semanticTokens, moniker)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
index dd37a1af2ff..ee672aa1113 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
@@ -21,90 +21,90 @@
struct lschangeAnnotationSupport
{
- /**
- * Whether the client groups edits with equal labels into tree nodes,
- * for instance all edits labelled with "Changes in Strings" would
- * be a tree node.
- */
- boost::optional<bool> groupsOnLabel;
- MAKE_SWAP_METHOD(lschangeAnnotationSupport, groupsOnLabel)
+ /**
+ * Whether the client groups edits with equal labels into tree nodes,
+ * for instance all edits labelled with "Changes in Strings" would
+ * be a tree node.
+ */
+ boost::optional<bool> groupsOnLabel;
+ MAKE_SWAP_METHOD(lschangeAnnotationSupport, groupsOnLabel)
};
MAKE_REFLECT_STRUCT(lschangeAnnotationSupport, groupsOnLabel)
struct WorkspaceEditCapabilities {
- /**
- * The client supports versioned document changes in `WorkspaceEdit`s
- */
- boost::optional<bool> documentChanges;
-
- /**
- * The client supports resource changes
- * in `WorkspaceEdit`s.
- *
- * @deprecated Since LSP introduces resource operations, use {link #resourceOperations}
- */
-
- boost::optional<bool> resourceChanges;
-
- /**
- * The resource operations the client supports. Clients should at least
- * support 'create', 'rename' and 'delete' files and folders.
- *
- * @since 3.13.0
- */
- boost::optional< std::vector<std::string> > resourceOperations;
-
- /**
- * The failure handling strategy of a client if applying the workspace edit
- * fails.
- *
- * See {@link FailureHandlingKind} for allowed values.
- */
- boost::optional<std::string > failureHandling;
-
- /**
- * Whether the client normalizes line endings to the client specific
- * setting.
- * If set to `true` the client will normalize line ending characters
- * in a workspace edit to the client specific new line character(s).
- *
- * @since 3.16.0
- */
- boost::optional<bool> normalizesLineEndings;;
-
- /**
- * Whether the client in general supports change annotations on text edits,
- * create file, rename file and delete file changes.
- *
- * @since 3.16.0
- */
- boost::optional<lschangeAnnotationSupport> changeAnnotationSupport;
-
- MAKE_SWAP_METHOD(WorkspaceEditCapabilities, documentChanges, resourceChanges, resourceOperations, failureHandling, normalizesLineEndings, changeAnnotationSupport)
+ /**
+ * The client supports versioned document changes in `WorkspaceEdit`s
+ */
+ boost::optional<bool> documentChanges;
+
+ /**
+ * The client supports resource changes
+ * in `WorkspaceEdit`s.
+ *
+ * @deprecated Since LSP introduces resource operations, use {link #resourceOperations}
+ */
+
+ boost::optional<bool> resourceChanges;
+
+ /**
+ * The resource operations the client supports. Clients should at least
+ * support 'create', 'rename' and 'delete' files and folders.
+ *
+ * @since 3.13.0
+ */
+ boost::optional< std::vector<std::string> > resourceOperations;
+
+ /**
+ * The failure handling strategy of a client if applying the workspace edit
+ * fails.
+ *
+ * See {@link FailureHandlingKind} for allowed values.
+ */
+ boost::optional<std::string > failureHandling;
+
+ /**
+ * Whether the client normalizes line endings to the client specific
+ * setting.
+ * If set to `true` the client will normalize line ending characters
+ * in a workspace edit to the client specific new line character(s).
+ *
+ * @since 3.16.0
+ */
+ boost::optional<bool> normalizesLineEndings;;
+
+ /**
+ * Whether the client in general supports change annotations on text edits,
+ * create file, rename file and delete file changes.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<lschangeAnnotationSupport> changeAnnotationSupport;
+
+ MAKE_SWAP_METHOD(WorkspaceEditCapabilities, documentChanges, resourceChanges, resourceOperations, failureHandling, normalizesLineEndings, changeAnnotationSupport)
};
MAKE_REFLECT_STRUCT(WorkspaceEditCapabilities,documentChanges, resourceChanges, resourceOperations, failureHandling, normalizesLineEndings, changeAnnotationSupport)
struct DynamicRegistrationCapabilities {
- // Did foo notification supports dynamic registration.
- boost::optional<bool> dynamicRegistration;
+ // Did foo notification supports dynamic registration.
+ boost::optional<bool> dynamicRegistration;
- MAKE_SWAP_METHOD(DynamicRegistrationCapabilities,
- dynamicRegistration);
+ MAKE_SWAP_METHOD(DynamicRegistrationCapabilities,
+ dynamicRegistration);
};
MAKE_REFLECT_STRUCT(DynamicRegistrationCapabilities,
- dynamicRegistration);
+ dynamicRegistration);
// Workspace specific client capabilities.
struct SymbolKindCapabilities
{
- boost::optional< std::vector<lsSymbolKind> > valueSet;
+ boost::optional< std::vector<lsSymbolKind> > valueSet;
- MAKE_SWAP_METHOD(SymbolKindCapabilities, valueSet)
+ MAKE_SWAP_METHOD(SymbolKindCapabilities, valueSet)
};
@@ -114,66 +114,66 @@ MAKE_REFLECT_STRUCT(SymbolKindCapabilities, valueSet)
struct SymbolCapabilities :public DynamicRegistrationCapabilities {
- /**
- * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
- */
- boost::optional<SymbolKindCapabilities> symbolKind;
+ /**
+ * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
+ */
+ boost::optional<SymbolKindCapabilities> symbolKind;
- MAKE_SWAP_METHOD(SymbolCapabilities,
- symbolKind, dynamicRegistration)
+ MAKE_SWAP_METHOD(SymbolCapabilities,
+ symbolKind, dynamicRegistration)
};
MAKE_REFLECT_STRUCT(SymbolCapabilities,
- symbolKind, dynamicRegistration)
+ symbolKind, dynamicRegistration)
struct lsFileOperations
{
- /**
+ /**
* Whether the client supports dynamic registration for file
* requests/notifications.
*/
- boost::optional<bool> dynamicRegistration ;
-
- /**
- * The client has support for sending didCreateFiles notifications.
- */
- boost::optional<bool>didCreate ;
-
- /**
- * The client has support for sending willCreateFiles requests.
- */
- boost::optional<bool>willCreate ;
-
- /**
- * The client has support for sending didRenameFiles notifications.
- */
- boost::optional<bool>didRename ;
-
- /**
- * The client has support for sending willRenameFiles requests.
- */
- boost::optional<bool>willRename ;
-
- /**
- * The client has support for sending didDeleteFiles notifications.
- */
- boost::optional<bool>didDelete ;
-
- /**
- * The client has support for sending willDeleteFiles requests.
- */
- boost::optional<bool> willDelete ;
- MAKE_SWAP_METHOD(lsFileOperations, dynamicRegistration, didCreate, willCreate,
- didRename, willRename, didDelete, willDelete)
+ boost::optional<bool> dynamicRegistration ;
+
+ /**
+ * The client has support for sending didCreateFiles notifications.
+ */
+ boost::optional<bool>didCreate ;
+
+ /**
+ * The client has support for sending willCreateFiles requests.
+ */
+ boost::optional<bool>willCreate ;
+
+ /**
+ * The client has support for sending didRenameFiles notifications.
+ */
+ boost::optional<bool>didRename ;
+
+ /**
+ * The client has support for sending willRenameFiles requests.
+ */
+ boost::optional<bool>willRename ;
+
+ /**
+ * The client has support for sending didDeleteFiles notifications.
+ */
+ boost::optional<bool>didDelete ;
+
+ /**
+ * The client has support for sending willDeleteFiles requests.
+ */
+ boost::optional<bool> willDelete ;
+ MAKE_SWAP_METHOD(lsFileOperations, dynamicRegistration, didCreate, willCreate,
+ didRename, willRename, didDelete, willDelete)
};
MAKE_REFLECT_STRUCT(lsFileOperations, dynamicRegistration, didCreate, willCreate,
- didRename, willRename, didDelete, willDelete)
+ didRename, willRename, didDelete, willDelete)
struct lsWorkspaceClientCapabilites {
// The client supports applying batch edits to the workspace.
boost::optional<bool> applyEdit;
-
+
// Capabilities specific to `WorkspaceEdit`s
boost::optional<WorkspaceEditCapabilities> workspaceEdit;
@@ -211,11 +211,11 @@ struct lsWorkspaceClientCapabilites {
/**
- * Capabilities specific to the semantic token requests scoped to the
- * workspace.
- *
- * @since 3.16.0
- */
+ * Capabilities specific to the semantic token requests scoped to the
+ * workspace.
+ *
+ * @since 3.16.0
+ */
boost::optional<DynamicRegistrationCapabilities> semanticTokens ;
/**
@@ -232,14 +232,14 @@ struct lsWorkspaceClientCapabilites {
* @since 3.16.0
*/
boost::optional<lsFileOperations> fileOperations;
-
+
MAKE_SWAP_METHOD(lsWorkspaceClientCapabilites,
- applyEdit,
- workspaceEdit,
- didChangeConfiguration,
- didChangeWatchedFiles,
- symbol,executeCommand, workspaceFolders,
- configuration, semanticTokens, codeLens, fileOperations)
+ applyEdit,
+ workspaceEdit,
+ didChangeConfiguration,
+ didChangeWatchedFiles,
+ symbol,executeCommand, workspaceFolders,
+ configuration, semanticTokens, codeLens, fileOperations)
};
MAKE_REFLECT_STRUCT(lsWorkspaceClientCapabilites,
@@ -249,7 +249,7 @@ MAKE_REFLECT_STRUCT(lsWorkspaceClientCapabilites,
didChangeWatchedFiles,
symbol,
executeCommand,workspaceFolders,
- configuration, semanticTokens, codeLens, fileOperations)
+ configuration, semanticTokens, codeLens, fileOperations)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
index 01cb18d68df..bf70d588421 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
@@ -8,9 +8,9 @@
//and partial result progress to support streaming of results.
struct ProgressParams
{
- std::pair<boost::optional<std::string> , boost::optional<int> > token;
- lsp::Any value;
- MAKE_SWAP_METHOD(ProgressParams, token, value)
+ std::pair<boost::optional<std::string> , boost::optional<int> > token;
+ lsp::Any value;
+ MAKE_SWAP_METHOD(ProgressParams, token, value)
};
MAKE_REFLECT_STRUCT(ProgressParams, token, value)
DEFINE_NOTIFICATION_TYPE(Notify_Progress, ProgressParams, "$/progress");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/language/language.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
index b4c7829e95f..3f649469724 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
@@ -11,27 +11,27 @@
#endif
struct StatusReport {
-
- std::string ToString() const
- {
- std::string info;
- info += "type:" + type + "\n";
- info += "message:" + message + "\n";
- return info;
- }
- /**
- * The message type. See {
- *
- */
-
- std::string type;
- /**
- * The actual message
- *
- */
-
- std::string message;
- MAKE_SWAP_METHOD(StatusReport, type, message);
+
+ std::string ToString() const
+ {
+ std::string info;
+ info += "type:" + type + "\n";
+ info += "message:" + message + "\n";
+ return info;
+ }
+ /**
+ * The message type. See {
+ *
+ */
+
+ std::string type;
+ /**
+ * The actual message
+ *
+ */
+
+ std::string message;
+ MAKE_SWAP_METHOD(StatusReport, type, message);
};
MAKE_REFLECT_STRUCT(StatusReport, type, message);
@@ -44,25 +44,25 @@ DEFINE_NOTIFICATION_TYPE(lang_status, StatusReport, "language/status");
enum class MessageType {
- /**
- * An error message.
- */
- Error=(1),
-
- /**
- * A warning message.
- */
- Warning=(2),
-
- /**
- * An information message.
- */
- Info=(3),
-
- /**
- * A log message.
- */
- Log=(4)
+ /**
+ * An error message.
+ */
+ Error=(1),
+
+ /**
+ * A warning message.
+ */
+ Warning=(2),
+
+ /**
+ * An information message.
+ */
+ Info=(3),
+
+ /**
+ * A log message.
+ */
+ Log=(4)
};
MAKE_REFLECT_TYPE_PROXY(MessageType);
@@ -70,36 +70,36 @@ MAKE_REFLECT_TYPE_PROXY(MessageType);
struct ActionableNotification {
-
- /**
- * The message type. See {
- *
- */
- MessageType severity;
- /**
- * The actual message
- *
- */
+ /**
+ * The message type. See {
+ *
+ */
+
+ MessageType severity;
+ /**
+ * The actual message
+ *
+ */
- std::string message;
+ std::string message;
- /**
- * Optional data
- *
- */
+ /**
+ * Optional data
+ *
+ */
- boost::optional<lsp::Any> data;
+ boost::optional<lsp::Any> data;
- /**
- * Optional commands
- *
- */
+ /**
+ * Optional commands
+ *
+ */
- std::vector<lsCommandWithAny> commands;
+ std::vector<lsCommandWithAny> commands;
- MAKE_SWAP_METHOD(ActionableNotification, severity, message, data, commands)
+ MAKE_SWAP_METHOD(ActionableNotification, severity, message, data, commands)
};
MAKE_REFLECT_STRUCT(ActionableNotification, severity, message, data, commands)
@@ -114,27 +114,27 @@ DEFINE_NOTIFICATION_TYPE(lang_actionableNotification, ActionableNotification, "l
struct ProgressReport {
- std::string ToString() const;
+ std::string ToString() const;
- std::string id;
+ std::string id;
- std::string task;
+ std::string task;
- std::string subTask;
+ std::string subTask;
- std::string status;
+ std::string status;
- int totalWork = 0;
+ int totalWork = 0;
- int workDone = 0;
+ int workDone = 0;
- bool complete = false;
- MAKE_SWAP_METHOD(ProgressReport, id, task, subTask, status, workDone, complete);
+ bool complete = false;
+ MAKE_SWAP_METHOD(ProgressReport, id, task, subTask, status, workDone, complete);
};
@@ -147,24 +147,24 @@ MAKE_REFLECT_STRUCT(ProgressReport, id, task, subTask, status, workDone, complet
DEFINE_NOTIFICATION_TYPE(lang_progressReport, ProgressReport, "language/progressReport");
enum EventType {
- /**
- * classpath updated event.
- */
- ClasspathUpdated = (100),
-
- /**
- * projects imported event.
- */
- ProjectsImported = (200)
+ /**
+ * classpath updated event.
+ */
+ ClasspathUpdated = (100),
+
+ /**
+ * projects imported event.
+ */
+ ProjectsImported = (200)
};
struct EventNotification
{
- int eventType;
- lsp::Any data;
- std::string ToString() const;
- MAKE_SWAP_METHOD(EventNotification, eventType, data)
+ int eventType;
+ lsp::Any data;
+ std::string ToString() const;
+ MAKE_SWAP_METHOD(EventNotification, eventType, data)
};
MAKE_REFLECT_STRUCT(EventNotification, eventType, data);
-DEFINE_NOTIFICATION_TYPE(lang_eventNotification, EventNotification, "language/eventNotification"); \ No newline at end of file
+DEFINE_NOTIFICATION_TYPE(lang_eventNotification, EventNotification, "language/eventNotification");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/location_type.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
index 14e130f5719..c4197917a9e 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
@@ -4,15 +4,15 @@
#include "lsRange.h"
//Represents a location inside a resource, such as a line inside a text file.
struct lsLocation {
- lsLocation();
- lsLocation(lsDocumentUri uri, lsRange range);
+ lsLocation();
+ lsLocation(lsDocumentUri uri, lsRange range);
- bool operator==(const lsLocation& other) const;
- bool operator<(const lsLocation& o) const;
+ bool operator==(const lsLocation& other) const;
+ bool operator<(const lsLocation& o) const;
- lsDocumentUri uri;
- lsRange range;
- MAKE_SWAP_METHOD(lsLocation, uri, range)
+ lsDocumentUri uri;
+ lsRange range;
+ MAKE_SWAP_METHOD(lsLocation, uri, range)
};
MAKE_REFLECT_STRUCT(lsLocation, uri, range)
@@ -20,44 +20,44 @@ MAKE_REFLECT_STRUCT(lsLocation, uri, range)
struct LinkLocation :public lsLocation
{
- std::string displayName;
- std::string kind;
- MAKE_REFLECT_STRUCT(LinkLocation, uri, range, displayName, kind)
+ std::string displayName;
+ std::string kind;
+ MAKE_REFLECT_STRUCT(LinkLocation, uri, range, displayName, kind)
};
MAKE_REFLECT_STRUCT(LinkLocation, uri, range, displayName,kind)
//Represents a link between a sourceand a target location.
struct LocationLink
{
- /**
- * Span of the origin of this link.
- *
- * Used as the underlined span for mouse interaction. Defaults to the word range at
- * the mouse position.
- */
- boost::optional<lsRange> originSelectionRange;
+ /**
+ * Span of the origin of this link.
+ *
+ * Used as the underlined span for mouse interaction. Defaults to the word range at
+ * the mouse position.
+ */
+ boost::optional<lsRange> originSelectionRange;
- /**
- * The target resource identifier of this link.
- */
+ /**
+ * The target resource identifier of this link.
+ */
- lsDocumentUri targetUri;
+ lsDocumentUri targetUri;
- /**
- * The full target range of this link. If the target for example is a symbol then target range is the
- * range enclosing this symbol not including leading/trailing whitespace but everything else
- * like comments. This information is typically used to highlight the range in the editor.
- */
+ /**
+ * The full target range of this link. If the target for example is a symbol then target range is the
+ * range enclosing this symbol not including leading/trailing whitespace but everything else
+ * like comments. This information is typically used to highlight the range in the editor.
+ */
- lsRange targetRange;
+ lsRange targetRange;
- /**
- * The range that should be selected and revealed when this link is being followed, e.g the name of a function.
- * Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
- */
+ /**
+ * The range that should be selected and revealed when this link is being followed, e.g the name of a function.
+ * Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
+ */
- lsRange targetSelectionRange;
+ lsRange targetSelectionRange;
- MAKE_SWAP_METHOD(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange);
+ MAKE_SWAP_METHOD(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange);
};
-MAKE_REFLECT_STRUCT(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange); \ No newline at end of file
+MAKE_REFLECT_STRUCT(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
index 3335aa86dc6..035382669f9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
@@ -5,75 +5,75 @@
#include "LibLsp/JsonRpc/message.h"
namespace lsp
{
- struct Any
- {
- //! Type of JSON value
- enum Type {
- kUnKnown=-1,
- kNullType = 0, //!< null
- kFalseType = 1, //!< false
- kTrueType = 2, //!< true
- kObjectType = 3, //!< object
- kArrayType = 4, //!< array
- kStringType = 5, //!< string
- kNumberType = 6 //!< number
- };
-
-
-
- template <typename T>
- bool Get(T& value);
-
- template <typename T>
- void Set(T& value);
-
- int GuessType();
- int GetType();
-
- void Set(std::unique_ptr<LspMessage> value);
-
- void SetJsonString(std::string&& _data, Type _type);
-
- void SetJsonString(const std::string& _data, Type _type);
-
- const std::string& Data()const
- {
- return data;
- }
-
- void swap(Any& arg) noexcept;
-
- /*
- *Example for GetFromMap
- struct A{
- std::string visitor;
- bool verbose;
- }
- REFLECT_MAP_TO_STRUCT(A,visitor,verbose)
-
- std::string data = "{\"visitor\":\"default\",\"verbose\":\"true\"};
- lsp:Any any;
- any.SetJsonString(data, static_cast<lsp::Any::Type>(-1));
- A a_object;
- any.GetFromMap(a_object);
- */
- template <typename T>
- bool GetFromMap(T& value);
-
-
- template <typename T>
- bool GetForMapHelper(T& value);
- bool GetForMapHelper(std::string& value);
- bool GetForMapHelper(boost::optional<std::string>& value);
- private:
- std::unique_ptr<Reader> GetReader();
- std::unique_ptr<Writer> GetWriter() const;
- void SetData(std::unique_ptr<Writer>&);
-
- std::string data;
- int jsonType = kUnKnown;
-
- };
+ struct Any
+ {
+ //! Type of JSON value
+ enum Type {
+ kUnKnown=-1,
+ kNullType = 0, //!< null
+ kFalseType = 1, //!< false
+ kTrueType = 2, //!< true
+ kObjectType = 3, //!< object
+ kArrayType = 4, //!< array
+ kStringType = 5, //!< string
+ kNumberType = 6 //!< number
+ };
+
+
+
+ template <typename T>
+ bool Get(T& value);
+
+ template <typename T>
+ void Set(T& value);
+
+ int GuessType();
+ int GetType();
+
+ void Set(std::unique_ptr<LspMessage> value);
+
+ void SetJsonString(std::string&& _data, Type _type);
+
+ void SetJsonString(const std::string& _data, Type _type);
+
+ const std::string& Data()const
+ {
+ return data;
+ }
+
+ void swap(Any& arg) noexcept;
+
+ /*
+ *Example for GetFromMap
+ struct A{
+ std::string visitor;
+ bool verbose;
+ }
+ REFLECT_MAP_TO_STRUCT(A,visitor,verbose)
+
+ std::string data = "{\"visitor\":\"default\",\"verbose\":\"true\"};
+ lsp:Any any;
+ any.SetJsonString(data, static_cast<lsp::Any::Type>(-1));
+ A a_object;
+ any.GetFromMap(a_object);
+ */
+ template <typename T>
+ bool GetFromMap(T& value);
+
+
+ template <typename T>
+ bool GetForMapHelper(T& value);
+ bool GetForMapHelper(std::string& value);
+ bool GetForMapHelper(boost::optional<std::string>& value);
+ private:
+ std::unique_ptr<Reader> GetReader();
+ std::unique_ptr<Writer> GetWriter() const;
+ void SetData(std::unique_ptr<Writer>&);
+
+ std::string data;
+ int jsonType = kUnKnown;
+
+ };
};
@@ -84,22 +84,22 @@ extern void Reflect(Writer& visitor, lsp::Any& value);
template <typename T>
void ReflectMember(std::map < std::string, lsp::Any>& visitor, const char* name, T& value) {
- auto it = visitor.find(name);
- if (it != visitor.end())
- {
- it->second.GetForMapHelper(value);
- }
+ auto it = visitor.find(name);
+ if (it != visitor.end())
+ {
+ it->second.GetForMapHelper(value);
+ }
}
template <typename T>
void ReflectMember(std::map < std::string, std::string>& visitor, const char* name, T& value) {
- auto it = visitor.find(name);
- if (it != visitor.end())
- {
- lsp::Any any;
- any.SetJsonString(it->second, static_cast<lsp::Any::Type>(-1));
- any.Get(value);
- }
+ auto it = visitor.find(name);
+ if (it != visitor.end())
+ {
+ lsp::Any any;
+ any.SetJsonString(it->second, static_cast<lsp::Any::Type>(-1));
+ any.Get(value);
+ }
}
#define REFLECT_MAP_TO_STRUCT(type, ...) \
@@ -111,49 +111,49 @@ void ReflectMember(std::map < std::string, std::string>& visitor, const char* na
namespace lsp
{
- template <typename T>
- bool Any::Get(T& value)
- {
- const auto visitor = GetReader();
- Reflect(*visitor, value);
- return true;
- }
-
- template <typename T>
- void Any::Set(T& value)
- {
- auto visitor = GetWriter();
- Reflect(*visitor, value);
- SetData(visitor);
- }
-
- template <typename T>
- bool Any::GetFromMap(T& value)
- {
- const auto visitor = GetReader();
- std::map < std::string, lsp::Any> _temp;
- Reflect(*visitor, _temp);
- ReflectMap(_temp, value);
- return true;
- }
-
- template <typename T>
- bool Any::GetForMapHelper(T& value)
- {
- jsonType = GetType();
- if (jsonType == kStringType)
- {
- auto copy = data;
- copy.erase(copy.find_last_not_of('"') + 1);
- copy.erase(0, copy.find_first_not_of('"'));
- lsp::Any any;
- any.SetJsonString(copy, kUnKnown);
- any.Get(value);
- }
- else
- {
- Get(value);
- }
- return true;
- }
+ template <typename T>
+ bool Any::Get(T& value)
+ {
+ const auto visitor = GetReader();
+ Reflect(*visitor, value);
+ return true;
+ }
+
+ template <typename T>
+ void Any::Set(T& value)
+ {
+ auto visitor = GetWriter();
+ Reflect(*visitor, value);
+ SetData(visitor);
+ }
+
+ template <typename T>
+ bool Any::GetFromMap(T& value)
+ {
+ const auto visitor = GetReader();
+ std::map < std::string, lsp::Any> _temp;
+ Reflect(*visitor, _temp);
+ ReflectMap(_temp, value);
+ return true;
+ }
+
+ template <typename T>
+ bool Any::GetForMapHelper(T& value)
+ {
+ jsonType = GetType();
+ if (jsonType == kStringType)
+ {
+ auto copy = data;
+ copy.erase(copy.find_last_not_of('"') + 1);
+ copy.erase(0, copy.find_first_not_of('"'));
+ lsp::Any any;
+ any.SetJsonString(copy, kUnKnown);
+ any.Get(value);
+ }
+ else
+ {
+ Get(value);
+ }
+ return true;
+ }
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
index 06a14f15405..cf0a2aa65b7 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
@@ -13,46 +13,46 @@
struct CodeAction
{
- /**
- * A short, human-readable, title for this code action.
- */
-
- std::string title;
-
- /**
- * The kind of the code action.
- *
- * Used to filter code actions.
- */
- boost::optional < std::string> kind;
-
- /**
- * The diagnostics that this code action resolves.
- */
- boost::optional < std::vector<lsDiagnostic>> diagnostics;
-
- /**
- * The workspace edit this code action performs.
- */
- boost::optional < lsWorkspaceEdit >edit;
-
- /**
- * A command this code action executes. If a code action
- * provides a edit and a command, first the edit is
- * executed and then the command.
- */
- boost::optional< lsCommandWithAny > command;
-
- MAKE_SWAP_METHOD(CodeAction, title, kind, diagnostics, edit, command)
+ /**
+ * A short, human-readable, title for this code action.
+ */
+
+ std::string title;
+
+ /**
+ * The kind of the code action.
+ *
+ * Used to filter code actions.
+ */
+ boost::optional < std::string> kind;
+
+ /**
+ * The diagnostics that this code action resolves.
+ */
+ boost::optional < std::vector<lsDiagnostic>> diagnostics;
+
+ /**
+ * The workspace edit this code action performs.
+ */
+ boost::optional < lsWorkspaceEdit >edit;
+
+ /**
+ * A command this code action executes. If a code action
+ * provides a edit and a command, first the edit is
+ * executed and then the command.
+ */
+ boost::optional< lsCommandWithAny > command;
+
+ MAKE_SWAP_METHOD(CodeAction, title, kind, diagnostics, edit, command)
};
MAKE_REFLECT_STRUCT(CodeAction, title, kind, diagnostics, edit, command)
struct TextDocumentCodeAction
{
- typedef std::pair<boost::optional<lsCommandWithAny>, boost::optional<CodeAction> > Either;
+ typedef std::pair<boost::optional<lsCommandWithAny>, boost::optional<CodeAction> > Either;
};
-extern void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value); \ No newline at end of file
+extern void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
index 94307f1479f..88ced6e41c1 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
@@ -15,29 +15,29 @@
//extension code could handle the command.The protocol currently doesn¡¯t specify a set of well - known commands.
template <typename AnyArray>
struct lsCommand {
- // Title of the command (ie, 'save')
- std::string title;
- // Actual command identifier.
- std::string command;
- // Arguments to run the command with.
- // **NOTE** This must be serialized as an array. Use
- // MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY.
- boost::optional<AnyArray> arguments;
+ // Title of the command (ie, 'save')
+ std::string title;
+ // Actual command identifier.
+ std::string command;
+ // Arguments to run the command with.
+ // **NOTE** This must be serialized as an array. Use
+ // MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY.
+ boost::optional<AnyArray> arguments;
- void swap(lsCommand<AnyArray>& arg) noexcept
- {
- title.swap(arg.title);
- command.swap(arg.command);
- arguments.swap(arg.arguments);
- }
+ void swap(lsCommand<AnyArray>& arg) noexcept
+ {
+ title.swap(arg.title);
+ command.swap(arg.command);
+ arguments.swap(arg.arguments);
+ }
};
template <typename TVisitor, typename T>
void Reflect(TVisitor& visitor, lsCommand<T>& value) {
- REFLECT_MEMBER_START();
- REFLECT_MEMBER(title);
- REFLECT_MEMBER(command);
- REFLECT_MEMBER(arguments);
- REFLECT_MEMBER_END();
+ REFLECT_MEMBER_START();
+ REFLECT_MEMBER(title);
+ REFLECT_MEMBER(command);
+ REFLECT_MEMBER(arguments);
+ REFLECT_MEMBER_END();
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
index 5d24f59e3a3..255c4c39bac 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
@@ -2,24 +2,24 @@
#include "LibLsp/JsonRpc/serializer.h"
#include <string>
struct lsDocumentUri {
- static lsDocumentUri FromPath(const AbsolutePath& path);
+ static lsDocumentUri FromPath(const AbsolutePath& path);
- lsDocumentUri();
-
- lsDocumentUri(const AbsolutePath& path);
- lsDocumentUri(const lsDocumentUri& other);;
- bool operator==(const lsDocumentUri& other) const;
- bool operator==(const std::string& other) const;
- void SetPath(const AbsolutePath& path);
- std::string GetRawPath() const;
- AbsolutePath GetAbsolutePath() const;
+ lsDocumentUri();
-
- std::string raw_uri_;
- void swap(lsDocumentUri& arg) noexcept
- {
- raw_uri_.swap(arg.raw_uri_);
- }
+ lsDocumentUri(const AbsolutePath& path);
+ lsDocumentUri(const lsDocumentUri& other);;
+ bool operator==(const lsDocumentUri& other) const;
+ bool operator==(const std::string& other) const;
+ void SetPath(const AbsolutePath& path);
+ std::string GetRawPath() const;
+ AbsolutePath GetAbsolutePath() const;
+
+
+ std::string raw_uri_;
+ void swap(lsDocumentUri& arg) noexcept
+ {
+ raw_uri_.swap(arg.raw_uri_);
+ }
};
extern void Reflect(Writer& visitor, lsDocumentUri& value);
extern void Reflect(Reader& visitor, lsDocumentUri& value);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
index a92df9b0772..cc3ad4bbac1 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
@@ -3,41 +3,41 @@
#include "LibLsp/JsonRpc/serializer.h"
struct lsFormattingOptions {
- struct KeyData {
- boost::optional<bool> _boolean;
- boost::optional<int32_t> _integer;
- boost::optional<std::string> _string;
- };
+ struct KeyData {
+ boost::optional<bool> _boolean;
+ boost::optional<int32_t> _integer;
+ boost::optional<std::string> _string;
+ };
- // Size of a tab in spaces.
- int tabSize =4;
- // Prefer spaces over tabs.
- bool insertSpaces = true;
+ // Size of a tab in spaces.
+ int tabSize =4;
+ // Prefer spaces over tabs.
+ bool insertSpaces = true;
- /**
- * Trim trailing whitespace on a line.
- *
- * @since 3.15.0
- */
- boost::optional<bool> trimTrailingWhitespace;
+ /**
+ * Trim trailing whitespace on a line.
+ *
+ * @since 3.15.0
+ */
+ boost::optional<bool> trimTrailingWhitespace;
- /**
- * Insert a newline character at the end of the file if one does not exist.
- *
- * @since 3.15.0
- */
- boost::optional<bool> insertFinalNewline;
+ /**
+ * Insert a newline character at the end of the file if one does not exist.
+ *
+ * @since 3.15.0
+ */
+ boost::optional<bool> insertFinalNewline;
- /**
- * Trim all newlines after the final newline at the end of the file.
- *
- * @since 3.15.0
- */
- boost::optional<bool> trimFinalNewlines;
- boost::optional<KeyData> key;
+ /**
+ * Trim all newlines after the final newline at the end of the file.
+ *
+ * @since 3.15.0
+ */
+ boost::optional<bool> trimFinalNewlines;
+ boost::optional<KeyData> key;
MAKE_SWAP_METHOD(lsFormattingOptions, tabSize, insertSpaces, trimTrailingWhitespace, insertFinalNewline, trimFinalNewlines, key)
};
MAKE_REFLECT_STRUCT(lsFormattingOptions, tabSize, insertSpaces, trimTrailingWhitespace, insertFinalNewline, trimFinalNewlines, key);
extern void Reflect(Reader& visitor, lsFormattingOptions::KeyData& value);
-extern void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value); \ No newline at end of file
+extern void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
index 9191aa66d14..975ee4fed0e 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
@@ -20,24 +20,24 @@
// Note that markdown strings will be sanitized - that means html will be
// escaped.
struct lsMarkedString {
- boost::optional<std::string> language;
- std::string value;
+ boost::optional<std::string> language;
+ std::string value;
};
struct MarkupContent {
- /**
- * The type of the Markup.
- */
+ /**
+ * The type of the Markup.
+ */
- std::string kind;
+ std::string kind;
- /**
- * The content itself.
- */
-
- std::string value;
+ /**
+ * The content itself.
+ */
- MAKE_SWAP_METHOD(MarkupContent, kind, value);
+ std::string value;
+
+ MAKE_SWAP_METHOD(MarkupContent, kind, value);
};
MAKE_REFLECT_STRUCT(MarkupContent,kind,value);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
index 8c2106e16e1..a14d75ed909 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
@@ -11,30 +11,30 @@
//A position is between two characters like an ¡®insert¡¯ cursor in a editor.Special values like
//for example - 1 to denote the end of a line are not supported.
struct lsPosition {
- lsPosition();
- lsPosition(int line, int character);
-
- bool operator==(const lsPosition& other) const;
- bool operator<(const lsPosition& other) const;
-
- std::string ToString() const;
-
- /**
- * Line position in a document (zero-based).
- */
- // Note: these are 0-based.
- unsigned line = 0;
- /**
- * Character offset on a line in a document (zero-based). Assuming that
- * the line is represented as a string, the `character` value represents
- * the gap between the `character` and `character + 1`.
- *
- * If the character value is greater than the line length it defaults back
- * to the line length.
- */
- unsigned character = 0;
- static const lsPosition kZeroPosition;
-
- MAKE_SWAP_METHOD(lsPosition, line, character)
+ lsPosition();
+ lsPosition(int line, int character);
+
+ bool operator==(const lsPosition& other) const;
+ bool operator<(const lsPosition& other) const;
+
+ std::string ToString() const;
+
+ /**
+ * Line position in a document (zero-based).
+ */
+ // Note: these are 0-based.
+ unsigned line = 0;
+ /**
+ * Character offset on a line in a document (zero-based). Assuming that
+ * the line is represented as a string, the `character` value represents
+ * the gap between the `character` and `character + 1`.
+ *
+ * If the character value is greater than the line length it defaults back
+ * to the line length.
+ */
+ unsigned character = 0;
+ static const lsPosition kZeroPosition;
+
+ MAKE_SWAP_METHOD(lsPosition, line, character)
};
-MAKE_REFLECT_STRUCT(lsPosition, line, character); \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsPosition, line, character);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
index 6cc01e37a73..97d78712d73 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
@@ -12,21 +12,21 @@
//If you want to specify a range that contains a line including the line ending character(s)
//then use an end position denoting the start of the next line.
struct lsRange {
- lsRange();
- lsRange(lsPosition start, lsPosition end);
+ lsRange();
+ lsRange(lsPosition start, lsPosition end);
- bool operator==(const lsRange& other) const;
- bool operator<(const lsRange& other) const;
- /**
- * The range's start position.
- */
- lsPosition start;
- /**
- * The range's end position.
- */
- lsPosition end;
- std::string ToString()const;
- MAKE_SWAP_METHOD(lsRange, start, end)
+ bool operator==(const lsRange& other) const;
+ bool operator<(const lsRange& other) const;
+ /**
+ * The range's start position.
+ */
+ lsPosition start;
+ /**
+ * The range's end position.
+ */
+ lsPosition end;
+ std::string ToString()const;
+ MAKE_SWAP_METHOD(lsRange, start, end)
};
-MAKE_REFLECT_STRUCT(lsRange, start, end) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsRange, start, end)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
index 6146d6188f6..9b0120e3e46 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
@@ -5,113 +5,113 @@
#include "LibLsp/lsp/lsAny.h"
enum class lsErrorCodes:int32_t {
- // Defined by JSON RPC
- ParseError = -32700,
- InvalidRequest = -32600,
- MethodNotFound = -32601,
- InvalidParams = -32602,
- InternalError = -32603,
-
- /**
- * This is the start range of JSON RPC reserved error codes.
- * It doesn't denote a real error code. No LSP error codes should
- * be defined between the start and end range. For backwards
- * compatibility the `ServerNotInitialized` and the `UnknownErrorCode`
- * are left in the range.
- *
- * @since 3.16.0
- */
- jsonrpcReservedErrorRangeStart = -32099,
- /** @deprecated use jsonrpcReservedErrorRangeStart */
- serverErrorStart = jsonrpcReservedErrorRangeStart,
-
- /**
- * This is the start range of JSON RPC reserved error codes.
- * It doesn't denote a real error code.
- *
- * @since 3.16.0
- */
- jsonrpcReservedErrorRangeEnd = -32000,
- /** @deprecated use jsonrpcReservedErrorRangeEnd */
- serverErrorEnd = jsonrpcReservedErrorRangeEnd,
-
- /**
- * Error code indicating that a server received a notification or
- * request before the server has received the `initialize` request.
- */
- ServerNotInitialized = -32002,
- UnknownErrorCode = -32001,
-
- /**
- * This is the start range of LSP reserved error codes.
- * It doesn't denote a real error code.
- *
- * @since 3.16.0
- */
- lspReservedErrorRangeStart= -32899,
-
- /**
- * The server cancelled the request. This error code should
- * only be used for requests that explicitly support being
- * server cancellable.
- *
- * @since 3.17.0
- */
- ServerCancelled = -32802,
-
- /**
- * The server detected that the content of a document got
- * modified outside normal conditions. A server should
- * NOT send this error code if it detects a content change
- * in it unprocessed messages. The result even computed
- * on an older state might still be useful for the client.
- *
- * If a client decides that a result is not of any use anymore
- * the client should cancel the request.
- */
- ContentModified = -32801,
-
- /**
- * The client has canceled a request and a server as detected
- * the cancel.
- */
- RequestCancelled = -32800,
-
- /**
- * This is the end range of LSP reserved error codes.
- * It doesn't denote a real error code.
- *
- * @since 3.16.0
- */
- lspReservedErrorRangeEnd = -32800,
-
-
+ // Defined by JSON RPC
+ ParseError = -32700,
+ InvalidRequest = -32600,
+ MethodNotFound = -32601,
+ InvalidParams = -32602,
+ InternalError = -32603,
+
+ /**
+ * This is the start range of JSON RPC reserved error codes.
+ * It doesn't denote a real error code. No LSP error codes should
+ * be defined between the start and end range. For backwards
+ * compatibility the `ServerNotInitialized` and the `UnknownErrorCode`
+ * are left in the range.
+ *
+ * @since 3.16.0
+ */
+ jsonrpcReservedErrorRangeStart = -32099,
+ /** @deprecated use jsonrpcReservedErrorRangeStart */
+ serverErrorStart = jsonrpcReservedErrorRangeStart,
+
+ /**
+ * This is the start range of JSON RPC reserved error codes.
+ * It doesn't denote a real error code.
+ *
+ * @since 3.16.0
+ */
+ jsonrpcReservedErrorRangeEnd = -32000,
+ /** @deprecated use jsonrpcReservedErrorRangeEnd */
+ serverErrorEnd = jsonrpcReservedErrorRangeEnd,
+
+ /**
+ * Error code indicating that a server received a notification or
+ * request before the server has received the `initialize` request.
+ */
+ ServerNotInitialized = -32002,
+ UnknownErrorCode = -32001,
+
+ /**
+ * This is the start range of LSP reserved error codes.
+ * It doesn't denote a real error code.
+ *
+ * @since 3.16.0
+ */
+ lspReservedErrorRangeStart= -32899,
+
+ /**
+ * The server cancelled the request. This error code should
+ * only be used for requests that explicitly support being
+ * server cancellable.
+ *
+ * @since 3.17.0
+ */
+ ServerCancelled = -32802,
+
+ /**
+ * The server detected that the content of a document got
+ * modified outside normal conditions. A server should
+ * NOT send this error code if it detects a content change
+ * in it unprocessed messages. The result even computed
+ * on an older state might still be useful for the client.
+ *
+ * If a client decides that a result is not of any use anymore
+ * the client should cancel the request.
+ */
+ ContentModified = -32801,
+
+ /**
+ * The client has canceled a request and a server as detected
+ * the cancel.
+ */
+ RequestCancelled = -32800,
+
+ /**
+ * This is the end range of LSP reserved error codes.
+ * It doesn't denote a real error code.
+ *
+ * @since 3.16.0
+ */
+ lspReservedErrorRangeEnd = -32800,
+
+
};
MAKE_REFLECT_TYPE_PROXY(lsErrorCodes);
struct lsResponseError {
- lsResponseError(): code(lsErrorCodes::UnknownErrorCode)
- {
- }
-
- /**
- * A number indicating the error type that occurred.
- */
- lsErrorCodes code;
- // Short description.
- /**
- * A string providing a short description of the error.
- */
- std::string message;
-
- /**
- * A primitive or structured value that contains additional
- * information about the error. Can be omitted.
- */
- boost::optional<lsp::Any> data;
- std::string ToString();
- void Write(Writer& visitor);
-
- MAKE_SWAP_METHOD(lsResponseError, code, message, data)
+ lsResponseError(): code(lsErrorCodes::UnknownErrorCode)
+ {
+ }
+
+ /**
+ * A number indicating the error type that occurred.
+ */
+ lsErrorCodes code;
+ // Short description.
+ /**
+ * A string providing a short description of the error.
+ */
+ std::string message;
+
+ /**
+ * A primitive or structured value that contains additional
+ * information about the error. Can be omitted.
+ */
+ boost::optional<lsp::Any> data;
+ std::string ToString();
+ void Write(Writer& visitor);
+
+ MAKE_SWAP_METHOD(lsResponseError, code, message, data)
};
-MAKE_REFLECT_STRUCT(lsResponseError, code, message, data) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsResponseError, code, message, data)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
index 0bab8bc3d8d..bebbcd48c2a 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
@@ -8,17 +8,17 @@
struct lsTextDocumentEdit {
- // The text document to change.
- lsVersionedTextDocumentIdentifier textDocument;
-
- /**
- * The edits to be applied.
- *
- * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded by the
- * client capability `workspace.workspaceEdit.changeAnnotationSupport`
- */
- // The edits to be applied.
- std::vector< lsAnnotatedTextEdit > edits;
- MAKE_SWAP_METHOD(lsTextDocumentEdit, textDocument, edits);
+ // The text document to change.
+ lsVersionedTextDocumentIdentifier textDocument;
+
+ /**
+ * The edits to be applied.
+ *
+ * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded by the
+ * client capability `workspace.workspaceEdit.changeAnnotationSupport`
+ */
+ // The edits to be applied.
+ std::vector< lsAnnotatedTextEdit > edits;
+ MAKE_SWAP_METHOD(lsTextDocumentEdit, textDocument, edits);
};
-MAKE_REFLECT_STRUCT(lsTextDocumentEdit, textDocument, edits); \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsTextDocumentEdit, textDocument, edits);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
index bb316eae5a4..0129df9b99e 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
@@ -5,10 +5,10 @@
//Text documents are identified using a URI.On the protocol level,
//URIs are passed as strings.The corresponding JSON structure looks like this:
struct lsTextDocumentIdentifier {
- /**
- * The text document's URI.
- */
- lsDocumentUri uri;
+ /**
+ * The text document's URI.
+ */
+ lsDocumentUri uri;
MAKE_SWAP_METHOD(lsTextDocumentIdentifier, uri)
};
-MAKE_REFLECT_STRUCT(lsTextDocumentIdentifier, uri) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsTextDocumentIdentifier, uri)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
index 4d9b4ccc9f7..c5bc915132c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
@@ -7,20 +7,20 @@
//An item to transfer a text document from the client to the server.
struct lsTextDocumentItem {
- // The text document's URI.
- lsDocumentUri uri;
+ // The text document's URI.
+ lsDocumentUri uri;
- // The text document's language identifier.
- std::string languageId;
+ // The text document's language identifier.
+ std::string languageId;
- // The version number of this document (it will strictly increase after each
- // change, including undo/redo).
- int version = 0;
+ // The version number of this document (it will strictly increase after each
+ // change, including undo/redo).
+ int version = 0;
- // The content of the opened text document.
- std::string text;
+ // The content of the opened text document.
+ std::string text;
- MAKE_SWAP_METHOD(lsTextDocumentItem, uri, languageId, version, text)
+ MAKE_SWAP_METHOD(lsTextDocumentItem, uri, languageId, version, text)
};
-MAKE_REFLECT_STRUCT(lsTextDocumentItem, uri, languageId, version, text) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsTextDocumentItem, uri, languageId, version, text)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
index 52d291351e7..6f0940c0b2f 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
@@ -9,18 +9,18 @@
* A parameter literal used in requests to pass a text document and a position inside that document.
*/
struct lsTextDocumentPositionParams {
- // The text document.
- lsTextDocumentIdentifier textDocument;
+ // The text document.
+ lsTextDocumentIdentifier textDocument;
- // The position inside the text document.
- lsPosition position;
+ // The position inside the text document.
+ lsPosition position;
+
+ /**
+ * Legacy property to support protocol version 1.0 requests.
+ */
+ boost::optional<lsDocumentUri> uri;
- /**
- * Legacy property to support protocol version 1.0 requests.
- */
- boost::optional<lsDocumentUri> uri;
-
MAKE_SWAP_METHOD(lsTextDocumentPositionParams, textDocument, position, uri);
-
+
};
MAKE_REFLECT_STRUCT(lsTextDocumentPositionParams, textDocument, position, uri);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
index 8785e0dcbc3..de06e85e929 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
@@ -17,24 +17,24 @@
*/
struct lsChangeAnnotation
{
- /**
- * A human-readable string describing the actual change. The string
- * is rendered prominent in the user interface.
- */
- std::string label;
-
- /**
- * A flag which indicates that user confirmation is needed
- * before applying the change.
- */
- boost::optional<bool> needsConfirmation;
-
- /**
- * A human-readable string which is rendered less prominent in
- * the user interface.
- */
- boost::optional < std::string > description;
- MAKE_REFLECT_STRUCT(lsChangeAnnotation, label, needsConfirmation, description)
+ /**
+ * A human-readable string describing the actual change. The string
+ * is rendered prominent in the user interface.
+ */
+ std::string label;
+
+ /**
+ * A flag which indicates that user confirmation is needed
+ * before applying the change.
+ */
+ boost::optional<bool> needsConfirmation;
+
+ /**
+ * A human-readable string which is rendered less prominent in
+ * the user interface.
+ */
+ boost::optional < std::string > description;
+ MAKE_REFLECT_STRUCT(lsChangeAnnotation, label, needsConfirmation, description)
};
MAKE_REFLECT_STRUCT(lsChangeAnnotation, label, needsConfirmation, description)
@@ -64,23 +64,23 @@ using lsChangeAnnotationIdentifier = std::string;
//A textual edit applicable to a text document.
struct lsTextEdit {
- // The range of the text document to be manipulated. To insert
- // text into a document create a range where start === end.
- lsRange range;
+ // The range of the text document to be manipulated. To insert
+ // text into a document create a range where start === end.
+ lsRange range;
- // The string to be inserted. For delete operations use an
- // empty string.
- std::string newText;
+ // The string to be inserted. For delete operations use an
+ // empty string.
+ std::string newText;
- /**
+ /**
* The actual annotation identifier.
*/
- boost::optional<lsChangeAnnotationIdentifier> annotationId;
-
+ boost::optional<lsChangeAnnotationIdentifier> annotationId;
- bool operator==(const lsTextEdit& that);
- std::string ToString() const;
- MAKE_SWAP_METHOD(lsTextEdit, range, newText, annotationId)
+
+ bool operator==(const lsTextEdit& that);
+ std::string ToString() const;
+ MAKE_SWAP_METHOD(lsTextEdit, range, newText, annotationId)
};
MAKE_REFLECT_STRUCT(lsTextEdit, range, newText, annotationId)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
index 8a858053b14..7e8ccbd635c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
@@ -8,13 +8,13 @@
struct lsVersionedTextDocumentIdentifier
{
- lsDocumentUri uri;
- // The version number of this document. number | null
- boost::optional<int> version;
+ lsDocumentUri uri;
+ // The version number of this document. number | null
+ boost::optional<int> version;
- lsTextDocumentIdentifier AsTextDocumentIdentifier() const;
+ lsTextDocumentIdentifier AsTextDocumentIdentifier() const;
- MAKE_SWAP_METHOD(lsVersionedTextDocumentIdentifier, uri, version)
+ MAKE_SWAP_METHOD(lsVersionedTextDocumentIdentifier, uri, version)
};
MAKE_REFLECT_STRUCT(lsVersionedTextDocumentIdentifier, uri, version)
@@ -29,4 +29,4 @@ MAKE_REFLECT_STRUCT(lsVersionedTextDocumentIdentifier, uri, version)
* The version number of a document will increase after each change,
* including undo/redo. The number doesn't need to be consecutive.
*/
-using lsOptionalVersionedTextDocumentIdentifier = lsVersionedTextDocumentIdentifier; \ No newline at end of file
+using lsOptionalVersionedTextDocumentIdentifier = lsVersionedTextDocumentIdentifier;
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
index c7fb73930a3..4df020d7a23 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
@@ -20,36 +20,36 @@
struct lsChangeAnnotations
{
- lsChangeAnnotation id;
- MAKE_SWAP_METHOD(lsChangeAnnotations, id)
+ lsChangeAnnotation id;
+ MAKE_SWAP_METHOD(lsChangeAnnotations, id)
};
MAKE_REFLECT_STRUCT(lsChangeAnnotations, id)
struct lsWorkspaceEdit {
- // Holds changes to existing resources.
- // changes ? : { [uri:string]: TextEdit[]; };
- // std::unordered_map<lsDocumentUri, std::vector<lsTextEdit>> changes;
-
- // An array of `TextDocumentEdit`s to express changes to specific a specific
- // version of a text document. Whether a client supports versioned document
- // edits is expressed via `WorkspaceClientCapabilites.versionedWorkspaceEdit`.
- //
- boost::optional< std::map<std::string, std::vector<lsTextEdit> > > changes;
- typedef std::pair < boost::optional<lsTextDocumentEdit>, boost::optional<lsp::Any> > Either;
-
- boost::optional < std::vector< Either > > documentChanges;
- /**
- * A map of change annotations that can be referenced in
- * `AnnotatedTextEdit`s or create, rename and delete file / folder
- * operations.
- *
- * Whether clients honor this property depends on the client capability
- * `workspace.changeAnnotationSupport`.
- *
- * @since 3.16.0
- */
- boost::optional< lsChangeAnnotations > changeAnnotations;
-
- MAKE_SWAP_METHOD(lsWorkspaceEdit, changes, documentChanges, changeAnnotations)
+ // Holds changes to existing resources.
+ // changes ? : { [uri:string]: TextEdit[]; };
+ // std::unordered_map<lsDocumentUri, std::vector<lsTextEdit>> changes;
+
+ // An array of `TextDocumentEdit`s to express changes to specific a specific
+ // version of a text document. Whether a client supports versioned document
+ // edits is expressed via `WorkspaceClientCapabilites.versionedWorkspaceEdit`.
+ //
+ boost::optional< std::map<std::string, std::vector<lsTextEdit> > > changes;
+ typedef std::pair < boost::optional<lsTextDocumentEdit>, boost::optional<lsp::Any> > Either;
+
+ boost::optional < std::vector< Either > > documentChanges;
+ /**
+ * A map of change annotations that can be referenced in
+ * `AnnotatedTextEdit`s or create, rename and delete file / folder
+ * operations.
+ *
+ * Whether clients honor this property depends on the client capability
+ * `workspace.changeAnnotationSupport`.
+ *
+ * @since 3.16.0
+ */
+ boost::optional< lsChangeAnnotations > changeAnnotations;
+
+ MAKE_SWAP_METHOD(lsWorkspaceEdit, changes, documentChanges, changeAnnotations)
};
MAKE_REFLECT_STRUCT(lsWorkspaceEdit, changes, documentChanges, changeAnnotations)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
index 37acc6ca61a..2d5c7111fb7 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
@@ -13,18 +13,18 @@ struct CommandArgs {
};
MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY(CommandArgs, textDocumentUri, edits);
inline void Reflect(Reader& visitor, CommandArgs& value) {
- int i = 0;
- visitor.IterArray([&](Reader& visitor) {
- switch (i++) {
- case 0:
- Reflect(visitor, value.textDocumentUri);
- break;
- case 1:
- Reflect(visitor, value.edits);
- break;
+ int i = 0;
+ visitor.IterArray([&](Reader& visitor) {
+ switch (i++) {
+ case 0:
+ Reflect(visitor, value.textDocumentUri);
+ break;
+ case 1:
+ Reflect(visitor, value.edits);
+ break;
- }
- });
+ }
+ });
}
// codeLens
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
index 250699a44ab..d434b31d130 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
@@ -57,8 +57,8 @@ MAKE_REFLECT_TYPE_PROXY(lsInsertTextFormat);
namespace lsp
{
- std::string ToString(lsCompletionItemKind);
- std::string ToString(lsInsertTextFormat);
+ std::string ToString(lsCompletionItemKind);
+ std::string ToString(lsInsertTextFormat);
}
/**
* The Completion request is sent from the client to the server to compute completion items at a given cursor position.
@@ -67,7 +67,7 @@ namespace lsp
* completion item is selected in the user class.
*/
struct lsCompletionItem {
-
+
// The label of this completion item. By default
// also the text that is inserted when selecting
// this completion.
@@ -89,11 +89,11 @@ struct lsCompletionItem {
* Indicates if this item is deprecated.
*/
boost::optional< bool >deprecated;
-
+
/**
* Select this item when showing.
- *
+ *
* *Note* that only one completion item can be selected and that the
* tool / client decides which item that is. The rule is that the *first
* item of those that match best is selected.
@@ -177,18 +177,18 @@ struct lsCompletionItem {
boost::optional<lsp::Any> data;
std::string ToString();
MAKE_SWAP_METHOD(lsCompletionItem,
- label,
- kind,
- detail,
- documentation,
- sortText,
- insertText,
- filterText,
- insertTextFormat,
- textEdit,
- deprecated, preselect, additionalTextEdits, commitCharacters,
- command, data);
-
+ label,
+ kind,
+ detail,
+ documentation,
+ sortText,
+ insertText,
+ filterText,
+ insertTextFormat,
+ textEdit,
+ deprecated, preselect, additionalTextEdits, commitCharacters,
+ command, data);
+
};
@@ -204,21 +204,21 @@ MAKE_REFLECT_STRUCT(lsCompletionItem,
insertTextFormat,
textEdit,
deprecated, preselect, additionalTextEdits, commitCharacters,
- command, data);
+ command, data);
struct CompletionList {
- // This list it not complete. Further typing should result in recomputing
- // this list.
- bool isIncomplete = false;
- // The completion items.
- std::vector<lsCompletionItem> items;
-
- void swap(CompletionList& arg) noexcept
- {
- items.swap(arg.items);
- std::swap(isIncomplete, arg.isIncomplete);
- }
+ // This list it not complete. Further typing should result in recomputing
+ // this list.
+ bool isIncomplete = false;
+ // The completion items.
+ std::vector<lsCompletionItem> items;
+
+ void swap(CompletionList& arg) noexcept
+ {
+ items.swap(arg.items);
+ std::swap(isIncomplete, arg.isIncomplete);
+ }
};
-MAKE_REFLECT_STRUCT(CompletionList, isIncomplete, items); \ No newline at end of file
+MAKE_REFLECT_STRUCT(CompletionList, isIncomplete, items);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
index d1b1d1ba784..3ddea4b9ee9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
@@ -28,20 +28,20 @@ MAKE_REFLECT_TYPE_PROXY(lsDiagnosticSeverity);
*/
enum class DiagnosticTag :uint8_t {
- /**
- * Unused or unnecessary code.
- *
- * Clients are allowed to render diagnostics with this tag faded out instead of having
- * an error squiggle.
- */
- Unnecessary=(1),
-
- /**
- * Deprecated or obsolete code.
- *
- * Clients are allowed to rendered diagnostics with this tag strike through.
- */
- Deprecated=(2),
+ /**
+ * Unused or unnecessary code.
+ *
+ * Clients are allowed to render diagnostics with this tag faded out instead of having
+ * an error squiggle.
+ */
+ Unnecessary=(1),
+
+ /**
+ * Deprecated or obsolete code.
+ *
+ * Clients are allowed to rendered diagnostics with this tag strike through.
+ */
+ Deprecated=(2),
};
MAKE_REFLECT_TYPE_PROXY(DiagnosticTag);
@@ -56,19 +56,19 @@ MAKE_REFLECT_TYPE_PROXY(DiagnosticTag);
*/
struct DiagnosticRelatedInformation {
- /**
- * The location of this related diagnostic information.
- */
+ /**
+ * The location of this related diagnostic information.
+ */
lsLocation location;
- /**
- * The message of this related diagnostic information.
- */
+ /**
+ * The message of this related diagnostic information.
+ */
- std::string message;
+ std::string message;
- MAKE_SWAP_METHOD(DiagnosticRelatedInformation, location, message)
+ MAKE_SWAP_METHOD(DiagnosticRelatedInformation, location, message)
};
MAKE_REFLECT_STRUCT(DiagnosticRelatedInformation, location, message)
/**
@@ -77,11 +77,11 @@ MAKE_REFLECT_STRUCT(DiagnosticRelatedInformation, location, message)
* @since 3.16.0
*/
struct DiagnosticCodeDescription {
- /**
- * An URI to open with more information about the diagnostic error.
- */
- std::string href;
- MAKE_SWAP_METHOD(DiagnosticCodeDescription, href)
+ /**
+ * An URI to open with more information about the diagnostic error.
+ */
+ std::string href;
+ MAKE_SWAP_METHOD(DiagnosticCodeDescription, href)
};
MAKE_REFLECT_STRUCT(DiagnosticCodeDescription, href)
@@ -114,7 +114,7 @@ struct lsDiagnostic {
* @since 3.15.0
*/
boost::optional<std::vector<DiagnosticTag>> tags;
-
+
/**
* An array of related diagnostic information, e.g. when symbol-names within a scope collide
@@ -142,8 +142,8 @@ MAKE_REFLECT_STRUCT(lsDiagnostic, range, severity, code, codeDescription, source
struct Rsp_Error : ResponseError<lsResponseError, Rsp_Error> {
-
- MAKE_SWAP_METHOD(Rsp_Error, jsonrpc, id, error)
+
+ MAKE_SWAP_METHOD(Rsp_Error, jsonrpc, id, error)
};
MAKE_REFLECT_STRUCT(Rsp_Error, jsonrpc, id, error)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/out_list.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
index 36c4aa78ba1..60f8ba3c7f7 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
@@ -15,8 +15,8 @@
namespace LocationListEither{
- typedef std::pair< boost::optional<std::vector<lsLocation>> , boost::optional<std::vector<LocationLink> > > Either;
-
+ typedef std::pair< boost::optional<std::vector<lsLocation>> , boost::optional<std::vector<LocationLink> > > Either;
+
};
extern void Reflect(Reader& visitor, LocationListEither::Either& value);
//DEFINE_RESPONCE_TYPE(Rsp_LocationListEither, LocationListEither::Either);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/symbol.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
index 57298b8d7f9..87ebfe89ed8 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
@@ -3,45 +3,45 @@
enum class lsSymbolKind : uint8_t {
- Unknown = 0,
-
- File = 1,
- Module = 2,
- Namespace = 3,
- Package = 4,
- Class = 5,
- Method = 6,
- Property = 7,
- Field = 8,
- Constructor = 9,
- Enum = 10,
- Interface = 11,
- Function = 12,
- Variable = 13,
- Constant = 14,
- String = 15,
- Number = 16,
- Boolean = 17,
- Array = 18,
- Object = 19,
- Key = 20,
- Null = 21,
- EnumMember = 22,
- Struct = 23,
- Event = 24,
- Operator = 25,
-
- // For C++, this is interpreted as "template parameter" (including
- // non-type template parameters).
- TypeParameter = 26,
-
- // cquery extensions
- // See also https://github.com/Microsoft/language-server-protocol/issues/344
- // for new SymbolKind clang/Index/IndexSymbol.h clang::index::SymbolKind
- TypeAlias = 252,
- Parameter = 253,
- StaticMethod = 254,
- Macro = 255,
+ Unknown = 0,
+
+ File = 1,
+ Module = 2,
+ Namespace = 3,
+ Package = 4,
+ Class = 5,
+ Method = 6,
+ Property = 7,
+ Field = 8,
+ Constructor = 9,
+ Enum = 10,
+ Interface = 11,
+ Function = 12,
+ Variable = 13,
+ Constant = 14,
+ String = 15,
+ Number = 16,
+ Boolean = 17,
+ Array = 18,
+ Object = 19,
+ Key = 20,
+ Null = 21,
+ EnumMember = 22,
+ Struct = 23,
+ Event = 24,
+ Operator = 25,
+
+ // For C++, this is interpreted as "template parameter" (including
+ // non-type template parameters).
+ TypeParameter = 26,
+
+ // cquery extensions
+ // See also https://github.com/Microsoft/language-server-protocol/issues/344
+ // for new SymbolKind clang/Index/IndexSymbol.h clang::index::SymbolKind
+ TypeAlias = 252,
+ Parameter = 253,
+ StaticMethod = 254,
+ Macro = 255,
};
MAKE_REFLECT_TYPE_PROXY(lsSymbolKind);
@@ -113,52 +113,52 @@ MAKE_REFLECT_STRUCT(lsSymbolInformation, name, kind, deprecated, location, conta
struct lsDocumentSymbol {
- /**
- * The name of this symbol.
- */
-
- std::string name;
-
- /**
- * The kind of this symbol.
- */
-
- lsSymbolKind kind = lsSymbolKind::Unknown;
-
- /**
- * The range enclosing this symbol not including leading/trailing whitespace but everything else
- * like comments. This information is typically used to determine if the clients cursor is
- * inside the symbol to reveal in the symbol in the UI.
- */
-
- lsRange range;
-
- /**
- * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
- * Must be contained by the `range`.
- */
-
- lsRange selectionRange;
-
- /**
- * More detail for this symbol, e.g the signature of a function. If not provided the
- * name is used.
- */
- boost::optional< std::string > detail;
-
- /**
- * Indicates if this symbol is deprecated.
- */
- boost::optional< bool > deprecated;
-
- /**
- * Children of this symbol, e.g. properties of a class.
- */
- boost::optional < std::vector<lsDocumentSymbol> > children;
-
- //internal use
- int flags=0;
-
- MAKE_SWAP_METHOD(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags);
+ /**
+ * The name of this symbol.
+ */
+
+ std::string name;
+
+ /**
+ * The kind of this symbol.
+ */
+
+ lsSymbolKind kind = lsSymbolKind::Unknown;
+
+ /**
+ * The range enclosing this symbol not including leading/trailing whitespace but everything else
+ * like comments. This information is typically used to determine if the clients cursor is
+ * inside the symbol to reveal in the symbol in the UI.
+ */
+
+ lsRange range;
+
+ /**
+ * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
+ * Must be contained by the `range`.
+ */
+
+ lsRange selectionRange;
+
+ /**
+ * More detail for this symbol, e.g the signature of a function. If not provided the
+ * name is used.
+ */
+ boost::optional< std::string > detail;
+
+ /**
+ * Indicates if this symbol is deprecated.
+ */
+ boost::optional< bool > deprecated;
+
+ /**
+ * Children of this symbol, e.g. properties of a class.
+ */
+ boost::optional < std::vector<lsDocumentSymbol> > children;
+
+ //internal use
+ int flags=0;
+
+ MAKE_SWAP_METHOD(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags);
};
-MAKE_REFLECT_STRUCT(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags); \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
index 612d186f6fb..7f5978ff84f 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
@@ -4,115 +4,115 @@
#include "LibLsp/lsp/lsVersionedTextDocumentIdentifier.h"
#include "LibLsp/JsonRpc/RequestInMessage.h"
enum class HighlightingKind_clangD {
- Variable = 0,
- LocalVariable,
- Parameter,
- Function,
- Method,
- StaticMethod,
- Field,
- StaticField,
- Class,
- Interface,
- Enum,
- EnumConstant,
- Typedef,
- Type,
- Unknown,
- Namespace,
- TemplateParameter,
- Concept,
- Primitive,
- Macro,
+ Variable = 0,
+ LocalVariable,
+ Parameter,
+ Function,
+ Method,
+ StaticMethod,
+ Field,
+ StaticField,
+ Class,
+ Interface,
+ Enum,
+ EnumConstant,
+ Typedef,
+ Type,
+ Unknown,
+ Namespace,
+ TemplateParameter,
+ Concept,
+ Primitive,
+ Macro,
- // This one is different from the other kinds as it's a line style
- // rather than a token style.
- InactiveCode,
+ // This one is different from the other kinds as it's a line style
+ // rather than a token style.
+ InactiveCode,
- LastKind = InactiveCode
+ LastKind = InactiveCode
};
std::string toSemanticTokenType(HighlightingKind_clangD kind);
enum class HighlightingModifier_clangD {
- Declaration,
- Deprecated,
- Deduced,
- Readonly,
- Static,
- Abstract,
- DependentName,
- DefaultLibrary,
+ Declaration,
+ Deprecated,
+ Deduced,
+ Readonly,
+ Static,
+ Abstract,
+ DependentName,
+ DefaultLibrary,
- FunctionScope,
- ClassScope,
- FileScope,
- GlobalScope,
+ FunctionScope,
+ ClassScope,
+ FileScope,
+ GlobalScope,
- LastModifier = GlobalScope
+ LastModifier = GlobalScope
};
std::string toSemanticTokenModifier(HighlightingModifier_clangD modifier);
enum SemanticTokenType {
- ls_namespace=0,// 'namespace',
- /**
- * Represents a generic type. Acts as a fallback for types which
- * can't be mapped to a specific type like class or enum.
- */
- ls_type,// 'type',
- ls_class,// 'class',
- ls_enum,// 'enum',
- ls_interface,// 'interface',
- ls_struct,// 'struct',
- ls_typeParameter,// 'typeParameter',
- ls_parameter,// 'parameter',
- ls_variable,// 'variable',
- ls_property,// 'property',
- ls_enumMember,// 'enumMember',
- ls_event,// 'event',
- ls_function,// 'function',
- ls_method,// 'method',
- ls_macro,// 'macro',
- ls_keyword,// 'keyword',
- ls_modifier,// 'modifier',
- ls_comment,// 'comment',
- ls_string,// 'string',
- ls_number,// 'number',
- ls_regexp,// 'regexp',
- ls_operator,// 'operator'
- lastKind = ls_operator
+ ls_namespace=0,// 'namespace',
+ /**
+ * Represents a generic type. Acts as a fallback for types which
+ * can't be mapped to a specific type like class or enum.
+ */
+ ls_type,// 'type',
+ ls_class,// 'class',
+ ls_enum,// 'enum',
+ ls_interface,// 'interface',
+ ls_struct,// 'struct',
+ ls_typeParameter,// 'typeParameter',
+ ls_parameter,// 'parameter',
+ ls_variable,// 'variable',
+ ls_property,// 'property',
+ ls_enumMember,// 'enumMember',
+ ls_event,// 'event',
+ ls_function,// 'function',
+ ls_method,// 'method',
+ ls_macro,// 'macro',
+ ls_keyword,// 'keyword',
+ ls_modifier,// 'modifier',
+ ls_comment,// 'comment',
+ ls_string,// 'string',
+ ls_number,// 'number',
+ ls_regexp,// 'regexp',
+ ls_operator,// 'operator'
+ lastKind = ls_operator
};
std::string to_string(SemanticTokenType);
unsigned toSemanticTokenType(std::vector<SemanticTokenType>& modifiers);
enum TokenType_JDT {
- PACKAGE_JDT=0,
- CLASS_JDT,
- INTERFACE_JDT,
- ENUM_JDT,
- ENUM_MEMBER_JDT,
- TYPE_JDT,
- TYPE_PARAMETER_JDT,
- ANNOTATION_JDT,
- ANNOTATION_MEMBER_JDT,
- METHOD_JDT,
- PROPERTY_JDT,
- VARIABLE_JDT,
- PARAMETER_JDT
+ PACKAGE_JDT=0,
+ CLASS_JDT,
+ INTERFACE_JDT,
+ ENUM_JDT,
+ ENUM_MEMBER_JDT,
+ TYPE_JDT,
+ TYPE_PARAMETER_JDT,
+ ANNOTATION_JDT,
+ ANNOTATION_MEMBER_JDT,
+ METHOD_JDT,
+ PROPERTY_JDT,
+ VARIABLE_JDT,
+ PARAMETER_JDT
};
std::string to_string(TokenType_JDT);
enum SemanticTokenModifier {
- ls_declaration=0,// 'declaration',
- ls_definition,// 'definition',
- ls_readonly,// 'readonly',
- ls_static,// 'static',
- ls_deprecated,// 'deprecated',
- ls_abstract,// 'abstract',
- ls_async,// 'async',
- ls_modification,// 'modification',
- ls_documentation,// 'documentation',
- ls_defaultLibrary,// 'defaultLibrary'
- LastModifier = ls_defaultLibrary
+ ls_declaration=0,// 'declaration',
+ ls_definition,// 'definition',
+ ls_readonly,// 'readonly',
+ ls_static,// 'static',
+ ls_deprecated,// 'deprecated',
+ ls_abstract,// 'abstract',
+ ls_async,// 'async',
+ ls_modification,// 'modification',
+ ls_documentation,// 'documentation',
+ ls_defaultLibrary,// 'defaultLibrary'
+ LastModifier = ls_defaultLibrary
};
std::string to_string(SemanticTokenModifier);
unsigned toSemanticTokenModifiers(std::vector<SemanticTokenModifier>&);
@@ -120,85 +120,85 @@ unsigned toSemanticTokenModifiers(std::vector<SemanticTokenModifier>&);
/// This struct is not part of LSP, which just encodes lists of tokens as
/// arrays of numbers directly.
struct SemanticToken {
- /// token line number, relative to the previous token
- unsigned deltaLine = 0;
- /// token start character, relative to the previous token
- /// (relative to 0 or the previous token's start if they are on the same line)
- unsigned deltaStart = 0;
- /// the length of the token. A token cannot be multiline
- unsigned length = 0;
- /// will be looked up in `SemanticTokensLegend.tokenTypes`
- unsigned tokenType = 0;
- /// each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
- unsigned tokenModifiers = 0;
+ /// token line number, relative to the previous token
+ unsigned deltaLine = 0;
+ /// token start character, relative to the previous token
+ /// (relative to 0 or the previous token's start if they are on the same line)
+ unsigned deltaStart = 0;
+ /// the length of the token. A token cannot be multiline
+ unsigned length = 0;
+ /// will be looked up in `SemanticTokensLegend.tokenTypes`
+ unsigned tokenType = 0;
+ /// each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
+ unsigned tokenModifiers = 0;
};
bool operator==(const SemanticToken&, const SemanticToken&);
struct SemanticTokens{
- /**
- * Tokens in a file are represented as an array of integers. The position of each token is expressed relative to
- * the token before it, because most tokens remain stable relative to each other when edits are made in a file.
- *
- * ---
- * In short, each token takes 5 integers to represent, so a specific token `i` in the file consists of the following array indices:
- * - at index `5*i` - `deltaLine`: token line number, relative to the previous token
- * - at index `5*i+1` - `deltaStart`: token start character, relative to the previous token (relative to 0 or the previous token's start if they are on the same line)
- * - at index `5*i+2` - `length`: the length of the token. A token cannot be multiline.
- * - at index `5*i+3` - `tokenType`: will be looked up in `SemanticTokensLegend.tokenTypes`. We currently ask that `tokenType` < 65536.
- * - at index `5*i+4` - `tokenModifiers`: each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
- *
- * ---
- * ### How to encode tokens
- *
- * Here is an example for encoding a file with 3 tokens in a uint32 array:
- * ```
- * { line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
- * { line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
- * { line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
- * ```
- *
- * 1. First of all, a legend must be devised. This legend must be provided up-front and capture all possible token types.
- * For this example, we will choose the following legend which must be passed in when registering the provider:
- * ```
- * tokenTypes: ['property', 'type', 'class'],
- * tokenModifiers: ['private', 'static']
- * ```
- *
- * 2. The first transformation step is to encode `tokenType` and `tokenModifiers` as integers using the legend. Token types are looked
- * up by index, so a `tokenType` value of `1` means `tokenTypes[1]`. Multiple token modifiers can be set by using bit flags,
- * so a `tokenModifier` value of `3` is first viewed as binary `0b00000011`, which means `[tokenModifiers[0], tokenModifiers[1]]` because
- * bits 0 and 1 are set. Using this legend, the tokens now are:
- * ```
- * { line: 2, startChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
- * { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
- * { line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
- * ```
- *
- * 3. The next step is to represent each token relative to the previous token in the file. In this case, the second token
- * is on the same line as the first token, so the `startChar` of the second token is made relative to the `startChar`
- * of the first token, so it will be `10 - 5`. The third token is on a different line than the second token, so the
- * `startChar` of the third token will not be altered:
- * ```
- * { deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
- * { deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
- * { deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
- * ```
- *
- * 4. Finally, the last step is to inline each of the 5 fields for a token in a single array, which is a memory friendly representation:
- * ```
- * // 1st token, 2nd token, 3rd token
- * [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
- * ```
- */
- std::vector<int32_t> data;
- static std::vector<int32_t> encodeTokens(std::vector<SemanticToken>& tokens);
+ /**
+ * Tokens in a file are represented as an array of integers. The position of each token is expressed relative to
+ * the token before it, because most tokens remain stable relative to each other when edits are made in a file.
+ *
+ * ---
+ * In short, each token takes 5 integers to represent, so a specific token `i` in the file consists of the following array indices:
+ * - at index `5*i` - `deltaLine`: token line number, relative to the previous token
+ * - at index `5*i+1` - `deltaStart`: token start character, relative to the previous token (relative to 0 or the previous token's start if they are on the same line)
+ * - at index `5*i+2` - `length`: the length of the token. A token cannot be multiline.
+ * - at index `5*i+3` - `tokenType`: will be looked up in `SemanticTokensLegend.tokenTypes`. We currently ask that `tokenType` < 65536.
+ * - at index `5*i+4` - `tokenModifiers`: each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
+ *
+ * ---
+ * ### How to encode tokens
+ *
+ * Here is an example for encoding a file with 3 tokens in a uint32 array:
+ * ```
+ * { line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
+ * { line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
+ * { line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
+ * ```
+ *
+ * 1. First of all, a legend must be devised. This legend must be provided up-front and capture all possible token types.
+ * For this example, we will choose the following legend which must be passed in when registering the provider:
+ * ```
+ * tokenTypes: ['property', 'type', 'class'],
+ * tokenModifiers: ['private', 'static']
+ * ```
+ *
+ * 2. The first transformation step is to encode `tokenType` and `tokenModifiers` as integers using the legend. Token types are looked
+ * up by index, so a `tokenType` value of `1` means `tokenTypes[1]`. Multiple token modifiers can be set by using bit flags,
+ * so a `tokenModifier` value of `3` is first viewed as binary `0b00000011`, which means `[tokenModifiers[0], tokenModifiers[1]]` because
+ * bits 0 and 1 are set. Using this legend, the tokens now are:
+ * ```
+ * { line: 2, startChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
+ * { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
+ * { line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
+ * ```
+ *
+ * 3. The next step is to represent each token relative to the previous token in the file. In this case, the second token
+ * is on the same line as the first token, so the `startChar` of the second token is made relative to the `startChar`
+ * of the first token, so it will be `10 - 5`. The third token is on a different line than the second token, so the
+ * `startChar` of the third token will not be altered:
+ * ```
+ * { deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
+ * { deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
+ * { deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
+ * ```
+ *
+ * 4. Finally, the last step is to inline each of the 5 fields for a token in a single array, which is a memory friendly representation:
+ * ```
+ * // 1st token, 2nd token, 3rd token
+ * [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
+ * ```
+ */
+ std::vector<int32_t> data;
+ static std::vector<int32_t> encodeTokens(std::vector<SemanticToken>& tokens);
- /**
- * An optional result id. If provided and clients support delta updating
- * the client will include the result id in the next semantic token request.
- * A server can then instead of computing all semantic tokens again simply
- * send a delta.
- */
+ /**
+ * An optional result id. If provided and clients support delta updating
+ * the client will include the result id in the next semantic token request.
+ * A server can then instead of computing all semantic tokens again simply
+ * send a delta.
+ */
boost::optional<std::string> resultId;
MAKE_SWAP_METHOD(SemanticTokens, data, resultId)
};
@@ -206,9 +206,9 @@ MAKE_REFLECT_STRUCT(SemanticTokens, data, resultId)
/// Body of textDocument/semanticTokens/full request.
struct SemanticTokensParams {
- /// The text document.
- lsTextDocumentIdentifier textDocument;
- MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
+ /// The text document.
+ lsTextDocumentIdentifier textDocument;
+ MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
};
MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
@@ -216,28 +216,28 @@ MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
/// Body of textDocument/semanticTokens/full/delta request.
/// Requests the changes in semantic tokens since a previous response.
struct SemanticTokensDeltaParams {
- /// The text document.
- lsTextDocumentIdentifier textDocument;
- /**
- * The result id of a previous response. The result Id can either point to
- * a full response or a delta response depending on what was received last.
- */
- std::string previousResultId;
+ /// The text document.
+ lsTextDocumentIdentifier textDocument;
+ /**
+ * The result id of a previous response. The result Id can either point to
+ * a full response or a delta response depending on what was received last.
+ */
+ std::string previousResultId;
- MAKE_REFLECT_STRUCT(SemanticTokensDeltaParams, textDocument, previousResultId)
+ MAKE_REFLECT_STRUCT(SemanticTokensDeltaParams, textDocument, previousResultId)
};
MAKE_REFLECT_STRUCT(SemanticTokensDeltaParams, textDocument, previousResultId)
/// Describes a a replacement of a contiguous range of semanticTokens.
struct SemanticTokensEdit {
- // LSP specifies `start` and `deleteCount` which are relative to the array
- // encoding of the previous tokens.
- // We use token counts instead, and translate when serializing this struct.
- unsigned startToken = 0;
- unsigned deleteTokens = 0;
- std::vector<int32_t> tokens; // encoded as a flat integer array
+ // LSP specifies `start` and `deleteCount` which are relative to the array
+ // encoding of the previous tokens.
+ // We use token counts instead, and translate when serializing this struct.
+ unsigned startToken = 0;
+ unsigned deleteTokens = 0;
+ std::vector<int32_t> tokens; // encoded as a flat integer array
- MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
+ MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
};
MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
@@ -245,23 +245,23 @@ MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
/// This models LSP SemanticTokensDelta | SemanticTokens, which is the result of
/// textDocument/semanticTokens/full/delta.
struct SemanticTokensOrDelta {
- boost::optional<std::string > resultId;
- /// Set if we computed edits relative to a previous set of tokens.
- boost::optional< std::vector<SemanticTokensEdit> > edits;
- /// Set if we computed a fresh set of tokens.
- /// Set if we computed edits relative to a previous set of tokens.
- boost::optional<std::vector<int32_t>> tokens; // encoded as integer array
- MAKE_REFLECT_STRUCT(SemanticTokensOrDelta, resultId, edits, tokens)
+ boost::optional<std::string > resultId;
+ /// Set if we computed edits relative to a previous set of tokens.
+ boost::optional< std::vector<SemanticTokensEdit> > edits;
+ /// Set if we computed a fresh set of tokens.
+ /// Set if we computed edits relative to a previous set of tokens.
+ boost::optional<std::vector<int32_t>> tokens; // encoded as integer array
+ MAKE_REFLECT_STRUCT(SemanticTokensOrDelta, resultId, edits, tokens)
};
MAKE_REFLECT_STRUCT(SemanticTokensOrDelta, resultId, edits, tokens)
-
+
struct SemanticTokensLegend {
- std::vector<std::string> tokenTypes;
- std::vector<std::string> tokenModifiers;
- MAKE_REFLECT_STRUCT(SemanticTokensLegend, tokenTypes, tokenModifiers)
+ std::vector<std::string> tokenTypes;
+ std::vector<std::string> tokenModifiers;
+ MAKE_REFLECT_STRUCT(SemanticTokensLegend, tokenTypes, tokenModifiers)
};
MAKE_REFLECT_STRUCT(SemanticTokensLegend, tokenTypes, tokenModifiers)
DEFINE_REQUEST_RESPONSE_TYPE(td_semanticTokens_full, SemanticTokensParams,boost::optional<SemanticTokens >,"textDocument/semanticTokens/full")
-DEFINE_REQUEST_RESPONSE_TYPE(td_semanticTokens_full_delta, SemanticTokensDeltaParams, boost::optional<SemanticTokensOrDelta >, "textDocument/semanticTokens/full/delta") \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_semanticTokens_full_delta, SemanticTokensDeltaParams, boost::optional<SemanticTokensOrDelta >, "textDocument/semanticTokens/full/delta")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
index a005c182e17..432fa518d59 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
@@ -12,56 +12,56 @@ MAKE_REFLECT_TYPE_PROXY(SymbolTag)
struct CallHierarchyPrepareParams
{
- lsTextDocumentIdentifier textDocument;
- lsPosition position;
+ lsTextDocumentIdentifier textDocument;
+ lsPosition position;
- MAKE_SWAP_METHOD(CallHierarchyPrepareParams,
- textDocument,
- position)
+ MAKE_SWAP_METHOD(CallHierarchyPrepareParams,
+ textDocument,
+ position)
};
MAKE_REFLECT_STRUCT(CallHierarchyPrepareParams,
- textDocument,
- position)
+ textDocument,
+ position)
- /// Represents programming constructs like functions or constructors
- /// in the context of call hierarchy.
+ /// Represents programming constructs like functions or constructors
+ /// in the context of call hierarchy.
struct CallHierarchyItem {
- /// The name of this item.
- std::string name;
-
- /// The kind of this item.
- SymbolKind kind;
-
- /// Tags for this item.
- boost::optional<std::vector<SymbolTag>> tags;
-
- /// More detaill for this item, e.g. the signature of a function.
- boost::optional<std::string> detail;
-
- /// The resource identifier of this item.
- lsDocumentUri uri;
-
- /**
- * The range enclosing this symbol not including leading/trailing whitespace
- * but everything else, e.g. comments and code.
- */
- lsRange range;
-
- /**
- * The range that should be selected and revealed when this symbol is being
- * picked, e.g. the name of a function. Must be contained by the
- * [`range`](#CallHierarchyItem.range).
- */
- lsRange selectionRange;
-
- /**
- * A data entry field that is preserved between a call hierarchy prepare and
- * incoming calls or outgoing calls requests.
- */
- boost::optional<lsp::Any> data;
- MAKE_SWAP_METHOD(CallHierarchyItem, name, kind, tags, detail, uri, range, selectionRange, data)
+ /// The name of this item.
+ std::string name;
+
+ /// The kind of this item.
+ SymbolKind kind;
+
+ /// Tags for this item.
+ boost::optional<std::vector<SymbolTag>> tags;
+
+ /// More detaill for this item, e.g. the signature of a function.
+ boost::optional<std::string> detail;
+
+ /// The resource identifier of this item.
+ lsDocumentUri uri;
+
+ /**
+ * The range enclosing this symbol not including leading/trailing whitespace
+ * but everything else, e.g. comments and code.
+ */
+ lsRange range;
+
+ /**
+ * The range that should be selected and revealed when this symbol is being
+ * picked, e.g. the name of a function. Must be contained by the
+ * [`range`](#CallHierarchyItem.range).
+ */
+ lsRange selectionRange;
+
+ /**
+ * A data entry field that is preserved between a call hierarchy prepare and
+ * incoming calls or outgoing calls requests.
+ */
+ boost::optional<lsp::Any> data;
+ MAKE_SWAP_METHOD(CallHierarchyItem, name, kind, tags, detail, uri, range, selectionRange, data)
};
MAKE_REFLECT_STRUCT(CallHierarchyItem, name, kind, tags, detail, uri, range, selectionRange, data)
@@ -69,21 +69,21 @@ MAKE_REFLECT_STRUCT(CallHierarchyItem, name, kind, tags, detail, uri, range, sel
/// The parameter of a `callHierarchy/incomingCalls` request.
struct CallHierarchyIncomingCallsParams {
- CallHierarchyItem item;
- MAKE_SWAP_METHOD(CallHierarchyIncomingCallsParams,item)
+ CallHierarchyItem item;
+ MAKE_SWAP_METHOD(CallHierarchyIncomingCallsParams,item)
};
MAKE_REFLECT_STRUCT(CallHierarchyIncomingCallsParams, item)
/// Represents an incoming call, e.g. a caller of a method or constructor.
struct CallHierarchyIncomingCall {
- /// The item that makes the call.
- CallHierarchyItem from;
+ /// The item that makes the call.
+ CallHierarchyItem from;
- /// The range at which the calls appear.
- /// This is relative to the caller denoted by `From`.
- std::vector<lsRange> fromRanges;
- MAKE_SWAP_METHOD(CallHierarchyIncomingCall, from, fromRanges)
+ /// The range at which the calls appear.
+ /// This is relative to the caller denoted by `From`.
+ std::vector<lsRange> fromRanges;
+ MAKE_SWAP_METHOD(CallHierarchyIncomingCall, from, fromRanges)
};
MAKE_REFLECT_STRUCT(CallHierarchyIncomingCall, from, fromRanges)
@@ -92,30 +92,30 @@ MAKE_REFLECT_STRUCT(CallHierarchyIncomingCall, from, fromRanges)
/// The parameter of a `callHierarchy/outgoingCalls` request.
struct CallHierarchyOutgoingCallsParams {
- CallHierarchyItem item;
- MAKE_SWAP_METHOD(CallHierarchyOutgoingCallsParams, item)
+ CallHierarchyItem item;
+ MAKE_SWAP_METHOD(CallHierarchyOutgoingCallsParams, item)
};
MAKE_REFLECT_STRUCT(CallHierarchyOutgoingCallsParams, item)
/// Represents an outgoing call, e.g. calling a getter from a method or
/// a method from a constructor etc.
struct CallHierarchyOutgoingCall {
- /// The item that is called.
- CallHierarchyItem to;
+ /// The item that is called.
+ CallHierarchyItem to;
- /// The range at which this item is called.
- /// This is the range relative to the caller, and not `To`.
- std::vector<lsRange> fromRanges;
- MAKE_SWAP_METHOD(CallHierarchyOutgoingCall, to, fromRanges)
+ /// The range at which this item is called.
+ /// This is the range relative to the caller, and not `To`.
+ std::vector<lsRange> fromRanges;
+ MAKE_SWAP_METHOD(CallHierarchyOutgoingCall, to, fromRanges)
};
MAKE_REFLECT_STRUCT(CallHierarchyOutgoingCall, to, fromRanges)
DEFINE_REQUEST_RESPONSE_TYPE(td_prepareCallHierarchy, CallHierarchyPrepareParams,
- boost::optional<std::vector<CallHierarchyItem>>, "textDocument/prepareCallHierarchy")
+ boost::optional<std::vector<CallHierarchyItem>>, "textDocument/prepareCallHierarchy")
DEFINE_REQUEST_RESPONSE_TYPE(td_incomingCalls, CallHierarchyIncomingCallsParams,
- boost::optional<std::vector<CallHierarchyIncomingCall>>, "callHierarchy/incomingCalls")
+ boost::optional<std::vector<CallHierarchyIncomingCall>>, "callHierarchy/incomingCalls")
DEFINE_REQUEST_RESPONSE_TYPE(td_outgoingCalls, CallHierarchyOutgoingCallsParams,
- boost::optional<std::vector<CallHierarchyOutgoingCall>>, "callHierarchy/CallHierarchyOutgoingCall") \ No newline at end of file
+ boost::optional<std::vector<CallHierarchyOutgoingCall>>, "callHierarchy/CallHierarchyOutgoingCall")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
index 419fdfbc9b4..e72d83af90e 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
@@ -7,24 +7,24 @@
namespace QuickAssistProcessor {
- extern const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID;//$NON-NLS-1$
- extern const char* CONVERT_FOR_LOOP_ID;// ;// "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_PARAM_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID ;// "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
- extern const char* ADD_BLOCK_ID ;// "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
- extern const char* EXTRACT_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
- extern const char* EXTRACT_LOCAL_NOT_REPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
- extern const char* EXTRACT_CONSTANT_ID ;// "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
- extern const char* INLINE_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
- extern const char* CONVERT_LOCAL_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
- extern const char* CONVERT_ANONYMOUS_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
- extern const char* CONVERT_TO_STRING_BUFFER_ID ;// "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
- extern const char* CONVERT_TO_MESSAGE_FORMAT_ID ;// "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
- extern const char* EXTRACT_METHOD_INPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
+ extern const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID;//$NON-NLS-1$
+ extern const char* CONVERT_FOR_LOOP_ID;// ;// "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_PARAM_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID ;// "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
+ extern const char* ADD_BLOCK_ID ;// "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
+ extern const char* EXTRACT_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
+ extern const char* EXTRACT_LOCAL_NOT_REPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
+ extern const char* EXTRACT_CONSTANT_ID ;// "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
+ extern const char* INLINE_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_LOCAL_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_ANONYMOUS_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_TO_STRING_BUFFER_ID ;// "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_TO_MESSAGE_FORMAT_ID ;// "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
+ extern const char* EXTRACT_METHOD_INPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
- extern const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND ;// "convertAnonymousClassToNestedCommand";
+ extern const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND ;// "convertAnonymousClassToNestedCommand";
};
/**
* The code action request is sent from the client to the server to compute
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
index 7fd5ae0cf98..9dd763333d8 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
@@ -4,7 +4,7 @@
#include "LibLsp/JsonRpc/lsResponseMessage.h"
struct lsDocumentCodeLensParams {
-
+
/**
* The document to request code lens for.
*/
@@ -18,15 +18,15 @@ MAKE_REFLECT_STRUCT(lsDocumentCodeLensParams, textDocument);
struct lsCodeLens {
- // The range in which this code lens is valid. Should only span a single line.
- lsRange range;
- // The command this code lens represents.
- boost::optional<lsCommandWithAny> command;
- // A data entry field that is preserved on a code lens item between
- // a code lens and a code lens resolve request.
- boost::optional< lsp::Any> data;
-
- MAKE_SWAP_METHOD(lsCodeLens, range, command, data)
+ // The range in which this code lens is valid. Should only span a single line.
+ lsRange range;
+ // The command this code lens represents.
+ boost::optional<lsCommandWithAny> command;
+ // A data entry field that is preserved on a code lens item between
+ // a code lens and a code lens resolve request.
+ boost::optional< lsp::Any> data;
+
+ MAKE_SWAP_METHOD(lsCodeLens, range, command, data)
};
MAKE_REFLECT_STRUCT(lsCodeLens, range, command, data)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
index 22574e3e194..c70b6502d22 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
@@ -12,52 +12,52 @@
struct ColorPresentationParams {
- /**
+ /**
* The text document.
*/
- lsTextDocumentIdentifier textDocument;
+ lsTextDocumentIdentifier textDocument;
- /**
- * The range in the document where this color appers.
- */
+ /**
+ * The range in the document where this color appers.
+ */
- lsRange range;
+ lsRange range;
- /**
- * The actual color value for this color range.
- */
+ /**
+ * The actual color value for this color range.
+ */
- TextDocument::Color color;
- MAKE_SWAP_METHOD(ColorPresentationParams, textDocument, range, color)
+ TextDocument::Color color;
+ MAKE_SWAP_METHOD(ColorPresentationParams, textDocument, range, color)
};
MAKE_REFLECT_STRUCT(ColorPresentationParams, textDocument, range, color)
struct ColorPresentation {
- /**
- * The label of this color presentation. It will be shown on the color
- * picker header. By default this is also the text that is inserted when selecting
- * this color presentation.
- */
-
- std::string label;
-
- /**
- * An edit which is applied to a document when selecting
- * this presentation for the color. When `null` the label is used.
- */
- lsTextEdit textEdit;
-
- /**
- * An optional array of additional text edits that are applied when
- * selecting this color presentation. Edits must not overlap with the main edit nor with themselves.
- */
- std::vector<lsTextEdit> additionalTextEdits;
- MAKE_SWAP_METHOD(ColorPresentation, label, textEdit, additionalTextEdits)
+ /**
+ * The label of this color presentation. It will be shown on the color
+ * picker header. By default this is also the text that is inserted when selecting
+ * this color presentation.
+ */
+
+ std::string label;
+
+ /**
+ * An edit which is applied to a document when selecting
+ * this presentation for the color. When `null` the label is used.
+ */
+ lsTextEdit textEdit;
+
+ /**
+ * An optional array of additional text edits that are applied when
+ * selecting this color presentation. Edits must not overlap with the main edit nor with themselves.
+ */
+ std::vector<lsTextEdit> additionalTextEdits;
+ MAKE_SWAP_METHOD(ColorPresentation, label, textEdit, additionalTextEdits)
};
MAKE_REFLECT_STRUCT(ColorPresentation, label, textEdit, additionalTextEdits)
DEFINE_REQUEST_RESPONSE_TYPE(td_colorPresentation,
- ColorPresentationParams, std::vector<ColorPresentation>, "textDocument/colorPresentation") \ No newline at end of file
+ ColorPresentationParams, std::vector<ColorPresentation>, "textDocument/colorPresentation")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
index 883c5cfe3a8..916d4550e93 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
@@ -41,9 +41,9 @@ struct lsCompletionParams : lsTextDocumentPositionParams {
// send this using
// `ClientCapabilities.textDocument.completion.contextSupport === true`
boost::optional<lsCompletionContext> context;
-
+
MAKE_SWAP_METHOD(lsCompletionParams, textDocument, position, context);
-
+
};
MAKE_REFLECT_STRUCT(lsCompletionParams, textDocument, position, context);
@@ -56,9 +56,9 @@ MAKE_REFLECT_STRUCT(lsCompletionParams, textDocument, position, context);
namespace TextDocumentComplete{
-
- typedef std::pair< boost::optional<std::vector<lsCompletionItem>>, boost::optional<CompletionList> > Either;
-
+
+ typedef std::pair< boost::optional<std::vector<lsCompletionItem>>, boost::optional<CompletionList> > Either;
+
};
extern void Reflect(Reader& visitor, TextDocumentComplete::Either& value);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
index e8a6235a002..a7c6fdba346 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
@@ -9,31 +9,31 @@
class FileRenameEvent {
public:
- std::string oldUri;
- std::string newUri;
+ std::string oldUri;
+ std::string newUri;
- FileRenameEvent() {
- }
+ FileRenameEvent() {
+ }
- FileRenameEvent(std::string oldUri, std::string newUri) {
- this->oldUri = oldUri;
- this->newUri = newUri;
- }
- MAKE_SWAP_METHOD(FileRenameEvent, oldUri, newUri);
+ FileRenameEvent(std::string oldUri, std::string newUri) {
+ this->oldUri = oldUri;
+ this->newUri = newUri;
+ }
+ MAKE_SWAP_METHOD(FileRenameEvent, oldUri, newUri);
};
MAKE_REFLECT_STRUCT(FileRenameEvent, oldUri, newUri);
class FileRenameParams {
public:
- std::vector <FileRenameEvent> files;
+ std::vector <FileRenameEvent> files;
- FileRenameParams() {
- }
+ FileRenameParams() {
+ }
- FileRenameParams(std::vector<FileRenameEvent>& files) {
- this->files = files;
- }
- MAKE_SWAP_METHOD(FileRenameParams, files);
+ FileRenameParams(std::vector<FileRenameEvent>& files) {
+ this->files = files;
+ }
+ MAKE_SWAP_METHOD(FileRenameParams, files);
};
MAKE_REFLECT_STRUCT(FileRenameParams, files);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
index 0887bf66029..fda407f93fb 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
@@ -8,38 +8,38 @@
#include "LibLsp/lsp/lsRange.h"
#include "LibLsp/lsp/lsDocumentUri.h"
struct lsTextDocumentContentChangeEvent {
- // The range of the document that changed.
- boost::optional<lsRange> range;
- // The length of the range that got replaced.
- boost::optional<int> rangeLength;
- // The new text of the range/document.
- std::string text;
-
- MAKE_SWAP_METHOD(lsTextDocumentContentChangeEvent, range, rangeLength, text);
+ // The range of the document that changed.
+ boost::optional<lsRange> range;
+ // The length of the range that got replaced.
+ boost::optional<int> rangeLength;
+ // The new text of the range/document.
+ std::string text;
+
+ MAKE_SWAP_METHOD(lsTextDocumentContentChangeEvent, range, rangeLength, text);
};
MAKE_REFLECT_STRUCT(lsTextDocumentContentChangeEvent, range, rangeLength, text);
struct lsTextDocumentDidChangeParams {
- lsVersionedTextDocumentIdentifier textDocument;
- std::vector<lsTextDocumentContentChangeEvent> contentChanges;
-
- /**
- * Legacy property to support protocol version 1.0 requests.
- */
-
- boost::optional<lsDocumentUri> uri;
-
- void swap(lsTextDocumentDidChangeParams& arg) noexcept
- {
- uri.swap(arg.uri);
- contentChanges.swap(arg.contentChanges);
- textDocument.swap(arg.textDocument);
- }
+ lsVersionedTextDocumentIdentifier textDocument;
+ std::vector<lsTextDocumentContentChangeEvent> contentChanges;
+
+ /**
+ * Legacy property to support protocol version 1.0 requests.
+ */
+
+ boost::optional<lsDocumentUri> uri;
+
+ void swap(lsTextDocumentDidChangeParams& arg) noexcept
+ {
+ uri.swap(arg.uri);
+ contentChanges.swap(arg.contentChanges);
+ textDocument.swap(arg.textDocument);
+ }
};
MAKE_REFLECT_STRUCT(lsTextDocumentDidChangeParams,
- textDocument,
- contentChanges, uri);
+ textDocument,
+ contentChanges, uri);
/**
* The document change notification is sent from the client to the server to
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
index e2eaa2cfcd8..d064819ae9c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
@@ -11,11 +11,11 @@ namespace TextDocumentDidClose {
struct Params {
lsTextDocumentIdentifier textDocument;
- void swap(Params& arg) noexcept
- {
- textDocument.swap(arg.textDocument);
- }
-
+ void swap(Params& arg) noexcept
+ {
+ textDocument.swap(arg.textDocument);
+ }
+
};
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
index 7be7a735d64..ed5dfa535f0 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
@@ -11,15 +11,15 @@ namespace TextDocumentDidOpen {
struct Params {
lsTextDocumentItem textDocument;
-
+
/**
* Legacy property to support protocol version 1.0 requests.
*/
boost::optional<std::string> text;
-
+
MAKE_SWAP_METHOD(TextDocumentDidOpen::Params, textDocument, text);
-
+
};
}
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
index 1ce386c415f..649c9b76ec9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
@@ -15,7 +15,7 @@ namespace TextDocumentDidSave {
// when the save notifcation was requested.
boost::optional<std::string> text;
- MAKE_SWAP_METHOD(TextDocumentDidSave::Params, textDocument, text);
+ MAKE_SWAP_METHOD(TextDocumentDidSave::Params, textDocument, text);
};
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
index 23a6d08d87c..9aeeadba05f 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
@@ -7,12 +7,12 @@
#include "LibLsp/lsp/lsRange.h"
#include <vector>
struct DocumentColorParams {
- /**
- * The text document.
- */
+ /**
+ * The text document.
+ */
- lsTextDocumentIdentifier textDocument;
- MAKE_SWAP_METHOD(DocumentColorParams, textDocument);
+ lsTextDocumentIdentifier textDocument;
+ MAKE_SWAP_METHOD(DocumentColorParams, textDocument);
};
MAKE_REFLECT_STRUCT(DocumentColorParams, textDocument);
@@ -28,46 +28,46 @@ MAKE_REFLECT_STRUCT(DocumentColorParams, textDocument);
*/
namespace TextDocument {
- struct Color {
- /**
- * The red component of this color in the range [0-1].
- */
- double red = 0;
+ struct Color {
+ /**
+ * The red component of this color in the range [0-1].
+ */
+ double red = 0;
- /**
- * The green component of this color in the range [0-1].
- */
- double green = 0;
+ /**
+ * The green component of this color in the range [0-1].
+ */
+ double green = 0;
- /**
- * The blue component of this color in the range [0-1].
- */
- double blue = 0;
+ /**
+ * The blue component of this color in the range [0-1].
+ */
+ double blue = 0;
- /**
- * The alpha component of this color in the range [0-1].
- */
- double alpha = 0;
- MAKE_SWAP_METHOD(TextDocument::Color, red, green, blue, alpha)
- };
+ /**
+ * The alpha component of this color in the range [0-1].
+ */
+ double alpha = 0;
+ MAKE_SWAP_METHOD(TextDocument::Color, red, green, blue, alpha)
+ };
}
MAKE_REFLECT_STRUCT(TextDocument::Color, red, green, blue, alpha)
struct ColorInformation {
- /**
- * The range in the document where this color appers.
- */
+ /**
+ * The range in the document where this color appers.
+ */
- lsRange range;
+ lsRange range;
- /**
- * The actual color value for this color range.
- */
+ /**
+ * The actual color value for this color range.
+ */
- TextDocument::Color color;
- MAKE_SWAP_METHOD(ColorInformation, range, color)
+ TextDocument::Color color;
+ MAKE_SWAP_METHOD(ColorInformation, range, color)
};
MAKE_REFLECT_STRUCT(ColorInformation,range,color)
-DEFINE_REQUEST_RESPONSE_TYPE(td_documentColor, DocumentColorParams,std::vector<ColorInformation>, "textDocument/documentColor"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_documentColor, DocumentColorParams,std::vector<ColorInformation>, "textDocument/documentColor");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
index 536a625c4c9..e450a08df1c 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
@@ -9,7 +9,7 @@ namespace TextDocumentDocumentLink {
struct Params {
// The document to provide document links for.
lsTextDocumentIdentifier textDocument;
- MAKE_SWAP_METHOD(Params, textDocument)
+ MAKE_SWAP_METHOD(Params, textDocument)
};
};
@@ -27,9 +27,9 @@ struct lsDocumentLink {
boost::optional<lsDocumentUri> target;
boost::optional<lsp::Any> data;
-
+
MAKE_SWAP_METHOD(lsDocumentLink, range, target, data)
-
+
};
MAKE_REFLECT_STRUCT(lsDocumentLink, range, target,data);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
index 8aa6e8b00e5..150dde1f0bf 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
@@ -18,7 +18,7 @@ MAKE_REFLECT_STRUCT(lsDocumentSymbolParams, textDocument);
struct TextDocumentDocumentSymbol{
- typedef std::pair< boost::optional<lsSymbolInformation> , boost::optional<lsDocumentSymbol> > Either;
+ typedef std::pair< boost::optional<lsSymbolInformation> , boost::optional<lsDocumentSymbol> > Either;
};
void Reflect(Reader& visitor, TextDocumentDocumentSymbol::Either& value);
@@ -42,14 +42,14 @@ void Reflect(Reader& visitor, TextDocumentDocumentSymbol::Either& value);
* </p>
*/
-//DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
-// lsDocumentSymbolParams,
-// std::vector<TextDocumentDocumentSymbol::Either> );
+//DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
+// lsDocumentSymbolParams,
+// std::vector<TextDocumentDocumentSymbol::Either> );
//
-DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
- lsDocumentSymbolParams,
- std::vector< lsDocumentSymbol >,"textDocument/documentSymbol" );
+DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
+ lsDocumentSymbolParams,
+ std::vector< lsDocumentSymbol >,"textDocument/documentSymbol" );
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
index 27977a4517b..f863b4991df 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
@@ -9,47 +9,47 @@
struct FoldingRangeRequestParams {
- /**
- * The text document.
- */
+ /**
+ * The text document.
+ */
- lsTextDocumentIdentifier textDocument;
- MAKE_SWAP_METHOD(FoldingRangeRequestParams, textDocument)
+ lsTextDocumentIdentifier textDocument;
+ MAKE_SWAP_METHOD(FoldingRangeRequestParams, textDocument)
};
MAKE_REFLECT_STRUCT(FoldingRangeRequestParams, textDocument)
struct FoldingRange {
- /**
- * The zero-based line number from where the folded range starts.
- */
- int startLine;
-
- /**
- * The zero-based line number where the folded range ends.
- */
- int endLine;
-
- /**
- * The zero-based character offset from where the folded range starts. If not defined, defaults
- * to the length of the start line.
- */
- int startCharacter;
-
- /**
- * The zero-based character offset before the folded range ends. If not defined, defaults to the
- * length of the end line.
- */
- int endCharacter;
-
- /**
- * Describes the kind of the folding range such as `comment' or 'region'. The kind
- * is used to categorize folding ranges and used by commands like 'Fold all comments'. See
- * FoldingRangeKind for an enumeration of standardized kinds.
- */
- std::string kind;
-
- MAKE_SWAP_METHOD(FoldingRange, startLine, endLine, startCharacter, endCharacter, kind)
+ /**
+ * The zero-based line number from where the folded range starts.
+ */
+ int startLine;
+
+ /**
+ * The zero-based line number where the folded range ends.
+ */
+ int endLine;
+
+ /**
+ * The zero-based character offset from where the folded range starts. If not defined, defaults
+ * to the length of the start line.
+ */
+ int startCharacter;
+
+ /**
+ * The zero-based character offset before the folded range ends. If not defined, defaults to the
+ * length of the end line.
+ */
+ int endCharacter;
+
+ /**
+ * Describes the kind of the folding range such as `comment' or 'region'. The kind
+ * is used to categorize folding ranges and used by commands like 'Fold all comments'. See
+ * FoldingRangeKind for an enumeration of standardized kinds.
+ */
+ std::string kind;
+
+ MAKE_SWAP_METHOD(FoldingRange, startLine, endLine, startCharacter, endCharacter, kind)
};
MAKE_REFLECT_STRUCT(FoldingRange,startLine,endLine,startCharacter,endCharacter,kind)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
index ad54e24bf96..49b7883b5f6 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
@@ -8,15 +8,15 @@
namespace TextDocumentFormatting {
struct Params {
- /**
- * The document to format.
- */
+ /**
+ * The document to format.
+ */
lsTextDocumentIdentifier textDocument;
- /**
- * The format options.
- */
+ /**
+ * The format options.
+ */
lsFormattingOptions options;
- MAKE_SWAP_METHOD(Params, textDocument, options);
+ MAKE_SWAP_METHOD(Params, textDocument, options);
};
};
@@ -28,5 +28,5 @@ MAKE_REFLECT_STRUCT(TextDocumentFormatting::Params, textDocument, options);
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_formatting, TextDocumentFormatting::Params,
- std::vector<lsTextEdit>, "textDocument/formatting");
+ std::vector<lsTextEdit>, "textDocument/formatting");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
index 332baf69e16..0e01416126d 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
@@ -14,5 +14,5 @@
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_highlight, lsTextDocumentPositionParams,
- std::vector<lsDocumentHighlight>, "textDocument/documentHighlight");
+ std::vector<lsDocumentHighlight>, "textDocument/documentHighlight");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
index 5302316c6f5..06f3f9613e9 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
@@ -16,21 +16,21 @@
namespace TextDocumentHover
{
- typedef boost::optional< std::vector< std::pair<boost::optional<std::string>, boost::optional<lsMarkedString>> > > Left;
- typedef std::pair< Left, boost::optional<MarkupContent> > Either;
- struct Result {
- /**
- * The hover's content as markdown
- */
- Either contents;
-
- /**
- * An boost::optional range
- */
- boost::optional<lsRange> range;
-
- MAKE_SWAP_METHOD(Result, contents, range)
- };
+ typedef boost::optional< std::vector< std::pair<boost::optional<std::string>, boost::optional<lsMarkedString>> > > Left;
+ typedef std::pair< Left, boost::optional<MarkupContent> > Either;
+ struct Result {
+ /**
+ * The hover's content as markdown
+ */
+ Either contents;
+
+ /**
+ * An boost::optional range
+ */
+ boost::optional<lsRange> range;
+
+ MAKE_SWAP_METHOD(Result, contents, range)
+ };
}
MAKE_REFLECT_STRUCT(TextDocumentHover::Result, contents, range);
@@ -44,12 +44,12 @@ DEFINE_REQUEST_RESPONSE_TYPE(td_hover, lsTextDocumentPositionParams, TextDocumen
//
//};
//MAKE_REFLECT_STRUCT(Rsp_TextDocumentHover,
-// jsonrpc,
-// id,
-// result);
+// jsonrpc,
+// id,
+// result);
//MAKE_REFLECT_STRUCT_OPTIONALS_MANDATORY(Rsp_TextDocumentHover,
// jsonrpc,
-// id,
+// id,
// result);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
index e4055d359ff..96e938a89f3 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
@@ -12,40 +12,40 @@
struct LinkedEditingRangeParams
{
- lsTextDocumentIdentifier textDocument;
- lsPosition position;
+ lsTextDocumentIdentifier textDocument;
+ lsPosition position;
- MAKE_SWAP_METHOD(LinkedEditingRangeParams,
- textDocument,
- position)
+ MAKE_SWAP_METHOD(LinkedEditingRangeParams,
+ textDocument,
+ position)
};
MAKE_REFLECT_STRUCT(LinkedEditingRangeParams,
- textDocument,
- position)
+ textDocument,
+ position)
struct LinkedEditingRanges
{
- /**
+ /**
* A list of ranges that can be renamed together. The ranges must have
* identical length and contain identical text content. The ranges cannot overlap.
*/
std::vector<lsRange> ranges;
- /**
- * An optional word pattern (regular expression) that describes valid contents for
- * the given ranges. If no pattern is provided, the client configuration's word
- * pattern will be used.
- */
-
- boost::optional<std::string> wordPattern;
- MAKE_SWAP_METHOD(LinkedEditingRanges,
- ranges,
- wordPattern)
+ /**
+ * An optional word pattern (regular expression) that describes valid contents for
+ * the given ranges. If no pattern is provided, the client configuration's word
+ * pattern will be used.
+ */
+
+ boost::optional<std::string> wordPattern;
+ MAKE_SWAP_METHOD(LinkedEditingRanges,
+ ranges,
+ wordPattern)
};
MAKE_REFLECT_STRUCT(LinkedEditingRanges,
- ranges,
- wordPattern)
+ ranges,
+ wordPattern)
DEFINE_REQUEST_RESPONSE_TYPE(td_linkedEditingRange, LinkedEditingRangeParams,
- boost::optional<std::vector<LinkedEditingRanges >>,"textDocument/linkedEditingRange") \ No newline at end of file
+ boost::optional<std::vector<LinkedEditingRanges >>,"textDocument/linkedEditingRange")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
index df14ea5d3dd..ada2162d128 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
@@ -17,20 +17,20 @@ struct lsDocumentOnTypeFormattingParams
lsPosition position;
- /**
- * The character that has been typed.
- */
+ /**
+ * The character that has been typed.
+ */
std::string ch;
MAKE_SWAP_METHOD(lsDocumentOnTypeFormattingParams,
- textDocument,
- position,
- options, ch);
+ textDocument,
+ position,
+ options, ch);
};
MAKE_REFLECT_STRUCT(lsDocumentOnTypeFormattingParams,
textDocument,
- position,
+ position,
options,ch);
/**
@@ -40,5 +40,5 @@ MAKE_REFLECT_STRUCT(lsDocumentOnTypeFormattingParams,
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_onTypeFormatting,
- lsDocumentOnTypeFormattingParams, std::vector<lsTextEdit>, "textDocument/onTypeFormatting");
+ lsDocumentOnTypeFormattingParams, std::vector<lsTextEdit>, "textDocument/onTypeFormatting");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
index 8c653d9864b..a7ece38114d 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
@@ -13,20 +13,20 @@
* Registration Options: TextDocumentRegistrationOptions
*/
struct PrepareRenameResult{
- /**
- * The range of the string to rename
- */
-
- lsRange range;
+ /**
+ * The range of the string to rename
+ */
+
+ lsRange range;
/**
* A placeholder text of the string content to be renamed.
*/
- std::string placeholder;
-
- MAKE_SWAP_METHOD(PrepareRenameResult, range, placeholder)
-
+ std::string placeholder;
+
+ MAKE_SWAP_METHOD(PrepareRenameResult, range, placeholder)
+
};
MAKE_REFLECT_STRUCT(PrepareRenameResult,range,placeholder)
@@ -36,5 +36,5 @@ typedef std::pair< boost::optional< lsRange>, boost::optional<PrepareRenameResu
extern void Reflect(Reader& visitor, TextDocumentPrepareRenameResult& value);
-DEFINE_REQUEST_RESPONSE_TYPE(td_prepareRename,
- lsTextDocumentPositionParams, TextDocumentPrepareRenameResult, "textDocument/prepareRename"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_prepareRename,
+ lsTextDocumentPositionParams, TextDocumentPrepareRenameResult, "textDocument/prepareRename");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
index bf28104bbbf..8272df10e84 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
@@ -11,14 +11,14 @@ namespace TextDocumentPublishDiagnostics{
// An array of diagnostic information items.
std::vector<lsDiagnostic> diagnostics;
- MAKE_SWAP_METHOD(Params,uri,diagnostics);
+ MAKE_SWAP_METHOD(Params,uri,diagnostics);
};
-
+
};
MAKE_REFLECT_STRUCT(TextDocumentPublishDiagnostics::Params,
- uri,
- diagnostics);
+ uri,
+ diagnostics);
/**
* Diagnostics notifications are sent from the server to the client to
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
index b2fe750af15..c3c5ff0d0b6 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
@@ -13,9 +13,9 @@ struct lsTextDocumentRangeFormattingParams {
lsFormattingOptions options;
MAKE_SWAP_METHOD(lsTextDocumentRangeFormattingParams,
- textDocument,
- range,
- options)
+ textDocument,
+ range,
+ options)
};
MAKE_REFLECT_STRUCT(lsTextDocumentRangeFormattingParams,
textDocument,
@@ -29,7 +29,7 @@ MAKE_REFLECT_STRUCT(lsTextDocumentRangeFormattingParams,
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_rangeFormatting, lsTextDocumentRangeFormattingParams, std::vector<lsTextEdit>,
- "textDocument/rangeFormatting");
+ "textDocument/rangeFormatting");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
index 23769127565..f398a0b8597 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
@@ -13,16 +13,16 @@ namespace TextDocumentReferences {
// Include the declaration of the current symbol.
boost::optional<bool> includeDeclaration;
MAKE_REFLECT_STRUCT(lsReferenceContext,
- includeDeclaration)
+ includeDeclaration)
};
struct Params {
lsTextDocumentIdentifier textDocument;
lsPosition position;
lsReferenceContext context;
- MAKE_SWAP_METHOD(Params,
- textDocument,
- position,
- context)
+ MAKE_SWAP_METHOD(Params,
+ textDocument,
+ position,
+ context)
};
@@ -44,5 +44,5 @@ MAKE_REFLECT_STRUCT(TextDocumentReferences::Params,
*
* Registration Options: TextDocumentRegistrationOptions
*/
-DEFINE_REQUEST_RESPONSE_TYPE(td_references, TextDocumentReferences::Params,
+DEFINE_REQUEST_RESPONSE_TYPE(td_references, TextDocumentReferences::Params,
std::vector<lsLocation>, "textDocument/references");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
index 35895f0f4f6..8b6d085910f 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
@@ -20,10 +20,10 @@ namespace TextDocumentRename {
// request must return a [ResponseError](#ResponseError) with an
// appropriate message set.
std::string newName;
- MAKE_SWAP_METHOD(Params,
- textDocument,
- position,
- newName);
+ MAKE_SWAP_METHOD(Params,
+ textDocument,
+ position,
+ newName);
};
};
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
index eab5f838fcd..dceba1fb8ff 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
@@ -9,23 +9,23 @@
#include "typeHierarchy.h"
struct ResolveTypeHierarchyItemParams {
- /**
- * The hierarchy item to resolve.
- */
+ /**
+ * The hierarchy item to resolve.
+ */
- TypeHierarchyItem item;
+ TypeHierarchyItem item;
- /**
- * The number of hierarchy levels to resolve. {@code 0} indicates no hierarchy level.
- */
- boost::optional<int> resolve;
+ /**
+ * The number of hierarchy levels to resolve. {@code 0} indicates no hierarchy level.
+ */
+ boost::optional<int> resolve;
- /**
- * The direction of the type hierarchy resolution.
- */
+ /**
+ * The direction of the type hierarchy resolution.
+ */
- TypeHierarchyDirection direction;
- MAKE_SWAP_METHOD(ResolveTypeHierarchyItemParams, item, resolve, direction)
+ TypeHierarchyDirection direction;
+ MAKE_SWAP_METHOD(ResolveTypeHierarchyItemParams, item, resolve, direction)
};
MAKE_REFLECT_STRUCT(ResolveTypeHierarchyItemParams,item,resolve,direction)
DEFINE_REQUEST_RESPONSE_TYPE(typeHierarchy_resolve, ResolveTypeHierarchyItemParams, TypeHierarchyItem, "typeHierarchy/resolve")
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
index 47590e41522..91915275bdf 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
@@ -8,35 +8,35 @@
#include "LibLsp/lsp/lsTextDocumentIdentifier.h"
struct SelectionRangeParams {
- /**
- * The text document.
- */
+ /**
+ * The text document.
+ */
- lsTextDocumentIdentifier textDocument;
+ lsTextDocumentIdentifier textDocument;
- /**
- * The positions inside the text document.
- */
+ /**
+ * The positions inside the text document.
+ */
+
+ std::vector<lsPosition> positions;
+
+ MAKE_SWAP_METHOD(SelectionRangeParams, textDocument, positions)
- std::vector<lsPosition> positions;
-
- MAKE_SWAP_METHOD(SelectionRangeParams, textDocument, positions)
-
};
MAKE_REFLECT_STRUCT(SelectionRangeParams, textDocument, positions)
struct SelectionRange {
- /**
- * The [range](#Range) of this selection range.
- */
+ /**
+ * The [range](#Range) of this selection range.
+ */
- lsRange range;
+ lsRange range;
- /**
- * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
- */
- boost::optional<SelectionRange*> parent;
- MAKE_SWAP_METHOD(SelectionRange, range, parent)
+ /**
+ * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
+ */
+ boost::optional<SelectionRange*> parent;
+ MAKE_SWAP_METHOD(SelectionRange, range, parent)
};
extern void Reflect(Reader& visitor, boost::optional<SelectionRange*>& value);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
index 32bc86f5fb7..bfb8619559f 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
@@ -10,19 +10,19 @@
*/
struct SemanticHighlightingInformation {
- /**
- * The zero-based line position in the text document.
- */
- int line = 0;
+ /**
+ * The zero-based line position in the text document.
+ */
+ int line = 0;
- /**
- * A base64 encoded string representing every single highlighted ranges in the line with its start position, length
- * and the "lookup table" index of of the semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">
- * TextMate scopes</a>. If the {@code tokens} is empty or not defined, then no highlighted positions are available for the line.
- */
- std::string tokens;
+ /**
+ * A base64 encoded string representing every single highlighted ranges in the line with its start position, length
+ * and the "lookup table" index of of the semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">
+ * TextMate scopes</a>. If the {@code tokens} is empty or not defined, then no highlighted positions are available for the line.
+ */
+ std::string tokens;
- MAKE_SWAP_METHOD(SemanticHighlightingInformation, line, tokens)
+ MAKE_SWAP_METHOD(SemanticHighlightingInformation, line, tokens)
};
MAKE_REFLECT_STRUCT(SemanticHighlightingInformation, line, tokens);
@@ -32,35 +32,35 @@ MAKE_REFLECT_STRUCT(SemanticHighlightingInformation, line, tokens);
*/
struct SemanticHighlightingParams {
- /**
- * The text document that has to be decorated with the semantic highlighting information.
- */
-
- lsVersionedTextDocumentIdentifier textDocument;
+ /**
+ * The text document that has to be decorated with the semantic highlighting information.
+ */
- /**
- * An array of semantic highlighting information.
- */
+ lsVersionedTextDocumentIdentifier textDocument;
+
+ /**
+ * An array of semantic highlighting information.
+ */
+
+ std::vector<SemanticHighlightingInformation> lines;
+
+ MAKE_SWAP_METHOD(SemanticHighlightingParams, textDocument, lines)
- std::vector<SemanticHighlightingInformation> lines;
-
- MAKE_SWAP_METHOD(SemanticHighlightingParams, textDocument, lines)
-
};
MAKE_REFLECT_STRUCT(SemanticHighlightingParams, textDocument, lines);
/**
- * The {@code textDocument/semanticHighlighting} notification is pushed from the server to the client
- * to inform the client about additional semantic highlighting information that has to be applied
- * on the text document. It is the server's responsibility to decide which lines are included in
- * the highlighting information. In other words, the server is capable of sending only a delta
- * information. For instance, after opening the text document ({@code DidOpenTextDocumentNotification})
- * the server sends the semantic highlighting information for the entire document, but if the server
- * receives a {@code DidChangeTextDocumentNotification}, it pushes the information only about
- * the affected lines in the document.
- *
- * <p>
- * <b>Note:</b> the <a href=
- * "https://github.com/Microsoft/vscode-languageserver-node/pull/367">{@code textDocument/semanticHighlighting}
- * language feature</a> is not yet part of the official LSP specification.
- */
-DEFINE_NOTIFICATION_TYPE(Notify_semanticHighlighting, SemanticHighlightingParams, "textDocument/semanticHighlighting"); \ No newline at end of file
+ * The {@code textDocument/semanticHighlighting} notification is pushed from the server to the client
+ * to inform the client about additional semantic highlighting information that has to be applied
+ * on the text document. It is the server's responsibility to decide which lines are included in
+ * the highlighting information. In other words, the server is capable of sending only a delta
+ * information. For instance, after opening the text document ({@code DidOpenTextDocumentNotification})
+ * the server sends the semantic highlighting information for the entire document, but if the server
+ * receives a {@code DidChangeTextDocumentNotification}, it pushes the information only about
+ * the affected lines in the document.
+ *
+ * <p>
+ * <b>Note:</b> the <a href=
+ * "https://github.com/Microsoft/vscode-languageserver-node/pull/367">{@code textDocument/semanticHighlighting}
+ * language feature</a> is not yet part of the official LSP specification.
+ */
+DEFINE_NOTIFICATION_TYPE(Notify_semanticHighlighting, SemanticHighlightingParams, "textDocument/semanticHighlighting");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
index 2a83645901c..837096695e8 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
@@ -6,8 +6,8 @@
#include "LibLsp/lsp/lsMarkedString.h"
#include "LibLsp/lsp/lsTextDocumentPositionParams.h"
-extern void Reflect(Reader& visitor,
- std::pair<boost::optional<std::string>, boost::optional<MarkupContent>>& value);
+extern void Reflect(Reader& visitor,
+ std::pair<boost::optional<std::string>, boost::optional<MarkupContent>>& value);
@@ -72,9 +72,9 @@ struct lsSignatureHelp {
MAKE_SWAP_METHOD(lsSignatureHelp,
- signatures,
- activeSignature,
- activeParameter)
+ signatures,
+ activeSignature,
+ activeParameter)
};
MAKE_REFLECT_STRUCT(lsSignatureHelp,
signatures,
@@ -89,4 +89,4 @@ MAKE_REFLECT_STRUCT(lsSignatureHelp,
*
* Registration Options: SignatureHelpRegistrationOptions
*/
-DEFINE_REQUEST_RESPONSE_TYPE(td_signatureHelp, lsTextDocumentPositionParams, lsSignatureHelp, "textDocument/signatureHelp"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_signatureHelp, lsTextDocumentPositionParams, lsSignatureHelp, "textDocument/signatureHelp");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
index b554d751f3a..384cfb68c94 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
@@ -6,34 +6,34 @@
#include "LibLsp/lsp/symbol.h"
#include "LibLsp/lsp/lsAny.h"
/**
- * The {@code textDocument/typeHierarchy} request is sent from the client to the
- * server to retrieve a {@link TypeHierarchyItem type hierarchy item} based on
- * the {@link TypeHierarchyParams cursor position in the text document}. This
- * request would also allow to specify if the item should be resolved and
- * whether sub- or supertypes are to be resolved. If no type hierarchy item can
- * be found under the given text document position, resolves to {@code null}.
- *
- * <p>
- * <b>Note:</b> the <a href=
- * "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
- * language feature</a> is not yet part of the official LSP specification.
- */
+ * The {@code textDocument/typeHierarchy} request is sent from the client to the
+ * server to retrieve a {@link TypeHierarchyItem type hierarchy item} based on
+ * the {@link TypeHierarchyParams cursor position in the text document}. This
+ * request would also allow to specify if the item should be resolved and
+ * whether sub- or supertypes are to be resolved. If no type hierarchy item can
+ * be found under the given text document position, resolves to {@code null}.
+ *
+ * <p>
+ * <b>Note:</b> the <a href=
+ * "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
+ * language feature</a> is not yet part of the official LSP specification.
+ */
enum class TypeHierarchyDirection : uint32_t{
- /**
- * Flag for retrieving/resolving the subtypes. Value: {@code 0}.
- */
- Children = 0,
+ /**
+ * Flag for retrieving/resolving the subtypes. Value: {@code 0}.
+ */
+ Children = 0,
- /**
- * Flag to use when retrieving/resolving the supertypes. Value: {@code 1}.
- */
- Parents =1,
+ /**
+ * Flag to use when retrieving/resolving the supertypes. Value: {@code 1}.
+ */
+ Parents =1,
- /**
- * Flag for resolving both the super- and subtypes. Value: {@code 2}.
- */
- Both=2
+ /**
+ * Flag for resolving both the super- and subtypes. Value: {@code 2}.
+ */
+ Both=2
};
void Reflect(Reader& reader, TypeHierarchyDirection& value);
@@ -42,10 +42,10 @@ void Reflect(Writer& writer, TypeHierarchyDirection& value);
struct TypeHierarchyParams :public lsTextDocumentPositionParams
{
- boost::optional<int> resolve;
- boost::optional<TypeHierarchyDirection> direction ;
-
- MAKE_SWAP_METHOD(TypeHierarchyParams, textDocument, position, resolve, direction)
+ boost::optional<int> resolve;
+ boost::optional<TypeHierarchyDirection> direction ;
+
+ MAKE_SWAP_METHOD(TypeHierarchyParams, textDocument, position, resolve, direction)
};
MAKE_REFLECT_STRUCT(TypeHierarchyParams, textDocument, position, resolve, direction);
@@ -58,76 +58,76 @@ MAKE_REFLECT_STRUCT(TypeHierarchyParams, textDocument, position, resolve, direc
*/
struct TypeHierarchyItem {
- /**
- * The human readable name of the hierarchy item.
- */
-
- std::string name;
-
- /**
- * Optional detail for the hierarchy item. It can be, for instance, the signature of a function or method.
- */
- boost::optional<std::string>
- detail;
-
- /**
- * The kind of the hierarchy item. For instance, class or interface.
- */
-
- SymbolKind kind;
-
- /**
- * {@code true} if the hierarchy item is deprecated. Otherwise, {@code false}. It is {@code false} by default.
- */
-
- boost::optional<bool> deprecated;
-
- /**
- * The URI of the text document where this type hierarchy item belongs to.
- */
-
- lsDocumentUri uri;
-
- /**
- * The range enclosing this type hierarchy item not including leading/trailing whitespace but everything else
- * like comments. This information is typically used to determine if the clients cursor is inside the type
- * hierarchy item to reveal in the symbol in the UI.
- *
- * @see TypeHierarchyItem#selectionRange
- */
-
- lsRange range;
-
- /**
- * The range that should be selected and revealed when this type hierarchy item is being picked, e.g the name of a function.
- * Must be contained by the the {@link TypeHierarchyItem#getRange range}.
- *
- * @see TypeHierarchyItem#range
- */
-
- lsRange selectionRange;
-
- /**
- * If this type hierarchy item is resolved, it contains the direct parents. Could be empty if the item does not have any
- * direct parents. If not defined, the parents have not been resolved yet.
- */
- boost::optional< std::vector<TypeHierarchyItem> > parents;
-
- /**
- * If this type hierarchy item is resolved, it contains the direct children of the current item.
- * Could be empty if the item does not have any descendants. If not defined, the children have not been resolved.
- */
- boost::optional< std::vector<TypeHierarchyItem> > children;
-
- /**
+ /**
+ * The human readable name of the hierarchy item.
+ */
+
+ std::string name;
+
+ /**
+ * Optional detail for the hierarchy item. It can be, for instance, the signature of a function or method.
+ */
+ boost::optional<std::string>
+ detail;
+
+ /**
+ * The kind of the hierarchy item. For instance, class or interface.
+ */
+
+ SymbolKind kind;
+
+ /**
+ * {@code true} if the hierarchy item is deprecated. Otherwise, {@code false}. It is {@code false} by default.
+ */
+
+ boost::optional<bool> deprecated;
+
+ /**
+ * The URI of the text document where this type hierarchy item belongs to.
+ */
+
+ lsDocumentUri uri;
+
+ /**
+ * The range enclosing this type hierarchy item not including leading/trailing whitespace but everything else
+ * like comments. This information is typically used to determine if the clients cursor is inside the type
+ * hierarchy item to reveal in the symbol in the UI.
+ *
+ * @see TypeHierarchyItem#selectionRange
+ */
+
+ lsRange range;
+
+ /**
+ * The range that should be selected and revealed when this type hierarchy item is being picked, e.g the name of a function.
+ * Must be contained by the the {@link TypeHierarchyItem#getRange range}.
+ *
+ * @see TypeHierarchyItem#range
+ */
+
+ lsRange selectionRange;
+
+ /**
+ * If this type hierarchy item is resolved, it contains the direct parents. Could be empty if the item does not have any
+ * direct parents. If not defined, the parents have not been resolved yet.
+ */
+ boost::optional< std::vector<TypeHierarchyItem> > parents;
+
+ /**
+ * If this type hierarchy item is resolved, it contains the direct children of the current item.
+ * Could be empty if the item does not have any descendants. If not defined, the children have not been resolved.
+ */
+ boost::optional< std::vector<TypeHierarchyItem> > children;
+
+ /**
* An boost::optional data field can be used to identify a type hierarchy item in a resolve request.
*/
- boost::optional<lsp::Any> data;
+ boost::optional<lsp::Any> data;
- MAKE_SWAP_METHOD(TypeHierarchyItem, name, detail, kind, deprecated, uri, range, selectionRange, parents, children, data)
+ MAKE_SWAP_METHOD(TypeHierarchyItem, name, detail, kind, deprecated, uri, range, selectionRange, parents, children, data)
};
MAKE_REFLECT_STRUCT(TypeHierarchyItem, name, detail, kind, deprecated, uri, range, selectionRange, parents, children, data);
-DEFINE_REQUEST_RESPONSE_TYPE(td_typeHierarchy, TypeHierarchyParams, TypeHierarchyItem, "textDocument/typeHierarchy"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_typeHierarchy, TypeHierarchyParams, TypeHierarchyItem, "textDocument/typeHierarchy");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
index 38ced43b42d..196a65c5d34 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
@@ -13,4 +13,4 @@
* Since version 3.6.0
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_typeDefinition,
- lsTextDocumentPositionParams, LocationListEither::Either, "textDocument/typeDefinition"); \ No newline at end of file
+ lsTextDocumentPositionParams, LocationListEither::Either, "textDocument/typeDefinition");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
index 84aa0badaa7..29afcac41a4 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
@@ -8,41 +8,41 @@
namespace WillSaveTextDocumentParams {
- /**
- * Represents reasons why a text document is saved.
- */
- enum class TextDocumentSaveReason {
-
- /**
- * Manually triggered, e.g. by the user pressing save, by starting debugging,
- * or by an API call.
- */
- Manual=(1),
-
- /**
- * Automatic after a delay.
- */
- AfterDelay=(2),
-
- /**
- * When the editor lost focus.
- */
- FocusOut=(3)
- };
-
+ /**
+ * Represents reasons why a text document is saved.
+ */
+ enum class TextDocumentSaveReason {
+
+ /**
+ * Manually triggered, e.g. by the user pressing save, by starting debugging,
+ * or by an API call.
+ */
+ Manual=(1),
+
+ /**
+ * Automatic after a delay.
+ */
+ AfterDelay=(2),
+
+ /**
+ * When the editor lost focus.
+ */
+ FocusOut=(3)
+ };
+
struct Params {
- /**
- * The document that will be saved.
- */
+ /**
+ * The document that will be saved.
+ */
lsTextDocumentIdentifier textDocument;
/*
* A reason why a text document is saved.
*/
- boost::optional<TextDocumentSaveReason> reason;
+ boost::optional<TextDocumentSaveReason> reason;
- MAKE_SWAP_METHOD(Params, textDocument, reason);
+ MAKE_SWAP_METHOD(Params, textDocument, reason);
};
};
@@ -67,5 +67,5 @@ DEFINE_NOTIFICATION_TYPE(td_willSave, WillSaveTextDocumentParams::Params, "textD
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_willSaveWaitUntil,
- WillSaveTextDocumentParams::Params, std::vector<lsTextEdit>, "textDocument/willSaveWaitUntil");
+ WillSaveTextDocumentParams::Params, std::vector<lsTextEdit>, "textDocument/willSaveWaitUntil");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/utils.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/utils.h
index 796b5d2569d..95064c34d63 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/utils.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/utils.h
@@ -15,7 +15,7 @@
namespace lsp
{
-
+
// Returns true if |value| starts/ends with |start| or |ending|.
bool StartsWith(std::string value, std::string start);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
index 8499304f558..332fb7e2e75 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
@@ -11,20 +11,20 @@ struct MessageParams {
/**
* The message type.
*/
-
- lsMessageType type = lsMessageType::Error;
-
+
+ lsMessageType type = lsMessageType::Error;
+
/**
* The actual message.
*/
- std::string message;
-
- void swap(MessageParams& arg) noexcept {
- lsMessageType temp = type;
- type = arg.type;
- arg.type = temp;
- message.swap(arg.message);
- }
+ std::string message;
+
+ void swap(MessageParams& arg) noexcept {
+ lsMessageType temp = type;
+ type = arg.type;
+ arg.type = temp;
+ message.swap(arg.message);
+ }
};
MAKE_REFLECT_STRUCT(MessageParams, type, message)
@@ -49,23 +49,23 @@ DEFINE_NOTIFICATION_TYPE(Notify_ShowMessage, MessageParams, "window/showMessage"
* answer from the client.
*/
struct MessageActionItem {
- /**
- * A short title like 'Retry', 'Open Log' etc.
- */
+ /**
+ * A short title like 'Retry', 'Open Log' etc.
+ */
- std::string title;
- MAKE_SWAP_METHOD(MessageActionItem, title)
+ std::string title;
+ MAKE_SWAP_METHOD(MessageActionItem, title)
};
MAKE_REFLECT_STRUCT(MessageActionItem, title);
struct ShowMessageRequestParams :public MessageParams {
- /**
- * The message action items to present.
- */
- std::vector<MessageActionItem> actions;
-
- MAKE_SWAP_METHOD(ShowMessageRequestParams, type, message, actions)
+ /**
+ * The message action items to present.
+ */
+ std::vector<MessageActionItem> actions;
+
+ MAKE_SWAP_METHOD(ShowMessageRequestParams, type, message, actions)
};
MAKE_REFLECT_STRUCT(ShowMessageRequestParams, type, message, actions)
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/working_files.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
index e305fee8d06..916268f0fa1 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
@@ -44,9 +44,9 @@ struct WorkingFiles {
bool GetFileBufferContent(const AbsolutePath& filename, std::wstring& out)
{
auto file = GetFileByFilename(filename);
- if(!file)
+ if(!file)
return false;
- return GetFileBufferContent(file, out);
+ return GetFileBufferContent(file, out);
}
bool GetFileBufferContent(const AbsolutePath& filename,std::string& out)
{
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
index 7e2d8bee0a6..d1d4bc85dfb 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
@@ -8,20 +8,20 @@
struct ApplyWorkspaceEditParams
{
- /**
- * The edits to apply.
- */
+ /**
+ * The edits to apply.
+ */
- lsWorkspaceEdit edit;
+ lsWorkspaceEdit edit;
- /**
- * An optional label of the workspace edit. This label is
- * presented in the user interface for example on an undo
- * stack to undo the workspace edit.
- */
- std::string label;
+ /**
+ * An optional label of the workspace edit. This label is
+ * presented in the user interface for example on an undo
+ * stack to undo the workspace edit.
+ */
+ std::string label;
- MAKE_SWAP_METHOD(ApplyWorkspaceEditParams, edit, label)
+ MAKE_SWAP_METHOD(ApplyWorkspaceEditParams, edit, label)
};
/**
* The workspace/applyEdit request is sent from the server to the client to modify resource on the client side.
@@ -32,9 +32,9 @@ MAKE_REFLECT_STRUCT(ApplyWorkspaceEditParams, edit, label);
struct ApplyWorkspaceEditResponse
{
- bool applied;
- boost::optional<std::string> failureReason;
- MAKE_SWAP_METHOD(ApplyWorkspaceEditResponse, applied, failureReason)
+ bool applied;
+ boost::optional<std::string> failureReason;
+ MAKE_SWAP_METHOD(ApplyWorkspaceEditResponse, applied, failureReason)
};
MAKE_REFLECT_STRUCT(ApplyWorkspaceEditResponse, applied, failureReason);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
index f7709aa6076..ad22bf0185a 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
@@ -7,22 +7,22 @@
struct ConfigurationItem {
- /**
- * The scope to get the configuration section for.
- */
- lsDocumentUri scopeUri;
+ /**
+ * The scope to get the configuration section for.
+ */
+ lsDocumentUri scopeUri;
- /**
- * The configuration section asked for.
- */
- std::string section;
- MAKE_SWAP_METHOD(ConfigurationItem, scopeUri, section);
+ /**
+ * The configuration section asked for.
+ */
+ std::string section;
+ MAKE_SWAP_METHOD(ConfigurationItem, scopeUri, section);
};
MAKE_REFLECT_STRUCT(ConfigurationItem, scopeUri, section);
struct ConfigurationParams
{
- std::vector<ConfigurationItem> items;
- MAKE_SWAP_METHOD(ConfigurationParams, items)
+ std::vector<ConfigurationItem> items;
+ MAKE_SWAP_METHOD(ConfigurationParams, items)
};
MAKE_REFLECT_STRUCT(ConfigurationParams, items);
@@ -34,4 +34,4 @@ MAKE_REFLECT_STRUCT(ConfigurationParams, items);
* order of the passed ConfigurationItems (e.g. the first item in the response is the
* result for the first configuration item in the params).
*/
-DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceConfiguration, ConfigurationParams,std::vector<lsp::Any>, "workspace/configuration"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceConfiguration, ConfigurationParams,std::vector<lsp::Any>, "workspace/configuration");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
index 78f000f30d5..1c6cd83b62b 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
@@ -5,30 +5,30 @@
* The workspace folder change event.
*/
struct WorkspaceFoldersChangeEvent {
- /**
- * The array of added workspace folders
- */
+ /**
+ * The array of added workspace folders
+ */
- std::vector<WorkspaceFolder> added;
+ std::vector<WorkspaceFolder> added;
- /**
- * The array of the removed workspace folders
- */
+ /**
+ * The array of the removed workspace folders
+ */
+
+ std::vector <WorkspaceFolder> removed;
+ MAKE_SWAP_METHOD(WorkspaceFoldersChangeEvent, added, removed);
- std::vector <WorkspaceFolder> removed;
- MAKE_SWAP_METHOD(WorkspaceFoldersChangeEvent, added, removed);
-
};
MAKE_REFLECT_STRUCT(WorkspaceFoldersChangeEvent, added, removed);
struct DidChangeWorkspaceFoldersParams {
- /**
- * The actual workspace folder change event.
- */
+ /**
+ * The actual workspace folder change event.
+ */
+
+ WorkspaceFoldersChangeEvent event;
- WorkspaceFoldersChangeEvent event;
-
- MAKE_SWAP_METHOD(DidChangeWorkspaceFoldersParams, event);
+ MAKE_SWAP_METHOD(DidChangeWorkspaceFoldersParams, event);
};
MAKE_REFLECT_STRUCT(DidChangeWorkspaceFoldersParams, event);
@@ -40,8 +40,8 @@ MAKE_REFLECT_STRUCT(DidChangeWorkspaceFoldersParams, event);
* and ClientCapabilities/workspace/workspaceFolders are true; or if the server has
* registered to receive this notification it first.
*/
-DEFINE_NOTIFICATION_TYPE(Notify_WorkspaceDidChangeWorkspaceFolders,
- DidChangeWorkspaceFoldersParams, "workspace/didChangeWorkspaceFolders");
+DEFINE_NOTIFICATION_TYPE(Notify_WorkspaceDidChangeWorkspaceFolders,
+ DidChangeWorkspaceFoldersParams, "workspace/didChangeWorkspaceFolders");
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
index 8f8acceea41..3e7ca6ddede 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
@@ -9,11 +9,11 @@
struct lsDidChangeConfigurationParams {
- /**
- * The actual changed settings.
- */
- lsp::Any settings;
- MAKE_SWAP_METHOD(lsDidChangeConfigurationParams, settings);
+ /**
+ * The actual changed settings.
+ */
+ lsp::Any settings;
+ MAKE_SWAP_METHOD(lsDidChangeConfigurationParams, settings);
};
MAKE_REFLECT_STRUCT(lsDidChangeConfigurationParams, settings);
diff --git a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
index 7cedcfa5f48..1ba33b501cf 100644
--- a/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
+++ b/Build/source/utils/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
@@ -5,18 +5,18 @@
#include "LibLsp/lsp/lsDocumentUri.h"
struct WorkspaceFolder {
- /**
- * The associated URI for this workspace folder.
- */
+ /**
+ * The associated URI for this workspace folder.
+ */
- lsDocumentUri uri;
+ lsDocumentUri uri;
- /**
- * The name of the workspace folder. Defaults to the uri's basename.
- */
- std::string name;
+ /**
+ * The name of the workspace folder. Defaults to the uri's basename.
+ */
+ std::string name;
- MAKE_SWAP_METHOD(WorkspaceFolder, uri, name)
+ MAKE_SWAP_METHOD(WorkspaceFolder, uri, name)
};
MAKE_REFLECT_STRUCT(WorkspaceFolder, uri, name);
@@ -29,6 +29,6 @@ MAKE_REFLECT_STRUCT(WorkspaceFolder, uri, name);
* an empty array if a workspace is open but no folders are configured,
* the workspace folders otherwise.
*/
-DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceFolders,
- boost::optional<JsonNull>, boost::optional<std::vector< WorkspaceFolder>>, "workspace/workspaceFolders");
+DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceFolders,
+ boost::optional<JsonNull>, boost::optional<std::vector< WorkspaceFolder>>, "workspace/workspaceFolders");
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
index 3c7c275d6da..a66108d2e54 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
@@ -4,43 +4,43 @@
bool GenericEndpoint::notify(std::unique_ptr<LspMessage> msg)
{
- auto findIt = method2notification.find(msg->GetMethodType());
-
- if (findIt != method2notification.end())
- {
- return findIt->second(std::move(msg));
- }
- std::string info = "can't find method2notification for notification:\n" + msg->ToJson() + "\n";
- log.log(lsp::Log::Level::SEVERE, info);
- return false;
+ auto findIt = method2notification.find(msg->GetMethodType());
+
+ if (findIt != method2notification.end())
+ {
+ return findIt->second(std::move(msg));
+ }
+ std::string info = "can't find method2notification for notification:\n" + msg->ToJson() + "\n";
+ log.log(lsp::Log::Level::SEVERE, info);
+ return false;
}
bool GenericEndpoint::onResponse(const std::string& method, std::unique_ptr<LspMessage>msg)
{
- auto findIt = method2response.find(method);
-
- if (findIt != method2response.end())
- {
- return findIt->second(std::move(msg));
- }
-
- std::string info = "can't find method2response for response:\n" + msg->ToJson() + "\n";
- log.log(lsp::Log::Level::SEVERE, info);
-
- return false;
+ auto findIt = method2response.find(method);
+
+ if (findIt != method2response.end())
+ {
+ return findIt->second(std::move(msg));
+ }
+
+ std::string info = "can't find method2response for response:\n" + msg->ToJson() + "\n";
+ log.log(lsp::Log::Level::SEVERE, info);
+
+ return false;
}
bool GenericEndpoint::onRequest(std::unique_ptr<LspMessage> request)
{
- auto findIt = method2request.find(request->GetMethodType());
-
- if (findIt != method2request.end())
- {
- return findIt->second(std::move(request));
- }
- std::string info = "can't find method2request for request:\n" + request->ToJson() + "\n";
- log.log(lsp::Log::Level::SEVERE, info);
- return false;
+ auto findIt = method2request.find(request->GetMethodType());
+
+ if (findIt != method2request.end())
+ {
+ return findIt->second(std::move(request));
+ }
+ std::string info = "can't find method2request for request:\n" + request->ToJson() + "\n";
+ log.log(lsp::Log::Level::SEVERE, info);
+ return false;
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
index 4f79312a0c3..78cf8950c24 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
@@ -6,52 +6,52 @@
std::unique_ptr<LspMessage> MessageJsonHandler::parseResponseMessage(const std::string& method, Reader& r)
{
- auto findIt = method2response.find(method);
-
- if( findIt != method2response.end())
- {
- return findIt->second(r);
- }
- return nullptr;
+ auto findIt = method2response.find(method);
+
+ if( findIt != method2response.end())
+ {
+ return findIt->second(r);
+ }
+ return nullptr;
}
std::unique_ptr<LspMessage> MessageJsonHandler::parseRequstMessage(const std::string& method, Reader&r)
{
- auto findIt = method2request.find(method);
+ auto findIt = method2request.find(method);
- if (findIt != method2request.end())
- {
- return findIt->second(r);
- }
- return nullptr;
+ if (findIt != method2request.end())
+ {
+ return findIt->second(r);
+ }
+ return nullptr;
}
bool MessageJsonHandler::resovleResponseMessage(Reader&r, std::pair<std::string, std::unique_ptr<LspMessage>>& result)
{
- for (auto& handler : method2response)
- {
- try
- {
- auto msg = handler.second(r);
- result.first = handler.first;
- result.second = std::move(msg);
- return true;
- }
- catch (...)
- {
-
- }
- }
- return false;
+ for (auto& handler : method2response)
+ {
+ try
+ {
+ auto msg = handler.second(r);
+ result.first = handler.first;
+ result.second = std::move(msg);
+ return true;
+ }
+ catch (...)
+ {
+
+ }
+ }
+ return false;
}
std::unique_ptr<LspMessage> MessageJsonHandler::parseNotificationMessage(const std::string& method, Reader& r)
{
- auto findIt = method2notification.find(method);
+ auto findIt = method2notification.find(method);
- if (findIt != method2notification.end())
- {
- return findIt->second(r);
- }
- return nullptr;
+ if (findIt != method2notification.end())
+ {
+ return findIt->second(r);
+ }
+ return nullptr;
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
index 29ff69b2e24..e8bdc073f37 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
@@ -14,10 +14,10 @@
#include "LibLsp/JsonRpc/GCThreadContext.h"
#include "LibLsp/JsonRpc/ScopeExit.h"
#include "LibLsp/JsonRpc/stream.h"
-
-#define BOOST_BIND_GLOBAL_PLACEHOLDERS
-#include "boost/threadpool.hpp"
#include <atomic>
+#include <boost/asio/thread_pool.hpp>
+#include <boost/asio/post.hpp>
+
namespace lsp {
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
@@ -71,70 +71,70 @@ namespace lsp {
// ways that preserve the context. (Like runAsync() or TUScheduler).
//
- /// A canceller requests cancellation of a task, when called.
- /// Calling it again has no effect.
- using Canceler = std::function<void()>;
-
- // We don't want a cancelable scope to "shadow" an enclosing one.
- struct CancelState {
- std::shared_ptr<std::atomic<int>> cancelled;
- const CancelState* parent = nullptr;
- lsRequestId id;
- };
- static Key<CancelState> g_stateKey;
-
- /// Defines a new task whose cancellation may be requested.
- /// The returned Context defines the scope of the task.
- /// When the context is active, getCancelledMonitor() is 0 until the Canceler is
- /// invoked, and equal to Reason afterwards.
- /// Conventionally, Reason may be the LSP error code to return.
- std::pair<Context, Canceler> cancelableTask(const lsRequestId& id,int reason = 1){
- assert(reason != 0 && "Can't detect cancellation if Reason is zero");
- CancelState state;
- state.id = id;
- state.cancelled = std::make_shared<std::atomic<int>>();
- state.parent = Context::current().get(g_stateKey);
- return {
- Context::current().derive(g_stateKey, state),
- [reason, cancelled(state.cancelled)] { *cancelled = reason; },
- };
- }
- /// If the current context is within a cancelled task, returns the reason.
+ /// A canceller requests cancellation of a task, when called.
+ /// Calling it again has no effect.
+ using Canceler = std::function<void()>;
+
+ // We don't want a cancelable scope to "shadow" an enclosing one.
+ struct CancelState {
+ std::shared_ptr<std::atomic<int>> cancelled;
+ const CancelState* parent = nullptr;
+ lsRequestId id;
+ };
+ static Key<CancelState> g_stateKey;
+
+ /// Defines a new task whose cancellation may be requested.
+ /// The returned Context defines the scope of the task.
+ /// When the context is active, getCancelledMonitor() is 0 until the Canceler is
+ /// invoked, and equal to Reason afterwards.
+ /// Conventionally, Reason may be the LSP error code to return.
+ std::pair<Context, Canceler> cancelableTask(const lsRequestId& id,int reason = 1){
+ assert(reason != 0 && "Can't detect cancellation if Reason is zero");
+ CancelState state;
+ state.id = id;
+ state.cancelled = std::make_shared<std::atomic<int>>();
+ state.parent = Context::current().get(g_stateKey);
+ return {
+ Context::current().derive(g_stateKey, state),
+ [reason, cancelled(state.cancelled)] { *cancelled = reason; },
+ };
+ }
+ /// If the current context is within a cancelled task, returns the reason.
/// (If the context is within multiple nested tasks, true if any are cancelled).
/// Always zero if there is no active cancelable task.
/// This isn't free (context lookup) - don't call it in a tight loop.
- boost::optional<CancelMonitor> getCancelledMonitor(const lsRequestId& id, const Context& ctx = Context::current()){
- for (const CancelState* state = ctx.get(g_stateKey); state != nullptr;
- state = state->parent)
- {
- if (id != state->id)continue;
- const std::shared_ptr<std::atomic<int> > cancelled = state->cancelled;
- std::function<int()> temp = [=]{
- return cancelled->load();
- };
- return std::move(temp);
- }
-
- return {};
- }
+ boost::optional<CancelMonitor> getCancelledMonitor(const lsRequestId& id, const Context& ctx = Context::current()){
+ for (const CancelState* state = ctx.get(g_stateKey); state != nullptr;
+ state = state->parent)
+ {
+ if (id != state->id)continue;
+ const std::shared_ptr<std::atomic<int> > cancelled = state->cancelled;
+ std::function<int()> temp = [=]{
+ return cancelled->load();
+ };
+ return std::move(temp);
+ }
+
+ return {};
+ }
} // namespace lsp
using namespace lsp;
class PendingRequestInfo
{
- using RequestCallBack = std::function< bool(std::unique_ptr<LspMessage>) >;
+ using RequestCallBack = std::function< bool(std::unique_ptr<LspMessage>) >;
public:
- PendingRequestInfo(const std::string& md,
- const RequestCallBack& callback);
- PendingRequestInfo(const std::string& md);
- PendingRequestInfo() {}
- std::string method;
- RequestCallBack futureInfo;
+ PendingRequestInfo(const std::string& md,
+ const RequestCallBack& callback);
+ PendingRequestInfo(const std::string& md);
+ PendingRequestInfo() {}
+ std::string method;
+ RequestCallBack futureInfo;
};
PendingRequestInfo::PendingRequestInfo(const std::string& _md,
- const RequestCallBack& callback) : method(_md),
- futureInfo(callback)
+ const RequestCallBack& callback) : method(_md),
+ futureInfo(callback)
{
}
@@ -143,470 +143,507 @@ PendingRequestInfo::PendingRequestInfo(const std::string& md) : method(md)
}
struct RemoteEndPoint::Data
{
- explicit Data(lsp::Log& _log , RemoteEndPoint* owner)
- : m_id(0), next_request_cookie(0), message_producer(new StreamMessageProducer(*owner)), log(_log)
- {
-
- }
- ~Data()
- {
- delete message_producer;
- }
- std::atomic<unsigned> m_id;
- boost::threadpool::pool tp;
- // Method calls may be cancelled by ID, so keep track of their state.
+ explicit Data(uint8_t workers,lsp::Log& _log , RemoteEndPoint* owner)
+ : max_workers(workers), m_id(0),next_request_cookie(0), message_producer(new StreamMessageProducer(*owner)), log(_log)
+ {
+
+ }
+ ~Data()
+ {
+ delete message_producer;
+ }
+ uint8_t max_workers;
+ std::atomic<int> m_id;
+ std::shared_ptr<boost::asio::thread_pool> tp;
+ // Method calls may be cancelled by ID, so keep track of their state.
// This needs a mutex: handlers may finish on a different thread, and that's
// when we clean up entries in the map.
- mutable std::mutex request_cancelers_mutex;
-
- std::map< lsRequestId, std::pair<Canceler, /*Cookie*/ unsigned> > requestCancelers;
-
- std::atomic<unsigned> next_request_cookie; // To disambiguate reused IDs, see below.
- void onCancel(Notify_Cancellation::notify* notify) {
- std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
- const auto it = requestCancelers.find(notify->params.id);
- if (it != requestCancelers.end())
- it->second.first(); // Invoke the canceler.
- }
-
- // We run cancelable requests in a context that does two things:
- // - allows cancellation using requestCancelers[ID]
- // - cleans up the entry in requestCancelers when it's no longer needed
- // If a client reuses an ID, the last wins and the first cannot be canceled.
- Context cancelableRequestContext(lsRequestId id) {
- auto task = cancelableTask(id,
- /*Reason=*/static_cast<int>(lsErrorCodes::RequestCancelled));
- unsigned cookie;
- {
- std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
- cookie = next_request_cookie.fetch_add(1, std::memory_order_relaxed);
- requestCancelers[id] = { std::move(task.second), cookie };
- }
- // When the request ends, we can clean up the entry we just added.
- // The cookie lets us check that it hasn't been overwritten due to ID
- // reuse.
- return task.first.derive(lsp::make_scope_exit([this, id, cookie] {
- std::lock_guard<std::mutex> lock(request_cancelers_mutex);
- const auto& it = requestCancelers.find(id);
- if (it != requestCancelers.end() && it->second.second == cookie)
- requestCancelers.erase(it);
- }));
- }
-
- std::map <lsRequestId, std::shared_ptr<PendingRequestInfo>> _client_request_futures;
- StreamMessageProducer* message_producer;
- std::atomic<bool> quit{};
- lsp::Log& log;
- std::shared_ptr<lsp::istream> input;
- std::shared_ptr<lsp::ostream> output;
-
- void pendingRequest(RequestInMessage& info, GenericResponseHandler&& handler)
- {
- auto id = m_id.fetch_add(1, std::memory_order_relaxed);
- info.id.set(id);
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- _client_request_futures[info.id] = std::make_shared<PendingRequestInfo>(info.method, handler);
-
- }
- const std::shared_ptr<const PendingRequestInfo> getRequestInfo(const lsRequestId& _id)
- {
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- auto findIt = _client_request_futures.find(_id);
- if (findIt != _client_request_futures.end())
- {
- return findIt->second;
- }
- return nullptr;
- }
-
- std::mutex m_requsetInfo;
- void removeRequestInfo(const lsRequestId& _id)
- {
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- auto findIt = _client_request_futures.find(_id);
- if (findIt != _client_request_futures.end())
- {
- _client_request_futures.erase(findIt);
- }
- }
- void clear()
- {
- {
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- _client_request_futures.clear();
-
- }
- tp.clear();
- quit.store(true, std::memory_order_relaxed);
- }
+ mutable std::mutex request_cancelers_mutex;
+
+ std::map< lsRequestId, std::pair<Canceler, /*Cookie*/ unsigned> > requestCancelers;
+
+ std::atomic<unsigned> next_request_cookie; // To disambiguate reused IDs, see below.
+ void onCancel(Notify_Cancellation::notify* notify) {
+ std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
+ const auto it = requestCancelers.find(notify->params.id);
+ if (it != requestCancelers.end())
+ it->second.first(); // Invoke the canceler.
+ }
+
+ // We run cancelable requests in a context that does two things:
+ // - allows cancellation using requestCancelers[ID]
+ // - cleans up the entry in requestCancelers when it's no longer needed
+ // If a client reuses an ID, the last wins and the first cannot be canceled.
+ Context cancelableRequestContext(lsRequestId id) {
+ auto task = cancelableTask(id,
+ /*Reason=*/static_cast<int>(lsErrorCodes::RequestCancelled));
+ unsigned cookie;
+ {
+ std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
+ cookie = next_request_cookie.fetch_add(1, std::memory_order_relaxed);
+ requestCancelers[id] = { std::move(task.second), cookie };
+ }
+ // When the request ends, we can clean up the entry we just added.
+ // The cookie lets us check that it hasn't been overwritten due to ID
+ // reuse.
+ return task.first.derive(lsp::make_scope_exit([this, id, cookie] {
+ std::lock_guard<std::mutex> lock(request_cancelers_mutex);
+ const auto& it = requestCancelers.find(id);
+ if (it != requestCancelers.end() && it->second.second == cookie)
+ requestCancelers.erase(it);
+ }));
+ }
+
+ std::map <lsRequestId, std::shared_ptr<PendingRequestInfo>> _client_request_futures;
+ StreamMessageProducer* message_producer;
+ std::atomic<bool> quit{};
+ lsp::Log& log;
+ std::shared_ptr<lsp::istream> input;
+ std::shared_ptr<lsp::ostream> output;
+
+ std::mutex m_requestInfo;
+
+ bool pendingRequest(RequestInMessage& info, GenericResponseHandler&& handler)
+ {
+ bool ret = true;
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ if(!info.id.has_value()){
+ auto id = getNextRequestId();
+ info.id.set(id);
+ }
+ else{
+ if(_client_request_futures.find(info.id) != _client_request_futures.end()){
+ ret = false;
+ }
+ }
+ _client_request_futures[info.id] = std::make_shared<PendingRequestInfo>(info.method, handler);
+ return ret;
+ }
+ const std::shared_ptr<const PendingRequestInfo> getRequestInfo(const lsRequestId& _id)
+ {
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ auto findIt = _client_request_futures.find(_id);
+ if (findIt != _client_request_futures.end())
+ {
+ return findIt->second;
+ }
+ return nullptr;
+ }
+
+ void removeRequestInfo(const lsRequestId& _id)
+ {
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ auto findIt = _client_request_futures.find(_id);
+ if (findIt != _client_request_futures.end())
+ {
+ _client_request_futures.erase(findIt);
+ }
+ }
+ void clear()
+ {
+ {
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ _client_request_futures.clear();
+ }
+ if(tp){
+ tp->stop();
+ }
+ quit.store(true, std::memory_order_relaxed);
+ }
+
+ int getNextRequestId()
+ {
+ return m_id.fetch_add(1, std::memory_order_relaxed);
+ }
};
namespace
{
void WriterMsg(std::shared_ptr<lsp::ostream>& output, LspMessage& msg)
{
- const auto& s = msg.ToJson();
- const auto value =
- std::string("Content-Length: ") + std::to_string(s.size()) + "\r\n\r\n" + s;
- output->write(value);
- output->flush();
+ const auto& s = msg.ToJson();
+ const auto value =
+ std::string("Content-Length: ") + std::to_string(s.size()) + "\r\n\r\n" + s;
+ output->write(value);
+ output->flush();
}
bool isResponseMessage(JsonReader& visitor)
{
- if (!visitor.HasMember("id"))
- {
- return false;
- }
+ if (!visitor.HasMember("id"))
+ {
+ return false;
+ }
- if (!visitor.HasMember("result") && !visitor.HasMember("error"))
- {
- return false;
- }
+ if (!visitor.HasMember("result") && !visitor.HasMember("error"))
+ {
+ return false;
+ }
- return true;
+ return true;
}
bool isRequestMessage(JsonReader& visitor)
{
- if (!visitor.HasMember("method"))
- {
- return false;
- }
- if (!visitor["method"]->IsString())
- {
- return false;
- }
- if (!visitor.HasMember("id"))
- {
- return false;
- }
- return true;
+ if (!visitor.HasMember("method"))
+ {
+ return false;
+ }
+ if (!visitor["method"]->IsString())
+ {
+ return false;
+ }
+ if (!visitor.HasMember("id"))
+ {
+ return false;
+ }
+ return true;
}
bool isNotificationMessage(JsonReader& visitor)
{
- if (!visitor.HasMember("method"))
- {
- return false;
- }
- if (!visitor["method"]->IsString())
- {
- return false;
- }
- if (visitor.HasMember("id"))
- {
- return false;
- }
- return true;
+ if (!visitor.HasMember("method"))
+ {
+ return false;
+ }
+ if (!visitor["method"]->IsString())
+ {
+ return false;
+ }
+ if (visitor.HasMember("id"))
+ {
+ return false;
+ }
+ return true;
}
}
CancelMonitor RemoteEndPoint::getCancelMonitor(const lsRequestId& id)
{
- auto monitor = getCancelledMonitor(id);
- if(monitor.has_value())
- {
- return monitor.value();
- }
- return [] {
- return 0;
- };
+ auto monitor = getCancelledMonitor(id);
+ if(monitor.has_value())
+ {
+ return monitor.value();
+ }
+ return [] {
+ return 0;
+ };
}
RemoteEndPoint::RemoteEndPoint(
- const std::shared_ptr < MessageJsonHandler >& json_handler,const std::shared_ptr < Endpoint>& localEndPoint, lsp::Log& _log, uint8_t max_workers):
- d_ptr(new Data(_log,this)),jsonHandler(json_handler), local_endpoint(localEndPoint)
+ const std::shared_ptr < MessageJsonHandler >& json_handler,const std::shared_ptr < Endpoint>& localEndPoint, lsp::Log& _log, uint8_t max_workers):
+ d_ptr(new Data(max_workers,_log,this)),jsonHandler(json_handler), local_endpoint(localEndPoint)
{
- jsonHandler->method2notification[Notify_Cancellation::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_Cancellation::notify::ReflectReader(visitor);
- };
+ jsonHandler->method2notification[Notify_Cancellation::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_Cancellation::notify::ReflectReader(visitor);
+ };
+
+ d_ptr->quit.store(false, std::memory_order_relaxed);
- d_ptr->quit.store(false, std::memory_order_relaxed);
- d_ptr->tp.size_controller().resize(max_workers);
}
RemoteEndPoint::~RemoteEndPoint()
{
- delete d_ptr;
- d_ptr->quit.store(true, std::memory_order_relaxed);
+ delete d_ptr;
+ d_ptr->quit.store(true, std::memory_order_relaxed);
}
bool RemoteEndPoint::dispatch(const std::string& content)
{
- rapidjson::Document document;
- document.Parse(content.c_str(), content.length());
- if (document.HasParseError())
- {
- std::string info ="lsp msg format error:";
- rapidjson::GetParseErrorFunc GetParseError = rapidjson::GetParseError_En; // or whatever
- info+= GetParseError(document.GetParseError());
- info += "\n";
- info += "ErrorContext offset:\n";
- info += content.substr(document.GetErrorOffset());
- d_ptr->log.log(Log::Level::SEVERE, info);
-
- return false;
- }
-
- JsonReader visitor{ &document };
- if (!visitor.HasMember("jsonrpc") ||
- std::string(visitor["jsonrpc"]->GetString()) != "2.0")
- {
- std::string reason;
- reason = "Reason:Bad or missing jsonrpc version\n";
- reason += "content:\n" + content;
- d_ptr->log.log(Log::Level::SEVERE, reason);
- return false;
-
- }
- LspMessage::Kind _kind = LspMessage::NOTIFICATION_MESSAGE;
- try {
- if (isRequestMessage(visitor))
- {
- _kind = LspMessage::REQUEST_MESSAGE;
- auto msg = jsonHandler->parseRequstMessage(visitor["method"]->GetString(), visitor);
- if (msg) {
- mainLoop(std::move(msg));
- }
- else {
- std::string info = "Unknown support request message when consumer message:\n";
- info += content;
- d_ptr->log.log(Log::Level::WARNING, info);
- return false;
- }
- }
- else if (isResponseMessage(visitor))
- {
- _kind = LspMessage::RESPONCE_MESSAGE;
- lsRequestId id;
- ReflectMember(visitor, "id", id);
-
- auto msgInfo = d_ptr->getRequestInfo(id);
- if (!msgInfo)
- {
- std::pair<std::string, std::unique_ptr<LspMessage>> result;
- auto b = jsonHandler->resovleResponseMessage(visitor, result);
- if (b)
- {
- result.second->SetMethodType(result.first.c_str());
- mainLoop(std::move(result.second));
- }
- else
- {
- std::string info = "Unknown response message :\n";
- info += content;
- d_ptr->log.log(Log::Level::INFO, info);
- }
- }
- else
- {
-
- auto msg = jsonHandler->parseResponseMessage(msgInfo->method, visitor);
- if (msg) {
- mainLoop(std::move(msg));
- }
- else
- {
- std::string info = "Unknown response message :\n";
- info += content;
- d_ptr->log.log(Log::Level::SEVERE, info);
- return false;
- }
-
- }
- }
- else if (isNotificationMessage(visitor))
- {
- auto msg = jsonHandler->parseNotificationMessage(visitor["method"]->GetString(), visitor);
- if (!msg)
- {
- std::string info = "Unknown notification message :\n";
- info += content;
- d_ptr->log.log(Log::Level::SEVERE, info);
- return false;
- }
- mainLoop(std::move(msg));
- }
- else
- {
- std::string info = "Unknown lsp message when consumer message:\n";
- info += content;
- d_ptr->log.log(Log::Level::WARNING, info);
- return false;
- }
- }
- catch (std::exception& e)
- {
-
- std::string info = "Exception when process ";
- if(_kind==LspMessage::REQUEST_MESSAGE)
- {
- info += "request";
- }
- if (_kind == LspMessage::RESPONCE_MESSAGE)
- {
- info += "response";
- }
- else
- {
- info += "notification";
- }
- info += " message:\n";
- info += e.what();
- std::string reason = "Reason:" + info + "\n";
- reason += "content:\n" + content;
- d_ptr->log.log(Log::Level::SEVERE, reason);
- return false;
- }
- return true;
+ rapidjson::Document document;
+ document.Parse(content.c_str(), content.length());
+ if (document.HasParseError())
+ {
+ std::string info ="lsp msg format error:";
+ rapidjson::GetParseErrorFunc GetParseError = rapidjson::GetParseError_En; // or whatever
+ info+= GetParseError(document.GetParseError());
+ info += "\n";
+ info += "ErrorContext offset:\n";
+ info += content.substr(document.GetErrorOffset());
+ d_ptr->log.log(Log::Level::SEVERE, info);
+
+ return false;
+ }
+
+ JsonReader visitor{ &document };
+ if (!visitor.HasMember("jsonrpc") ||
+ std::string(visitor["jsonrpc"]->GetString()) != "2.0")
+ {
+ std::string reason;
+ reason = "Reason:Bad or missing jsonrpc version\n";
+ reason += "content:\n" + content;
+ d_ptr->log.log(Log::Level::SEVERE, reason);
+ return false;
+
+ }
+ LspMessage::Kind _kind = LspMessage::NOTIFICATION_MESSAGE;
+ try {
+ if (isRequestMessage(visitor))
+ {
+ _kind = LspMessage::REQUEST_MESSAGE;
+ auto msg = jsonHandler->parseRequstMessage(visitor["method"]->GetString(), visitor);
+ if (msg) {
+ mainLoop(std::move(msg));
+ }
+ else {
+ std::string info = "Unknown support request message when consumer message:\n";
+ info += content;
+ d_ptr->log.log(Log::Level::WARNING, info);
+ return false;
+ }
+ }
+ else if (isResponseMessage(visitor))
+ {
+ _kind = LspMessage::RESPONCE_MESSAGE;
+ lsRequestId id;
+ ReflectMember(visitor, "id", id);
+
+ auto msgInfo = d_ptr->getRequestInfo(id);
+ if (!msgInfo)
+ {
+ std::string info = "Unknown response message :\n";
+ info += content;
+ d_ptr->log.log(Log::Level::INFO, info);
+ }
+ else
+ {
+
+ auto msg = jsonHandler->parseResponseMessage(msgInfo->method, visitor);
+ if (msg) {
+ mainLoop(std::move(msg));
+ }
+ else
+ {
+ std::string info = "Unknown response message :\n";
+ info += content;
+ d_ptr->log.log(Log::Level::SEVERE, info);
+ return false;
+ }
+
+ }
+ }
+ else if (isNotificationMessage(visitor))
+ {
+ auto msg = jsonHandler->parseNotificationMessage(visitor["method"]->GetString(), visitor);
+ if (!msg)
+ {
+ std::string info = "Unknown notification message :\n";
+ info += content;
+ d_ptr->log.log(Log::Level::SEVERE, info);
+ return false;
+ }
+ mainLoop(std::move(msg));
+ }
+ else
+ {
+ std::string info = "Unknown lsp message when consumer message:\n";
+ info += content;
+ d_ptr->log.log(Log::Level::WARNING, info);
+ return false;
+ }
+ }
+ catch (std::exception& e)
+ {
+
+ std::string info = "Exception when process ";
+ if(_kind==LspMessage::REQUEST_MESSAGE)
+ {
+ info += "request";
+ }
+ if (_kind == LspMessage::RESPONCE_MESSAGE)
+ {
+ info += "response";
+ }
+ else
+ {
+ info += "notification";
+ }
+ info += " message:\n";
+ info += e.what();
+ std::string reason = "Reason:" + info + "\n";
+ reason += "content:\n" + content;
+ d_ptr->log.log(Log::Level::SEVERE, reason);
+ return false;
+ }
+ return true;
}
-void RemoteEndPoint::internalSendRequest( RequestInMessage& info, GenericResponseHandler handler)
+bool RemoteEndPoint::internalSendRequest(RequestInMessage& info, GenericResponseHandler handler)
{
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!d_ptr->output || d_ptr->output->bad())
- {
- std::string desc = "Output isn't good any more:\n";
- d_ptr->log.log(Log::Level::INFO, desc);
- return ;
- }
- d_ptr->pendingRequest(info, std::move(handler));
- WriterMsg(d_ptr->output, info);
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!d_ptr->output || d_ptr->output->bad())
+ {
+ std::string desc = "Output isn't good any more:\n";
+ d_ptr->log.log(Log::Level::WARNING, desc);
+ return false;
+ }
+ if(!d_ptr->pendingRequest(info, std::move(handler)))
+ {
+ std::string desc = "Duplicate id which of request:";
+ desc += info.ToJson();
+ desc += "\n";
+ d_ptr->log.log(Log::Level::WARNING, desc);
+ }
+ WriterMsg(d_ptr->output, info);
+ return true;
}
-
+int RemoteEndPoint::getNextRequestId(){
+ return d_ptr->getNextRequestId();
+}
+bool RemoteEndPoint::cancelRequest(const lsRequestId& id){
+ if(!isWorking()){
+ return false;
+ }
+ auto msgInfo = d_ptr->getRequestInfo(id);
+ if (msgInfo){
+ Notify_Cancellation::notify cancel_notify;
+ cancel_notify.params.id = id;
+ send(cancel_notify);
+ return true;
+ }
+ return false;
+}
std::unique_ptr<LspMessage> RemoteEndPoint::internalWaitResponse(RequestInMessage& request, unsigned time_out)
{
- auto eventFuture = std::make_shared< Condition< LspMessage > >();
- internalSendRequest(request, [=](std::unique_ptr<LspMessage> data)
- {
- eventFuture->notify(std::move(data));
- return true;
- });
- return eventFuture->wait(time_out);
+ auto eventFuture = std::make_shared< Condition< LspMessage > >();
+ internalSendRequest(request, [=](std::unique_ptr<LspMessage> data)
+ {
+ eventFuture->notify(std::move(data));
+ return true;
+ });
+ return eventFuture->wait(time_out);
}
void RemoteEndPoint::mainLoop(std::unique_ptr<LspMessage>msg)
{
- if(d_ptr->quit.load(std::memory_order_relaxed))
- {
- return;
- }
- const auto _kind = msg->GetKid();
- if (_kind == LspMessage::REQUEST_MESSAGE)
- {
- auto req = static_cast<RequestInMessage*>(msg.get());
- // Calls can be canceled by the client. Add cancellation context.
- WithContext WithCancel(d_ptr->cancelableRequestContext(req->id));
- local_endpoint->onRequest(std::move(msg));
- }
-
- else if (_kind == LspMessage::RESPONCE_MESSAGE)
- {
- auto response = static_cast<ResponseInMessage*>(msg.get());
- auto msgInfo = d_ptr->getRequestInfo(response->id);
- if (!msgInfo)
- {
- const auto _method_desc = msg->GetMethodType();
- local_endpoint->onResponse(_method_desc, std::move(msg));
- }
- else
- {
- bool needLocal = true;
- if (msgInfo->futureInfo)
- {
- if (msgInfo->futureInfo(std::move(msg)))
- {
- needLocal = false;
- }
- }
- if (needLocal)
- {
- local_endpoint->onResponse(msgInfo->method, std::move(msg));
- }
- d_ptr->removeRequestInfo(response->id);
- }
- }
- else if (_kind == LspMessage::NOTIFICATION_MESSAGE)
- {
- if (strcmp(Notify_Cancellation::notify::kMethodInfo, msg->GetMethodType())==0)
- {
- d_ptr->onCancel(static_cast<Notify_Cancellation::notify*>(msg.get()));
- }
- else
- {
- local_endpoint->notify(std::move(msg));
- }
-
- }
- else
- {
- std::string info = "Unknown lsp message when process message in mainLoop:\n";
- d_ptr->log.log(Log::Level::WARNING, info);
- }
+ if(d_ptr->quit.load(std::memory_order_relaxed))
+ {
+ return;
+ }
+ const auto _kind = msg->GetKid();
+ if (_kind == LspMessage::REQUEST_MESSAGE)
+ {
+ auto req = static_cast<RequestInMessage*>(msg.get());
+ // Calls can be canceled by the client. Add cancellation context.
+ WithContext WithCancel(d_ptr->cancelableRequestContext(req->id));
+ local_endpoint->onRequest(std::move(msg));
+ }
+
+ else if (_kind == LspMessage::RESPONCE_MESSAGE)
+ {
+ const auto id = static_cast<ResponseInMessage*>(msg.get())->id;
+ auto msgInfo = d_ptr->getRequestInfo(id);
+ if (!msgInfo)
+ {
+ const auto _method_desc = msg->GetMethodType();
+ local_endpoint->onResponse(_method_desc, std::move(msg));
+ }
+ else
+ {
+ bool needLocal = true;
+ if (msgInfo->futureInfo)
+ {
+ if (msgInfo->futureInfo(std::move(msg)))
+ {
+ needLocal = false;
+ }
+ }
+ if (needLocal)
+ {
+ local_endpoint->onResponse(msgInfo->method, std::move(msg));
+ }
+ d_ptr->removeRequestInfo(id);
+ }
+ }
+ else if (_kind == LspMessage::NOTIFICATION_MESSAGE)
+ {
+ if (strcmp(Notify_Cancellation::notify::kMethodInfo, msg->GetMethodType())==0)
+ {
+ d_ptr->onCancel(static_cast<Notify_Cancellation::notify*>(msg.get()));
+ }
+ else
+ {
+ local_endpoint->notify(std::move(msg));
+ }
+
+ }
+ else
+ {
+ std::string info = "Unknown lsp message when process message in mainLoop:\n";
+ d_ptr->log.log(Log::Level::WARNING, info);
+ }
}
void RemoteEndPoint::handle(std::vector<MessageIssue>&& issue)
{
- for(auto& it : issue)
- {
- d_ptr->log.log(it.code, it.text);
- }
+ for(auto& it : issue)
+ {
+ d_ptr->log.log(it.code, it.text);
+ }
}
void RemoteEndPoint::handle(MessageIssue&& issue)
{
- d_ptr->log.log(issue.code, issue.text);
+ d_ptr->log.log(issue.code, issue.text);
}
void RemoteEndPoint::startProcessingMessages(std::shared_ptr<lsp::istream> r,
- std::shared_ptr<lsp::ostream> w)
+ std::shared_ptr<lsp::ostream> w)
{
- d_ptr->quit.store(false, std::memory_order_relaxed);
- d_ptr->input = r;
- d_ptr->output = w;
- d_ptr->message_producer->bind(r);
- message_producer_thread_ = std::make_shared<std::thread>([&]()
+ d_ptr->quit.store(false, std::memory_order_relaxed);
+ d_ptr->input = r;
+ d_ptr->output = w;
+ d_ptr->message_producer->bind(r);
+ d_ptr->tp = std::make_shared<boost::asio::thread_pool>(d_ptr->max_workers);
+ message_producer_thread_ = std::make_shared<std::thread>([&]()
{
- d_ptr->message_producer->listen([&](std::string&& content){
- const auto temp = std::make_shared<std::string>(std::move(content));
- d_ptr->tp.schedule([this, temp]{
+ d_ptr->message_producer->listen([&](std::string&& content){
+ const auto temp = std::make_shared<std::string>(std::move(content));
+ boost::asio::post(*d_ptr->tp,
+ [this, temp]{
#ifdef USEGC
GCThreadContext gcContext;
#endif
- dispatch(*temp);
- });
- });
- });
+ dispatch(*temp);
+ });
+ });
+ });
}
-void RemoteEndPoint::Stop()
+void RemoteEndPoint::stop()
{
- if(message_producer_thread_ && message_producer_thread_->joinable())
- {
- message_producer_thread_->detach();
- }
- d_ptr->clear();
+ if(message_producer_thread_ && message_producer_thread_->joinable())
+ {
+ message_producer_thread_->detach();
+ message_producer_thread_ = nullptr;
+ }
+ d_ptr->clear();
}
void RemoteEndPoint::sendMsg( LspMessage& msg)
{
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!d_ptr->output || d_ptr->output->bad())
- {
- std::string info = "Output isn't good any more:\n";
- d_ptr->log.log(Log::Level::INFO, info);
- return;
- }
- WriterMsg(d_ptr->output, msg);
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!d_ptr->output || d_ptr->output->bad())
+ {
+ std::string info = "Output isn't good any more:\n";
+ d_ptr->log.log(Log::Level::INFO, info);
+ return;
+ }
+ WriterMsg(d_ptr->output, msg);
+
+}
+bool RemoteEndPoint::isWorking() const {
+ if (message_producer_thread_ && message_producer_thread_->joinable())
+ return true;
+ return false;
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
index 119e9040bdc..cc14d620762 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
@@ -7,185 +7,185 @@
bool StartsWith(std::string value, std::string start);
bool StartsWith(std::string value, std::string start) {
- if (start.size() > value.size())
- return false;
- return std::equal(start.begin(), start.end(), value.begin());
+ if (start.size() > value.size())
+ return false;
+ return std::equal(start.begin(), start.end(), value.begin());
}
using namespace std;
namespace
{
- string JSONRPC_VERSION = "2.0";
- string CONTENT_LENGTH_HEADER = "Content-Length";
- string CONTENT_TYPE_HEADER = "Content-Type";
- string JSON_MIME_TYPE = "application/json";
- string CRLF = "\r\n";
+ string JSONRPC_VERSION = "2.0";
+ string CONTENT_LENGTH_HEADER = "Content-Length";
+ string CONTENT_TYPE_HEADER = "Content-Type";
+ string JSON_MIME_TYPE = "application/json";
+ string CRLF = "\r\n";
}
void StreamMessageProducer::parseHeader(std::string& line, StreamMessageProducer::Headers& headers)
{
- int sepIndex = line.find(':');
- if (sepIndex >= 0) {
- auto key = line.substr(0, sepIndex);
- if(key == CONTENT_LENGTH_HEADER)
- {
- headers.contentLength = atoi(line.substr(sepIndex + 1).data());
- }
- else if(key == CONTENT_TYPE_HEADER)
- {
- int charsetIndex = line.find("charset=");
- if (charsetIndex >= 0)
- headers.charset = line.substr(charsetIndex + 8);
- }
- }
+ int sepIndex = line.find(':');
+ if (sepIndex >= 0) {
+ auto key = line.substr(0, sepIndex);
+ if(key == CONTENT_LENGTH_HEADER)
+ {
+ headers.contentLength = atoi(line.substr(sepIndex + 1).data());
+ }
+ else if(key == CONTENT_TYPE_HEADER)
+ {
+ int charsetIndex = line.find("charset=");
+ if (charsetIndex >= 0)
+ headers.charset = line.substr(charsetIndex + 8);
+ }
+ }
}
-
+
void StreamMessageProducer::listen(MessageConsumer callBack)
{
- if(!input)
- return;
-
- keepRunning = true;
- bool newLine = false;
- Headers headers;
- string headerBuilder ;
- string debugBuilder ;
- // Read the content length. It is terminated by the "\r\n" sequence.
- while (keepRunning)
- {
- if(input->bad())
- {
- std::string info = "Input stream is bad.";
- auto what = input->what();
- if (what.size())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::SEVERE);
- issueHandler.handle(std::move(issue));
- return;
- }
- if(input->fail())
- {
- std::string info = "Input fail.";
- auto what = input->what();
- if(what.size())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::WARNING);
- issueHandler.handle(std::move(issue));
- if(input->need_to_clear_the_state())
- input->clear();
- else
- {
- return;
- }
- }
- int c = input->get();
- if (c == EOF) {
- // End of input stream has been reached
- keepRunning = false;
- }
- else
- {
-
- debugBuilder.push_back((char)c);
- if (c == '\n')
- {
- if (newLine) {
- // Two consecutive newlines have been read, which signals the start of the message content
- if (headers.contentLength <= 0)
- {
- string info = "Unexpected token:" + debugBuilder;
- info = +" (expected Content-Length: sequence);";
- MessageIssue issue(info, lsp::Log::Level::WARNING);
- issueHandler.handle(std::move(issue));
- }
- else {
- bool result = handleMessage(headers,callBack);
- if (!result)
- keepRunning = false;
- newLine = false;
- }
- headers.clear();
- debugBuilder.clear();
- }
- else if (!headerBuilder.empty()) {
- // A single newline ends a header line
- parseHeader(headerBuilder, headers);
- headerBuilder.clear();
- }
- newLine = true;
- }
- else if (c != '\r') {
- // Add the input to the current header line
-
- headerBuilder.push_back((char)c);
- newLine = false;
- }
- }
- }
+ if(!input)
+ return;
+
+ keepRunning = true;
+ bool newLine = false;
+ Headers headers;
+ string headerBuilder ;
+ string debugBuilder ;
+ // Read the content length. It is terminated by the "\r\n" sequence.
+ while (keepRunning)
+ {
+ if(input->bad())
+ {
+ std::string info = "Input stream is bad.";
+ auto what = input->what();
+ if (what.size())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::SEVERE);
+ issueHandler.handle(std::move(issue));
+ return;
+ }
+ if(input->fail())
+ {
+ std::string info = "Input fail.";
+ auto what = input->what();
+ if(what.size())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::WARNING);
+ issueHandler.handle(std::move(issue));
+ if(input->need_to_clear_the_state())
+ input->clear();
+ else
+ {
+ return;
+ }
+ }
+ int c = input->get();
+ if (c == EOF) {
+ // End of input stream has been reached
+ keepRunning = false;
+ }
+ else
+ {
+
+ debugBuilder.push_back((char)c);
+ if (c == '\n')
+ {
+ if (newLine) {
+ // Two consecutive newlines have been read, which signals the start of the message content
+ if (headers.contentLength <= 0)
+ {
+ string info = "Unexpected token:" + debugBuilder;
+ info = +" (expected Content-Length: sequence);";
+ MessageIssue issue(info, lsp::Log::Level::WARNING);
+ issueHandler.handle(std::move(issue));
+ }
+ else {
+ bool result = handleMessage(headers,callBack);
+ if (!result)
+ keepRunning = false;
+ newLine = false;
+ }
+ headers.clear();
+ debugBuilder.clear();
+ }
+ else if (!headerBuilder.empty()) {
+ // A single newline ends a header line
+ parseHeader(headerBuilder, headers);
+ headerBuilder.clear();
+ }
+ newLine = true;
+ }
+ else if (c != '\r') {
+ // Add the input to the current header line
+
+ headerBuilder.push_back((char)c);
+ newLine = false;
+ }
+ }
+ }
}
void StreamMessageProducer::bind(std::shared_ptr<lsp::istream>_in)
{
- input = _in;
+ input = _in;
}
bool StreamMessageProducer::handleMessage(Headers& headers ,MessageConsumer callBack)
{
- // Read content.
- auto content_length = headers.contentLength;
- std::string content(content_length,0);
- auto data = &content[0];
- input->read(data, content_length);
- if (input->bad())
- {
- std::string info = "Input stream is bad.";
- auto what = input->what();
- if (!what.empty())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::SEVERE);
- issueHandler.handle(std::move(issue));
- return false;
- }
-
- if (input->eof())
- {
- MessageIssue issue("No more input when reading content body", lsp::Log::Level::INFO);
- issueHandler.handle(std::move(issue));
- return false;
- }
- if (input->fail())
- {
- std::string info = "Input fail.";
- auto what = input->what();
- if (!what.empty())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::WARNING);
- issueHandler.handle(std::move(issue));
- if (input->need_to_clear_the_state())
- input->clear();
- else
- {
- return false;
- }
- }
-
- callBack(std::move(content));
-
- return true;
+ // Read content.
+ auto content_length = headers.contentLength;
+ std::string content(content_length,0);
+ auto data = &content[0];
+ input->read(data, content_length);
+ if (input->bad())
+ {
+ std::string info = "Input stream is bad.";
+ auto what = input->what();
+ if (!what.empty())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::SEVERE);
+ issueHandler.handle(std::move(issue));
+ return false;
+ }
+
+ if (input->eof())
+ {
+ MessageIssue issue("No more input when reading content body", lsp::Log::Level::INFO);
+ issueHandler.handle(std::move(issue));
+ return false;
+ }
+ if (input->fail())
+ {
+ std::string info = "Input fail.";
+ auto what = input->what();
+ if (!what.empty())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::WARNING);
+ issueHandler.handle(std::move(issue));
+ if (input->need_to_clear_the_state())
+ input->clear();
+ else
+ {
+ return false;
+ }
+ }
+
+ callBack(std::move(content));
+
+ return true;
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
index 37a7a3a3af5..799d0aec9ad 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
@@ -11,39 +11,39 @@
namespace lsp {
- struct tcp_connect_session;
+ struct tcp_connect_session;
- class tcp_stream_wrapper :public istream, public ostream
- {
- public:
- tcp_stream_wrapper(tcp_connect_session& _w);
+ class tcp_stream_wrapper :public istream, public ostream
+ {
+ public:
+ tcp_stream_wrapper(tcp_connect_session& _w);
- tcp_connect_session& session;
- std::atomic<bool> quit{};
- std::shared_ptr < MultiQueueWaiter> request_waiter;
- ThreadedQueue< char > on_request;
+ tcp_connect_session& session;
+ std::atomic<bool> quit{};
+ std::shared_ptr < MultiQueueWaiter> request_waiter;
+ ThreadedQueue< char > on_request;
std::string error_message;
- bool fail() override
- {
- return bad();
- }
+ bool fail() override
+ {
+ return bad();
+ }
- bool eof() override
- {
- return bad();
- }
- bool good() override
- {
- return !bad();
- }
- tcp_stream_wrapper& read(char* str, std::streamsize count)
+ bool eof() override
+ {
+ return bad();
+ }
+ bool good() override
+ {
+ return !bad();
+ }
+ tcp_stream_wrapper& read(char* str, std::streamsize count)
override
- {
+ {
auto some = on_request.TryDequeueSome(static_cast<size_t>( count ));
memcpy(str,some.data(),some.size());
for (std::streamsize i = some.size(); i < count; ++i)
@@ -51,41 +51,41 @@ namespace lsp {
str[i] = static_cast<char>(get());
}
- return *this;
- }
- int get() override
- {
- return on_request.Dequeue();
- }
+ return *this;
+ }
+ int get() override
+ {
+ return on_request.Dequeue();
+ }
- bool bad() override;
+ bool bad() override;
- tcp_stream_wrapper& write(const std::string& c) override;
+ tcp_stream_wrapper& write(const std::string& c) override;
- tcp_stream_wrapper& write(std::streamsize _s) override;
+ tcp_stream_wrapper& write(std::streamsize _s) override;
- tcp_stream_wrapper& flush() override
- {
- return *this;
- }
- void reset_state()
- {
- return;
- }
+ tcp_stream_wrapper& flush() override
+ {
+ return *this;
+ }
+ void reset_state()
+ {
+ return;
+ }
- void clear() override
- {
+ void clear() override
+ {
- }
+ }
- std::string what() override;
- bool need_to_clear_the_state() override
- {
+ std::string what() override;
+ bool need_to_clear_the_state() override
+ {
return false;
- }
- };
- struct tcp_connect_session:std::enable_shared_from_this<tcp_connect_session>
- {
+ }
+ };
+ struct tcp_connect_session:std::enable_shared_from_this<tcp_connect_session>
+ {
/// Buffer for incoming data.
std::array<unsigned char, 8192> buffer_;
boost::asio::ip::tcp::socket socket_;
@@ -93,7 +93,7 @@ namespace lsp {
boost::asio::io_context::strand strand_;
std::shared_ptr<tcp_stream_wrapper> proxy_;
explicit tcp_connect_session(boost::asio::io_context& io_context, boost::asio::ip::tcp::socket&& _socket)
- : socket_(std::move(_socket)), strand_(io_context), proxy_(new tcp_stream_wrapper(*this))
+ : socket_(std::move(_socket)), strand_(io_context), proxy_(new tcp_stream_wrapper(*this))
{
do_read();
}
@@ -127,22 +127,22 @@ namespace lsp {
}));
}
- };
+ };
- tcp_stream_wrapper::tcp_stream_wrapper(tcp_connect_session& _w): session(_w)
- {
- }
+ tcp_stream_wrapper::tcp_stream_wrapper(tcp_connect_session& _w): session(_w)
+ {
+ }
- bool tcp_stream_wrapper::bad()
+ bool tcp_stream_wrapper::bad()
{
return !session.socket_.is_open();
}
- tcp_stream_wrapper& tcp_stream_wrapper::write(const std::string& c)
- {
- session.do_write(c);
- return *this;
- }
+ tcp_stream_wrapper& tcp_stream_wrapper::write(const std::string& c)
+ {
+ session.do_write(c);
+ return *this;
+ }
tcp_stream_wrapper& tcp_stream_wrapper::write(std::streamsize _s)
{
@@ -150,8 +150,8 @@ namespace lsp {
return *this;
}
- std::string tcp_stream_wrapper::what()
- {
+ std::string tcp_stream_wrapper::what()
+ {
if (error_message.size())
return error_message;
@@ -159,21 +159,21 @@ namespace lsp {
{
return "Socket is not open.";
}
- return {};
- }
+ return {};
+ }
struct TcpServer::Data
{
Data(
lsp::Log& log, uint32_t _max_workers) :
- acceptor_(io_context_), _log(log)
- {
- }
+ acceptor_(io_context_), _log(log)
+ {
+ }
- ~Data()
- {
+ ~Data()
+ {
- }
+ }
/// The io_context used to perform asynchronous operations.
boost::asio::io_context io_context_;
@@ -187,10 +187,10 @@ namespace lsp {
};
- TcpServer::~TcpServer()
- {
+ TcpServer::~TcpServer()
+ {
delete d_ptr;
- }
+ }
TcpServer::TcpServer(const std::string& address, const std::string& port,
std::shared_ptr < MessageJsonHandler> json_handler,
@@ -238,7 +238,7 @@ namespace lsp {
{
try
{
- if(d_ptr->work)
+ if(d_ptr->work)
d_ptr->work.reset();
do_stop();
@@ -262,17 +262,17 @@ namespace lsp {
if (!ec)
{
- if(d_ptr->_connect_session)
- {
- if(d_ptr->_connect_session->socket_.is_open())
- {
+ if(d_ptr->_connect_session)
+ {
+ if(d_ptr->_connect_session->socket_.is_open())
+ {
std::string desc = "Disconnect previous client " + d_ptr->_connect_session->socket_.local_endpoint().address().to_string();
d_ptr->_log.log(lsp::Log::Level::INFO, desc);
d_ptr->_connect_session->socket_.close();
- }
+ }
- point.Stop();
- }
+ point.stop();
+ }
auto local_point = socket.local_endpoint();
std::string desc = ("New client " + local_point.address().to_string() + " connect.");
@@ -289,7 +289,7 @@ namespace lsp {
{
d_ptr->acceptor_.close();
- point.Stop();
+ point.stop();
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
index 127cf2a9f45..80806e848be 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
@@ -115,29 +115,29 @@ namespace lsp {
void close()
{
- if(ws_.is_open())
- {
- boost::system::error_code ec;
- ws_.close(websocket::close_code::normal, ec);
- }
+ if(ws_.is_open())
+ {
+ boost::system::error_code ec;
+ ws_.close(websocket::close_code::normal, ec);
+ }
}
};
//------------------------------------------------------------------------------
- struct WebSocketServer::Data
- {
+ struct WebSocketServer::Data
+ {
Data(const std::string& user_agent, lsp::Log& log) :
- acceptor_(io_context_), user_agent_(user_agent), _log(log)
+ acceptor_(io_context_), user_agent_(user_agent), _log(log)
- {
- }
+ {
+ }
- ~Data()
- {
+ ~Data()
+ {
- }
+ }
/// The io_context used to perform asynchronous operations.
boost::asio::io_context io_context_;
@@ -151,68 +151,68 @@ namespace lsp {
std::string user_agent_;
lsp::Log& _log;
- };
+ };
websocket_stream_wrapper::websocket_stream_wrapper(boost::beast::websocket::stream<boost::beast::tcp_stream>& _w):
- ws_(_w), request_waiter(new MultiQueueWaiter()),
- on_request(request_waiter)
+ ws_(_w), request_waiter(new MultiQueueWaiter()),
+ on_request(request_waiter)
{
}
bool websocket_stream_wrapper::fail()
{
- return bad();
+ return bad();
}
bool websocket_stream_wrapper::eof()
{
- return bad();
+ return bad();
}
bool websocket_stream_wrapper::good()
{
- return !bad();
+ return !bad();
}
websocket_stream_wrapper& websocket_stream_wrapper::read(char* str, std::streamsize count)
{
- auto some = on_request.TryDequeueSome(static_cast<size_t>(count));
+ auto some = on_request.TryDequeueSome(static_cast<size_t>(count));
memcpy(str,some.data(),some.size());
for (std::streamsize i = some.size(); i < count; ++i)
{
str[i] = static_cast<char>(get());
}
- return *this;
+ return *this;
}
int websocket_stream_wrapper::get()
{
- return on_request.Dequeue();
+ return on_request.Dequeue();
}
bool websocket_stream_wrapper::bad()
{
- return !ws_.next_layer().socket().is_open();
+ return !ws_.next_layer().socket().is_open();
}
websocket_stream_wrapper& websocket_stream_wrapper::write(const std::string& c)
{
- ws_.write(boost::asio::buffer(std::string(c)));
- return *this;
+ ws_.write(boost::asio::buffer(std::string(c)));
+ return *this;
}
websocket_stream_wrapper& websocket_stream_wrapper::write(std::streamsize _s)
{
- std::ostringstream temp;
- temp << _s;
- ws_.write(boost::asio::buffer(temp.str()));
- return *this;
+ std::ostringstream temp;
+ temp << _s;
+ ws_.write(boost::asio::buffer(temp.str()));
+ return *this;
}
websocket_stream_wrapper& websocket_stream_wrapper::flush()
{
- return *this;
+ return *this;
}
void websocket_stream_wrapper::clear()
@@ -224,17 +224,17 @@ namespace lsp {
if (!error_message.empty())
return error_message;
- if (!ws_.next_layer().socket().is_open())
- {
- return "Socket is not open.";
- }
- return {};
+ if (!ws_.next_layer().socket().is_open())
+ {
+ return "Socket is not open.";
+ }
+ return {};
}
WebSocketServer::~WebSocketServer()
- {
+ {
delete d_ptr;
- }
+ }
WebSocketServer::WebSocketServer(const std::string& user_agent, const std::string& address, const std::string& port,
std::shared_ptr < MessageJsonHandler> json_handler,
@@ -282,7 +282,7 @@ namespace lsp {
{
try
{
- if(d_ptr->work)
+ if(d_ptr->work)
d_ptr->work.reset();
do_stop();
@@ -305,17 +305,17 @@ namespace lsp {
}
if (!ec)
{
- if(d_ptr->_server_session)
- {
- try
- {
+ if(d_ptr->_server_session)
+ {
+ try
+ {
d_ptr->_server_session->close();
- point.Stop();
- }
- catch (...)
- {
- }
- }
+ point.stop();
+ }
+ catch (...)
+ {
+ }
+ }
d_ptr->_server_session = std::make_shared<server_session>(std::move(socket), d_ptr->user_agent_);
d_ptr->_server_session->run();
@@ -330,7 +330,7 @@ namespace lsp {
{
d_ptr->acceptor_.close();
- point.Stop();
+ point.stop();
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/message.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/message.cpp
index 4a23d2016ab..a9e7736cd70 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/message.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/message.cpp
@@ -8,81 +8,81 @@
#include "LibLsp/JsonRpc/json.h"
void LspMessage::Write(std::ostream& out) {
- rapidjson::StringBuffer output;
- rapidjson::Writer<rapidjson::StringBuffer> writer(output);
- JsonWriter json_writer{ &writer };
- ReflectWriter(json_writer);
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> writer(output);
+ JsonWriter json_writer{ &writer };
+ ReflectWriter(json_writer);
- const auto value = std::string("Content-Length: ") + std::to_string(output.GetSize()) + "\r\n\r\n" + output.GetString();
- out << value;
- out.flush();
+ const auto value = std::string("Content-Length: ") + std::to_string(output.GetSize()) + "\r\n\r\n" + output.GetString();
+ out << value;
+ out.flush();
}
std::string LspMessage::ToJson() {
- rapidjson::StringBuffer output;
- rapidjson::Writer<rapidjson::StringBuffer> writer(output);
- JsonWriter json_writer{ &writer };
- this->ReflectWriter(json_writer);
- return output.GetString();
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> writer(output);
+ JsonWriter json_writer{ &writer };
+ this->ReflectWriter(json_writer);
+ return output.GetString();
}
void Reflect(Reader& visitor, lsRequestId& value) {
- if (visitor.IsInt()) {
- value.type = lsRequestId::kInt;
- value.value = visitor.GetInt();
- }
- else if (visitor.IsInt64()) {
- value.type = lsRequestId::kInt;
- // `lsRequestId.value` is an `int`, so we're forced to truncate.
- value.value = static_cast<int>(visitor.GetInt64());
- }
- else if (visitor.IsString()) {
- value.type = lsRequestId::kString;
- value.k_string = visitor.GetString();
- value.value = atoi(value.k_string.c_str());
-
- }
- else {
- value.type = lsRequestId::kNone;
- value.value = -1;
- }
+ if (visitor.IsInt()) {
+ value.type = lsRequestId::kInt;
+ value.value = visitor.GetInt();
+ }
+ else if (visitor.IsInt64()) {
+ value.type = lsRequestId::kInt;
+ // `lsRequestId.value` is an `int`, so we're forced to truncate.
+ value.value = static_cast<int>(visitor.GetInt64());
+ }
+ else if (visitor.IsString()) {
+ value.type = lsRequestId::kString;
+ value.k_string = visitor.GetString();
+ value.value = atoi(value.k_string.c_str());
+
+ }
+ else {
+ value.type = lsRequestId::kNone;
+ value.value = -1;
+ }
}
void Reflect(Writer& visitor, lsRequestId& value) {
- switch (value.type) {
- case lsRequestId::kNone:
- visitor.Null();
- break;
- case lsRequestId::kInt:
- visitor.Int(value.value);
- break;
- case lsRequestId::kString:
-
- if(value.k_string.empty())
- {
- std::string str = std::to_string(value.value);
- visitor.String(str.c_str(), str.length());
- }
- else
- {
- visitor.String(value.k_string.c_str(), value.k_string.length());
- }
- break;
- }
+ switch (value.type) {
+ case lsRequestId::kNone:
+ visitor.Null();
+ break;
+ case lsRequestId::kInt:
+ visitor.Int(value.value);
+ break;
+ case lsRequestId::kString:
+
+ if(value.k_string.empty())
+ {
+ std::string str = std::to_string(value.value);
+ visitor.String(str.c_str(), str.length());
+ }
+ else
+ {
+ visitor.String(value.k_string.c_str(), value.k_string.length());
+ }
+ break;
+ }
}
std::string ToString(const lsRequestId& id) {
- if (id.type != lsRequestId::kNone)
- {
- if(id.type == lsRequestId::kString)
- {
- if (!id.k_string.empty())
- return id.k_string;
- }
- return std::to_string(id.value);
- }
-
- return "";
+ if (id.type != lsRequestId::kNone)
+ {
+ if(id.type == lsRequestId::kString)
+ {
+ if (!id.k_string.empty())
+ return id.k_string;
+ }
+ return std::to_string(id.value);
+ }
+
+ return "";
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/optional.hpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/optional.hpp
deleted file mode 100644
index 86e3b407c66..00000000000
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/optional.hpp
+++ /dev/null
@@ -1,1846 +0,0 @@
-//
-// Copyright (c) 2014-2021 Martin Moene
-//
-// https://github.com/martinmoene/optional-lite
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#pragma once
-
-#ifndef NONSTD_OPTIONAL_LITE_HPP
-#define NONSTD_OPTIONAL_LITE_HPP
-
-#define optional_lite_MAJOR 3
-#define optional_lite_MINOR 5
-#define optional_lite_PATCH 0
-
-#define optional_lite_VERSION optional_STRINGIFY(optional_lite_MAJOR) "." optional_STRINGIFY(optional_lite_MINOR) "." optional_STRINGIFY(optional_lite_PATCH)
-
-#define optional_STRINGIFY( x ) optional_STRINGIFY_( x )
-#define optional_STRINGIFY_( x ) #x
-
-// optional-lite configuration:
-
-#define optional_OPTIONAL_DEFAULT 0
-#define optional_OPTIONAL_NONSTD 1
-#define optional_OPTIONAL_STD 2
-
-// tweak header support:
-
-#ifdef __has_include
-# if __has_include(<nonstd/optional.tweak.hpp>)
-# include <nonstd/optional.tweak.hpp>
-# endif
-#define optional_HAVE_TWEAK_HEADER 1
-#else
-#define optional_HAVE_TWEAK_HEADER 0
-//# pragma message("optional.hpp: Note: Tweak header not supported.")
-#endif
-
-// optional selection and configuration:
-
-#if !defined( optional_CONFIG_SELECT_OPTIONAL )
-# define optional_CONFIG_SELECT_OPTIONAL ( optional_HAVE_STD_OPTIONAL ? optional_OPTIONAL_STD : optional_OPTIONAL_NONSTD )
-#endif
-
-// Control presence of extensions:
-
-#ifndef optional_CONFIG_NO_EXTENSIONS
-#define optional_CONFIG_NO_EXTENSIONS 0
-#endif
-
-// Control presence of exception handling (try and auto discover):
-
-#ifndef optional_CONFIG_NO_EXCEPTIONS
-# if defined(_MSC_VER)
-# include <cstddef> // for _HAS_EXCEPTIONS
-# endif
-# if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || (_HAS_EXCEPTIONS)
-# define optional_CONFIG_NO_EXCEPTIONS 0
-# else
-# define optional_CONFIG_NO_EXCEPTIONS 1
-# endif
-#endif
-
-// C++ language version detection (C++20 is speculative):
-// Note: VC14.0/1900 (VS2015) lacks too much from C++14.
-
-#ifndef optional_CPLUSPLUS
-# if defined(_MSVC_LANG ) && !defined(__clang__)
-# define optional_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG )
-# else
-# define optional_CPLUSPLUS __cplusplus
-# endif
-#endif
-
-#define optional_CPP98_OR_GREATER ( optional_CPLUSPLUS >= 199711L )
-#define optional_CPP11_OR_GREATER ( optional_CPLUSPLUS >= 201103L )
-#define optional_CPP11_OR_GREATER_ ( optional_CPLUSPLUS >= 201103L )
-#define optional_CPP14_OR_GREATER ( optional_CPLUSPLUS >= 201402L )
-#define optional_CPP17_OR_GREATER ( optional_CPLUSPLUS >= 201703L )
-#define optional_CPP20_OR_GREATER ( optional_CPLUSPLUS >= 202000L )
-
-// C++ language version (represent 98 as 3):
-
-#define optional_CPLUSPLUS_V ( optional_CPLUSPLUS / 100 - (optional_CPLUSPLUS > 200000 ? 2000 : 1994) )
-
-// Use C++17 std::optional if available and requested:
-
-#if optional_CPP17_OR_GREATER && defined(__has_include )
-# if __has_include( <optional> )
-# define optional_HAVE_STD_OPTIONAL 1
-# else
-# define optional_HAVE_STD_OPTIONAL 0
-# endif
-#else
-# define optional_HAVE_STD_OPTIONAL 0
-#endif
-
-#define optional_USES_STD_OPTIONAL ( (optional_CONFIG_SELECT_OPTIONAL == optional_OPTIONAL_STD) || ((optional_CONFIG_SELECT_OPTIONAL == optional_OPTIONAL_DEFAULT) && optional_HAVE_STD_OPTIONAL) )
-
-//
-// in_place: code duplicated in any-lite, expected-lite, optional-lite, value-ptr-lite, variant-lite:
-//
-
-#ifndef nonstd_lite_HAVE_IN_PLACE_TYPES
-#define nonstd_lite_HAVE_IN_PLACE_TYPES 1
-
-// C++17 std::in_place in <utility>:
-
-#if optional_CPP17_OR_GREATER
-
-#include <utility>
-
-namespace nonstd {
-
-using std::in_place;
-using std::in_place_type;
-using std::in_place_index;
-using std::in_place_t;
-using std::in_place_type_t;
-using std::in_place_index_t;
-
-#define nonstd_lite_in_place_t( T) std::in_place_t
-#define nonstd_lite_in_place_type_t( T) std::in_place_type_t<T>
-#define nonstd_lite_in_place_index_t(K) std::in_place_index_t<K>
-
-#define nonstd_lite_in_place( T) std::in_place_t{}
-#define nonstd_lite_in_place_type( T) std::in_place_type_t<T>{}
-#define nonstd_lite_in_place_index(K) std::in_place_index_t<K>{}
-
-} // namespace nonstd
-
-#else // optional_CPP17_OR_GREATER
-
-#include <cstddef>
-
-namespace nonstd {
-namespace detail {
-
-template< class T >
-struct in_place_type_tag {};
-
-template< std::size_t K >
-struct in_place_index_tag {};
-
-} // namespace detail
-
-struct in_place_t {};
-
-template< class T >
-inline in_place_t in_place( detail::in_place_type_tag<T> /*unused*/ = detail::in_place_type_tag<T>() )
-{
- return in_place_t();
-}
-
-template< std::size_t K >
-inline in_place_t in_place( detail::in_place_index_tag<K> /*unused*/ = detail::in_place_index_tag<K>() )
-{
- return in_place_t();
-}
-
-template< class T >
-inline in_place_t in_place_type( detail::in_place_type_tag<T> /*unused*/ = detail::in_place_type_tag<T>() )
-{
- return in_place_t();
-}
-
-template< std::size_t K >
-inline in_place_t in_place_index( detail::in_place_index_tag<K> /*unused*/ = detail::in_place_index_tag<K>() )
-{
- return in_place_t();
-}
-
-// mimic templated typedef:
-
-#define nonstd_lite_in_place_t( T) nonstd::in_place_t(&)( nonstd::detail::in_place_type_tag<T> )
-#define nonstd_lite_in_place_type_t( T) nonstd::in_place_t(&)( nonstd::detail::in_place_type_tag<T> )
-#define nonstd_lite_in_place_index_t(K) nonstd::in_place_t(&)( nonstd::detail::in_place_index_tag<K> )
-
-#define nonstd_lite_in_place( T) nonstd::in_place_type<T>
-#define nonstd_lite_in_place_type( T) nonstd::in_place_type<T>
-#define nonstd_lite_in_place_index(K) nonstd::in_place_index<K>
-
-} // namespace nonstd
-
-#endif // optional_CPP17_OR_GREATER
-#endif // nonstd_lite_HAVE_IN_PLACE_TYPES
-
-//
-// Using std::optional:
-//
-
-#if optional_USES_STD_OPTIONAL
-
-#include <optional>
-
-namespace nonstd {
-
- using std::optional;
- using std::bad_optional_access;
- using std::hash;
-
- using std::nullopt;
- using std::nullopt_t;
-
- using std::operator==;
- using std::operator!=;
- using std::operator<;
- using std::operator<=;
- using std::operator>;
- using std::operator>=;
- using std::make_optional;
- using std::swap;
-}
-
-#else // optional_USES_STD_OPTIONAL
-
-#include <cassert>
-#include <utility>
-
-// optional-lite alignment configuration:
-
-#ifndef optional_CONFIG_MAX_ALIGN_HACK
-# define optional_CONFIG_MAX_ALIGN_HACK 0
-#endif
-
-#ifndef optional_CONFIG_ALIGN_AS
-// no default, used in #if defined()
-#endif
-
-#ifndef optional_CONFIG_ALIGN_AS_FALLBACK
-# define optional_CONFIG_ALIGN_AS_FALLBACK double
-#endif
-
-// Compiler warning suppression:
-
-#if defined(__clang__)
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wundef"
-#elif defined(__GNUC__)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wundef"
-#elif defined(_MSC_VER )
-# pragma warning( push )
-#endif
-
-// half-open range [lo..hi):
-#define optional_BETWEEN( v, lo, hi ) ( (lo) <= (v) && (v) < (hi) )
-
-// Compiler versions:
-//
-// MSVC++ 6.0 _MSC_VER == 1200 optional_COMPILER_MSVC_VERSION == 60 (Visual Studio 6.0)
-// MSVC++ 7.0 _MSC_VER == 1300 optional_COMPILER_MSVC_VERSION == 70 (Visual Studio .NET 2002)
-// MSVC++ 7.1 _MSC_VER == 1310 optional_COMPILER_MSVC_VERSION == 71 (Visual Studio .NET 2003)
-// MSVC++ 8.0 _MSC_VER == 1400 optional_COMPILER_MSVC_VERSION == 80 (Visual Studio 2005)
-// MSVC++ 9.0 _MSC_VER == 1500 optional_COMPILER_MSVC_VERSION == 90 (Visual Studio 2008)
-// MSVC++ 10.0 _MSC_VER == 1600 optional_COMPILER_MSVC_VERSION == 100 (Visual Studio 2010)
-// MSVC++ 11.0 _MSC_VER == 1700 optional_COMPILER_MSVC_VERSION == 110 (Visual Studio 2012)
-// MSVC++ 12.0 _MSC_VER == 1800 optional_COMPILER_MSVC_VERSION == 120 (Visual Studio 2013)
-// MSVC++ 14.0 _MSC_VER == 1900 optional_COMPILER_MSVC_VERSION == 140 (Visual Studio 2015)
-// MSVC++ 14.1 _MSC_VER >= 1910 optional_COMPILER_MSVC_VERSION == 141 (Visual Studio 2017)
-// MSVC++ 14.2 _MSC_VER >= 1920 optional_COMPILER_MSVC_VERSION == 142 (Visual Studio 2019)
-
-#if defined(_MSC_VER ) && !defined(__clang__)
-# define optional_COMPILER_MSVC_VER (_MSC_VER )
-# define optional_COMPILER_MSVC_VERSION (_MSC_VER / 10 - 10 * ( 5 + (_MSC_VER < 1900 ) ) )
-#else
-# define optional_COMPILER_MSVC_VER 0
-# define optional_COMPILER_MSVC_VERSION 0
-#endif
-
-#define optional_COMPILER_VERSION( major, minor, patch ) ( 10 * (10 * (major) + (minor) ) + (patch) )
-
-#if defined(__GNUC__) && !defined(__clang__)
-# define optional_COMPILER_GNUC_VERSION optional_COMPILER_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
-#else
-# define optional_COMPILER_GNUC_VERSION 0
-#endif
-
-#if defined(__clang__)
-# define optional_COMPILER_CLANG_VERSION optional_COMPILER_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__)
-#else
-# define optional_COMPILER_CLANG_VERSION 0
-#endif
-
-#if optional_BETWEEN(optional_COMPILER_MSVC_VERSION, 70, 140 )
-# pragma warning( disable: 4345 ) // initialization behavior changed
-#endif
-
-#if optional_BETWEEN(optional_COMPILER_MSVC_VERSION, 70, 150 )
-# pragma warning( disable: 4814 ) // in C++14 'constexpr' will not imply 'const'
-#endif
-
-// Presence of language and library features:
-
-#define optional_HAVE(FEATURE) ( optional_HAVE_##FEATURE )
-
-#ifdef _HAS_CPP0X
-# define optional_HAS_CPP0X _HAS_CPP0X
-#else
-# define optional_HAS_CPP0X 0
-#endif
-
-// Unless defined otherwise below, consider VC14 as C++11 for optional-lite:
-
-#if optional_COMPILER_MSVC_VER >= 1900
-# undef optional_CPP11_OR_GREATER
-# define optional_CPP11_OR_GREATER 1
-#endif
-
-#define optional_CPP11_90 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1500)
-#define optional_CPP11_100 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1600)
-#define optional_CPP11_110 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1700)
-#define optional_CPP11_120 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1800)
-#define optional_CPP11_140 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1900)
-#define optional_CPP11_141 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1910)
-
-#define optional_CPP14_000 (optional_CPP14_OR_GREATER)
-#define optional_CPP17_000 (optional_CPP17_OR_GREATER)
-
-// clang >= 2.9, gcc >= 4.9, msvc >= vc14.0/1900 (vs15):
-#define optional_CPP11_140_C290_G490 ((optional_CPP11_OR_GREATER_ && (optional_COMPILER_CLANG_VERSION >= 290 || optional_COMPILER_GNUC_VERSION >= 490)) || (optional_COMPILER_MSVC_VER >= 1900))
-
-// clang >= 3.5, msvc >= vc11 (vs12):
-#define optional_CPP11_110_C350 ( optional_CPP11_110 && !optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1, 350 ) )
-
-// clang >= 3.5, gcc >= 5.0, msvc >= vc11 (vs12):
-#define optional_CPP11_110_C350_G500 \
- ( optional_CPP11_110 && \
- !( optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1, 350 ) \
- || optional_BETWEEN( optional_COMPILER_GNUC_VERSION , 1, 500 ) ) )
-
-// Presence of C++11 language features:
-
-#define optional_HAVE_CONSTEXPR_11 optional_CPP11_140
-#define optional_HAVE_IS_DEFAULT optional_CPP11_140
-#define optional_HAVE_NOEXCEPT optional_CPP11_140
-#define optional_HAVE_NULLPTR optional_CPP11_100
-#define optional_HAVE_REF_QUALIFIER optional_CPP11_140_C290_G490
-#define optional_HAVE_STATIC_ASSERT optional_CPP11_110
-#define optional_HAVE_INITIALIZER_LIST optional_CPP11_140
-
-// Presence of C++14 language features:
-
-#define optional_HAVE_CONSTEXPR_14 optional_CPP14_000
-
-// Presence of C++17 language features:
-
-#define optional_HAVE_NODISCARD optional_CPP17_000
-
-// Presence of C++ library features:
-
-#define optional_HAVE_CONDITIONAL optional_CPP11_120
-#define optional_HAVE_REMOVE_CV optional_CPP11_120
-#define optional_HAVE_TYPE_TRAITS optional_CPP11_90
-
-#define optional_HAVE_TR1_TYPE_TRAITS (!! optional_COMPILER_GNUC_VERSION )
-#define optional_HAVE_TR1_ADD_POINTER (!! optional_COMPILER_GNUC_VERSION )
-
-#define optional_HAVE_IS_ASSIGNABLE optional_CPP11_110_C350
-#define optional_HAVE_IS_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350
-#define optional_HAVE_IS_NOTHROW_MOVE_ASSIGNABLE optional_CPP11_110_C350
-#define optional_HAVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350
-#define optional_HAVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE optional_CPP11_110_C350_G500
-#define optional_HAVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350_G500
-
-// C++ feature usage:
-
-#if optional_HAVE( CONSTEXPR_11 )
-# define optional_constexpr constexpr
-#else
-# define optional_constexpr /*constexpr*/
-#endif
-
-#if optional_HAVE( IS_DEFAULT )
-# define optional_is_default = default;
-#else
-# define optional_is_default {}
-#endif
-
-#if optional_HAVE( CONSTEXPR_14 )
-# define optional_constexpr14 constexpr
-#else
-# define optional_constexpr14 /*constexpr*/
-#endif
-
-#if optional_HAVE( NODISCARD )
-# define optional_nodiscard [[nodiscard]]
-#else
-# define optional_nodiscard /*[[nodiscard]]*/
-#endif
-
-#if optional_HAVE( NOEXCEPT )
-# define optional_noexcept noexcept
-#else
-# define optional_noexcept /*noexcept*/
-#endif
-
-#if optional_HAVE( NULLPTR )
-# define optional_nullptr nullptr
-#else
-# define optional_nullptr NULL
-#endif
-
-#if optional_HAVE( REF_QUALIFIER )
-// NOLINTNEXTLINE( bugprone-macro-parentheses )
-# define optional_ref_qual &
-# define optional_refref_qual &&
-#else
-# define optional_ref_qual /*&*/
-# define optional_refref_qual /*&&*/
-#endif
-
-#if optional_HAVE( STATIC_ASSERT )
-# define optional_static_assert(expr, text) static_assert(expr, text);
-#else
-# define optional_static_assert(expr, text) /*static_assert(expr, text);*/
-#endif
-
-// additional includes:
-
-#if optional_CONFIG_NO_EXCEPTIONS
-// already included: <cassert>
-#else
-# include <stdexcept>
-#endif
-
-#if optional_CPP11_OR_GREATER
-# include <functional>
-#endif
-
-#if optional_HAVE( INITIALIZER_LIST )
-# include <initializer_list>
-#endif
-
-#if optional_HAVE( TYPE_TRAITS )
-# include <type_traits>
-#elif optional_HAVE( TR1_TYPE_TRAITS )
-# include <tr1/type_traits>
-#endif
-
-// Method enabling
-
-#if optional_CPP11_OR_GREATER
-
-#define optional_REQUIRES_0(...) \
- template< bool B = (__VA_ARGS__), typename std::enable_if<B, int>::type = 0 >
-
-#define optional_REQUIRES_T(...) \
- , typename std::enable_if< (__VA_ARGS__), int >::type = 0
-
-#define optional_REQUIRES_R(R, ...) \
- typename std::enable_if< (__VA_ARGS__), R>::type
-
-#define optional_REQUIRES_A(...) \
- , typename std::enable_if< (__VA_ARGS__), void*>::type = nullptr
-
-#endif
-
-//
-// optional:
-//
-
-namespace nonstd { namespace optional_lite {
-
-namespace std11 {
-
-template< class T, T v > struct integral_constant { enum { value = v }; };
-template< bool B > struct bool_constant : integral_constant<bool, B>{};
-
-typedef bool_constant< true > true_type;
-typedef bool_constant< false > false_type;
-
-#if optional_CPP11_OR_GREATER
- using std::move;
-#else
- template< typename T > T & move( T & t ) { return t; }
-#endif
-
-#if optional_HAVE( CONDITIONAL )
- using std::conditional;
-#else
- template< bool B, typename T, typename F > struct conditional { typedef T type; };
- template< typename T, typename F > struct conditional<false, T, F> { typedef F type; };
-#endif // optional_HAVE_CONDITIONAL
-
-#if optional_HAVE( IS_ASSIGNABLE )
- using std::is_assignable;
-#else
- template< class T, class U > struct is_assignable : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_MOVE_CONSTRUCTIBLE )
- using std::is_move_constructible;
-#else
- template< class T > struct is_move_constructible : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_NOTHROW_MOVE_ASSIGNABLE )
- using std::is_nothrow_move_assignable;
-#else
- template< class T > struct is_nothrow_move_assignable : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_NOTHROW_MOVE_CONSTRUCTIBLE )
- using std::is_nothrow_move_constructible;
-#else
- template< class T > struct is_nothrow_move_constructible : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_TRIVIALLY_COPY_CONSTRUCTIBLE )
- using std::is_trivially_copy_constructible;
-#else
- template< class T > struct is_trivially_copy_constructible : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_TRIVIALLY_MOVE_CONSTRUCTIBLE )
- using std::is_trivially_move_constructible;
-#else
- template< class T > struct is_trivially_move_constructible : std11::true_type{};
-#endif
-
-} // namespace std11
-
-#if optional_CPP11_OR_GREATER
-
-/// type traits C++17:
-
-namespace std17 {
-
-#if optional_CPP17_OR_GREATER
-
-using std::is_swappable;
-using std::is_nothrow_swappable;
-
-#elif optional_CPP11_OR_GREATER
-
-namespace detail {
-
-using std::swap;
-
-struct is_swappable
-{
- template< typename T, typename = decltype( swap( std::declval<T&>(), std::declval<T&>() ) ) >
- static std11::true_type test( int /*unused*/ );
-
- template< typename >
- static std11::false_type test(...);
-};
-
-struct is_nothrow_swappable
-{
- // wrap noexcept(expr) in separate function as work-around for VC140 (VS2015):
-
- template< typename T >
- static constexpr bool satisfies()
- {
- return noexcept( swap( std::declval<T&>(), std::declval<T&>() ) );
- }
-
- template< typename T >
- static auto test( int /*unused*/ ) -> std11::integral_constant<bool, satisfies<T>()>{}
-
- template< typename >
- static auto test(...) -> std11::false_type;
-};
-
-} // namespace detail
-
-// is [nothow] swappable:
-
-template< typename T >
-struct is_swappable : decltype( detail::is_swappable::test<T>(0) ){};
-
-template< typename T >
-struct is_nothrow_swappable : decltype( detail::is_nothrow_swappable::test<T>(0) ){};
-
-#endif // optional_CPP17_OR_GREATER
-
-} // namespace std17
-
-/// type traits C++20:
-
-namespace std20 {
-
-template< typename T >
-struct remove_cvref
-{
- typedef typename std::remove_cv< typename std::remove_reference<T>::type >::type type;
-};
-
-} // namespace std20
-
-#endif // optional_CPP11_OR_GREATER
-
-/// class optional
-
-template< typename T >
-class optional;
-
-namespace detail {
-
-// C++11 emulation:
-
-struct nulltype{};
-
-template< typename Head, typename Tail >
-struct typelist
-{
- typedef Head head;
- typedef Tail tail;
-};
-
-#if optional_CONFIG_MAX_ALIGN_HACK
-
-// Max align, use most restricted type for alignment:
-
-#define optional_UNIQUE( name ) optional_UNIQUE2( name, __LINE__ )
-#define optional_UNIQUE2( name, line ) optional_UNIQUE3( name, line )
-#define optional_UNIQUE3( name, line ) name ## line
-
-#define optional_ALIGN_TYPE( type ) \
- type optional_UNIQUE( _t ); struct_t< type > optional_UNIQUE( _st )
-
-template< typename T >
-struct struct_t { T _; };
-
-union max_align_t
-{
- optional_ALIGN_TYPE( char );
- optional_ALIGN_TYPE( short int );
- optional_ALIGN_TYPE( int );
- optional_ALIGN_TYPE( long int );
- optional_ALIGN_TYPE( float );
- optional_ALIGN_TYPE( double );
- optional_ALIGN_TYPE( long double );
- optional_ALIGN_TYPE( char * );
- optional_ALIGN_TYPE( short int * );
- optional_ALIGN_TYPE( int * );
- optional_ALIGN_TYPE( long int * );
- optional_ALIGN_TYPE( float * );
- optional_ALIGN_TYPE( double * );
- optional_ALIGN_TYPE( long double * );
- optional_ALIGN_TYPE( void * );
-
-#ifdef HAVE_LONG_LONG
- optional_ALIGN_TYPE( long long );
-#endif
-
- struct Unknown;
-
- Unknown ( * optional_UNIQUE(_) )( Unknown );
- Unknown * Unknown::* optional_UNIQUE(_);
- Unknown ( Unknown::* optional_UNIQUE(_) )( Unknown );
-
- struct_t< Unknown ( * )( Unknown) > optional_UNIQUE(_);
- struct_t< Unknown * Unknown::* > optional_UNIQUE(_);
- struct_t< Unknown ( Unknown::* )(Unknown) > optional_UNIQUE(_);
-};
-
-#undef optional_UNIQUE
-#undef optional_UNIQUE2
-#undef optional_UNIQUE3
-
-#undef optional_ALIGN_TYPE
-
-#elif defined( optional_CONFIG_ALIGN_AS ) // optional_CONFIG_MAX_ALIGN_HACK
-
-// Use user-specified type for alignment:
-
-#define optional_ALIGN_AS( unused ) \
- optional_CONFIG_ALIGN_AS
-
-#else // optional_CONFIG_MAX_ALIGN_HACK
-
-// Determine POD type to use for alignment:
-
-#define optional_ALIGN_AS( to_align ) \
- typename type_of_size< alignment_types, alignment_of< to_align >::value >::type
-
-template< typename T >
-struct alignment_of;
-
-template< typename T >
-struct alignment_of_hack
-{
- char c;
- T t;
- alignment_of_hack();
-};
-
-template< size_t A, size_t S >
-struct alignment_logic
-{
- enum { value = A < S ? A : S };
-};
-
-template< typename T >
-struct alignment_of
-{
- enum { value = alignment_logic<
- sizeof( alignment_of_hack<T> ) - sizeof(T), sizeof(T) >::value };
-};
-
-template< typename List, size_t N >
-struct type_of_size
-{
- typedef typename std11::conditional<
- N == sizeof( typename List::head ),
- typename List::head,
- typename type_of_size<typename List::tail, N >::type >::type type;
-};
-
-template< size_t N >
-struct type_of_size< nulltype, N >
-{
- typedef optional_CONFIG_ALIGN_AS_FALLBACK type;
-};
-
-template< typename T>
-struct struct_t { T _; };
-
-#define optional_ALIGN_TYPE( type ) \
- typelist< type , typelist< struct_t< type >
-
-struct Unknown;
-
-typedef
- optional_ALIGN_TYPE( char ),
- optional_ALIGN_TYPE( short ),
- optional_ALIGN_TYPE( int ),
- optional_ALIGN_TYPE( long ),
- optional_ALIGN_TYPE( float ),
- optional_ALIGN_TYPE( double ),
- optional_ALIGN_TYPE( long double ),
-
- optional_ALIGN_TYPE( char *),
- optional_ALIGN_TYPE( short * ),
- optional_ALIGN_TYPE( int * ),
- optional_ALIGN_TYPE( long * ),
- optional_ALIGN_TYPE( float * ),
- optional_ALIGN_TYPE( double * ),
- optional_ALIGN_TYPE( long double * ),
-
- optional_ALIGN_TYPE( Unknown ( * )( Unknown ) ),
- optional_ALIGN_TYPE( Unknown * Unknown::* ),
- optional_ALIGN_TYPE( Unknown ( Unknown::* )( Unknown ) ),
-
- nulltype
- > > > > > > > > > > > > > >
- > > > > > > > > > > > > > >
- > > > > > >
- alignment_types;
-
-#undef optional_ALIGN_TYPE
-
-#endif // optional_CONFIG_MAX_ALIGN_HACK
-
-/// C++03 constructed union to hold value.
-
-template< typename T >
-union storage_t
-{
-//private:
-// template< typename > friend class optional;
-
- typedef T value_type;
-
- storage_t() optional_is_default
-
- explicit storage_t( value_type const & v )
- {
- construct_value( v );
- }
-
- void construct_value( value_type const & v )
- {
- ::new( value_ptr() ) value_type( v );
- }
-
-#if optional_CPP11_OR_GREATER
-
- explicit storage_t( value_type && v )
- {
- construct_value( std::move( v ) );
- }
-
- void construct_value( value_type && v )
- {
- ::new( value_ptr() ) value_type( std::move( v ) );
- }
-
- template< class... Args >
- storage_t( nonstd_lite_in_place_t(T), Args&&... args )
- {
- emplace( std::forward<Args>(args)... );
- }
-
- template< class... Args >
- void emplace( Args&&... args )
- {
- ::new( value_ptr() ) value_type( std::forward<Args>(args)... );
- }
-
- template< class U, class... Args >
- void emplace( std::initializer_list<U> il, Args&&... args )
- {
- ::new( value_ptr() ) value_type( il, std::forward<Args>(args)... );
- }
-
-#endif
-
- void destruct_value()
- {
- value_ptr()->~T();
- }
-
- optional_nodiscard value_type const * value_ptr() const
- {
- return as<value_type>();
- }
-
- value_type * value_ptr()
- {
- return as<value_type>();
- }
-
- optional_nodiscard value_type const & value() const optional_ref_qual
- {
- return * value_ptr();
- }
-
- value_type & value() optional_ref_qual
- {
- return * value_ptr();
- }
-
-#if optional_HAVE( REF_QUALIFIER )
-
- optional_nodiscard value_type const && value() const optional_refref_qual
- {
- return std::move( value() );
- }
-
- value_type && value() optional_refref_qual
- {
- return std::move( value() );
- }
-
-#endif
-
-#if optional_CPP11_OR_GREATER
-
- using aligned_storage_t = typename std::aligned_storage< sizeof(value_type), alignof(value_type) >::type;
- aligned_storage_t data;
-
-#elif optional_CONFIG_MAX_ALIGN_HACK
-
- typedef struct { unsigned char data[ sizeof(value_type) ]; } aligned_storage_t;
-
- max_align_t hack;
- aligned_storage_t data;
-
-#else
- typedef optional_ALIGN_AS(value_type) align_as_type;
-
- typedef struct { align_as_type data[ 1 + ( sizeof(value_type) - 1 ) / sizeof(align_as_type) ]; } aligned_storage_t;
- aligned_storage_t data;
-
-# undef optional_ALIGN_AS
-
-#endif // optional_CONFIG_MAX_ALIGN_HACK
-
- optional_nodiscard void * ptr() optional_noexcept
- {
- return &data;
- }
-
- optional_nodiscard void const * ptr() const optional_noexcept
- {
- return &data;
- }
-
- template <typename U>
- optional_nodiscard U * as()
- {
- return reinterpret_cast<U*>( ptr() );
- }
-
- template <typename U>
- optional_nodiscard U const * as() const
- {
- return reinterpret_cast<U const *>( ptr() );
- }
-};
-
-} // namespace detail
-
-/// disengaged state tag
-
-struct nullopt_t
-{
- struct init{};
- explicit optional_constexpr nullopt_t( init /*unused*/ ) optional_noexcept {}
-};
-
-#if optional_HAVE( CONSTEXPR_11 )
-constexpr nullopt_t nullopt{ nullopt_t::init{} };
-#else
-// extra parenthesis to prevent the most vexing parse:
-const nullopt_t nullopt(( nullopt_t::init() ));
-#endif
-
-/// optional access error
-
-#if ! optional_CONFIG_NO_EXCEPTIONS
-
-class bad_optional_access : public std::logic_error
-{
-public:
- explicit bad_optional_access()
- : logic_error( "bad optional access" ) {}
-};
-
-#endif //optional_CONFIG_NO_EXCEPTIONS
-
-/// optional
-
-template< typename T>
-class optional
-{
- optional_static_assert(( !std::is_same<typename std::remove_cv<T>::type, nullopt_t>::value ),
- "T in optional<T> must not be of type 'nullopt_t'.")
-
- optional_static_assert(( !std::is_same<typename std::remove_cv<T>::type, in_place_t>::value ),
- "T in optional<T> must not be of type 'in_place_t'.")
-
- optional_static_assert(( std::is_object<T>::value && std::is_destructible<T>::value && !std::is_array<T>::value ),
- "T in optional<T> must meet the Cpp17Destructible requirements.")
-
-private:
- template< typename > friend class optional;
-
- typedef void (optional::*safe_bool)() const;
-
-public:
- typedef T value_type;
-
- // x.x.3.1, constructors
-
- // 1a - default construct
- optional_constexpr optional() optional_noexcept
- : has_value_( false )
- , contained()
- {}
-
- // 1b - construct explicitly empty
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- optional_constexpr optional( nullopt_t /*unused*/ ) optional_noexcept
- : has_value_( false )
- , contained()
- {}
-
- // 2 - copy-construct
-#if optional_CPP11_OR_GREATER
- // template< typename U = T
- // optional_REQUIRES_T(
- // std::is_copy_constructible<U>::value
- // || std11::is_trivially_copy_constructible<U>::value
- // )
- // >
-#endif
- optional_constexpr14 optional( optional const & other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( other.contained.value() );
- }
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 3 (C++11) - move-construct from optional
- template< typename U = T
- optional_REQUIRES_T(
- std11::is_move_constructible<U>::value
- || std11::is_trivially_move_constructible<U>::value
- )
- >
- optional_constexpr14 optional( optional && other )
- // NOLINTNEXTLINE( performance-noexcept-move-constructor )
- noexcept( std11::is_nothrow_move_constructible<T>::value )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( std::move( other.contained.value() ) );
- }
- }
-
- // 4a (C++11) - explicit converting copy-construct from optional
- template< typename U
- optional_REQUIRES_T(
- std::is_constructible<T, U const &>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std::is_convertible< U const & , T>::value /*=> explicit */
- )
- >
- explicit optional( optional<U> const & other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( T{ other.contained.value() } );
- }
- }
-#endif // optional_CPP11_OR_GREATER
-
- // 4b (C++98 and later) - non-explicit converting copy-construct from optional
- template< typename U
-#if optional_CPP11_OR_GREATER
- optional_REQUIRES_T(
- std::is_constructible<T, U const &>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && std::is_convertible< U const & , T>::value /*=> non-explicit */
- )
-#endif // optional_CPP11_OR_GREATER
- >
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- /*non-explicit*/ optional( optional<U> const & other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( other.contained.value() );
- }
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 5a (C++11) - explicit converting move-construct from optional
- template< typename U
- optional_REQUIRES_T(
- std::is_constructible<T, U &&>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std::is_convertible< U &&, T>::value /*=> explicit */
- )
- >
- explicit optional( optional<U> && other
- )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( T{ std::move( other.contained.value() ) } );
- }
- }
-
- // 5a (C++11) - non-explicit converting move-construct from optional
- template< typename U
- optional_REQUIRES_T(
- std::is_constructible<T, U &&>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && std::is_convertible< U &&, T>::value /*=> non-explicit */
- )
- >
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- /*non-explicit*/ optional( optional<U> && other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( std::move( other.contained.value() ) );
- }
- }
-
- // 6 (C++11) - in-place construct
- template< typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, Args&&...>::value
- )
- >
- optional_constexpr explicit optional( nonstd_lite_in_place_t(T), Args&&... args )
- : has_value_( true )
- , contained( in_place, std::forward<Args>(args)... )
- {}
-
- // 7 (C++11) - in-place construct, initializer-list
- template< typename U, typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value
- )
- >
- optional_constexpr explicit optional( nonstd_lite_in_place_t(T), std::initializer_list<U> il, Args&&... args )
- : has_value_( true )
- , contained( T( il, std::forward<Args>(args)...) )
- {}
-
- // 8a (C++11) - explicit move construct from value
- template< typename U = T
- optional_REQUIRES_T(
- std::is_constructible<T, U&&>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, nonstd_lite_in_place_t(U)>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, optional<T>>::value
- && !std::is_convertible<U&&, T>::value /*=> explicit */
- )
- >
- optional_constexpr explicit optional( U && value )
- : has_value_( true )
- , contained( nonstd_lite_in_place(T), std::forward<U>( value ) )
- {}
-
- // 8b (C++11) - non-explicit move construct from value
- template< typename U = T
- optional_REQUIRES_T(
- std::is_constructible<T, U&&>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, nonstd_lite_in_place_t(U)>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, optional<T>>::value
- && std::is_convertible<U&&, T>::value /*=> non-explicit */
- )
- >
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- optional_constexpr /*non-explicit*/ optional( U && value )
- : has_value_( true )
- , contained( nonstd_lite_in_place(T), std::forward<U>( value ) )
- {}
-
-#else // optional_CPP11_OR_GREATER
-
- // 8 (C++98)
- optional( value_type const & value )
- : has_value_( true )
- , contained( value )
- {}
-
-#endif // optional_CPP11_OR_GREATER
-
- // x.x.3.2, destructor
-
- ~optional()
- {
- if ( has_value() )
- {
- contained.destruct_value();
- }
- }
-
- // x.x.3.3, assignment
-
- // 1 (C++98and later) - assign explicitly empty
- optional & operator=( nullopt_t /*unused*/) optional_noexcept
- {
- reset();
- return *this;
- }
-
- // 2 (C++98and later) - copy-assign from optional
-#if optional_CPP11_OR_GREATER
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional &,
- true
-// std::is_copy_constructible<T>::value
-// && std::is_copy_assignable<T>::value
- )
- operator=( optional const & other )
- noexcept(
- std11::is_nothrow_move_assignable<T>::value
- && std11::is_nothrow_move_constructible<T>::value
- )
-#else
- optional & operator=( optional const & other )
-#endif
- {
- if ( (has_value() == true ) && (other.has_value() == false) ) { reset(); }
- else if ( (has_value() == false) && (other.has_value() == true ) ) { initialize( *other ); }
- else if ( (has_value() == true ) && (other.has_value() == true ) ) { contained.value() = *other; }
- return *this;
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 3 (C++11) - move-assign from optional
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional &,
- true
-// std11::is_move_constructible<T>::value
-// && std::is_move_assignable<T>::value
- )
- operator=( optional && other ) noexcept
- {
- if ( (has_value() == true ) && (other.has_value() == false) ) { reset(); }
- else if ( (has_value() == false) && (other.has_value() == true ) ) { initialize( std::move( *other ) ); }
- else if ( (has_value() == true ) && (other.has_value() == true ) ) { contained.value() = std::move( *other ); }
- return *this;
- }
-
- // 4 (C++11) - move-assign from value
- template< typename U = T >
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional &,
- std::is_constructible<T , U>::value
- && std11::is_assignable<T&, U>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, nonstd_lite_in_place_t(U)>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, optional<T>>::value
- && !(std::is_scalar<T>::value && std::is_same<T, typename std::decay<U>::type>::value)
- )
- operator=( U && value )
- {
- if ( has_value() )
- {
- contained.value() = std::forward<U>( value );
- }
- else
- {
- initialize( T( std::forward<U>( value ) ) );
- }
- return *this;
- }
-
-#else // optional_CPP11_OR_GREATER
-
- // 4 (C++98) - copy-assign from value
- template< typename U /*= T*/ >
- optional & operator=( U const & value )
- {
- if ( has_value() ) contained.value() = value;
- else initialize( T( value ) );
- return *this;
- }
-
-#endif // optional_CPP11_OR_GREATER
-
- // 5 (C++98 and later) - converting copy-assign from optional
- template< typename U >
-#if optional_CPP11_OR_GREATER
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional&,
- std::is_constructible< T , U const &>::value
- && std11::is_assignable< T&, U const &>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std11::is_assignable< T&, optional<U> & >::value
- && !std11::is_assignable< T&, optional<U> && >::value
- && !std11::is_assignable< T&, optional<U> const & >::value
- && !std11::is_assignable< T&, optional<U> const && >::value
- )
-#else
- optional&
-#endif // optional_CPP11_OR_GREATER
- operator=( optional<U> const & other )
- {
- return *this = optional( other );
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 6 (C++11) - converting move-assign from optional
- template< typename U >
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional&,
- std::is_constructible< T , U>::value
- && std11::is_assignable< T&, U>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std11::is_assignable< T&, optional<U> & >::value
- && !std11::is_assignable< T&, optional<U> && >::value
- && !std11::is_assignable< T&, optional<U> const & >::value
- && !std11::is_assignable< T&, optional<U> const && >::value
- )
- operator=( optional<U> && other )
- {
- return *this = optional( std::move( other ) );
- }
-
- // 7 (C++11) - emplace
- template< typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, Args&&...>::value
- )
- >
- T& emplace( Args&&... args )
- {
- *this = nullopt;
- contained.emplace( std::forward<Args>(args)... );
- has_value_ = true;
- return contained.value();
- }
-
- // 8 (C++11) - emplace, initializer-list
- template< typename U, typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value
- )
- >
- T& emplace( std::initializer_list<U> il, Args&&... args )
- {
- *this = nullopt;
- contained.emplace( il, std::forward<Args>(args)... );
- has_value_ = true;
- return contained.value();
- }
-
-#endif // optional_CPP11_OR_GREATER
-
- // x.x.3.4, swap
-
- void swap( optional & other )
-#if optional_CPP11_OR_GREATER
- noexcept(
- std11::is_nothrow_move_constructible<T>::value
- && std17::is_nothrow_swappable<T>::value
- )
-#endif
- {
- using std::swap;
- if ( (has_value() == true ) && (other.has_value() == true ) ) { swap( **this, *other ); }
- else if ( (has_value() == false) && (other.has_value() == true ) ) { initialize( std11::move(*other) ); other.reset(); }
- else if ( (has_value() == true ) && (other.has_value() == false) ) { other.initialize( std11::move(**this) ); reset(); }
- }
-
- // x.x.3.5, observers
-
- optional_constexpr value_type const * operator ->() const
- {
- return assert( has_value() ),
- contained.value_ptr();
- }
-
- optional_constexpr14 value_type * operator ->()
- {
- return assert( has_value() ),
- contained.value_ptr();
- }
-
- optional_constexpr value_type const & operator *() const optional_ref_qual
- {
- return assert( has_value() ),
- contained.value();
- }
-
- optional_constexpr14 value_type & operator *() optional_ref_qual
- {
- return assert( has_value() ),
- contained.value();
- }
-
-#if optional_HAVE( REF_QUALIFIER )
-
- optional_constexpr value_type const && operator *() const optional_refref_qual
- {
- return std::move( **this );
- }
-
- optional_constexpr14 value_type && operator *() optional_refref_qual
- {
- return std::move( **this );
- }
-
-#endif
-
-#if optional_CPP11_OR_GREATER
- optional_constexpr explicit operator bool() const optional_noexcept
- {
- return has_value();
- }
-#else
- optional_constexpr operator safe_bool() const optional_noexcept
- {
- return has_value() ? &optional::this_type_does_not_support_comparisons : 0;
- }
-#endif
-
- // NOLINTNEXTLINE( modernize-use-nodiscard )
- /*optional_nodiscard*/ optional_constexpr bool has_value() const optional_noexcept
- {
- return has_value_;
- }
-
- // NOLINTNEXTLINE( modernize-use-nodiscard )
- /*optional_nodiscard*/ optional_constexpr14 value_type const & value() const optional_ref_qual
- {
-#if optional_CONFIG_NO_EXCEPTIONS
- assert( has_value() );
-#else
- if ( ! has_value() )
- {
- throw bad_optional_access();
- }
-#endif
- return contained.value();
- }
-
- optional_constexpr14 value_type & value() optional_ref_qual
- {
-#if optional_CONFIG_NO_EXCEPTIONS
- assert( has_value() );
-#else
- if ( ! has_value() )
- {
- throw bad_optional_access();
- }
-#endif
- return contained.value();
- }
-
-#if optional_HAVE( REF_QUALIFIER ) && ( !optional_COMPILER_GNUC_VERSION || optional_COMPILER_GNUC_VERSION >= 490 )
-
- // NOLINTNEXTLINE( modernize-use-nodiscard )
- /*optional_nodiscard*/ optional_constexpr value_type const && value() const optional_refref_qual
- {
- return std::move( value() );
- }
-
- optional_constexpr14 value_type && value() optional_refref_qual
- {
- return std::move( value() );
- }
-
-#endif
-
-#if optional_HAVE( REF_QUALIFIER )
-
- template< typename U >
- optional_constexpr value_type value_or( U && v ) const optional_ref_qual
- {
- return has_value() ? contained.value() : static_cast<T>(std::forward<U>( v ) );
- }
-
- template< typename U >
- optional_constexpr14 value_type value_or( U && v ) optional_refref_qual
- {
-#if optional_COMPILER_CLANG_VERSION
- return has_value() ? /*std::move*/( contained.value() ) : static_cast<T>(std::forward<U>( v ) );
-#else
- return has_value() ? std::move( contained.value() ) : static_cast<T>(std::forward<U>( v ) );
-#endif
- }
-
-#else
-
- template< typename U >
- optional_constexpr value_type value_or( U const & v ) const
- {
- return has_value() ? contained.value() : static_cast<value_type>( v );
- }
-
-#endif // optional_HAVE( REF_QUALIFIER )
-
-#if !optional_CONFIG_NO_EXTENSIONS
-#if optional_HAVE( REF_QUALIFIER )
-
- template< typename F >
- optional_constexpr value_type value_or_eval( F f ) const &
- {
- return has_value() ? contained.value() : f();
- }
-
- template< typename F >
- optional_constexpr14 value_type value_or_eval( F f ) &&
- {
- if ( has_value() )
- {
- return std::move( contained.value() );
- }
- else
- {
- return f();
- }
- }
-
-#else
-
- template< typename F >
- optional_constexpr value_type value_or_eval( F f ) const
- {
- return has_value() ? contained.value() : f();
- }
-
-#endif // optional_HAVE( REF_QUALIFIER )
-#endif // !optional_CONFIG_NO_EXTENSIONS
-
- // x.x.3.6, modifiers
-
- void reset() optional_noexcept
- {
- if ( has_value() )
- {
- contained.destruct_value();
- }
-
- has_value_ = false;
- }
-
-private:
- void this_type_does_not_support_comparisons() const {}
-
- template< typename V >
- void initialize( V const & value )
- {
- assert( ! has_value() );
- contained.construct_value( value );
- has_value_ = true;
- }
-
-#if optional_CPP11_OR_GREATER
- template< typename V >
- void initialize( V && value )
- {
- assert( ! has_value() );
- contained.construct_value( std::move( value ) );
- has_value_ = true;
- }
-
-#endif
-
-private:
- bool has_value_;
- detail::storage_t< value_type > contained;
-
-};
-
-// Relational operators
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator==( optional<T> const & x, optional<U> const & y )
-{
- return bool(x) != bool(y) ? false : !bool( x ) ? true : *x == *y;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator!=( optional<T> const & x, optional<U> const & y )
-{
- return !(x == y);
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<( optional<T> const & x, optional<U> const & y )
-{
- return (!y) ? false : (!x) ? true : *x < *y;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>( optional<T> const & x, optional<U> const & y )
-{
- return (y < x);
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<=( optional<T> const & x, optional<U> const & y )
-{
- return !(y < x);
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>=( optional<T> const & x, optional<U> const & y )
-{
- return !(x < y);
-}
-
-// Comparison with nullopt
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator==( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return (!x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator==( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return (!x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator!=( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator!=( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<( optional<T> const & /*unused*/, nullopt_t /*unused*/ ) optional_noexcept
-{
- return false;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<=( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return (!x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<=( nullopt_t /*unused*/, optional<T> const & /*unused*/ ) optional_noexcept
-{
- return true;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>( nullopt_t /*unused*/, optional<T> const & /*unused*/ ) optional_noexcept
-{
- return false;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>=( optional<T> const & /*unused*/, nullopt_t /*unused*/ ) optional_noexcept
-{
- return true;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>=( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return (!x);
-}
-
-// Comparison with T
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator==( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x == v : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator==( U const & v, optional<T> const & x )
-{
- return bool(x) ? v == *x : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator!=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x != v : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator!=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v != *x : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x < v : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<( U const & v, optional<T> const & x )
-{
- return bool(x) ? v < *x : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x <= v : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v <= *x : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x > v : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>( U const & v, optional<T> const & x )
-{
- return bool(x) ? v > *x : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x >= v : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v >= *x : true;
-}
-
-// Specialized algorithms
-
-template< typename T
-#if optional_CPP11_OR_GREATER
- optional_REQUIRES_T(
- std11::is_move_constructible<T>::value
- && std17::is_swappable<T>::value )
-#endif
->
-void swap( optional<T> & x, optional<T> & y )
-#if optional_CPP11_OR_GREATER
- noexcept( noexcept( x.swap(y) ) )
-#endif
-{
- x.swap( y );
-}
-
-#if optional_CPP11_OR_GREATER
-
-template< typename T >
-optional_constexpr optional< typename std::decay<T>::type > make_optional( T && value )
-{
- return optional< typename std::decay<T>::type >( std::forward<T>( value ) );
-}
-
-template< typename T, typename...Args >
-optional_constexpr optional<T> make_optional( Args&&... args )
-{
- return optional<T>( nonstd_lite_in_place(T), std::forward<Args>(args)...);
-}
-
-template< typename T, typename U, typename... Args >
-optional_constexpr optional<T> make_optional( std::initializer_list<U> il, Args&&... args )
-{
- return optional<T>( nonstd_lite_in_place(T), il, std::forward<Args>(args)...);
-}
-
-#else
-
-template< typename T >
-optional<T> make_optional( T const & value )
-{
- return optional<T>( value );
-}
-
-#endif // optional_CPP11_OR_GREATER
-
-} // namespace optional_lite
-
-using optional_lite::optional;
-using optional_lite::nullopt_t;
-using optional_lite::nullopt;
-
-#if ! optional_CONFIG_NO_EXCEPTIONS
-using optional_lite::bad_optional_access;
-#endif
-
-using optional_lite::make_optional;
-
-} // namespace nonstd
-
-#if optional_CPP11_OR_GREATER
-
-// specialize the std::hash algorithm:
-
-namespace std {
-
-template< class T >
-struct hash< nonstd::optional<T> >
-{
-public:
- std::size_t operator()( nonstd::optional<T> const & v ) const optional_noexcept
- {
- return bool( v ) ? std::hash<T>{}( *v ) : 0;
- }
-};
-
-} //namespace std
-
-#endif // optional_CPP11_OR_GREATER
-
-#if defined(__clang__)
-# pragma clang diagnostic pop
-#elif defined(__GNUC__)
-# pragma GCC diagnostic pop
-#elif defined(_MSC_VER )
-# pragma warning( pop )
-#endif
-
-#endif // optional_USES_STD_OPTIONAL
-
-#endif // NONSTD_OPTIONAL_LITE_HPP
diff --git a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/serializer.cpp b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/serializer.cpp
index 526dcc88845..8c5beba83e6 100755
--- a/Build/source/utils/asymptote/LspCpp/src/jsonrpc/serializer.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/jsonrpc/serializer.cpp
@@ -148,67 +148,67 @@ void Reflect(Writer& visitor, SerializeFormat& value) {
std::string JsonReader::ToString() const
{
- rapidjson::StringBuffer strBuf;
- strBuf.Clear();
- rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);
- m_->Accept(writer);
- std::string strJson = strBuf.GetString();
- return strJson;
+ rapidjson::StringBuffer strBuf;
+ strBuf.Clear();
+ rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);
+ m_->Accept(writer);
+ std::string strJson = strBuf.GetString();
+ return strJson;
}
void JsonReader::IterMap(std::function<void(const char*, Reader&)> fn)
{
- path_.push_back("0");
- for (auto& entry : m_->GetObject())
- {
- auto saved = m_;
- m_ = &(entry.value);
+ path_.push_back("0");
+ for (auto& entry : m_->GetObject())
+ {
+ auto saved = m_;
+ m_ = &(entry.value);
- fn(entry.name.GetString(), *this);
- m_ = saved;
- }
- path_.pop_back();
+ fn(entry.name.GetString(), *this);
+ m_ = saved;
+ }
+ path_.pop_back();
}
void JsonReader::IterArray(std::function<void(Reader&)> fn)
{
- if (!m_->IsArray())
- throw std::invalid_argument("array");
- // Use "0" to indicate any element for now.
- path_.push_back("0");
- for (auto& entry : m_->GetArray())
- {
- auto saved = m_;
- m_ = &entry;
- fn(*this);
- m_ = saved;
- }
- path_.pop_back();
+ if (!m_->IsArray())
+ throw std::invalid_argument("array");
+ // Use "0" to indicate any element for now.
+ path_.push_back("0");
+ for (auto& entry : m_->GetArray())
+ {
+ auto saved = m_;
+ m_ = &entry;
+ fn(*this);
+ m_ = saved;
+ }
+ path_.pop_back();
}
void JsonReader::DoMember(const char* name, std::function<void(Reader&)> fn)
{
- path_.push_back(name);
- auto it = m_->FindMember(name);
- if (it != m_->MemberEnd())
- {
- auto saved = m_;
- m_ = &it->value;
- fn(*this);
- m_ = saved;
- }
- path_.pop_back();
+ path_.push_back(name);
+ auto it = m_->FindMember(name);
+ if (it != m_->MemberEnd())
+ {
+ auto saved = m_;
+ m_ = &it->value;
+ fn(*this);
+ m_ = saved;
+ }
+ path_.pop_back();
}
std::string JsonReader::GetPath() const
{
- std::string ret;
- for (auto& t : path_)
- {
- ret += '/';
- ret += t;
- }
- ret.pop_back();
- return ret;
+ std::string ret;
+ for (auto& t : path_)
+ {
+ ret += '/';
+ ret += t;
+ }
+ ret.pop_back();
+ return ret;
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/Markup.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/Markup.cpp
index 97860d969d9..f22baac95d6 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/Markup.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/Markup.cpp
@@ -17,7 +17,7 @@
#include <boost/algorithm/string.hpp>
namespace lsp {
-
+
/// hexdigit - Return the hexadecimal character for the
/// given number \p X (which should be less than 16).
inline char hexdigit(unsigned X, bool LowerCase = false) {
@@ -93,7 +93,7 @@ namespace lsp {
inline bool isASCII(std::string_ref S) {
for (char C : S)
{
- if(!isASCII(C))return true;
+ if(!isASCII(C))return true;
}
return true;
}
@@ -465,7 +465,7 @@ bool looksLikeTag(std::string_ref& Contents) {
// a markdown grammar construct.
bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
bool StartsLine) {
-
+
auto RulerLength = [&]() -> /*Length*/ unsigned {
if (!StartsLine || !Before.empty())
return false;
@@ -541,10 +541,10 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
{
return std::all_of(Content.begin(),Content.end(), lsp::isHexDigit);
}
-
+
return std::all_of(Content.begin(), Content.end(), [](char c)
{
- return lsp::isDigit(c);
+ return lsp::isDigit(c);
});
}
return std::all_of(Content.begin(), Content.end(), [](char c)
@@ -633,12 +633,12 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
boost::split(OutFragments, Source, boost::is_any_of(Delimiters));
}
-
+
// Trims the input and concatenates whitespace blocks into a single ` `.
std::string_ref canonicalizeSpaces(const std::string_ref& Input) {
std::vector<std::string_ref> Words;
SplitString(Input, Words);
-
+
return lsp::join(Words, " ");
}
@@ -649,13 +649,13 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
std::ostringstream OS(R);
std::vector<int> v{ 1, 2, 3 };
-
+
// Trim rulers.
Children.erase(std::remove_if(Children.begin(), Children.end(), [](const Block* C)
- {
- return C->isRuler();
- }), Children.end());
-
+ {
+ return C->isRuler();
+ }), Children.end());
+
bool LastBlockWasRuler = true;
for (const auto& C : Children) {
if (C->isRuler() && LastBlockWasRuler)
@@ -685,10 +685,10 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
void (Block::* renderFunc)(std::ostringstream&) const)
{
std::vector<Block*> temp(children.size(), nullptr);
- for(size_t i = 0 ; i < children.size() ; ++i)
- {
+ for(size_t i = 0 ; i < children.size() ; ++i)
+ {
temp[i]=(children[i].get());
- }
+ }
return renderBlocks(std::move(temp), renderFunc);
}
// Separates two blocks with extra spacing. Note that it might render strangely
@@ -729,7 +729,7 @@ public:
: Contents(std::move(Contents)), Language(std::move(Language)) {}
private:
-
+
std::string_ref Contents;
std::string_ref Language;
};
@@ -939,4 +939,4 @@ private:
Children.emplace_back(std::make_unique<Heading>(Level));
return *static_cast<Paragraph*>(Children.back().get());
}
- }; \ No newline at end of file
+ };
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
index 57adb7e497a..02c61e67a59 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
@@ -18,89 +18,89 @@ using namespace std;
struct ParentProcessWatcher::ParentProcessWatcherData : std::enable_shared_from_this<ParentProcessWatcherData>
{
- std::unique_ptr<SimpleTimer<boost::posix_time::seconds>> timer;
- lsp::Log& _log;
- std::function<void()> on_exit;
- lsp::ProcessIoService asio_io;
- std::shared_ptr < boost::process::opstream> write_to_service;
- std::shared_ptr< boost::process::ipstream > read_from_service;
- int pid;
- const int _poll_delay_secs /*= 10*/;
- std::string command;
- std::shared_ptr<boost::process::child> c;
+ std::unique_ptr<SimpleTimer<boost::posix_time::seconds>> timer;
+ lsp::Log& _log;
+ std::function<void()> on_exit;
+ lsp::ProcessIoService asio_io;
+ std::shared_ptr < boost::process::opstream> write_to_service;
+ std::shared_ptr< boost::process::ipstream > read_from_service;
+ int pid;
+ const int _poll_delay_secs /*= 10*/;
+ std::string command;
+ std::shared_ptr<boost::process::child> c;
- ParentProcessWatcherData(lsp::Log& log, int _pid,
- const std::function<void()>&& callback, uint32_t poll_delay_secs) :
- _log(log), on_exit(callback), pid(_pid), _poll_delay_secs(poll_delay_secs)
- {
+ ParentProcessWatcherData(lsp::Log& log, int _pid,
+ const std::function<void()>&& callback, uint32_t poll_delay_secs) :
+ _log(log), on_exit(callback), pid(_pid), _poll_delay_secs(poll_delay_secs)
+ {
#ifdef _WIN32
- command = "cmd /c \"tasklist /FI \"PID eq " + std::to_string(pid) + "\" | findstr " +
- std::to_string(pid) + "\"";
+ command = "cmd /c \"tasklist /FI \"PID eq " + std::to_string(pid) + "\" | findstr " +
+ std::to_string(pid) + "\"";
#else
- command = "ps -p " + std::to_string(pid);
+ command = "ps -p " + std::to_string(pid);
#endif
- }
+ }
- void run()
- {
- write_to_service = std::make_shared<boost::process::opstream>();
- read_from_service = std::make_shared<boost::process::ipstream>();
+ void run()
+ {
+ write_to_service = std::make_shared<boost::process::opstream>();
+ read_from_service = std::make_shared<boost::process::ipstream>();
-// const uint32_t POLL_DELAY_SECS = _poll_delay_secs;
- auto self(shared_from_this());
- std::error_code ec;
- namespace bp = boost::process;
- c = std::make_shared<bp::child>(asio_io.getIOService(), command,
- ec,
+// const uint32_t POLL_DELAY_SECS = _poll_delay_secs;
+ auto self(shared_from_this());
+ std::error_code ec;
+ namespace bp = boost::process;
+ c = std::make_shared<bp::child>(asio_io.getIOService(), command,
+ ec,
#ifdef _WIN32
- bp::windows::hide,
+ bp::windows::hide,
#endif
- bp::std_out > *read_from_service,
- bp::std_in < *write_to_service,
- bp::on_exit([self](int exit_code, const std::error_code& ec_in) {
- // the tasklist command should return 0 (parent process exists) or 1 (parent process doesn't exist)
- if (exit_code == 1)//
- {
- if (self->on_exit)
- {
+ bp::std_out > *read_from_service,
+ bp::std_in < *write_to_service,
+ bp::on_exit([self](int exit_code, const std::error_code& ec_in) {
+ // the tasklist command should return 0 (parent process exists) or 1 (parent process doesn't exist)
+ if (exit_code == 1)//
+ {
+ if (self->on_exit)
+ {
- std::thread([=]()
- {
- std::this_thread::sleep_for(std::chrono::seconds(3));
- self->on_exit();
- }).detach();
- }
- }
- else
- {
- if (exit_code > 1)
- {
- self->_log.log(lsp::Log::Level::WARNING, "The tasklist command: '" + self->command + "' returns " + std::to_string(exit_code));
- }
+ std::thread([=]()
+ {
+ std::this_thread::sleep_for(std::chrono::seconds(3));
+ self->on_exit();
+ }).detach();
+ }
+ }
+ else
+ {
+ if (exit_code > 1)
+ {
+ self->_log.log(lsp::Log::Level::WARNING, "The tasklist command: '" + self->command + "' returns " + std::to_string(exit_code));
+ }
- self->timer = std::make_unique<SimpleTimer<boost::posix_time::seconds>>(self->_poll_delay_secs, [=]() {
- self->run();
- });
- }
+ self->timer = std::make_unique<SimpleTimer<boost::posix_time::seconds>>(self->_poll_delay_secs, [=]() {
+ self->run();
+ });
+ }
- }));
- if (ec)
- {
- // fail
- _log.log(lsp::Log::Level::SEVERE, "Start parent process watcher failed.");
- }
- }
+ }));
+ if (ec)
+ {
+ // fail
+ _log.log(lsp::Log::Level::SEVERE, "Start parent process watcher failed.");
+ }
+ }
};
ParentProcessWatcher::ParentProcessWatcher(lsp::Log& log, int pid,
- const std::function<void()>&& callback, uint32_t poll_delay_secs) : d_ptr(new ParentProcessWatcherData(log, pid, std::move(callback), poll_delay_secs))
+ const std::function<void()>&& callback, uint32_t poll_delay_secs) : d_ptr(new ParentProcessWatcherData(log, pid, std::move(callback), poll_delay_secs))
{
- d_ptr->run();
+ d_ptr->run();
}
ParentProcessWatcher::~ParentProcessWatcher()
{
- if (d_ptr->timer)
- d_ptr->timer->Stop();
+ if (d_ptr->timer)
+ d_ptr->timer->Stop();
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
index af008e9eb92..c860b555af8 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
@@ -73,644 +73,644 @@
void AddStadardResponseJsonRpcMethod(MessageJsonHandler& handler)
{
-
- handler.method2response[td_initialize::request::kMethodInfo] = [](Reader& visitor)
- {
- if(visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_initialize::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_shutdown::response::ReflectReader(visitor);
- };
- handler.method2response[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_codeAction::response::ReflectReader(visitor);
- };
- handler.method2response[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_codeLens::response::ReflectReader(visitor);
- };
- handler.method2response[td_completion::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_completion::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_definition::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_definition::response::ReflectReader(visitor);
- };
- handler.method2response[td_declaration::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_declaration::response::ReflectReader(visitor);
- };
- handler.method2response[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_willSaveWaitUntil::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_highlight::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_highlight::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_links::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_links::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_linkResolve::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_symbol::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_symbol::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_formatting::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_formatting::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_hover::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_hover::response::ReflectReader(visitor);
-
- };
-
- handler.method2response[td_implementation::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_implementation::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_rangeFormatting::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_rangeFormatting::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_references::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_references::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_rename::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_rename::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[td_signatureHelp::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_signatureHelp::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_typeDefinition::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_typeDefinition::response::ReflectReader(visitor);
- };
-
- handler.method2response[wp_executeCommand::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return wp_executeCommand::response::ReflectReader(visitor);
- };
-
- handler.method2response[wp_symbol::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return wp_symbol::response::ReflectReader(visitor);
- };
- handler.method2response[td_typeHierarchy::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_typeHierarchy::response::ReflectReader(visitor);
- };
- handler.method2response[completionItem_resolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return completionItem_resolve::response::ReflectReader(visitor);
- };
-
- handler.method2response[codeLens_resolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return codeLens_resolve::response::ReflectReader(visitor);
-
- };
-
- handler.method2response[td_colorPresentation::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_colorPresentation::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_documentColor::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_documentColor::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_foldingRange::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_foldingRange::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_prepareRename::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_prepareRename::response::ReflectReader(visitor);
-
- };
- handler.method2response[typeHierarchy_resolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return typeHierarchy_resolve::response::ReflectReader(visitor);
-
- };
-
- handler.method2response[td_selectionRange::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_selectionRange::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_didRenameFiles::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_willRenameFiles::response::ReflectReader(visitor);
-
- };
-
+
+ handler.method2response[td_initialize::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if(visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_initialize::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_shutdown::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_codeAction::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_codeLens::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_completion::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_completion::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_definition::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_definition::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_declaration::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_declaration::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_willSaveWaitUntil::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_highlight::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_highlight::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_links::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_links::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_linkResolve::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_symbol::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_symbol::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_formatting::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_formatting::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_hover::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_hover::response::ReflectReader(visitor);
+
+ };
+
+ handler.method2response[td_implementation::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_implementation::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_rangeFormatting::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_rangeFormatting::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_references::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_references::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_rename::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_rename::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[td_signatureHelp::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_signatureHelp::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_typeDefinition::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_typeDefinition::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[wp_executeCommand::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return wp_executeCommand::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[wp_symbol::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return wp_symbol::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_typeHierarchy::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_typeHierarchy::response::ReflectReader(visitor);
+ };
+ handler.method2response[completionItem_resolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return completionItem_resolve::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[codeLens_resolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return codeLens_resolve::response::ReflectReader(visitor);
+
+ };
+
+ handler.method2response[td_colorPresentation::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_colorPresentation::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_documentColor::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_documentColor::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_foldingRange::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_foldingRange::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_prepareRename::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_prepareRename::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[typeHierarchy_resolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return typeHierarchy_resolve::response::ReflectReader(visitor);
+
+ };
+
+ handler.method2response[td_selectionRange::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_selectionRange::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_didRenameFiles::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_willRenameFiles::response::ReflectReader(visitor);
+
+ };
+
}
void AddJavaExtentionResponseJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2response[java_classFileContents::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_classFileContents::response::ReflectReader(visitor);
- };
- handler.method2response[java_buildWorkspace::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_buildWorkspace::response::ReflectReader(visitor);
- };
- handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_listOverridableMethods::response::ReflectReader(visitor);
- };
- handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_listOverridableMethods::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_checkHashCodeEqualsStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkHashCodeEqualsStatus::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[java_addOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_addOverridableMethods::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_checkConstructorsStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkConstructorsStatus::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[java_checkDelegateMethodsStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkDelegateMethodsStatus::response::ReflectReader(visitor);
- };
- handler.method2response[java_checkToStringStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkToStringStatus::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[java_generateAccessors::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateAccessors::response::ReflectReader(visitor);
- };
- handler.method2response[java_generateConstructors::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateConstructors::response::ReflectReader(visitor);
- };
- handler.method2response[java_generateDelegateMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateDelegateMethods::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_generateHashCodeEquals::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateHashCodeEquals::response::ReflectReader(visitor);
- };
- handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateToString::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateToString::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_getMoveDestinations::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_getMoveDestinations::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_getRefactorEdit::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_getRefactorEdit::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_move::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_move::response ::ReflectReader(visitor);
- };
-
- handler.method2response[java_organizeImports::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_organizeImports::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_resolveUnimplementedAccessors::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_resolveUnimplementedAccessors::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_searchSymbols::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_searchSymbols::response::ReflectReader(visitor);
- };
-
- handler.method2request[WorkspaceConfiguration::request::kMethodInfo] = [](Reader& visitor)
- {
- return WorkspaceConfiguration::request::ReflectReader(visitor);
- };
- handler.method2request[WorkspaceFolders::request::kMethodInfo] = [](Reader& visitor)
- {
- return WorkspaceFolders::request::ReflectReader(visitor);
- };
-
+ handler.method2response[java_classFileContents::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_classFileContents::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_buildWorkspace::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_buildWorkspace::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_listOverridableMethods::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_listOverridableMethods::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_checkHashCodeEqualsStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkHashCodeEqualsStatus::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[java_addOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_addOverridableMethods::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_checkConstructorsStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkConstructorsStatus::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[java_checkDelegateMethodsStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkDelegateMethodsStatus::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_checkToStringStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkToStringStatus::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[java_generateAccessors::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateAccessors::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_generateConstructors::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateConstructors::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_generateDelegateMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateDelegateMethods::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_generateHashCodeEquals::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateHashCodeEquals::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateToString::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateToString::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_getMoveDestinations::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_getMoveDestinations::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_getRefactorEdit::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_getRefactorEdit::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_move::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_move::response ::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_organizeImports::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_organizeImports::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_resolveUnimplementedAccessors::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_resolveUnimplementedAccessors::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_searchSymbols::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_searchSymbols::response::ReflectReader(visitor);
+ };
+
+ handler.method2request[WorkspaceConfiguration::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return WorkspaceConfiguration::request::ReflectReader(visitor);
+ };
+ handler.method2request[WorkspaceFolders::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return WorkspaceFolders::request::ReflectReader(visitor);
+ };
+
}
void AddNotifyJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2notification[Notify_Exit::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_Exit::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_InitializedNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_InitializedNotification::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[java_projectConfigurationUpdate::notify::kMethodInfo] = [](Reader& visitor)
- {
- return java_projectConfigurationUpdate::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentDidChange::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidChange::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentDidClose::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidClose::notify::ReflectReader(visitor);
- };
-
-
- handler.method2notification[Notify_TextDocumentDidOpen::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidOpen::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentDidSave::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidSave::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentPublishDiagnostics::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentPublishDiagnostics::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_semanticHighlighting::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_semanticHighlighting::notify::ReflectReader(visitor);
- };
- handler.method2notification[td_willSave::notify::kMethodInfo] = [](Reader& visitor)
- {
- return td_willSave::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_LogMessage::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_LogMessage::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_ShowMessage::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_ShowMessage::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_WorkspaceDidChangeWorkspaceFolders::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_WorkspaceDidChangeWorkspaceFolders::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_WorkspaceDidChangeConfiguration::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_WorkspaceDidChangeConfiguration::notify::ReflectReader(visitor);
- };
-
-
- handler.method2notification[Notify_WorkspaceDidChangeWatchedFiles::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_WorkspaceDidChangeWatchedFiles::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_sendNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_sendNotification::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_status::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_status::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_actionableNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_actionableNotification::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_progressReport::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_progressReport::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_eventNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_eventNotification::notify::ReflectReader(visitor);
- };
+ handler.method2notification[Notify_Exit::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_Exit::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_InitializedNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_InitializedNotification::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[java_projectConfigurationUpdate::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return java_projectConfigurationUpdate::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentDidChange::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidChange::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentDidClose::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidClose::notify::ReflectReader(visitor);
+ };
+
+
+ handler.method2notification[Notify_TextDocumentDidOpen::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidOpen::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentDidSave::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidSave::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentPublishDiagnostics::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentPublishDiagnostics::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_semanticHighlighting::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_semanticHighlighting::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[td_willSave::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return td_willSave::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_LogMessage::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_LogMessage::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_ShowMessage::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_ShowMessage::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_WorkspaceDidChangeWorkspaceFolders::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_WorkspaceDidChangeWorkspaceFolders::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_WorkspaceDidChangeConfiguration::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_WorkspaceDidChangeConfiguration::notify::ReflectReader(visitor);
+ };
+
+
+ handler.method2notification[Notify_WorkspaceDidChangeWatchedFiles::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_WorkspaceDidChangeWatchedFiles::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_sendNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_sendNotification::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_status::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_status::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_actionableNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_actionableNotification::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_progressReport::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_progressReport::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_eventNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_eventNotification::notify::ReflectReader(visitor);
+ };
}
void AddRequstJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2request[Req_ClientRegisterCapability::request::kMethodInfo]= [](Reader& visitor)
- {
+ handler.method2request[Req_ClientRegisterCapability::request::kMethodInfo]= [](Reader& visitor)
+ {
- return Req_ClientRegisterCapability::request::ReflectReader(visitor);
- };
- handler.method2request[Req_ClientUnregisterCapability::request::kMethodInfo] = [](Reader& visitor)
- {
+ return Req_ClientRegisterCapability::request::ReflectReader(visitor);
+ };
+ handler.method2request[Req_ClientUnregisterCapability::request::kMethodInfo] = [](Reader& visitor)
+ {
- return Req_ClientUnregisterCapability::request::ReflectReader(visitor);
- };
+ return Req_ClientUnregisterCapability::request::ReflectReader(visitor);
+ };
}
void AddStandardRequestJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2request[td_initialize::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_initialize::request::ReflectReader(visitor);
- };
- handler.method2request[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_shutdown::request::ReflectReader(visitor);
- };
- handler.method2request[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
- {
-
-
- return td_codeAction::request::ReflectReader(visitor);
- };
- handler.method2request[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_codeLens::request::ReflectReader(visitor);
- };
- handler.method2request[td_completion::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_completion::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_definition::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_definition::request::ReflectReader(visitor);
- };
- handler.method2request[td_declaration::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_declaration::request::ReflectReader(visitor);
- };
- handler.method2request[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_willSaveWaitUntil::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_highlight::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_highlight::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_links::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_links::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_linkResolve::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_symbol::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_symbol::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_formatting::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_formatting::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_hover::request::kMethodInfo] = [](Reader& visitor)
- {
- return td_hover::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_implementation::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_implementation::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_didRenameFiles::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
- return td_willRenameFiles::request::ReflectReader(visitor);
- };
+ handler.method2request[td_initialize::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_initialize::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_shutdown::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+
+ return td_codeAction::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_codeLens::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_completion::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_completion::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_definition::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_definition::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_declaration::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_declaration::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_willSaveWaitUntil::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_highlight::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_highlight::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_links::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_links::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_linkResolve::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_symbol::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_symbol::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_formatting::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_formatting::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_hover::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return td_hover::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_implementation::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_implementation::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_didRenameFiles::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return td_willRenameFiles::request::ReflectReader(visitor);
+ };
}
lsp::ProtocolJsonHandler::ProtocolJsonHandler()
{
- AddStadardResponseJsonRpcMethod(*this);
- AddJavaExtentionResponseJsonRpcMethod(*this);
- AddNotifyJsonRpcMethod(*this);
- AddStandardRequestJsonRpcMethod(*this);
- AddRequstJsonRpcMethod(*this);
+ AddStadardResponseJsonRpcMethod(*this);
+ AddJavaExtentionResponseJsonRpcMethod(*this);
+ AddNotifyJsonRpcMethod(*this);
+ AddStandardRequestJsonRpcMethod(*this);
+ AddRequstJsonRpcMethod(*this);
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/initialize.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/initialize.cpp
index ebe3e334d04..7348cbd0df3 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/initialize.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/initialize.cpp
@@ -3,43 +3,43 @@
void Reflect(Reader& reader, lsInitializeParams::lsTrace& value)
{
- if (!reader.IsString())
- {
- value = lsInitializeParams::lsTrace::Off;
- return;
- }
- std::string v = reader.GetString();
- if (v == "off")
- value = lsInitializeParams::lsTrace::Off;
- else if (v == "messages")
- value = lsInitializeParams::lsTrace::Messages;
- else if (v == "verbose")
- value = lsInitializeParams::lsTrace::Verbose;
+ if (!reader.IsString())
+ {
+ value = lsInitializeParams::lsTrace::Off;
+ return;
+ }
+ std::string v = reader.GetString();
+ if (v == "off")
+ value = lsInitializeParams::lsTrace::Off;
+ else if (v == "messages")
+ value = lsInitializeParams::lsTrace::Messages;
+ else if (v == "verbose")
+ value = lsInitializeParams::lsTrace::Verbose;
}
void Reflect(Writer& writer, lsInitializeParams::lsTrace& value)
{
- switch (value)
- {
- case lsInitializeParams::lsTrace::Off:
- writer.String("off");
- break;
- case lsInitializeParams::lsTrace::Messages:
- writer.String("messages");
- break;
- case lsInitializeParams::lsTrace::Verbose:
- writer.String("verbose");
- break;
- }
+ switch (value)
+ {
+ case lsInitializeParams::lsTrace::Off:
+ writer.String("off");
+ break;
+ case lsInitializeParams::lsTrace::Messages:
+ writer.String("messages");
+ break;
+ case lsInitializeParams::lsTrace::Verbose:
+ writer.String("verbose");
+ break;
+ }
}
void Reflect(Reader& visitor, std::pair<boost::optional<lsTextDocumentSyncKind>, boost::optional<lsTextDocumentSyncOptions> >& value)
{
- if(((JsonReader&)visitor).m_->IsObject())
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
-} \ No newline at end of file
+ if(((JsonReader&)visitor).m_->IsObject())
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
+}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/lsp.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/lsp.cpp
index bf39b9383ac..792995c8fb0 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/lsp.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/lsp.cpp
@@ -86,10 +86,10 @@ bool lsRange::operator<(const lsRange& o) const {
std::string lsRange::ToString() const
{
- std::stringstream ss;
- ss << "start:" << start.ToString() << std::endl;
- ss << "end" << end.ToString() << std::endl;
- return ss.str();
+ std::stringstream ss;
+ ss << "start:" << start.ToString() << std::endl;
+ ss << "end" << end.ToString() << std::endl;
+ return ss.str();
}
lsLocation::lsLocation() {}
@@ -111,10 +111,10 @@ bool lsTextEdit::operator==(const lsTextEdit& that) {
std::string lsTextEdit::ToString() const
{
- std::stringstream ss;
- ss << "Range:" << range.ToString() << std::endl;
- ss << "newText:" << newText << std::endl;
- return ss.str();
+ std::stringstream ss;
+ ss << "Range:" << range.ToString() << std::endl;
+ ss << "newText:" << newText << std::endl;
+ return ss.str();
}
void Reflect(Writer& visitor, lsMarkedString& value) {
@@ -132,39 +132,39 @@ void Reflect(Writer& visitor, lsMarkedString& value) {
void Reflect(Reader& visitor, lsMarkedString& value)
{
- REFLECT_MEMBER_START();
- REFLECT_MEMBER(language);
- REFLECT_MEMBER(value);
- REFLECT_MEMBER_END();
+ REFLECT_MEMBER_START();
+ REFLECT_MEMBER(language);
+ REFLECT_MEMBER(value);
+ REFLECT_MEMBER_END();
}
void Reflect(Reader& visitor, LocationListEither::Either& value)
{
- if(!visitor.IsArray())
- {
- throw std::invalid_argument("Rsp_LocationListEither::Either& value is not array");
- }
- auto data = ((JsonReader&)visitor).m_->GetArray();
- if (data.Size() && data[0].HasMember("originSelectionRange"))
- {
- Reflect(visitor, value.second);
- }
- else {
- Reflect(visitor, value.first);
- }
+ if(!visitor.IsArray())
+ {
+ throw std::invalid_argument("Rsp_LocationListEither::Either& value is not array");
+ }
+ auto data = ((JsonReader&)visitor).m_->GetArray();
+ if (data.Size() && data[0].HasMember("originSelectionRange"))
+ {
+ Reflect(visitor, value.second);
+ }
+ else {
+ Reflect(visitor, value.first);
+ }
}
void Reflect(Writer& visitor, LocationListEither::Either& value)
{
- if (value.first)
- {
- Reflect(visitor, value.first.value());
- }
- else if (value.second)
- {
- Reflect(visitor, value.second.value());
- }
+ if (value.first)
+ {
+ Reflect(visitor, value.first.value());
+ }
+ else if (value.second)
+ {
+ Reflect(visitor, value.second.value());
+ }
}
@@ -172,28 +172,28 @@ void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value)
{
- if(visitor.HasMember("command"))
- {
- if(visitor["command"]->IsString())
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
- }
- else
- {
- if (visitor.HasMember("diagnostics") || visitor.HasMember("edit"))
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
- }
+ if(visitor.HasMember("command"))
+ {
+ if(visitor["command"]->IsString())
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
+ }
+ else
+ {
+ if (visitor.HasMember("diagnostics") || visitor.HasMember("edit"))
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
+ }
}
@@ -202,410 +202,410 @@ void Reflect(Reader& visitor, lsWorkspaceEdit::Either& value)
{
- if(visitor.HasMember("textDocument"))
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
+ if(visitor.HasMember("textDocument"))
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
}
ResourceOperation* GetResourceOperation(lsp::Any& lspAny)
{
- rapidjson::Document document;
- auto& data = lspAny.Data();
- document.Parse(data.c_str(), data.length());
- if (document.HasParseError()) {
- // ��ʾ
- return nullptr;
- }
- auto find = document.FindMember("kind");
-
- JsonReader visitor{ &document };
- try
- {
- if (find->value == "create")
- {
- auto ptr = std::make_unique<lsCreateFile>();
- auto temp = ptr.get();
- Reflect(visitor, *temp);
- return ptr.release();
- }
- else if (find->value == "rename")
- {
- auto ptr = std::make_unique<lsRenameFile>();
- auto temp = ptr.get();
- Reflect(visitor, *temp);
- return ptr.release();
- }
- else if (find->value == "delete")
- {
-
- auto ptr = std::make_unique<lsDeleteFile>();
- auto temp = ptr.get();
- Reflect(visitor, *temp);
- return ptr.release();
- }
- }
- catch (std::exception&)
- {
-
- }
- return nullptr;
+ rapidjson::Document document;
+ auto& data = lspAny.Data();
+ document.Parse(data.c_str(), data.length());
+ if (document.HasParseError()) {
+ // ��ʾ
+ return nullptr;
+ }
+ auto find = document.FindMember("kind");
+
+ JsonReader visitor{ &document };
+ try
+ {
+ if (find->value == "create")
+ {
+ auto ptr = std::make_unique<lsCreateFile>();
+ auto temp = ptr.get();
+ Reflect(visitor, *temp);
+ return ptr.release();
+ }
+ else if (find->value == "rename")
+ {
+ auto ptr = std::make_unique<lsRenameFile>();
+ auto temp = ptr.get();
+ Reflect(visitor, *temp);
+ return ptr.release();
+ }
+ else if (find->value == "delete")
+ {
+
+ auto ptr = std::make_unique<lsDeleteFile>();
+ auto temp = ptr.get();
+ Reflect(visitor, *temp);
+ return ptr.release();
+ }
+ }
+ catch (std::exception&)
+ {
+
+ }
+ return nullptr;
}
void Reflect(Writer& visitor, ResourceOperation* value)
{
- if(!value)
- {
- throw std::invalid_argument("ResourceOperation value is nullptr");
- }
- if (value->kind == "create")
- {
- auto temp = (lsCreateFile*)value;
- Reflect(visitor, *temp);
- }
- else if (value->kind == "rename")
- {
- auto temp = (lsRenameFile*)value;
- Reflect(visitor, *temp);
- }
- else if (value->kind == "delete")
- {
-
- auto temp = (lsDeleteFile*)value;
- Reflect(visitor, *temp);
- }
+ if(!value)
+ {
+ throw std::invalid_argument("ResourceOperation value is nullptr");
+ }
+ if (value->kind == "create")
+ {
+ auto temp = (lsCreateFile*)value;
+ Reflect(visitor, *temp);
+ }
+ else if (value->kind == "rename")
+ {
+ auto temp = (lsRenameFile*)value;
+ Reflect(visitor, *temp);
+ }
+ else if (value->kind == "delete")
+ {
+
+ auto temp = (lsDeleteFile*)value;
+ Reflect(visitor, *temp);
+ }
}
int lsp::Any::GuessType()
{
- if (!data.empty())
- {
- if (data == "null")
- {
- jsonType = rapidjson::kNullType;
- }
- else if (data == "true")
- {
- jsonType = rapidjson::kTrueType;
- }
- else if(data == "false")
- {
- jsonType = rapidjson::kFalseType;
- }
- else if (data[0] == '{')
- {
- jsonType = rapidjson::kObjectType;
- }
- else if (data[0] == '[')
- {
- if (data.size() >= 2 && data[1] == '{')
- jsonType = rapidjson::kStringType;
- else
- jsonType = rapidjson::kArrayType;
- }
- else if (data[0] == '"')
- {
- jsonType = rapidjson::kStringType;
- }
- else
- {
- jsonType = rapidjson::kNumberType;
- }
- }
- else
- {
- if (jsonType != kUnKnown)
- return jsonType;
- jsonType = rapidjson::kNullType;
- }
- return jsonType;
+ if (!data.empty())
+ {
+ if (data == "null")
+ {
+ jsonType = rapidjson::kNullType;
+ }
+ else if (data == "true")
+ {
+ jsonType = rapidjson::kTrueType;
+ }
+ else if(data == "false")
+ {
+ jsonType = rapidjson::kFalseType;
+ }
+ else if (data[0] == '{')
+ {
+ jsonType = rapidjson::kObjectType;
+ }
+ else if (data[0] == '[')
+ {
+ if (data.size() >= 2 && data[1] == '{')
+ jsonType = rapidjson::kStringType;
+ else
+ jsonType = rapidjson::kArrayType;
+ }
+ else if (data[0] == '"')
+ {
+ jsonType = rapidjson::kStringType;
+ }
+ else
+ {
+ jsonType = rapidjson::kNumberType;
+ }
+ }
+ else
+ {
+ if (jsonType != kUnKnown)
+ return jsonType;
+ jsonType = rapidjson::kNullType;
+ }
+ return jsonType;
}
int lsp::Any::GetType()
{
- if (jsonType == Type::kUnKnown)
- {
- if (data.empty())
- {
- jsonType = rapidjson::kNullType;
- return jsonType;
- }
- rapidjson::Document document;
- document.Parse(data.c_str(), data.length());
- if (document.HasParseError())
- {
- // ��ʾ
- return jsonType;
- }
- jsonType = document.GetType();
- }
- return jsonType;
+ if (jsonType == Type::kUnKnown)
+ {
+ if (data.empty())
+ {
+ jsonType = rapidjson::kNullType;
+ return jsonType;
+ }
+ rapidjson::Document document;
+ document.Parse(data.c_str(), data.length());
+ if (document.HasParseError())
+ {
+ // ��ʾ
+ return jsonType;
+ }
+ jsonType = document.GetType();
+ }
+ return jsonType;
}
void lsp::Any::Set(std::unique_ptr<LspMessage> value)
{
- if (value)
- {
- jsonType = rapidjson::Type::kObjectType;
- data = value->ToJson();
- }
- else
- {
- assert(false);
- }
+ if (value)
+ {
+ jsonType = rapidjson::Type::kObjectType;
+ data = value->ToJson();
+ }
+ else
+ {
+ assert(false);
+ }
}
void lsp::Any::SetJsonString(std::string&& _data, Type _type)
{
- jsonType = _type;
- data.swap(_data);
- GetType();
+ jsonType = _type;
+ data.swap(_data);
+ GetType();
}
void lsp::Any::SetJsonString(const std::string& _data, Type _type)
{
- jsonType = _type;
- data = (_data);
- GetType();
+ jsonType = _type;
+ data = (_data);
+ GetType();
}
void lsp::Any::swap(Any& arg) noexcept
{
- data.swap(arg.data);
- const int temp = jsonType;
- jsonType = arg.jsonType;
- arg.jsonType = temp;
+ data.swap(arg.data);
+ const int temp = jsonType;
+ jsonType = arg.jsonType;
+ arg.jsonType = temp;
}
class JsonReaderForAny : public JsonReader
{
public:
- JsonReaderForAny()
- : JsonReader(&document)
- {
- }
- rapidjson::Document document;
+ JsonReaderForAny()
+ : JsonReader(&document)
+ {
+ }
+ rapidjson::Document document;
};
bool lsp::Any::GetForMapHelper(std::string& value)
{
- return Get(value);
+ return Get(value);
}
bool lsp::Any::GetForMapHelper(boost::optional<std::string>& value)
{
- return Get(value);
+ return Get(value);
}
std::unique_ptr<Reader> lsp::Any::GetReader()
{
- auto reader = new JsonReaderForAny();
- std::unique_ptr<Reader> ret(reader);
- reader->document.Parse(data.c_str(), data.length());
- if (reader->document.HasParseError())
- {
- return {};
- }
- if (jsonType == kUnKnown)
- {
- jsonType = reader->document.GetType();
- }
- return (ret);
+ auto reader = new JsonReaderForAny();
+ std::unique_ptr<Reader> ret(reader);
+ reader->document.Parse(data.c_str(), data.length());
+ if (reader->document.HasParseError())
+ {
+ return {};
+ }
+ if (jsonType == kUnKnown)
+ {
+ jsonType = reader->document.GetType();
+ }
+ return (ret);
}
class JsonWriterForAny : public JsonWriter
{
public:
- rapidjson::StringBuffer output;
- rapidjson::Writer<rapidjson::StringBuffer> writer;
- JsonWriterForAny():JsonWriter(&writer), writer(output)
- {
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> writer;
+ JsonWriterForAny():JsonWriter(&writer), writer(output)
+ {
- }
+ }
};
std::unique_ptr<Writer> lsp::Any::GetWriter() const
{
- return std::make_unique<JsonWriterForAny>();
+ return std::make_unique<JsonWriterForAny>();
}
void lsp::Any::SetData(std::unique_ptr<Writer>& writer)
{
- auto _temp = static_cast<JsonWriterForAny*>(writer.get());
- data = _temp->output.GetString();
- GuessType();
+ auto _temp = static_cast<JsonWriterForAny*>(writer.get());
+ data = _temp->output.GetString();
+ GuessType();
}
namespace
{
#if 0
- rapidjson::Type convert(lsp::Any::Type type)
- {
- switch (type)
- {
- case lsp::Any::Type::kNullType:
- return rapidjson::Type::kNullType;
- case lsp::Any::Type::kFalseType:
- return rapidjson::Type::kFalseType;
- case lsp::Any::Type::kTrueType:
- return rapidjson::Type::kTrueType;
- case lsp::Any::Type::kObjectType:
- return rapidjson::Type::kObjectType;
- case lsp::Any::Type::kArrayType:
- return rapidjson::Type::kArrayType;
- case lsp::Any::Type::kStringType:
- return rapidjson::Type::kStringType;
- case lsp::Any::Type::kNumberType:
- return rapidjson::Type::kNumberType;
- default:
- return rapidjson::Type::kNullType;
- }
- }
+ rapidjson::Type convert(lsp::Any::Type type)
+ {
+ switch (type)
+ {
+ case lsp::Any::Type::kNullType:
+ return rapidjson::Type::kNullType;
+ case lsp::Any::Type::kFalseType:
+ return rapidjson::Type::kFalseType;
+ case lsp::Any::Type::kTrueType:
+ return rapidjson::Type::kTrueType;
+ case lsp::Any::Type::kObjectType:
+ return rapidjson::Type::kObjectType;
+ case lsp::Any::Type::kArrayType:
+ return rapidjson::Type::kArrayType;
+ case lsp::Any::Type::kStringType:
+ return rapidjson::Type::kStringType;
+ case lsp::Any::Type::kNumberType:
+ return rapidjson::Type::kNumberType;
+ default:
+ return rapidjson::Type::kNullType;
+ }
+ }
#endif
- lsp::Any::Type convert(rapidjson::Type type)
- {
- switch (type)
- {
- case rapidjson::Type::kNullType:
- return lsp::Any::Type::kNullType;
- case rapidjson::Type::kFalseType:
- return lsp::Any::Type::kFalseType;
- case rapidjson::Type::kTrueType:
- return lsp::Any::Type::kTrueType;
- case rapidjson::Type::kObjectType:
- return lsp::Any::Type::kObjectType;
- case rapidjson::Type::kArrayType:
- return lsp::Any::Type::kArrayType;
- case rapidjson::Type::kStringType:
- return lsp::Any::Type::kStringType;
- case rapidjson::Type::kNumberType:
- return lsp::Any::Type::kNumberType;
- default:
- return lsp::Any::Type::kNullType;
- }
- }
+ lsp::Any::Type convert(rapidjson::Type type)
+ {
+ switch (type)
+ {
+ case rapidjson::Type::kNullType:
+ return lsp::Any::Type::kNullType;
+ case rapidjson::Type::kFalseType:
+ return lsp::Any::Type::kFalseType;
+ case rapidjson::Type::kTrueType:
+ return lsp::Any::Type::kTrueType;
+ case rapidjson::Type::kObjectType:
+ return lsp::Any::Type::kObjectType;
+ case rapidjson::Type::kArrayType:
+ return lsp::Any::Type::kArrayType;
+ case rapidjson::Type::kStringType:
+ return lsp::Any::Type::kStringType;
+ case rapidjson::Type::kNumberType:
+ return lsp::Any::Type::kNumberType;
+ default:
+ return lsp::Any::Type::kNullType;
+ }
+ }
}
void Reflect(Reader& visitor, lsp::Any& value)
{
- //if (visitor.IsNull()) {
- // visitor.GetNull();
- // value.SetJsonString("", rapidjson::Type::kNullType);
- // return;
- //}else
- //{
- //
- //}
- JsonReader& json_reader = reinterpret_cast<JsonReader&>(visitor);
- value.SetJsonString(visitor.ToString(), convert(json_reader.m_->GetType()));
+ //if (visitor.IsNull()) {
+ // visitor.GetNull();
+ // value.SetJsonString("", rapidjson::Type::kNullType);
+ // return;
+ //}else
+ //{
+ //
+ //}
+ JsonReader& json_reader = reinterpret_cast<JsonReader&>(visitor);
+ value.SetJsonString(visitor.ToString(), convert(json_reader.m_->GetType()));
}
void Reflect(Writer& visitor, lsp::Any& value)
{
- JsonWriter& json_writer = reinterpret_cast<JsonWriter&>(visitor);
- json_writer.m_->RawValue( value.Data().data(),value.Data().size(),static_cast<rapidjson::Type>(value.GetType()));
+ JsonWriter& json_writer = reinterpret_cast<JsonWriter&>(visitor);
+ json_writer.m_->RawValue( value.Data().data(),value.Data().size(),static_cast<rapidjson::Type>(value.GetType()));
}
void Reflect(Reader& visitor, lsFormattingOptions::KeyData& value)
{
- if (visitor.IsBool())
- {
- Reflect(visitor, value._boolean);
- }
- else if (visitor.IsInt() || visitor.IsInt64() || visitor.IsUint64())
- {
- Reflect(visitor, value._integer);
- }
- else if(visitor.IsString())
- {
- Reflect(visitor, value._string);
- }
+ if (visitor.IsBool())
+ {
+ Reflect(visitor, value._boolean);
+ }
+ else if (visitor.IsInt() || visitor.IsInt64() || visitor.IsUint64())
+ {
+ Reflect(visitor, value._integer);
+ }
+ else if(visitor.IsString())
+ {
+ Reflect(visitor, value._string);
+ }
}
void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value)
{
- if (value._boolean.has_value())
- {
- Reflect(visitor, value._boolean);
- }
- else if (value._integer.has_value())
- {
- Reflect(visitor, value._integer);
- }
- else if (value._string.has_value())
- {
- Reflect(visitor, value._string);
- }
+ if (value._boolean.has_value())
+ {
+ Reflect(visitor, value._boolean);
+ }
+ else if (value._integer.has_value())
+ {
+ Reflect(visitor, value._integer);
+ }
+ else if (value._string.has_value())
+ {
+ Reflect(visitor, value._string);
+ }
}
lsCreateFile::lsCreateFile()
{
- kind = "create";
+ kind = "create";
}
lsDeleteFile::lsDeleteFile()
{
- kind = "delete";
+ kind = "delete";
}
lsRenameFile::lsRenameFile()
{
- kind = "rename";
+ kind = "rename";
}
void Reflect(Reader& visitor, boost::optional< SelectionRange* >& value)
{
- if (visitor.IsNull()) {
- visitor.GetNull();
- return;
- }
+ if (visitor.IsNull()) {
+ visitor.GetNull();
+ return;
+ }
- SelectionRange* entry_value = nullptr;
+ SelectionRange* entry_value = nullptr;
- std::unique_ptr<SelectionRange> ptr = std::make_unique<SelectionRange>();
- SelectionRange* temp = ptr.get();
- Reflect(visitor, *temp);
+ std::unique_ptr<SelectionRange> ptr = std::make_unique<SelectionRange>();
+ SelectionRange* temp = ptr.get();
+ Reflect(visitor, *temp);
- entry_value = ptr.release();
- value = (entry_value);
+ entry_value = ptr.release();
+ value = (entry_value);
}
void Reflect(Writer& visitor, SelectionRange* value)
{
- if (!value)
- {
- throw std::invalid_argument("ResourceOperation value is nullptr");
- }
+ if (!value)
+ {
+ throw std::invalid_argument("ResourceOperation value is nullptr");
+ }
- Reflect(visitor, *value);
+ Reflect(visitor, *value);
}
std::string make_file_scheme_uri(const std::string& absolute_path)
{
- network::uri_builder builder;
- builder.scheme("file");
- builder.host("");
- builder.path(absolute_path);
- return builder.uri().string();
- //// lsDocumentUri uri;
- //// uri.SetPath(absolute_path);
- /// return uri.raw_uri_;
+ network::uri_builder builder;
+ builder.scheme("file");
+ builder.host("");
+ builder.path(absolute_path);
+ return builder.uri().string();
+ //// lsDocumentUri uri;
+ //// uri.SetPath(absolute_path);
+ /// return uri.raw_uri_;
}
// static
AbsolutePath AbsolutePath::BuildDoNotUse(const std::string& path) {
- AbsolutePath p;
- p.path = std::string(path);
- return p;
+ AbsolutePath p;
+ p.path = std::string(path);
+ return p;
}
@@ -614,116 +614,116 @@ AbsolutePath::AbsolutePath() {}
AbsolutePath::operator std::string() const {
- return path;
+ return path;
}
bool AbsolutePath::operator==(const AbsolutePath& rhs) const {
- return path == rhs.path;
+ return path == rhs.path;
}
bool AbsolutePath::operator!=(const AbsolutePath& rhs) const {
- return path != rhs.path;
+ return path != rhs.path;
}
bool AbsolutePath::operator<(const AbsolutePath& rhs) const
{
- return path < rhs.path;
+ return path < rhs.path;
}
bool AbsolutePath::operator>(const AbsolutePath& rhs) const
{
- return path > rhs.path;
+ return path > rhs.path;
}
void Reflect(Reader& visitor, AbsolutePath& value) {
- value.path = visitor.GetString();
+ value.path = visitor.GetString();
}
void Reflect(Writer& visitor, AbsolutePath& value) {
- visitor.String(value.path.c_str(), value.path.length());
+ visitor.String(value.path.c_str(), value.path.length());
}
std::ostream& operator<<(std::ostream& out, const AbsolutePath& path) {
- out << path.path;
- return out;
+ out << path.path;
+ return out;
}
lsDocumentUri lsDocumentUri::FromPath(const AbsolutePath& path) {
- lsDocumentUri result;
- result.SetPath(path);
- return result;
+ lsDocumentUri result;
+ result.SetPath(path);
+ return result;
}
//void lsDocumentUri::SetPath(const AbsolutePath& path)
//{
-// raw_uri_ = make_file_scheme_uri(path.path);
+// raw_uri_ = make_file_scheme_uri(path.path);
//}
//
void lsDocumentUri::SetPath(const AbsolutePath& path) {
- // file:///c%3A/Users/jacob/Desktop/superindex/indexer/full_tests
- raw_uri_ = path;
+ // file:///c%3A/Users/jacob/Desktop/superindex/indexer/full_tests
+ raw_uri_ = path;
- size_t index = raw_uri_.find(":");
- if (index == 1) { // widows drive letters must always be 1 char
- raw_uri_.replace(raw_uri_.begin() + index, raw_uri_.begin() + index + 1,
- "%3A");
- }
+ size_t index = raw_uri_.find(":");
+ if (index == 1) { // widows drive letters must always be 1 char
+ raw_uri_.replace(raw_uri_.begin() + index, raw_uri_.begin() + index + 1,
+ "%3A");
+ }
- // subset of reserved characters from the URI standard
- // http://www.ecma-international.org/ecma-262/6.0/#sec-uri-syntax-and-semantics
- std::string t;
- t.reserve(8 + raw_uri_.size());
+ // subset of reserved characters from the URI standard
+ // http://www.ecma-international.org/ecma-262/6.0/#sec-uri-syntax-and-semantics
+ std::string t;
+ t.reserve(8 + raw_uri_.size());
- // TODO: proper fix
+ // TODO: proper fix
#if defined(_WIN32)
- t += "file:///";
+ t += "file:///";
#else
- t += "file://";
+ t += "file://";
#endif
- // clang-format off
- for (char c : raw_uri_)
- switch (c) {
- case ' ': t += "%20"; break;
- case '#': t += "%23"; break;
- case '$': t += "%24"; break;
- case '&': t += "%26"; break;
- case '(': t += "%28"; break;
- case ')': t += "%29"; break;
- case '+': t += "%2B"; break;
- case ',': t += "%2C"; break;
- case ';': t += "%3B"; break;
- case '?': t += "%3F"; break;
- case '@': t += "%40"; break;
- default: t += c; break;
- }
- // clang-format on
- raw_uri_ = std::move(t);
+ // clang-format off
+ for (char c : raw_uri_)
+ switch (c) {
+ case ' ': t += "%20"; break;
+ case '#': t += "%23"; break;
+ case '$': t += "%24"; break;
+ case '&': t += "%26"; break;
+ case '(': t += "%28"; break;
+ case ')': t += "%29"; break;
+ case '+': t += "%2B"; break;
+ case ',': t += "%2C"; break;
+ case ';': t += "%3B"; break;
+ case '?': t += "%3F"; break;
+ case '@': t += "%40"; break;
+ default: t += c; break;
+ }
+ // clang-format on
+ raw_uri_ = std::move(t);
}
std::string lsDocumentUri::GetRawPath() const {
- if (raw_uri_.compare(0, 8, "file:///"))
- return raw_uri_;
+ if (raw_uri_.compare(0, 8, "file:///"))
+ return raw_uri_;
- std::string ret;
+ std::string ret;
#if defined(_WIN32)
- size_t i = 8;
+ size_t i = 8;
#else
- size_t i = 7;
+ size_t i = 7;
#endif
- auto from_hex = [](unsigned char c) {
- return c - '0' < 10 ? c - '0' : (c | 32) - 'a' + 10;
- };
- for (; i < raw_uri_.size(); i++) {
- if (i + 3 <= raw_uri_.size() && raw_uri_[i] == '%') {
- ret.push_back(from_hex(raw_uri_[i + 1]) * 16 + from_hex(raw_uri_[i + 2]));
- i += 2;
- }
- else
- ret.push_back(raw_uri_[i] == '\\' ? '/' : raw_uri_[i]);
- }
- return ret;
+ auto from_hex = [](unsigned char c) {
+ return c - '0' < 10 ? c - '0' : (c | 32) - 'a' + 10;
+ };
+ for (; i < raw_uri_.size(); i++) {
+ if (i + 3 <= raw_uri_.size() && raw_uri_[i] == '%') {
+ ret.push_back(from_hex(raw_uri_[i + 1]) * 16 + from_hex(raw_uri_[i + 2]));
+ i += 2;
+ }
+ else
+ ret.push_back(raw_uri_[i] == '\\' ? '/' : raw_uri_[i]);
+ }
+ return ret;
}
lsDocumentUri::lsDocumentUri() {}
@@ -731,7 +731,7 @@ lsDocumentUri::lsDocumentUri() {}
lsDocumentUri::lsDocumentUri(const AbsolutePath& path)
{
- SetPath(path);
+ SetPath(path);
}
lsDocumentUri::lsDocumentUri(const lsDocumentUri& other): raw_uri_(other.raw_uri_)
@@ -739,351 +739,351 @@ lsDocumentUri::lsDocumentUri(const lsDocumentUri& other): raw_uri_(other.raw_uri
}
bool lsDocumentUri::operator==(const lsDocumentUri& other) const {
- return raw_uri_ == other.raw_uri_;
+ return raw_uri_ == other.raw_uri_;
}
bool lsDocumentUri::operator==(const std::string& other) const
{
- return raw_uri_ == other;
+ return raw_uri_ == other;
}
AbsolutePath lsDocumentUri::GetAbsolutePath() const {
- if (raw_uri_.find("file://") != std::string::npos){
- try
- {
- return lsp::NormalizePath(GetRawPath(), false /*ensure_exists*/, false);
- }
- catch (std::exception&)
- {
- return AbsolutePath("", false);
- }
- }
+ if (raw_uri_.find("file://") != std::string::npos){
+ try
+ {
+ return lsp::NormalizePath(GetRawPath(), false /*ensure_exists*/, false);
+ }
+ catch (std::exception&)
+ {
+ return AbsolutePath("", false);
+ }
+ }
- return AbsolutePath(raw_uri_,false);
+ return AbsolutePath(raw_uri_,false);
}
AbsolutePath::AbsolutePath(const std::string& path, bool validate)
- : path(path) {
- // TODO: enable validation after fixing tests.
- if (validate && !lsp::IsAbsolutePath(path)) {
- qualify = false;
- auto temp = lsp::NormalizePath(path,false);
- if(!temp.path.empty())
- {
- this->path = temp.path;
- }
- }
+ : path(path) {
+ // TODO: enable validation after fixing tests.
+ if (validate && !lsp::IsAbsolutePath(path)) {
+ qualify = false;
+ auto temp = lsp::NormalizePath(path,false);
+ if(!temp.path.empty())
+ {
+ this->path = temp.path;
+ }
+ }
}
void Reflect(Writer& visitor, lsDocumentUri& value) {
- Reflect(visitor, value.raw_uri_);
+ Reflect(visitor, value.raw_uri_);
}
void Reflect(Reader& visitor, lsDocumentUri& value) {
- Reflect(visitor, value.raw_uri_);
- // Only record the path when we deserialize a URI, since it most likely came
- // from the client.
+ Reflect(visitor, value.raw_uri_);
+ // Only record the path when we deserialize a URI, since it most likely came
+ // from the client.
}
std::string ProgressReport::ToString() const
{
- std::string info;
- info += "id:" + id + "\n";
- info += "task:" + task + "\n";
- info += "subTask:" + subTask + "\n";
- info += "status:" + status + "\n";
- {
- std::stringstream ss;
- ss << "totalWork:" << totalWork << std::endl;
- info += ss.str();
- }
- {
- std::stringstream ss;
- ss << "workDone:" << workDone << std::endl;
- info += ss.str();
- }
-
- {
- std::stringstream ss;
- ss << "complete:" << complete << std::endl;
- info += ss.str();
- }
-
- return info;
+ std::string info;
+ info += "id:" + id + "\n";
+ info += "task:" + task + "\n";
+ info += "subTask:" + subTask + "\n";
+ info += "status:" + status + "\n";
+ {
+ std::stringstream ss;
+ ss << "totalWork:" << totalWork << std::endl;
+ info += ss.str();
+ }
+ {
+ std::stringstream ss;
+ ss << "workDone:" << workDone << std::endl;
+ info += ss.str();
+ }
+
+ {
+ std::stringstream ss;
+ ss << "complete:" << complete << std::endl;
+ info += ss.str();
+ }
+
+ return info;
}
std::string EventNotification::ToString() const
{
- std::string info;
- if (ClasspathUpdated == eventType)
- {
- info += "eventType:ClasspathUpdated\n";
- }
- else if (ProjectsImported == eventType)
- {
- info += "eventType:ProjectsImported\n";
- }
- else
- {
- std::ostringstream oss;
- oss << std::hex << eventType << std::endl;
-
- info += "eventType:";
- info += oss.str();
- }
- info += "data:" + data.Data() + "\n";
- return info;
+ std::string info;
+ if (ClasspathUpdated == eventType)
+ {
+ info += "eventType:ClasspathUpdated\n";
+ }
+ else if (ProjectsImported == eventType)
+ {
+ info += "eventType:ProjectsImported\n";
+ }
+ else
+ {
+ std::ostringstream oss;
+ oss << std::hex << eventType << std::endl;
+
+ info += "eventType:";
+ info += oss.str();
+ }
+ info += "data:" + data.Data() + "\n";
+ return info;
}
std::string lsp::ToString(lsCompletionItemKind _kind)
{
- switch (_kind) {
- case lsCompletionItemKind::Text:
- return "Text";
- case lsCompletionItemKind::Method:
- return "Method";
- case lsCompletionItemKind::Function:
- return "";
- case lsCompletionItemKind::Constructor:
- return "Function";
- case lsCompletionItemKind::Field:
- return "Field";
- case lsCompletionItemKind::Variable:
- return "";
- case lsCompletionItemKind::Class:
- return "Variable";
- case lsCompletionItemKind::Interface:
- return "Interface";
- case lsCompletionItemKind::Module:
- return "Module";
- case lsCompletionItemKind::Property:
- return "Property";
- case lsCompletionItemKind::Unit:
- return "Unit";
- case lsCompletionItemKind::Value:
- return "Value";
- case lsCompletionItemKind::Enum:
- return "Enum";
- case lsCompletionItemKind::Keyword:
- return "Keyword";
- case lsCompletionItemKind::Snippet:
- return "Snippet";
- case lsCompletionItemKind::Color:
- return "Color";
- case lsCompletionItemKind::File:
- return "File";
- case lsCompletionItemKind::Reference:
- return "Reference";
- case lsCompletionItemKind::Folder:
- return "Folder";
- case lsCompletionItemKind::EnumMember:
- return "EnumMember";
- case lsCompletionItemKind::Constant:
- return "Constant";
- case lsCompletionItemKind::Struct:
- return "Struct";
- case lsCompletionItemKind::Event:
- return "Event";
- case lsCompletionItemKind::Operator:
- return "Operator";
- case lsCompletionItemKind::TypeParameter:
- return "TypeParameter";
- default:
- return "Unknown";
- }
+ switch (_kind) {
+ case lsCompletionItemKind::Text:
+ return "Text";
+ case lsCompletionItemKind::Method:
+ return "Method";
+ case lsCompletionItemKind::Function:
+ return "";
+ case lsCompletionItemKind::Constructor:
+ return "Function";
+ case lsCompletionItemKind::Field:
+ return "Field";
+ case lsCompletionItemKind::Variable:
+ return "";
+ case lsCompletionItemKind::Class:
+ return "Variable";
+ case lsCompletionItemKind::Interface:
+ return "Interface";
+ case lsCompletionItemKind::Module:
+ return "Module";
+ case lsCompletionItemKind::Property:
+ return "Property";
+ case lsCompletionItemKind::Unit:
+ return "Unit";
+ case lsCompletionItemKind::Value:
+ return "Value";
+ case lsCompletionItemKind::Enum:
+ return "Enum";
+ case lsCompletionItemKind::Keyword:
+ return "Keyword";
+ case lsCompletionItemKind::Snippet:
+ return "Snippet";
+ case lsCompletionItemKind::Color:
+ return "Color";
+ case lsCompletionItemKind::File:
+ return "File";
+ case lsCompletionItemKind::Reference:
+ return "Reference";
+ case lsCompletionItemKind::Folder:
+ return "Folder";
+ case lsCompletionItemKind::EnumMember:
+ return "EnumMember";
+ case lsCompletionItemKind::Constant:
+ return "Constant";
+ case lsCompletionItemKind::Struct:
+ return "Struct";
+ case lsCompletionItemKind::Event:
+ return "Event";
+ case lsCompletionItemKind::Operator:
+ return "Operator";
+ case lsCompletionItemKind::TypeParameter:
+ return "TypeParameter";
+ default:
+ return "Unknown";
+ }
}
std::string lsp::ToString(lsInsertTextFormat _kind)
{
- if (_kind == lsInsertTextFormat::PlainText)
- {
- return "PlainText";
- }
- else if (_kind == lsInsertTextFormat::Snippet)
- {
- return "Snippet";
- }else
- {
- return "Unknown";
- }
+ if (_kind == lsInsertTextFormat::PlainText)
+ {
+ return "PlainText";
+ }
+ else if (_kind == lsInsertTextFormat::Snippet)
+ {
+ return "Snippet";
+ }else
+ {
+ return "Unknown";
+ }
}
const std::string& lsCompletionItem::InsertedContent() const
{
- if (textEdit)
- return textEdit->newText;
- if (insertText.has_value() && !insertText->empty())
- return insertText.value();
- return label;
+ if (textEdit)
+ return textEdit->newText;
+ if (insertText.has_value() && !insertText->empty())
+ return insertText.value();
+ return label;
}
std::string lsCompletionItem::DisplayText()
{
- if (detail)
- {
+ if (detail)
+ {
- return label + " in " + detail.value();
- }
- return label;
+ return label + " in " + detail.value();
+ }
+ return label;
}
std::string lsCompletionItem::ToString()
{
- std::stringstream info;
- info << "label : " << label << std::endl;
- if(kind)
- info << "kind : " << lsp::ToString(kind.value()) << std::endl;
- else
- info << "kind : no exist." << std::endl;
-
- if (detail)
- info << "detail : " << detail.value() << std::endl;
- else
- info << "detail : no exist." << std::endl;
-
- if (documentation)
- {
- info << "documentation : " << std::endl;
- if(documentation.value().first)
- {
- info << documentation.value().first.value();
- }
- else if(documentation.value().second)
- {
- info << documentation.value().second.value().value;
- }
- }
- else
- info << "documentation : no exist." << std::endl;
-
- if (deprecated)
- info << "deprecated : " << deprecated.value() << std::endl;
- else
- info << "deprecated : no exist." << std::endl;
-
- if (preselect)
- info << "preselect : " << preselect.value() << std::endl;
- else
- info << "preselect : no exist." << std::endl;
-
- if (sortText)
- info << "sortText : " << sortText.value() << std::endl;
- else
- info << "sortText : no exist." << std::endl;
-
- if (filterText)
- info << "filterText : " << filterText.value() << std::endl;
- else
- info << "filterText : no exist." << std::endl;
-
-
- if (insertText)
- info << "insertText : " << insertText.value() << std::endl;
- else
- info << "insertText : no exist." << std::endl;
-
-
- if (insertTextFormat)
- info << "insertText : " << lsp::ToString(insertTextFormat.value()) << std::endl;
- else
- info << "insertTextFormat : no exist." << std::endl;
-
- if (textEdit)
- info << "textEdit : " << textEdit.value().ToString() << std::endl;
- else
- info << "textEdit : no exist." << std::endl;
-
-
-
- return info.str();
+ std::stringstream info;
+ info << "label : " << label << std::endl;
+ if(kind)
+ info << "kind : " << lsp::ToString(kind.value()) << std::endl;
+ else
+ info << "kind : no exist." << std::endl;
+
+ if (detail)
+ info << "detail : " << detail.value() << std::endl;
+ else
+ info << "detail : no exist." << std::endl;
+
+ if (documentation)
+ {
+ info << "documentation : " << std::endl;
+ if(documentation.value().first)
+ {
+ info << documentation.value().first.value();
+ }
+ else if(documentation.value().second)
+ {
+ info << documentation.value().second.value().value;
+ }
+ }
+ else
+ info << "documentation : no exist." << std::endl;
+
+ if (deprecated)
+ info << "deprecated : " << deprecated.value() << std::endl;
+ else
+ info << "deprecated : no exist." << std::endl;
+
+ if (preselect)
+ info << "preselect : " << preselect.value() << std::endl;
+ else
+ info << "preselect : no exist." << std::endl;
+
+ if (sortText)
+ info << "sortText : " << sortText.value() << std::endl;
+ else
+ info << "sortText : no exist." << std::endl;
+
+ if (filterText)
+ info << "filterText : " << filterText.value() << std::endl;
+ else
+ info << "filterText : no exist." << std::endl;
+
+
+ if (insertText)
+ info << "insertText : " << insertText.value() << std::endl;
+ else
+ info << "insertText : no exist." << std::endl;
+
+
+ if (insertTextFormat)
+ info << "insertText : " << lsp::ToString(insertTextFormat.value()) << std::endl;
+ else
+ info << "insertTextFormat : no exist." << std::endl;
+
+ if (textEdit)
+ info << "textEdit : " << textEdit.value().ToString() << std::endl;
+ else
+ info << "textEdit : no exist." << std::endl;
+
+
+
+ return info.str();
}
namespace JDT
{
- namespace CodeActionKind {
-
-
- /**
- * Base kind for quickfix actions: 'quickfix'
- */
- const char* QuickFix = "quickfix";
-
- /**
- * Base kind for refactoring actions: 'refactor'
- */
- const char* Refactor = "refactor";
-
- /**
- * Base kind for refactoring extraction actions: 'refactor.extract'
- *
- * Example extract actions:
- *
- * - Extract method - Extract function - Extract variable - Extract interface
- * from class - ...
- */
- const char* RefactorExtract = "refactor.extract";
-
- /**
- * Base kind for refactoring inline actions: 'refactor.inline'
- *
- * Example inline actions:
- *
- * - Inline function - Inline variable - Inline constant - ...
- */
- const char* RefactorInline = "refactor.inline";
-
- /**
- * Base kind for refactoring rewrite actions: 'refactor.rewrite'
- *
- * Example rewrite actions:
- *
- * - Convert JavaScript function to class - Add or remove parameter -
- * Encapsulate field - Make method static - Move method to base class - ...
- */
- const char* RefactorRewrite = "refactor.rewrite";
-
- /**
- * Base kind for source actions: `source`
- *
- * Source code actions apply to the entire file.
- */
- const char* Source = "source";
-
- /**
- * Base kind for an organize imports source action: `source.organizeImports`
- */
- const char* SourceOrganizeImports = "source.organizeImports";
-
- const char* COMMAND_ID_APPLY_EDIT = "java.apply.workspaceEdit";
-
- };
+ namespace CodeActionKind {
+
+
+ /**
+ * Base kind for quickfix actions: 'quickfix'
+ */
+ const char* QuickFix = "quickfix";
+
+ /**
+ * Base kind for refactoring actions: 'refactor'
+ */
+ const char* Refactor = "refactor";
+
+ /**
+ * Base kind for refactoring extraction actions: 'refactor.extract'
+ *
+ * Example extract actions:
+ *
+ * - Extract method - Extract function - Extract variable - Extract interface
+ * from class - ...
+ */
+ const char* RefactorExtract = "refactor.extract";
+
+ /**
+ * Base kind for refactoring inline actions: 'refactor.inline'
+ *
+ * Example inline actions:
+ *
+ * - Inline function - Inline variable - Inline constant - ...
+ */
+ const char* RefactorInline = "refactor.inline";
+
+ /**
+ * Base kind for refactoring rewrite actions: 'refactor.rewrite'
+ *
+ * Example rewrite actions:
+ *
+ * - Convert JavaScript function to class - Add or remove parameter -
+ * Encapsulate field - Make method static - Move method to base class - ...
+ */
+ const char* RefactorRewrite = "refactor.rewrite";
+
+ /**
+ * Base kind for source actions: `source`
+ *
+ * Source code actions apply to the entire file.
+ */
+ const char* Source = "source";
+
+ /**
+ * Base kind for an organize imports source action: `source.organizeImports`
+ */
+ const char* SourceOrganizeImports = "source.organizeImports";
+
+ const char* COMMAND_ID_APPLY_EDIT = "java.apply.workspaceEdit";
+
+ };
}
Directory::Directory(const AbsolutePath& path) : path(path.path) {
- lsp::EnsureEndsInSlash(this->path);
+ lsp::EnsureEndsInSlash(this->path);
}
bool Directory::operator==(const Directory& rhs) const {
- return path == rhs.path;
+ return path == rhs.path;
}
bool Directory::operator!=(const Directory& rhs) const {
- return path != rhs.path;
+ return path != rhs.path;
}
Registration Registration::Create(const std::string& method)
{
- Registration reg;
- reg.method = method;
- const boost::uuids::uuid a_uuid = boost::uuids::random_generator()();
- reg.id = to_string(a_uuid);
- return reg;
+ Registration reg;
+ reg.method = method;
+ const boost::uuids::uuid a_uuid = boost::uuids::random_generator()();
+ reg.id = to_string(a_uuid);
+ return reg;
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
index 79d9a6fc637..fba0edc30c3 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
@@ -10,66 +10,66 @@ bool lsDiagnostic::operator!=(const lsDiagnostic& rhs) const {
std::string lsResponseError::ToString()
{
- std::string info = "code:";
- switch (code)
- {
- case lsErrorCodes::ParseError:
- info += "ParseError\n";
- break;
- case lsErrorCodes::InvalidRequest:
- info += "InvalidRequest\n";
- break;
- case lsErrorCodes::MethodNotFound:
- info += "MethodNotFound\n";
- break;
- case lsErrorCodes::InvalidParams:
- info += "InvalidParams\n";
- break;
- case lsErrorCodes::InternalError:
- info += "InternalError\n";
- break;
- case lsErrorCodes::serverErrorStart:
- info += "serverErrorStart\n";
- break;
- case lsErrorCodes::serverErrorEnd:
- info += "serverErrorEnd\n";
- break;
- case lsErrorCodes::ServerNotInitialized:
- info += "ServerNotInitialized\n";
- break;
- case lsErrorCodes::UnknownErrorCode:
- info += "UnknownErrorCode\n";
- break;
- // Defined by the protocol.
- case lsErrorCodes::RequestCancelled:
- info += "RequestCancelled\n";
- break;
- default:
- {
- std::stringstream ss;
- ss << "unknown code:" << (int32_t)code << std::endl;
- info += ss.str();
- }
- break;
- }
- info += "message:" + message;
- info += "\n";
+ std::string info = "code:";
+ switch (code)
+ {
+ case lsErrorCodes::ParseError:
+ info += "ParseError\n";
+ break;
+ case lsErrorCodes::InvalidRequest:
+ info += "InvalidRequest\n";
+ break;
+ case lsErrorCodes::MethodNotFound:
+ info += "MethodNotFound\n";
+ break;
+ case lsErrorCodes::InvalidParams:
+ info += "InvalidParams\n";
+ break;
+ case lsErrorCodes::InternalError:
+ info += "InternalError\n";
+ break;
+ case lsErrorCodes::serverErrorStart:
+ info += "serverErrorStart\n";
+ break;
+ case lsErrorCodes::serverErrorEnd:
+ info += "serverErrorEnd\n";
+ break;
+ case lsErrorCodes::ServerNotInitialized:
+ info += "ServerNotInitialized\n";
+ break;
+ case lsErrorCodes::UnknownErrorCode:
+ info += "UnknownErrorCode\n";
+ break;
+ // Defined by the protocol.
+ case lsErrorCodes::RequestCancelled:
+ info += "RequestCancelled\n";
+ break;
+ default:
+ {
+ std::stringstream ss;
+ ss << "unknown code:" << (int32_t)code << std::endl;
+ info += ss.str();
+ }
+ break;
+ }
+ info += "message:" + message;
+ info += "\n";
- if(data.has_value())
- {
+ if(data.has_value())
+ {
- info += "data:" + data.value().Data();
- info += "\n";
- }
- return info;
+ info += "data:" + data.value().Data();
+ info += "\n";
+ }
+ return info;
}
void lsResponseError::Write(Writer& visitor) {
- auto& value = *this;
- int code2 = static_cast<int>(this->code);
+ auto& value = *this;
+ int code2 = static_cast<int>(this->code);
- visitor.StartObject();
- REFLECT_MEMBER2("code", code2);
- REFLECT_MEMBER(message);
- visitor.EndObject();
+ visitor.StartObject();
+ REFLECT_MEMBER2("code", code2);
+ REFLECT_MEMBER(message);
+ visitor.EndObject();
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/textDocument.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/textDocument.cpp
index 4d0b6b87131..a95c2b1ea86 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/textDocument.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/textDocument.cpp
@@ -14,336 +14,336 @@ constexpr unsigned SemanticTokenEncodingSize = 5;
std::string to_string(SemanticTokenType _type)
{
- switch (_type) {
+ switch (_type) {
- case ls_namespace: return "namespace";
- /**
- * Represents a generic type. Acts as a fallback for types which
- * can"t be mapped to a specific type like class or enum.
- */
- case ls_type: return "type";
- case ls_class: return "class";
- case ls_enum: return "enum";
- case ls_interface: return "interface";
- case ls_struct: return "struct";
- case ls_typeParameter: return "typeParameter";
- case ls_parameter: return "parameter";
- case ls_variable: return "variable";
- case ls_property: return "property";
- case ls_enumMember: return "enumMember";
- case ls_event: return "event";
- case ls_function: return "function";
- case ls_method: return "method";
- case ls_macro: return "macro";
- case ls_keyword: return "keyword";
- case ls_modifier: return "modifier";
- case ls_comment: return "comment";
- case ls_string: return "string";
- case ls_number: return "number";
- case ls_regexp: return "regexp";
- case ls_operator: return "operator";
- default:
- return "unknown";
- }
+ case ls_namespace: return "namespace";
+ /**
+ * Represents a generic type. Acts as a fallback for types which
+ * can"t be mapped to a specific type like class or enum.
+ */
+ case ls_type: return "type";
+ case ls_class: return "class";
+ case ls_enum: return "enum";
+ case ls_interface: return "interface";
+ case ls_struct: return "struct";
+ case ls_typeParameter: return "typeParameter";
+ case ls_parameter: return "parameter";
+ case ls_variable: return "variable";
+ case ls_property: return "property";
+ case ls_enumMember: return "enumMember";
+ case ls_event: return "event";
+ case ls_function: return "function";
+ case ls_method: return "method";
+ case ls_macro: return "macro";
+ case ls_keyword: return "keyword";
+ case ls_modifier: return "modifier";
+ case ls_comment: return "comment";
+ case ls_string: return "string";
+ case ls_number: return "number";
+ case ls_regexp: return "regexp";
+ case ls_operator: return "operator";
+ default:
+ return "unknown";
+ }
}
unsigned toSemanticTokenType(std::vector<SemanticTokenType>& modifiers)
{
- unsigned encode_type = 0;
- for (auto bit : modifiers) {
- encode_type = encode_type | (0b00000001 << bit);
- }
- return encode_type;
+ unsigned encode_type = 0;
+ for (auto bit : modifiers) {
+ encode_type = encode_type | (0b00000001 << bit);
+ }
+ return encode_type;
}
std::string to_string(TokenType_JDT _type)
{
- switch (_type)
- {
- case PACKAGE_JDT:return "namespace";
- case CLASS_JDT:return "class";
- case INTERFACE_JDT:return "interface";
- case ENUM_JDT:return "enum";
- case ENUM_MEMBER_JDT:return "enumMember";
- case TYPE_JDT:return "type";
- case TYPE_PARAMETER_JDT:return "typeParameter";
- case ANNOTATION_JDT:return "annotation";
- case ANNOTATION_MEMBER_JDT:return "annotationMember";
- case METHOD_JDT:return "function";
- case PROPERTY_JDT:return "property";
- case VARIABLE_JDT:return "variable";
- case PARAMETER_JDT:return "parameter";
- }
- return "unknown";
+ switch (_type)
+ {
+ case PACKAGE_JDT:return "namespace";
+ case CLASS_JDT:return "class";
+ case INTERFACE_JDT:return "interface";
+ case ENUM_JDT:return "enum";
+ case ENUM_MEMBER_JDT:return "enumMember";
+ case TYPE_JDT:return "type";
+ case TYPE_PARAMETER_JDT:return "typeParameter";
+ case ANNOTATION_JDT:return "annotation";
+ case ANNOTATION_MEMBER_JDT:return "annotationMember";
+ case METHOD_JDT:return "function";
+ case PROPERTY_JDT:return "property";
+ case VARIABLE_JDT:return "variable";
+ case PARAMETER_JDT:return "parameter";
+ }
+ return "unknown";
}
std::string to_string(SemanticTokenModifier modifier)
{
- switch (modifier) {
- case ls_declaration: return "declaration";
- case ls_definition: return "definition";
- case ls_readonly: return "readonly";
- case ls_static: return "static";
- case ls_deprecated: return "deprecated";
- case ls_abstract: return "abstract";
- case ls_async: return "async";
- case ls_modification: return "modification";
- case ls_documentation: return "documentation";
- case ls_defaultLibrary: return "defaultLibrary";
- default:
- return "unknown";
- }
+ switch (modifier) {
+ case ls_declaration: return "declaration";
+ case ls_definition: return "definition";
+ case ls_readonly: return "readonly";
+ case ls_static: return "static";
+ case ls_deprecated: return "deprecated";
+ case ls_abstract: return "abstract";
+ case ls_async: return "async";
+ case ls_modification: return "modification";
+ case ls_documentation: return "documentation";
+ case ls_defaultLibrary: return "defaultLibrary";
+ default:
+ return "unknown";
+ }
}
unsigned toSemanticTokenModifiers(std::vector<SemanticTokenModifier>& modifiers)
{
- unsigned encodedModifiers = 0;
- for (auto bit : modifiers) {
- encodedModifiers = encodedModifiers | (0b00000001 << bit);
- }
- return encodedModifiers;
+ unsigned encodedModifiers = 0;
+ for (auto bit : modifiers) {
+ encodedModifiers = encodedModifiers | (0b00000001 << bit);
+ }
+ return encodedModifiers;
}
std::string toSemanticTokenType(HighlightingKind_clangD kind) {
- switch (kind) {
- case HighlightingKind_clangD::Variable:
- case HighlightingKind_clangD::LocalVariable:
- case HighlightingKind_clangD::StaticField:
- return "variable";
- case HighlightingKind_clangD::Parameter:
- return "parameter";
- case HighlightingKind_clangD::Function:
- return "function";
- case HighlightingKind_clangD::Method:
- return "method";
- case HighlightingKind_clangD::StaticMethod:
- // FIXME: better method with static modifier?
- return "function";
- case HighlightingKind_clangD::Field:
- return "property";
- case HighlightingKind_clangD::Class:
- return "class";
- case HighlightingKind_clangD::Interface:
- return "interface";
- case HighlightingKind_clangD::Enum:
- return "enum";
- case HighlightingKind_clangD::EnumConstant:
- return "enumMember";
- case HighlightingKind_clangD::Typedef:
- case HighlightingKind_clangD::Type:
- return "type";
- case HighlightingKind_clangD::Unknown:
- return "unknown"; // nonstandard
- case HighlightingKind_clangD::Namespace:
- return "namespace";
- case HighlightingKind_clangD::TemplateParameter:
- return "typeParameter";
- case HighlightingKind_clangD::Concept:
- return "concept"; // nonstandard
- case HighlightingKind_clangD::Primitive:
- return "type";
- case HighlightingKind_clangD::Macro:
- return "macro";
- case HighlightingKind_clangD::InactiveCode:
- return "comment";
- }
- return ("unhandled HighlightingKind_clangD");
+ switch (kind) {
+ case HighlightingKind_clangD::Variable:
+ case HighlightingKind_clangD::LocalVariable:
+ case HighlightingKind_clangD::StaticField:
+ return "variable";
+ case HighlightingKind_clangD::Parameter:
+ return "parameter";
+ case HighlightingKind_clangD::Function:
+ return "function";
+ case HighlightingKind_clangD::Method:
+ return "method";
+ case HighlightingKind_clangD::StaticMethod:
+ // FIXME: better method with static modifier?
+ return "function";
+ case HighlightingKind_clangD::Field:
+ return "property";
+ case HighlightingKind_clangD::Class:
+ return "class";
+ case HighlightingKind_clangD::Interface:
+ return "interface";
+ case HighlightingKind_clangD::Enum:
+ return "enum";
+ case HighlightingKind_clangD::EnumConstant:
+ return "enumMember";
+ case HighlightingKind_clangD::Typedef:
+ case HighlightingKind_clangD::Type:
+ return "type";
+ case HighlightingKind_clangD::Unknown:
+ return "unknown"; // nonstandard
+ case HighlightingKind_clangD::Namespace:
+ return "namespace";
+ case HighlightingKind_clangD::TemplateParameter:
+ return "typeParameter";
+ case HighlightingKind_clangD::Concept:
+ return "concept"; // nonstandard
+ case HighlightingKind_clangD::Primitive:
+ return "type";
+ case HighlightingKind_clangD::Macro:
+ return "macro";
+ case HighlightingKind_clangD::InactiveCode:
+ return "comment";
+ }
+ return ("unhandled HighlightingKind_clangD");
}
std::string toSemanticTokenModifier(HighlightingModifier_clangD modifier) {
- switch (modifier) {
- case HighlightingModifier_clangD::Declaration:
- return "declaration";
- case HighlightingModifier_clangD::Deprecated:
- return "deprecated";
- case HighlightingModifier_clangD::Readonly:
- return "readonly";
- case HighlightingModifier_clangD::Static:
- return "static";
- case HighlightingModifier_clangD::Deduced:
- return "deduced"; // nonstandard
- case HighlightingModifier_clangD::Abstract:
- return "abstract";
- case HighlightingModifier_clangD::DependentName:
- return "dependentName"; // nonstandard
- case HighlightingModifier_clangD::DefaultLibrary:
- return "defaultLibrary";
- case HighlightingModifier_clangD::FunctionScope:
- return "functionScope"; // nonstandard
- case HighlightingModifier_clangD::ClassScope:
- return "classScope"; // nonstandard
- case HighlightingModifier_clangD::FileScope:
- return "fileScope"; // nonstandard
- case HighlightingModifier_clangD::GlobalScope:
- return "globalScope"; // nonstandard
- }
- return ("unhandled HighlightingModifier_clangD");
+ switch (modifier) {
+ case HighlightingModifier_clangD::Declaration:
+ return "declaration";
+ case HighlightingModifier_clangD::Deprecated:
+ return "deprecated";
+ case HighlightingModifier_clangD::Readonly:
+ return "readonly";
+ case HighlightingModifier_clangD::Static:
+ return "static";
+ case HighlightingModifier_clangD::Deduced:
+ return "deduced"; // nonstandard
+ case HighlightingModifier_clangD::Abstract:
+ return "abstract";
+ case HighlightingModifier_clangD::DependentName:
+ return "dependentName"; // nonstandard
+ case HighlightingModifier_clangD::DefaultLibrary:
+ return "defaultLibrary";
+ case HighlightingModifier_clangD::FunctionScope:
+ return "functionScope"; // nonstandard
+ case HighlightingModifier_clangD::ClassScope:
+ return "classScope"; // nonstandard
+ case HighlightingModifier_clangD::FileScope:
+ return "fileScope"; // nonstandard
+ case HighlightingModifier_clangD::GlobalScope:
+ return "globalScope"; // nonstandard
+ }
+ return ("unhandled HighlightingModifier_clangD");
}
bool operator==(const SemanticToken& l, const SemanticToken& r) {
- return std::tie(l.deltaLine, l.deltaStart, l.length, l.tokenType,
- l.tokenModifiers) == std::tie(r.deltaLine, r.deltaStart,
- r.length, r.tokenType,
- r.tokenModifiers);
+ return std::tie(l.deltaLine, l.deltaStart, l.length, l.tokenType,
+ l.tokenModifiers) == std::tie(r.deltaLine, r.deltaStart,
+ r.length, r.tokenType,
+ r.tokenModifiers);
}
std::vector<int32_t> SemanticTokens::encodeTokens(std::vector<SemanticToken>& tokens)
{
- std::vector<int32_t> result;
- result.reserve(SemanticTokenEncodingSize * tokens.size());
- for (const auto& tok : tokens)
- {
- result.push_back(tok.deltaLine);
- result.push_back(tok.deltaStart);
- result.push_back(tok.length);
- result.push_back(tok.tokenType);
- result.push_back(tok.tokenModifiers);
- }
- assert(result.size() == SemanticTokenEncodingSize * tokens.size());
- return result;
+ std::vector<int32_t> result;
+ result.reserve(SemanticTokenEncodingSize * tokens.size());
+ for (const auto& tok : tokens)
+ {
+ result.push_back(tok.deltaLine);
+ result.push_back(tok.deltaStart);
+ result.push_back(tok.length);
+ result.push_back(tok.tokenType);
+ result.push_back(tok.tokenModifiers);
+ }
+ assert(result.size() == SemanticTokenEncodingSize * tokens.size());
+ return result;
}
void Reflect(Reader& visitor, TextDocumentComplete::Either& value)
{
- if(visitor.IsArray())
- {
- Reflect(visitor, value.first);
- }
- else
- {
+ if(visitor.IsArray())
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
- Reflect(visitor, value.second);
- }
+ Reflect(visitor, value.second);
+ }
}
void Reflect(Reader& visitor, TextDocumentDocumentSymbol::Either& value)
{
- if (visitor.HasMember("location"))
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
+ if (visitor.HasMember("location"))
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
}
void Reflect(Reader& visitor, std::pair<boost::optional<std::string>, boost::optional<lsMarkedString>>& value)
{
- if (!visitor.IsString())
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
+ if (!visitor.IsString())
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
}
void Reflect(Reader& visitor, std::pair<boost::optional<std::string>, boost::optional<MarkupContent>>& value)
{
- if (!visitor.IsString())
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
+ if (!visitor.IsString())
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
}
void Reflect(Reader& visitor, TextDocumentHover::Either& value)
{
- JsonReader& reader = dynamic_cast<JsonReader&>(visitor);
- if (reader.IsArray())
- {
- Reflect(visitor, value.first);
- }
- else if(reader.m_->IsObject())
- {
- Reflect(visitor, value.second);
- }
+ JsonReader& reader = dynamic_cast<JsonReader&>(visitor);
+ if (reader.IsArray())
+ {
+ Reflect(visitor, value.first);
+ }
+ else if(reader.m_->IsObject())
+ {
+ Reflect(visitor, value.second);
+ }
}
void Reflect(Reader& visitor, TextDocumentPrepareRenameResult& value)
{
- if (visitor.HasMember("placeholder"))
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
+ if (visitor.HasMember("placeholder"))
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
}
namespace
- RefactorProposalUtility
+ RefactorProposalUtility
{
- const char* APPLY_REFACTORING_COMMAND_ID = "java.action.applyRefactoringCommand";
- const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND = "extractVariableAllOccurrence";
- const char* EXTRACT_VARIABLE_COMMAND = "extractVariable";
- const char* EXTRACT_CONSTANT_COMMAND = "extractConstant";
- const char* EXTRACT_METHOD_COMMAND = "extractMethod";
- const char* EXTRACT_FIELD_COMMAND = "extractField";
- const char* CONVERT_VARIABLE_TO_FIELD_COMMAND = "convertVariableToField";
- const char* MOVE_FILE_COMMAND = "moveFile";
- const char* MOVE_INSTANCE_METHOD_COMMAND = "moveInstanceMethod";
- const char* MOVE_STATIC_MEMBER_COMMAND = "moveStaticMember";
- const char* MOVE_TYPE_COMMAND = "moveType";
+ const char* APPLY_REFACTORING_COMMAND_ID = "java.action.applyRefactoringCommand";
+ const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND = "extractVariableAllOccurrence";
+ const char* EXTRACT_VARIABLE_COMMAND = "extractVariable";
+ const char* EXTRACT_CONSTANT_COMMAND = "extractConstant";
+ const char* EXTRACT_METHOD_COMMAND = "extractMethod";
+ const char* EXTRACT_FIELD_COMMAND = "extractField";
+ const char* CONVERT_VARIABLE_TO_FIELD_COMMAND = "convertVariableToField";
+ const char* MOVE_FILE_COMMAND = "moveFile";
+ const char* MOVE_INSTANCE_METHOD_COMMAND = "moveInstanceMethod";
+ const char* MOVE_STATIC_MEMBER_COMMAND = "moveStaticMember";
+ const char* MOVE_TYPE_COMMAND = "moveType";
};
namespace QuickAssistProcessor {
- const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID = "org.eclipse.jdt.ls.correction.splitJoinVariableDeclaration.assist"; //$NON-NLS-1$
- const char* CONVERT_FOR_LOOP_ID = "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
- const char* ASSIGN_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
- const char* ASSIGN_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
- const char* ASSIGN_PARAM_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
- const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID = "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
- const char* ADD_BLOCK_ID = "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
- const char* EXTRACT_LOCAL_ID = "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
- const char* EXTRACT_LOCAL_NOT_REPLACE_ID = "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
- const char* EXTRACT_CONSTANT_ID = "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
- const char* INLINE_LOCAL_ID = "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
- const char* CONVERT_LOCAL_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
- const char* CONVERT_ANONYMOUS_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
- const char* CONVERT_TO_STRING_BUFFER_ID = "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
- const char* CONVERT_TO_MESSAGE_FORMAT_ID = "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
- const char* EXTRACT_METHOD_INPLACE_ID = "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
+ const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID = "org.eclipse.jdt.ls.correction.splitJoinVariableDeclaration.assist"; //$NON-NLS-1$
+ const char* CONVERT_FOR_LOOP_ID = "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
+ const char* ASSIGN_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
+ const char* ASSIGN_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
+ const char* ASSIGN_PARAM_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
+ const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID = "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
+ const char* ADD_BLOCK_ID = "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
+ const char* EXTRACT_LOCAL_ID = "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
+ const char* EXTRACT_LOCAL_NOT_REPLACE_ID = "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
+ const char* EXTRACT_CONSTANT_ID = "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
+ const char* INLINE_LOCAL_ID = "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
+ const char* CONVERT_LOCAL_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
+ const char* CONVERT_ANONYMOUS_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
+ const char* CONVERT_TO_STRING_BUFFER_ID = "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
+ const char* CONVERT_TO_MESSAGE_FORMAT_ID = "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
+ const char* EXTRACT_METHOD_INPLACE_ID = "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
- const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND = "convertAnonymousClassToNestedCommand";
+ const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND = "convertAnonymousClassToNestedCommand";
};
void Reflect(Reader& reader, TypeHierarchyDirection& value) {
- if (!reader.IsString())
- {
- value = TypeHierarchyDirection::Both;
- return;
- }
- std::string v = reader.GetString();
- if (v == "Children")
- value = TypeHierarchyDirection::Both;
- else if (v == "Parents")
- value = TypeHierarchyDirection::Parents;
- else if (v == "Both")
- value = TypeHierarchyDirection::Both;
+ if (!reader.IsString())
+ {
+ value = TypeHierarchyDirection::Both;
+ return;
+ }
+ std::string v = reader.GetString();
+ if (v == "Children")
+ value = TypeHierarchyDirection::Both;
+ else if (v == "Parents")
+ value = TypeHierarchyDirection::Parents;
+ else if (v == "Both")
+ value = TypeHierarchyDirection::Both;
}
void Reflect(Writer& writer, TypeHierarchyDirection& value) {
- switch (value)
- {
- case TypeHierarchyDirection::Children:
- writer.String("Children");
- break;
- case TypeHierarchyDirection::Parents:
- writer.String("Parents");
- break;
- case TypeHierarchyDirection::Both:
- writer.String("Both");
- break;
- }
+ switch (value)
+ {
+ case TypeHierarchyDirection::Children:
+ writer.String("Children");
+ break;
+ case TypeHierarchyDirection::Parents:
+ writer.String("Parents");
+ break;
+ case TypeHierarchyDirection::Both:
+ writer.String("Both");
+ break;
+ }
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/utils.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/utils.cpp
index 32c70f517ad..445f4a72cff 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/utils.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/utils.cpp
@@ -322,118 +322,118 @@ bool IsDirectory(const std::string& path) {
// links. This is a variant of realpath(2), C++ rewrite of
// https://github.com/freebsd/freebsd/blob/master/lib/libc/stdlib/realpath.c
AbsolutePath RealPathNotExpandSymlink(std::string path,
- bool ensure_exists) {
- if (path.empty()) {
- errno = EINVAL;
- return {};
- }
- if (path[0] == '\0') {
- errno = ENOENT;
- return {};
- }
-
- // Do not use PATH_MAX because it is tricky on Linux.
- // See https://eklitzke.org/path-max-is-tricky
- char tmp[1024];
- std::string resolved;
- size_t i = 0;
- struct stat sb;
- if (path[0] == '/') {
- resolved = "/";
- i = 1;
- }
- else {
- if (!getcwd(tmp, sizeof tmp) && ensure_exists)
- return {};
- resolved = tmp;
- }
-
- while (i < path.size()) {
- auto j = path.find('/', i);
- if (j == std::string::npos)
- j = path.size();
- auto next_token = path.substr(i, j - i);
- i = j + 1;
- if (resolved.back() != '/')
- resolved += '/';
- if (next_token.empty() || next_token == ".") {
- // Handle consequential slashes and "."
- continue;
- }
- else if (next_token == "..") {
- // Strip the last path component except when it is single "/"
- if (resolved.size() > 1)
- resolved.resize(resolved.rfind('/', resolved.size() - 2) + 1);
- continue;
- }
- // Append the next path component.
- // Here we differ from realpath(3), we use stat(2) instead of
- // lstat(2) because we do not want to resolve symlinks.
- resolved += next_token;
- if (stat(resolved.c_str(), &sb) != 0 && ensure_exists)
- return {};
- if (!S_ISDIR(sb.st_mode) && j < path.size() && ensure_exists) {
- errno = ENOTDIR;
- return {};
- }
- }
-
- // Remove trailing slash except when a single "/".
- if (resolved.size() > 1 && resolved.back() == '/')
- resolved.pop_back();
- return AbsolutePath(resolved, true /*validate*/);
+ bool ensure_exists) {
+ if (path.empty()) {
+ errno = EINVAL;
+ return {};
+ }
+ if (path[0] == '\0') {
+ errno = ENOENT;
+ return {};
+ }
+
+ // Do not use PATH_MAX because it is tricky on Linux.
+ // See https://eklitzke.org/path-max-is-tricky
+ char tmp[1024];
+ std::string resolved;
+ size_t i = 0;
+ struct stat sb;
+ if (path[0] == '/') {
+ resolved = "/";
+ i = 1;
+ }
+ else {
+ if (!getcwd(tmp, sizeof tmp) && ensure_exists)
+ return {};
+ resolved = tmp;
+ }
+
+ while (i < path.size()) {
+ auto j = path.find('/', i);
+ if (j == std::string::npos)
+ j = path.size();
+ auto next_token = path.substr(i, j - i);
+ i = j + 1;
+ if (resolved.back() != '/')
+ resolved += '/';
+ if (next_token.empty() || next_token == ".") {
+ // Handle consequential slashes and "."
+ continue;
+ }
+ else if (next_token == "..") {
+ // Strip the last path component except when it is single "/"
+ if (resolved.size() > 1)
+ resolved.resize(resolved.rfind('/', resolved.size() - 2) + 1);
+ continue;
+ }
+ // Append the next path component.
+ // Here we differ from realpath(3), we use stat(2) instead of
+ // lstat(2) because we do not want to resolve symlinks.
+ resolved += next_token;
+ if (stat(resolved.c_str(), &sb) != 0 && ensure_exists)
+ return {};
+ if (!S_ISDIR(sb.st_mode) && j < path.size() && ensure_exists) {
+ errno = ENOTDIR;
+ return {};
+ }
+ }
+
+ // Remove trailing slash except when a single "/".
+ if (resolved.size() > 1 && resolved.back() == '/')
+ resolved.pop_back();
+ return AbsolutePath(resolved, true /*validate*/);
}
#endif
AbsolutePath NormalizePath(const std::string& path0,
- bool ensure_exists ,
- bool force_lower_on_windows) {
+ bool ensure_exists ,
+ bool force_lower_on_windows) {
#ifdef _WIN32
- std::wstring path = lsp::s2ws(path0);
-
- wchar_t buffer[MAX_PATH] = (L"");
-
- // Normalize the path name, ie, resolve `..`.
- unsigned long len = GetFullPathNameW(path.c_str(), MAX_PATH, buffer, nullptr);
- if (!len)
- return {};
- path = std::wstring(buffer, len);
-
- // Get the actual casing of the path, ie, if the file on disk is `C:\FooBar`
- // and this function is called with `c:\fooBar` this will return `c:\FooBar`.
- // (drive casing is lowercase).
- if (ensure_exists) {
- len = GetLongPathNameW(path.c_str(), buffer, MAX_PATH);
- if (!len)
- return {};
- path = std::wstring(buffer, len);
- }
-
- // Empty paths have no meaning.
- if (path.empty())
- return {};
-
- // We may need to normalize the drive name to upper-case; at the moment
- // vscode sends lower-case path names.
- /*
- path[0] = toupper(path[0]);
- */
- // Make the path all lower-case, since windows is case-insensitive.
- if (force_lower_on_windows) {
- for (size_t i = 0; i < path.size(); ++i)
- path[i] = (wchar_t)tolower(path[i]);
- }
-
- // cquery assumes forward-slashes.
- std::replace(path.begin(), path.end(), '\\', '/');
-
-
- return AbsolutePath(lsp::ws2s(path), false /*validate*/);
+ std::wstring path = lsp::s2ws(path0);
+
+ wchar_t buffer[MAX_PATH] = (L"");
+
+ // Normalize the path name, ie, resolve `..`.
+ unsigned long len = GetFullPathNameW(path.c_str(), MAX_PATH, buffer, nullptr);
+ if (!len)
+ return {};
+ path = std::wstring(buffer, len);
+
+ // Get the actual casing of the path, ie, if the file on disk is `C:\FooBar`
+ // and this function is called with `c:\fooBar` this will return `c:\FooBar`.
+ // (drive casing is lowercase).
+ if (ensure_exists) {
+ len = GetLongPathNameW(path.c_str(), buffer, MAX_PATH);
+ if (!len)
+ return {};
+ path = std::wstring(buffer, len);
+ }
+
+ // Empty paths have no meaning.
+ if (path.empty())
+ return {};
+
+ // We may need to normalize the drive name to upper-case; at the moment
+ // vscode sends lower-case path names.
+ /*
+ path[0] = toupper(path[0]);
+ */
+ // Make the path all lower-case, since windows is case-insensitive.
+ if (force_lower_on_windows) {
+ for (size_t i = 0; i < path.size(); ++i)
+ path[i] = (wchar_t)tolower(path[i]);
+ }
+
+ // cquery assumes forward-slashes.
+ std::replace(path.begin(), path.end(), '\\', '/');
+
+
+ return AbsolutePath(lsp::ws2s(path), false /*validate*/);
#else
- return RealPathNotExpandSymlink(path0, ensure_exists);
+ return RealPathNotExpandSymlink(path0, ensure_exists);
#endif
@@ -445,166 +445,166 @@ AbsolutePath NormalizePath(const std::string& path0,
// We use a UTF-8 iterator to approximate UTF-16 in the specification (weird).
// This is good enough and fails only for UTF-16 surrogate pairs.
int GetOffsetForPosition(lsPosition position, const std::string& content) {
- size_t i = 0;
- // Iterate lines until we have found the correct line.
- while (position.line > 0 && i < content.size()) {
- if (content[i] == '\n')
- position.line--;
- i++;
- }
- // Iterate characters on the target line.
- while (position.character > 0 && i < content.size()) {
- if (uint8_t(content[i++]) >= 128) {
- // Skip 0b10xxxxxx
- while (i < content.size() && uint8_t(content[i]) >= 128 &&
- uint8_t(content[i]) < 192)
- i++;
- }
- position.character--;
- }
- return int(i);
+ size_t i = 0;
+ // Iterate lines until we have found the correct line.
+ while (position.line > 0 && i < content.size()) {
+ if (content[i] == '\n')
+ position.line--;
+ i++;
+ }
+ // Iterate characters on the target line.
+ while (position.character > 0 && i < content.size()) {
+ if (uint8_t(content[i++]) >= 128) {
+ // Skip 0b10xxxxxx
+ while (i < content.size() && uint8_t(content[i]) >= 128 &&
+ uint8_t(content[i]) < 192)
+ i++;
+ }
+ position.character--;
+ }
+ return int(i);
}
lsPosition GetPositionForOffset(size_t offset,const std::string& content) {
- lsPosition result;
- for (size_t i = 0; i < offset && i < content.length(); ++i) {
- if (content[i] == '\n') {
- result.line++;
- result.character = 0;
- }
- else {
- result.character++;
- }
- }
- return result;
+ lsPosition result;
+ for (size_t i = 0; i < offset && i < content.length(); ++i) {
+ if (content[i] == '\n') {
+ result.line++;
+ result.character = 0;
+ }
+ else {
+ result.character++;
+ }
+ }
+ return result;
}
lsPosition CharPos(const std::string& search,
- char character,
- int character_offset) {
- lsPosition result;
- size_t index = 0;
- while (index < search.size()) {
- char c = search[index];
- if (c == character)
- break;
- if (c == '\n') {
- result.line += 1;
- result.character = 0;
- }
- else {
- result.character += 1;
- }
- ++index;
- }
- assert(index < search.size());
- result.character += character_offset;
- return result;
+ char character,
+ int character_offset) {
+ lsPosition result;
+ size_t index = 0;
+ while (index < search.size()) {
+ char c = search[index];
+ if (c == character)
+ break;
+ if (c == '\n') {
+ result.line += 1;
+ result.character = 0;
+ }
+ else {
+ result.character += 1;
+ }
+ ++index;
+ }
+ assert(index < search.size());
+ result.character += character_offset;
+ return result;
}
void scanDirsUseRecursive(const std::wstring& rootPath, std::vector<std::wstring>& ret)
{
- namespace fs = boost::filesystem;
- fs::path fullpath(rootPath);
- if (!fs::exists(fullpath)) { return; }
- fs::recursive_directory_iterator end_iter;
- for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
- try {
- if (fs::is_directory(*iter)) {
- ret.push_back(iter->path().wstring());
- }
- }
- catch (const std::exception& ex) {
- continue;
- }
- }
+ namespace fs = boost::filesystem;
+ fs::path fullpath(rootPath);
+ if (!fs::exists(fullpath)) { return; }
+ fs::recursive_directory_iterator end_iter;
+ for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
+ try {
+ if (fs::is_directory(*iter)) {
+ ret.push_back(iter->path().wstring());
+ }
+ }
+ catch (const std::exception& ex) {
+ continue;
+ }
+ }
}
void scanDirsNoRecursive(const std::wstring& rootPath, std::vector<std::wstring>& ret)
{
- namespace fs = boost::filesystem;
- boost::filesystem::path myPath(rootPath);
- if (!fs::exists(rootPath)) { return; }
- boost::filesystem::directory_iterator endIter;
- for (boost::filesystem::directory_iterator iter(myPath); iter != endIter; iter++) {
- if (boost::filesystem::is_directory(*iter)) {
- ret.push_back(iter->path().wstring());
- }
- }
+ namespace fs = boost::filesystem;
+ boost::filesystem::path myPath(rootPath);
+ if (!fs::exists(rootPath)) { return; }
+ boost::filesystem::directory_iterator endIter;
+ for (boost::filesystem::directory_iterator iter(myPath); iter != endIter; iter++) {
+ if (boost::filesystem::is_directory(*iter)) {
+ ret.push_back(iter->path().wstring());
+ }
+ }
}
void scanFilesUseRecursive(
- const std::wstring& rootPath,
- std::vector<std::wstring>& ret,
- std::wstring suf) {
- namespace fs = boost::filesystem;
- boost::to_lower(suf);
-
- fs::path fullpath(rootPath);
- if (!fs::exists(fullpath)) { return; }
- fs::recursive_directory_iterator end_iter;
- for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
- try {
- if (!fs::is_directory(*iter) && fs::is_regular_file(*iter)) {
- auto temp_path = iter->path().wstring();
- auto size = suf.size();
- if (!size)
- {
- ret.push_back(std::move(temp_path));
- }
- else
- {
-
- if (temp_path.size() < size) continue;
- auto suf_temp = temp_path.substr(temp_path.size() - size);
- boost::to_lower(suf_temp);
- if (suf_temp == suf)
- {
- ret.push_back(std::move(temp_path));
- }
- }
- }
- }
- catch (const std::exception&) {
- continue;
- }
- }
+ const std::wstring& rootPath,
+ std::vector<std::wstring>& ret,
+ std::wstring suf) {
+ namespace fs = boost::filesystem;
+ boost::to_lower(suf);
+
+ fs::path fullpath(rootPath);
+ if (!fs::exists(fullpath)) { return; }
+ fs::recursive_directory_iterator end_iter;
+ for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
+ try {
+ if (!fs::is_directory(*iter) && fs::is_regular_file(*iter)) {
+ auto temp_path = iter->path().wstring();
+ auto size = suf.size();
+ if (!size)
+ {
+ ret.push_back(std::move(temp_path));
+ }
+ else
+ {
+
+ if (temp_path.size() < size) continue;
+ auto suf_temp = temp_path.substr(temp_path.size() - size);
+ boost::to_lower(suf_temp);
+ if (suf_temp == suf)
+ {
+ ret.push_back(std::move(temp_path));
+ }
+ }
+ }
+ }
+ catch (const std::exception&) {
+ continue;
+ }
+ }
}
void scanFileNamesUseRecursive(const std::wstring& rootPath, std::vector<std::wstring>& ret,
- std::wstring strSuf)
+ std::wstring strSuf)
{
- scanFilesUseRecursive(rootPath, ret, strSuf);
- std::vector<std::wstring> names;
- for (auto& it : ret)
- {
- if (it.size() >= rootPath.size())
- {
- names.push_back(it.substr(rootPath.size()));
- }
- }
- ret.swap(names);
+ scanFilesUseRecursive(rootPath, ret, strSuf);
+ std::vector<std::wstring> names;
+ for (auto& it : ret)
+ {
+ if (it.size() >= rootPath.size())
+ {
+ names.push_back(it.substr(rootPath.size()));
+ }
+ }
+ ret.swap(names);
}
void scanFileNamesUseRecursive(const std::string& rootPath, std::vector<std::string>& ret, std::string strSuf)
{
- std::vector<std::wstring> out;
- scanFileNamesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
- for (auto& it : out)
- {
- ret.push_back(ws2s(it));
- }
+ std::vector<std::wstring> out;
+ scanFileNamesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
+ for (auto& it : out)
+ {
+ ret.push_back(ws2s(it));
+ }
}
void scanFilesUseRecursive(const std::string& rootPath, std::vector<std::string>& ret, std::string strSuf)
{
- std::vector<std::wstring> out;
- scanFilesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
- for (auto& it : out)
- {
- ret.push_back(ws2s(it));
- }
+ std::vector<std::wstring> out;
+ scanFilesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
+ for (auto& it : out)
+ {
+ ret.push_back(ws2s(it));
+ }
}
diff --git a/Build/source/utils/asymptote/LspCpp/src/lsp/working_files.cpp b/Build/source/utils/asymptote/LspCpp/src/lsp/working_files.cpp
index 09000210372..4eb4b290537 100755
--- a/Build/source/utils/asymptote/LspCpp/src/lsp/working_files.cpp
+++ b/Build/source/utils/asymptote/LspCpp/src/lsp/working_files.cpp
@@ -139,7 +139,7 @@ bool WorkingFiles::OnClose(const lsTextDocumentIdentifier& close) {
if( findIt != d_ptr->files.end())
{
d_ptr->files.erase(findIt);
- return true;
+ return true;
}
return false;
}
@@ -183,4 +183,4 @@ bool WorkingFiles::GetFileBufferContent(std::shared_ptr<WorkingFile>& file, std:
void WorkingFiles::Clear() {
std::lock_guard<std::mutex> lock(d_ptr->files_mutex);
d_ptr->files.clear();
-} \ No newline at end of file
+}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
index d6e6ca15077..d5ca56d1950 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
@@ -1,22 +1,22 @@
-{
- "glossary": {
- "title": "example glossary",
- "GlossDiv": {
- "title": "S",
- "GlossList": {
- "GlossEntry": {
- "ID": "SGML",
- "SortAs": "SGML",
- "GlossTerm": "Standard Generalized Markup Language",
- "Acronym": "SGML",
- "Abbrev": "ISO 8879:1986",
- "GlossDef": {
- "para": "A meta-markup language, used to create markup languages such as DocBook.",
- "GlossSeeAlso": ["GML", "XML"]
- },
- "GlossSee": "markup"
- }
- }
- }
- }
+{
+ "glossary": {
+ "title": "example glossary",
+ "GlossDiv": {
+ "title": "S",
+ "GlossList": {
+ "GlossEntry": {
+ "ID": "SGML",
+ "SortAs": "SGML",
+ "GlossTerm": "Standard Generalized Markup Language",
+ "Acronym": "SGML",
+ "Abbrev": "ISO 8879:1986",
+ "GlossDef": {
+ "para": "A meta-markup language, used to create markup languages such as DocBook.",
+ "GlossSeeAlso": ["GML", "XML"]
+ },
+ "GlossSee": "markup"
+ }
+ }
+ }
+ }
} \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json
index 539c3af2013..acdf930ea5f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json
@@ -1,27 +1,27 @@
-{"menu": {
- "header": "SVG Viewer",
- "items": [
- {"id": "Open"},
- {"id": "OpenNew", "label": "Open New"},
- null,
- {"id": "ZoomIn", "label": "Zoom In"},
- {"id": "ZoomOut", "label": "Zoom Out"},
- {"id": "OriginalView", "label": "Original View"},
- null,
- {"id": "Quality"},
- {"id": "Pause"},
- {"id": "Mute"},
- null,
- {"id": "Find", "label": "Find..."},
- {"id": "FindAgain", "label": "Find Again"},
- {"id": "Copy"},
- {"id": "CopyAgain", "label": "Copy Again"},
- {"id": "CopySVG", "label": "Copy SVG"},
- {"id": "ViewSVG", "label": "View SVG"},
- {"id": "ViewSource", "label": "View Source"},
- {"id": "SaveAs", "label": "Save As"},
- null,
- {"id": "Help"},
- {"id": "About", "label": "About Adobe CVG Viewer..."}
- ]
+{"menu": {
+ "header": "SVG Viewer",
+ "items": [
+ {"id": "Open"},
+ {"id": "OpenNew", "label": "Open New"},
+ null,
+ {"id": "ZoomIn", "label": "Zoom In"},
+ {"id": "ZoomOut", "label": "Zoom Out"},
+ {"id": "OriginalView", "label": "Original View"},
+ null,
+ {"id": "Quality"},
+ {"id": "Pause"},
+ {"id": "Mute"},
+ null,
+ {"id": "Find", "label": "Find..."},
+ {"id": "FindAgain", "label": "Find Again"},
+ {"id": "Copy"},
+ {"id": "CopyAgain", "label": "Copy Again"},
+ {"id": "CopySVG", "label": "Copy SVG"},
+ {"id": "ViewSVG", "label": "View SVG"},
+ {"id": "ViewSource", "label": "View Source"},
+ {"id": "SaveAs", "label": "Save As"},
+ null,
+ {"id": "Help"},
+ {"id": "About", "label": "About Adobe CVG Viewer..."}
+ ]
}} \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json
index ee7b0f8bab2..d540b57f0df 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json
@@ -1,88 +1,88 @@
-{"web-app": {
- "servlet": [
- {
- "servlet-name": "cofaxCDS",
- "servlet-class": "org.cofax.cds.CDSServlet",
- "init-param": {
- "configGlossary:installationAt": "Philadelphia, PA",
- "configGlossary:adminEmail": "ksm@pobox.com",
- "configGlossary:poweredBy": "Cofax",
- "configGlossary:poweredByIcon": "/images/cofax.gif",
- "configGlossary:staticPath": "/content/static",
- "templateProcessorClass": "org.cofax.WysiwygTemplate",
- "templateLoaderClass": "org.cofax.FilesTemplateLoader",
- "templatePath": "templates",
- "templateOverridePath": "",
- "defaultListTemplate": "listTemplate.htm",
- "defaultFileTemplate": "articleTemplate.htm",
- "useJSP": false,
- "jspListTemplate": "listTemplate.jsp",
- "jspFileTemplate": "articleTemplate.jsp",
- "cachePackageTagsTrack": 200,
- "cachePackageTagsStore": 200,
- "cachePackageTagsRefresh": 60,
- "cacheTemplatesTrack": 100,
- "cacheTemplatesStore": 50,
- "cacheTemplatesRefresh": 15,
- "cachePagesTrack": 200,
- "cachePagesStore": 100,
- "cachePagesRefresh": 10,
- "cachePagesDirtyRead": 10,
- "searchEngineListTemplate": "forSearchEnginesList.htm",
- "searchEngineFileTemplate": "forSearchEngines.htm",
- "searchEngineRobotsDb": "WEB-INF/robots.db",
- "useDataStore": true,
- "dataStoreClass": "org.cofax.SqlDataStore",
- "redirectionClass": "org.cofax.SqlRedirection",
- "dataStoreName": "cofax",
- "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
- "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
- "dataStoreUser": "sa",
- "dataStorePassword": "dataStoreTestQuery",
- "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
- "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
- "dataStoreInitConns": 10,
- "dataStoreMaxConns": 100,
- "dataStoreConnUsageLimit": 100,
- "dataStoreLogLevel": "debug",
- "maxUrlLength": 500}},
- {
- "servlet-name": "cofaxEmail",
- "servlet-class": "org.cofax.cds.EmailServlet",
- "init-param": {
- "mailHost": "mail1",
- "mailHostOverride": "mail2"}},
- {
- "servlet-name": "cofaxAdmin",
- "servlet-class": "org.cofax.cds.AdminServlet"},
-
- {
- "servlet-name": "fileServlet",
- "servlet-class": "org.cofax.cds.FileServlet"},
- {
- "servlet-name": "cofaxTools",
- "servlet-class": "org.cofax.cms.CofaxToolsServlet",
- "init-param": {
- "templatePath": "toolstemplates/",
- "log": 1,
- "logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
- "logMaxSize": "",
- "dataLog": 1,
- "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
- "dataLogMaxSize": "",
- "removePageCache": "/content/admin/remove?cache=pages&id=",
- "removeTemplateCache": "/content/admin/remove?cache=templates&id=",
- "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
- "lookInContext": 1,
- "adminGroupID": 4,
- "betaServer": true}}],
- "servlet-mapping": {
- "cofaxCDS": "/",
- "cofaxEmail": "/cofaxutil/aemail/*",
- "cofaxAdmin": "/admin/*",
- "fileServlet": "/static/*",
- "cofaxTools": "/tools/*"},
-
- "taglib": {
- "taglib-uri": "cofax.tld",
+{"web-app": {
+ "servlet": [
+ {
+ "servlet-name": "cofaxCDS",
+ "servlet-class": "org.cofax.cds.CDSServlet",
+ "init-param": {
+ "configGlossary:installationAt": "Philadelphia, PA",
+ "configGlossary:adminEmail": "ksm@pobox.com",
+ "configGlossary:poweredBy": "Cofax",
+ "configGlossary:poweredByIcon": "/images/cofax.gif",
+ "configGlossary:staticPath": "/content/static",
+ "templateProcessorClass": "org.cofax.WysiwygTemplate",
+ "templateLoaderClass": "org.cofax.FilesTemplateLoader",
+ "templatePath": "templates",
+ "templateOverridePath": "",
+ "defaultListTemplate": "listTemplate.htm",
+ "defaultFileTemplate": "articleTemplate.htm",
+ "useJSP": false,
+ "jspListTemplate": "listTemplate.jsp",
+ "jspFileTemplate": "articleTemplate.jsp",
+ "cachePackageTagsTrack": 200,
+ "cachePackageTagsStore": 200,
+ "cachePackageTagsRefresh": 60,
+ "cacheTemplatesTrack": 100,
+ "cacheTemplatesStore": 50,
+ "cacheTemplatesRefresh": 15,
+ "cachePagesTrack": 200,
+ "cachePagesStore": 100,
+ "cachePagesRefresh": 10,
+ "cachePagesDirtyRead": 10,
+ "searchEngineListTemplate": "forSearchEnginesList.htm",
+ "searchEngineFileTemplate": "forSearchEngines.htm",
+ "searchEngineRobotsDb": "WEB-INF/robots.db",
+ "useDataStore": true,
+ "dataStoreClass": "org.cofax.SqlDataStore",
+ "redirectionClass": "org.cofax.SqlRedirection",
+ "dataStoreName": "cofax",
+ "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
+ "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
+ "dataStoreUser": "sa",
+ "dataStorePassword": "dataStoreTestQuery",
+ "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
+ "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
+ "dataStoreInitConns": 10,
+ "dataStoreMaxConns": 100,
+ "dataStoreConnUsageLimit": 100,
+ "dataStoreLogLevel": "debug",
+ "maxUrlLength": 500}},
+ {
+ "servlet-name": "cofaxEmail",
+ "servlet-class": "org.cofax.cds.EmailServlet",
+ "init-param": {
+ "mailHost": "mail1",
+ "mailHostOverride": "mail2"}},
+ {
+ "servlet-name": "cofaxAdmin",
+ "servlet-class": "org.cofax.cds.AdminServlet"},
+
+ {
+ "servlet-name": "fileServlet",
+ "servlet-class": "org.cofax.cds.FileServlet"},
+ {
+ "servlet-name": "cofaxTools",
+ "servlet-class": "org.cofax.cms.CofaxToolsServlet",
+ "init-param": {
+ "templatePath": "toolstemplates/",
+ "log": 1,
+ "logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
+ "logMaxSize": "",
+ "dataLog": 1,
+ "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
+ "dataLogMaxSize": "",
+ "removePageCache": "/content/admin/remove?cache=pages&id=",
+ "removeTemplateCache": "/content/admin/remove?cache=templates&id=",
+ "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
+ "lookInContext": 1,
+ "adminGroupID": 4,
+ "betaServer": true}}],
+ "servlet-mapping": {
+ "cofaxCDS": "/",
+ "cofaxEmail": "/cofaxutil/aemail/*",
+ "cofaxAdmin": "/admin/*",
+ "fileServlet": "/static/*",
+ "cofaxTools": "/tools/*"},
+
+ "taglib": {
+ "taglib-uri": "cofax.tld",
"taglib-location": "/WEB-INF/tlds/cofax.tld"}}} \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
index 32690e8b763..0449493a644 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
@@ -1,26 +1,26 @@
-{"widget": {
- "debug": "on",
- "window": {
- "title": "Sample Konfabulator Widget",
- "name": "main_window",
- "width": 500,
- "height": 500
- },
- "image": {
- "src": "Images/Sun.png",
- "name": "sun1",
- "hOffset": 250,
- "vOffset": 250,
- "alignment": "center"
- },
- "text": {
- "data": "Click Here",
- "size": 36,
- "style": "bold",
- "name": "text1",
- "hOffset": 250,
- "vOffset": 100,
- "alignment": "center",
- "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
- }
+{"widget": {
+ "debug": "on",
+ "window": {
+ "title": "Sample Konfabulator Widget",
+ "name": "main_window",
+ "width": 500,
+ "height": 500
+ },
+ "image": {
+ "src": "Images/Sun.png",
+ "name": "sun1",
+ "hOffset": 250,
+ "vOffset": 250,
+ "alignment": "center"
+ },
+ "text": {
+ "data": "Click Here",
+ "size": 36,
+ "style": "bold",
+ "name": "text1",
+ "hOffset": 250,
+ "vOffset": 100,
+ "alignment": "center",
+ "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+ }
}} \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
index c500c943f6b..1e27ece50e4 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
@@ -1,7 +1,7 @@
-{
- "en":"I can eat glass and it doesn't hurt me.",
- "zh-Hant":"我能åžä¸‹çŽ»ç’ƒè€Œä¸å‚·èº«é«”。",
- "zh-Hans":"我能åžä¸‹çŽ»ç’ƒè€Œä¸ä¼¤èº«ä½“。",
- "ja":"ç§ã¯ã‚¬ãƒ©ã‚¹ã‚’食ã¹ã‚‰ã‚Œã¾ã™ã€‚ãã‚Œã¯ç§ã‚’å‚·ã¤ã‘ã¾ã›ã‚“。",
- "ko":"나는 유리를 ë¨¹ì„ ìˆ˜ 있어요. ê·¸ëž˜ë„ ì•„í”„ì§€ ì•Šì•„ìš”"
+{
+ "en":"I can eat glass and it doesn't hurt me.",
+ "zh-Hant":"我能åžä¸‹çŽ»ç’ƒè€Œä¸å‚·èº«é«”。",
+ "zh-Hans":"我能åžä¸‹çŽ»ç’ƒè€Œä¸ä¼¤èº«ä½“。",
+ "ja":"ç§ã¯ã‚¬ãƒ©ã‚¹ã‚’食ã¹ã‚‰ã‚Œã¾ã™ã€‚ãã‚Œã¯ç§ã‚’å‚·ã¤ã‘ã¾ã›ã‚“。",
+ "ko":"나는 유리를 ë¨¹ì„ ìˆ˜ 있어요. ê·¸ëž˜ë„ ì•„í”„ì§€ ì•Šì•„ìš”"
} \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
index b9839fe2fa7..07e81e10528 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
@@ -1,7 +1,7 @@
-{
- "en":"I can eat glass and it doesn't hurt me.",
- "zh-Hant":"我能åžä¸‹çŽ»ç’ƒè€Œä¸å‚·èº«é«”。",
- "zh-Hans":"我能åžä¸‹çŽ»ç’ƒè€Œä¸ä¼¤èº«ä½“。",
- "ja":"ç§ã¯ã‚¬ãƒ©ã‚¹ã‚’食ã¹ã‚‰ã‚Œã¾ã™ã€‚ãã‚Œã¯ç§ã‚’å‚·ã¤ã‘ã¾ã›ã‚“。",
- "ko":"나는 유리를 ë¨¹ì„ ìˆ˜ 있어요. ê·¸ëž˜ë„ ì•„í”„ì§€ ì•Šì•„ìš”"
+{
+ "en":"I can eat glass and it doesn't hurt me.",
+ "zh-Hant":"我能åžä¸‹çŽ»ç’ƒè€Œä¸å‚·èº«é«”。",
+ "zh-Hans":"我能åžä¸‹çŽ»ç’ƒè€Œä¸ä¼¤èº«ä½“。",
+ "ja":"ç§ã¯ã‚¬ãƒ©ã‚¹ã‚’食ã¹ã‚‰ã‚Œã¾ã™ã€‚ãã‚Œã¯ç§ã‚’å‚·ã¤ã‘ã¾ã›ã‚“。",
+ "ko":"나는 유리를 ë¨¹ì„ ìˆ˜ 있어요. ê·¸ëž˜ë„ ì•„í”„ì§€ ì•Šì•„ìš”"
} \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
index 59ae4c41016..2d32ea3539b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
@@ -69,7 +69,7 @@ JsonReader& JsonReader::Member(const char* name) {
if (!mError) {
if (CURRENT.IsObject() && TOP.state == JsonReaderStackItem::Started) {
Value::ConstMemberIterator memberItr = CURRENT.FindMember(name);
- if (memberItr != CURRENT.MemberEnd())
+ if (memberItr != CURRENT.MemberEnd())
STACK->push(JsonReaderStackItem(&memberItr->value, JsonReaderStackItem::BeforeStart));
else
mError = true;
@@ -218,7 +218,7 @@ JsonWriter::JsonWriter() : mWriter(), mStream() {
mWriter = new PrettyWriter<StringBuffer>(*STREAM);
}
-JsonWriter::~JsonWriter() {
+JsonWriter::~JsonWriter() {
delete WRITER;
delete STREAM;
}
@@ -249,7 +249,7 @@ bool JsonWriter::HasMember(const char*) const {
}
JsonWriter& JsonWriter::StartArray(size_t*) {
- WRITER->StartArray();
+ WRITER->StartArray();
return *this;
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
index 285ca73d6ab..72d0cdd65cb 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
@@ -17,7 +17,7 @@ public:
/// Starts an object
Archiver& StartObject();
-
+
/// After calling StartObject(), assign a member with a name
Archiver& Member(const char* name);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
index 417a421a318..3b84e358b7d 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
@@ -55,7 +55,7 @@ void test1() {
//////////////////////////////////////////////////////////////////////////////
// Test2: std::vector <=> JSON array
-//
+//
// You can map a JSON array to other data structures as well
struct Group {
@@ -67,7 +67,7 @@ struct Group {
template <typename Archiver>
Archiver& operator&(Archiver& ar, Group& g) {
ar.StartObject();
-
+
ar.Member("groupName");
ar & g.groupName;
@@ -203,14 +203,14 @@ class Canvas {
public:
Canvas() : shapes_() {}
~Canvas() { Clear(); }
-
+
void Clear() {
for (std::vector<Shape*>::iterator itr = shapes_.begin(); itr != shapes_.end(); ++itr)
delete *itr;
}
void AddShape(Shape* shape) { shapes_.push_back(shape); }
-
+
void Print(std::ostream& os) {
for (std::vector<Shape*>::iterator itr = shapes_.begin(); itr != shapes_.end(); ++itr) {
(*itr)->Print(os);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
index 7da37e9c504..c56640bc508 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
@@ -1,6 +1,6 @@
// JSON condenser example
-// This example parses JSON from stdin with validation,
+// This example parses JSON from stdin with validation,
// and re-output the JSON content to stdout with all string capitalized, and without whitespace.
#include "rapidjson/reader.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
index 46dc3504397..f2d05ca694b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
@@ -1,6 +1,6 @@
// JSON condenser example
-// This example parses JSON text from stdin with validation,
+// This example parses JSON text from stdin with validation,
// and re-output the JSON content to stdout without whitespace.
#include "rapidjson/reader.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
index c34a050dc8d..3ef72314ef1 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
@@ -19,7 +19,7 @@ class FilterKeyHandler {
public:
typedef char Ch;
- FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
+ FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
outputHandler_(outputHandler), keyString_(keyString), keyLength_(keyLength), filterValueDepth_(), filteredKeyCount_()
{}
@@ -32,8 +32,8 @@ public:
bool Double(double d) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.Double(d) && EndValue(); }
bool RawNumber(const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.RawNumber(str, len, copy) && EndValue(); }
bool String (const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.String (str, len, copy) && EndValue(); }
-
- bool StartObject() {
+
+ bool StartObject() {
if (filterValueDepth_ > 0) {
filterValueDepth_++;
return true;
@@ -43,9 +43,9 @@ public:
return outputHandler_.StartObject();
}
}
-
- bool Key(const Ch* str, SizeType len, bool copy) {
- if (filterValueDepth_ > 0)
+
+ bool Key(const Ch* str, SizeType len, bool copy) {
+ if (filterValueDepth_ > 0)
return true;
else if (len == keyLength_ && std::memcmp(str, keyString_, len) == 0) {
filterValueDepth_ = 1;
@@ -97,7 +97,7 @@ private:
filterValueDepth_ = 0;
return true;
}
-
+
OutputHandler& outputHandler_;
const char* keyString_;
const SizeType keyLength_;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
index 732cc81f136..b8cfdf0c804 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
@@ -20,7 +20,7 @@ class FilterKeyHandler {
public:
typedef char Ch;
- FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
+ FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
outputHandler_(outputHandler), keyString_(keyString), keyLength_(keyLength), filterValueDepth_(), filteredKeyCount_()
{}
@@ -33,8 +33,8 @@ public:
bool Double(double d) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.Double(d) && EndValue(); }
bool RawNumber(const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.RawNumber(str, len, copy) && EndValue(); }
bool String (const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.String (str, len, copy) && EndValue(); }
-
- bool StartObject() {
+
+ bool StartObject() {
if (filterValueDepth_ > 0) {
filterValueDepth_++;
return true;
@@ -44,9 +44,9 @@ public:
return outputHandler_.StartObject();
}
}
-
- bool Key(const Ch* str, SizeType len, bool copy) {
- if (filterValueDepth_ > 0)
+
+ bool Key(const Ch* str, SizeType len, bool copy) {
+ if (filterValueDepth_ > 0)
return true;
else if (len == keyLength_ && std::memcmp(str, keyString_, len) == 0) {
filterValueDepth_ = 1;
@@ -112,7 +112,7 @@ class FilterKeyReader {
public:
typedef char Ch;
- FilterKeyReader(InputStream& is, const Ch* keyString, SizeType keyLength) :
+ FilterKeyReader(InputStream& is, const Ch* keyString, SizeType keyLength) :
is_(is), keyString_(keyString), keyLength_(keyLength), parseResult_()
{}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
index 954aa2b9077..b08efc6087c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
@@ -1,7 +1,7 @@
// JSON to JSONx conversion example, using SAX API.
// JSONx is an IBM standard format to represent JSON as XML.
// https://www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/json_jsonx.html
-// This example parses JSON text from stdin with validation,
+// This example parses JSON text from stdin with validation,
// and convert to JSONx format to stdout.
// Need compile with -D__STDC_FORMAT_MACROS for defining PRId64 and PRIu64 macros.
@@ -24,34 +24,34 @@ public:
bool Null() {
return WriteStartElement("null", true);
}
-
+
bool Bool(bool b) {
- return
+ return
WriteStartElement("boolean") &&
WriteString(b ? "true" : "false") &&
WriteEndElement("boolean");
}
-
+
bool Int(int i) {
char buffer[12];
return WriteNumberElement(buffer, sprintf(buffer, "%d", i));
}
-
+
bool Uint(unsigned i) {
char buffer[11];
return WriteNumberElement(buffer, sprintf(buffer, "%u", i));
}
-
+
bool Int64(int64_t i) {
char buffer[21];
return WriteNumberElement(buffer, sprintf(buffer, "%" PRId64, i));
}
-
+
bool Uint64(uint64_t i) {
char buffer[21];
return WriteNumberElement(buffer, sprintf(buffer, "%" PRIu64, i));
}
-
+
bool Double(double d) {
char buffer[30];
return WriteNumberElement(buffer, sprintf(buffer, "%.17g", d));
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
index f627f4d8636..8824ef7867f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
@@ -75,12 +75,12 @@ protected:
kEnteringArray,
kExitingArray
};
-
+
Value v_;
LookaheadParsingState st_;
Reader r_;
InsituStringStream ss_;
-
+
static const int parseFlags = kParseDefaultFlags | kParseInsituFlag;
};
@@ -94,14 +94,14 @@ void LookaheadParserHandler::ParseNext() {
st_ = kError;
return;
}
-
+
r_.IterativeParseNext<parseFlags>(ss_, *this);
}
class LookaheadParser : protected LookaheadParserHandler {
public:
LookaheadParser(char* str) : LookaheadParserHandler(str) {}
-
+
bool EnterObject();
bool EnterArray();
const char* NextObjectKey();
@@ -117,9 +117,9 @@ public:
void SkipValue();
Value* PeekValue();
int PeekType(); // returns a rapidjson::Type, or -1 for no value (at end of object/array)
-
+
bool IsValid() { return st_ != kError; }
-
+
protected:
void SkipOut(int depth);
};
@@ -129,7 +129,7 @@ bool LookaheadParser::EnterObject() {
st_ = kError;
return false;
}
-
+
ParseNext();
return true;
}
@@ -139,7 +139,7 @@ bool LookaheadParser::EnterArray() {
st_ = kError;
return false;
}
-
+
ParseNext();
return true;
}
@@ -150,12 +150,12 @@ const char* LookaheadParser::NextObjectKey() {
ParseNext();
return result;
}
-
+
if (st_ != kExitingObject) {
st_ = kError;
return 0;
}
-
+
ParseNext();
return 0;
}
@@ -165,7 +165,7 @@ bool LookaheadParser::NextArrayValue() {
ParseNext();
return false;
}
-
+
if (st_ == kError || st_ == kExitingObject || st_ == kHasKey) {
st_ = kError;
return false;
@@ -190,7 +190,7 @@ double LookaheadParser::GetDouble() {
st_ = kError;
return 0.;
}
-
+
double result = v_.GetDouble();
ParseNext();
return result;
@@ -201,7 +201,7 @@ bool LookaheadParser::GetBool() {
st_ = kError;
return false;
}
-
+
bool result = v_.GetBool();
ParseNext();
return result;
@@ -221,7 +221,7 @@ const char* LookaheadParser::GetString() {
st_ = kError;
return 0;
}
-
+
const char* result = v_.GetString();
ParseNext();
return result;
@@ -260,7 +260,7 @@ Value* LookaheadParser::PeekValue() {
if (st_ >= kHasNull && st_ <= kHasKey) {
return &v_;
}
-
+
return 0;
}
@@ -268,11 +268,11 @@ int LookaheadParser::PeekType() {
if (st_ >= kHasNull && st_ <= kHasKey) {
return v_.GetType();
}
-
+
if (st_ == kEnteringArray) {
return kArrayType;
}
-
+
if (st_ == kEnteringObject) {
return kObjectType;
}
@@ -292,7 +292,7 @@ int main() {
"\"skipString\":\"zzz\", \"reachedEnd\":null, \"t\":true }";
LookaheadParser r(json);
-
+
RAPIDJSON_ASSERT(r.PeekType() == kObjectType);
r.EnterObject();
@@ -319,9 +319,9 @@ int main() {
}
else if (0 == strcmp(key, "a")) {
RAPIDJSON_ASSERT(r.PeekType() == kArrayType);
-
+
r.EnterArray();
-
+
cout << key << ":[ ";
while (r.NextArrayValue()) {
if (r.PeekType() == kNumberType) {
@@ -335,7 +335,7 @@ int main() {
break;
}
}
-
+
cout << "]" << endl;
}
else {
@@ -343,7 +343,7 @@ int main() {
r.SkipValue();
}
}
-
+
return 0;
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
index ff735394ec9..3d8b494221f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
@@ -35,7 +35,7 @@ public:
if (!parseThread_.joinable())
return;
- {
+ {
std::unique_lock<std::mutex> lock(mutex_);
// Wait until the buffer is read up (or parsing is completed)
@@ -54,7 +54,7 @@ public:
void ParsePart(const char* buffer, size_t length) {
std::unique_lock<std::mutex> lock(mutex_);
-
+
// Wait until the buffer is read up (or parsing is completed)
while (!stream_.Empty() && !completed_)
finish_.wait(lock);
@@ -156,7 +156,7 @@ int main() {
std::cout << "Error at offset " << d.GetErrorOffset() << ": " << GetParseError_En(d.GetParseError()) << std::endl;
return EXIT_FAILURE;
}
-
+
// Stringify the JSON to cout
OStreamWrapper os(std::cout);
Writer<OStreamWrapper> writer(os);
@@ -166,7 +166,7 @@ int main() {
return EXIT_SUCCESS;
}
-#else // Not supporting C++11
+#else // Not supporting C++11
#include <iostream>
int main() {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
index 8c7e26c795c..9fa1bb10a11 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
@@ -155,7 +155,7 @@ int main(int argc, char *argv[]) {
}
fclose(fp);
}
-
+
// Then convert the Document into SchemaDocument
SchemaDocument sd(d);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
index 12d87151e64..f1be5c41834 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
@@ -50,7 +50,7 @@ public:
template <typename Writer>
void Serialize(Writer& writer) const {
writer.StartObject();
-
+
writer.String("school");
#if RAPIDJSON_HAS_STDSTRING
writer.String(school_);
@@ -104,7 +104,7 @@ private:
};
Dependent::~Dependent() {
- delete education_;
+ delete education_;
}
class Employee : public Person {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
index a4fb1161a4c..42c45ff1f6e 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
@@ -15,7 +15,7 @@ template <typename T> std::string stringify(T x) {
struct MyHandler {
const char* type;
std::string data;
-
+
MyHandler() : type(), data() {}
bool Null() { type = "Null"; data.clear(); return true; }
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
index 5aae8a1c0ac..f86182dfb7f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
@@ -12,11 +12,11 @@ struct MyHandler {
bool Int64(int64_t i) { cout << "Int64(" << i << ")" << endl; return true; }
bool Uint64(uint64_t u) { cout << "Uint64(" << u << ")" << endl; return true; }
bool Double(double d) { cout << "Double(" << d << ")" << endl; return true; }
- bool RawNumber(const char* str, SizeType length, bool copy) {
+ bool RawNumber(const char* str, SizeType length, bool copy) {
cout << "Number(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
return true;
}
- bool String(const char* str, SizeType length, bool copy) {
+ bool String(const char* str, SizeType length, bool copy) {
cout << "String(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
return true;
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
index 8d1275c2923..2f4d83ad295 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
@@ -8,8 +8,8 @@ using namespace std;
int main() {
StringBuffer s;
Writer<StringBuffer> writer(s);
-
- writer.StartObject(); // Between StartObject()/EndObject(),
+
+ writer.StartObject(); // Between StartObject()/EndObject(),
writer.Key("hello"); // output a key,
writer.String("world"); // follow by a value.
writer.Key("t");
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
index 7e0c89923e4..cf80f7acc69 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
@@ -17,7 +17,7 @@ void traverse(const Value& v, const Pointer& p) {
traverse(v[i], p.Append(i));
break;
case kObjectType:
- for (Value::ConstMemberIterator m = v.MemberBegin(); m != v.MemberEnd(); ++m)
+ for (Value::ConstMemberIterator m = v.MemberBegin(); m != v.MemberEnd(); ++m)
traverse(m->value, p.Append(m->name.GetString(), m->name.GetStringLength()));
break;
default:
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
index d6021c66891..f97b0be86ea 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
@@ -32,7 +32,7 @@ int main(int, char*[]) {
printf("\nParsing to document succeeded.\n");
////////////////////////////////////////////////////////////////////////////
- // 2. Access values in document.
+ // 2. Access values in document.
printf("\nAccess values in document:\n");
assert(document.IsObject()); // Document is a JSON value represents the root of DOM. Root can be either an object or array.
@@ -69,7 +69,7 @@ int main(int, char*[]) {
assert(a.IsArray());
for (SizeType i = 0; i < a.Size(); i++) // rapidjson uses SizeType instead of size_t.
printf("a[%d] = %d\n", i, a[i].GetInt());
-
+
int y = a[0].GetInt();
(void)y;
@@ -128,7 +128,7 @@ int main(int, char*[]) {
// Shorter but slower version:
// document["hello"].SetString(buffer, document.GetAllocator());
- // Constructor version:
+ // Constructor version:
// Value author(buffer, len, document.GetAllocator());
// Value author(buffer, document.GetAllocator());
memset(buffer2, 0, sizeof(buffer2)); // For demonstration purpose.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
index 12bc5bafcb3..8918cf76fe3 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ALLOCATORS_H_
@@ -31,10 +31,10 @@ RAPIDJSON_NAMESPACE_BEGIN
/*! \class rapidjson::Allocator
\brief Concept for allocating, resizing and freeing memory block.
-
+
Note that Malloc() and Realloc() are non-static but Free() is static.
-
- So if an allocator need to support Free(), it needs to put its pointer in
+
+ So if an allocator need to support Free(), it needs to put its pointer in
the header of memory block.
\code
@@ -82,7 +82,7 @@ concept Allocator {
class CrtAllocator {
public:
static const bool kNeedFree = true;
- void* Malloc(size_t size) {
+ void* Malloc(size_t size) {
if (size) // behavior of malloc(0) is implementation defined.
return RAPIDJSON_MALLOC(size);
else
@@ -110,7 +110,7 @@ public:
// MemoryPoolAllocator
//! Default memory allocator used by the parser and DOM.
-/*! This allocator allocate memory blocks from pre-allocated memory chunks.
+/*! This allocator allocate memory blocks from pre-allocated memory chunks.
It does not free memory blocks. And Realloc() only allocate new memory.
@@ -166,7 +166,7 @@ public:
\param baseAllocator The allocator for allocating memory chunks.
*/
explicit
- MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) :
+ MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) :
chunk_capacity_(chunkSize),
baseAllocator_(baseAllocator ? baseAllocator : RAPIDJSON_NEW(BaseAllocator)()),
shared_(static_cast<SharedData*>(baseAllocator_ ? baseAllocator_->Malloc(SIZEOF_SHARED_DATA + SIZEOF_CHUNK_HEADER) : 0))
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
index e2cc6000648..660e14eb531 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_DOCUMENT_H_
@@ -116,7 +116,7 @@ class GenericDocument;
But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct.
https://code.google.com/p/rapidjson/issues/detail?id=64
*/
-template <typename Encoding, typename Allocator>
+template <typename Encoding, typename Allocator>
class GenericMember {
public:
GenericValue<Encoding, Allocator> name; //!< name of member (must be a string)
@@ -518,7 +518,7 @@ namespace internal {
template <typename ValueType, typename T>
struct TypeHelper {};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, bool> {
static bool Is(const ValueType& v) { return v.IsBool(); }
static bool Get(const ValueType& v) { return v.GetBool(); }
@@ -526,7 +526,7 @@ struct TypeHelper<ValueType, bool> {
static ValueType& Set(ValueType& v, bool data, typename ValueType::AllocatorType&) { return v.SetBool(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, int> {
static bool Is(const ValueType& v) { return v.IsInt(); }
static int Get(const ValueType& v) { return v.GetInt(); }
@@ -534,7 +534,7 @@ struct TypeHelper<ValueType, int> {
static ValueType& Set(ValueType& v, int data, typename ValueType::AllocatorType&) { return v.SetInt(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, unsigned> {
static bool Is(const ValueType& v) { return v.IsUint(); }
static unsigned Get(const ValueType& v) { return v.GetUint(); }
@@ -562,7 +562,7 @@ struct TypeHelper<ValueType, unsigned long> {
};
#endif
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, int64_t> {
static bool Is(const ValueType& v) { return v.IsInt64(); }
static int64_t Get(const ValueType& v) { return v.GetInt64(); }
@@ -570,7 +570,7 @@ struct TypeHelper<ValueType, int64_t> {
static ValueType& Set(ValueType& v, int64_t data, typename ValueType::AllocatorType&) { return v.SetInt64(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, uint64_t> {
static bool Is(const ValueType& v) { return v.IsUint64(); }
static uint64_t Get(const ValueType& v) { return v.GetUint64(); }
@@ -578,7 +578,7 @@ struct TypeHelper<ValueType, uint64_t> {
static ValueType& Set(ValueType& v, uint64_t data, typename ValueType::AllocatorType&) { return v.SetUint64(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, double> {
static bool Is(const ValueType& v) { return v.IsDouble(); }
static double Get(const ValueType& v) { return v.GetDouble(); }
@@ -586,7 +586,7 @@ struct TypeHelper<ValueType, double> {
static ValueType& Set(ValueType& v, double data, typename ValueType::AllocatorType&) { return v.SetDouble(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, float> {
static bool Is(const ValueType& v) { return v.IsFloat(); }
static float Get(const ValueType& v) { return v.GetFloat(); }
@@ -594,7 +594,7 @@ struct TypeHelper<ValueType, float> {
static ValueType& Set(ValueType& v, float data, typename ValueType::AllocatorType&) { return v.SetFloat(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, const typename ValueType::Ch*> {
typedef const typename ValueType::Ch* StringType;
static bool Is(const ValueType& v) { return v.IsString(); }
@@ -604,7 +604,7 @@ struct TypeHelper<ValueType, const typename ValueType::Ch*> {
};
#if RAPIDJSON_HAS_STDSTRING
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
typedef std::basic_string<typename ValueType::Ch> StringType;
static bool Is(const ValueType& v) { return v.IsString(); }
@@ -613,7 +613,7 @@ struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
};
#endif
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::Array> {
typedef typename ValueType::Array ArrayType;
static bool Is(const ValueType& v) { return v.IsArray(); }
@@ -622,14 +622,14 @@ struct TypeHelper<ValueType, typename ValueType::Array> {
static ValueType& Set(ValueType& v, ArrayType data, typename ValueType::AllocatorType&) { return v = data; }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::ConstArray> {
typedef typename ValueType::ConstArray ArrayType;
static bool Is(const ValueType& v) { return v.IsArray(); }
static ArrayType Get(const ValueType& v) { return v.GetArray(); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::Object> {
typedef typename ValueType::Object ObjectType;
static bool Is(const ValueType& v) { return v.IsObject(); }
@@ -638,7 +638,7 @@ struct TypeHelper<ValueType, typename ValueType::Object> {
static ValueType& Set(ValueType& v, ObjectType data, typename ValueType::AllocatorType&) { return v = data; }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::ConstObject> {
typedef typename ValueType::ConstObject ObjectType;
static bool Is(const ValueType& v) { return v.IsObject(); }
@@ -796,7 +796,7 @@ public:
//! Constructor for unsigned value.
explicit GenericValue(unsigned u) RAPIDJSON_NOEXCEPT : data_() {
- data_.n.u64 = u;
+ data_.n.u64 = u;
data_.f.flags = (u & 0x80000000) ? kNumberUintFlag : (kNumberUintFlag | kIntFlag | kInt64Flag);
}
@@ -1030,14 +1030,14 @@ public:
switch (GetType()) {
case kObjectType: // Warning: O(n^2) inner-loop
if (data_.o.size != rhs.data_.o.size)
- return false;
+ return false;
for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) {
typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name);
if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value)
return false;
}
return true;
-
+
case kArrayType:
if (data_.a.size != rhs.data_.a.size)
return false;
@@ -1505,7 +1505,7 @@ public:
\note Linear time complexity.
*/
void RemoveAllMembers() {
- RAPIDJSON_ASSERT(IsObject());
+ RAPIDJSON_ASSERT(IsObject());
DoClearMembers();
}
@@ -1638,7 +1638,7 @@ public:
\note Linear time complexity.
*/
void Clear() {
- RAPIDJSON_ASSERT(IsArray());
+ RAPIDJSON_ASSERT(IsArray());
GenericValue* e = GetElementsPointer();
for (GenericValue* v = e; v != e + data_.a.size; ++v)
v->~GenericValue();
@@ -1844,7 +1844,7 @@ public:
//! Set this value as a string without copying source string.
/*! This version has better performance with supplied length, and also support string containing null character.
- \param s source string pointer.
+ \param s source string pointer.
\param length The length of source string, excluding the trailing null terminator.
\return The value itself for fluent API.
\post IsString() == true && GetString() == s && GetStringLength() == length
@@ -1861,7 +1861,7 @@ public:
//! Set this value as a string by copying from source string.
/*! This version has better performance with supplied length, and also support string containing null character.
- \param s source string.
+ \param s source string.
\param length The length of source string, excluding the trailing null terminator.
\param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
\return The value itself for fluent API.
@@ -1870,7 +1870,7 @@ public:
GenericValue& SetString(const Ch* s, SizeType length, Allocator& allocator) { return SetString(StringRef(s, length), allocator); }
//! Set this value as a string by copying from source string.
- /*! \param s source string.
+ /*! \param s source string.
\param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
\return The value itself for fluent API.
\post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length
@@ -1955,10 +1955,10 @@ public:
if (RAPIDJSON_UNLIKELY(!v->Accept(handler)))
return false;
return handler.EndArray(data_.a.size);
-
+
case kStringType:
return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0);
-
+
default:
RAPIDJSON_ASSERT(GetType() == kNumberType);
if (IsDouble()) return handler.Double(data_.n.d);
@@ -2470,7 +2470,7 @@ private:
typedef GenericValue<UTF8<> > Value;
///////////////////////////////////////////////////////////////////////////////
-// GenericDocument
+// GenericDocument
//! A document for parsing JSON text as DOM.
/*!
@@ -2502,12 +2502,12 @@ public:
}
//! Constructor
- /*! Creates an empty document which type is Null.
+ /*! Creates an empty document which type is Null.
\param allocator Optional allocator for allocating memory.
\param stackCapacity Optional initial capacity of stack in bytes.
\param stackAllocator Optional allocator for allocating memory for stack.
*/
- GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
+ GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_()
{
if (!allocator_)
@@ -2724,7 +2724,7 @@ public:
GenericDocument& Parse(const Ch* str, size_t length) {
return Parse<parseFlags, Encoding>(str, length);
}
-
+
GenericDocument& Parse(const Ch* str, size_t length) {
return Parse<kParseDefaultFlags>(str, length);
}
@@ -2744,7 +2744,7 @@ public:
GenericDocument& Parse(const std::basic_string<Ch>& str) {
return Parse<kParseDefaultFlags>(str);
}
-#endif // RAPIDJSON_HAS_STDSTRING
+#endif // RAPIDJSON_HAS_STDSTRING
//!@}
@@ -2809,16 +2809,16 @@ public:
bool Uint64(uint64_t i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
bool Double(double d) { new (stack_.template Push<ValueType>()) ValueType(d); return true; }
- bool RawNumber(const Ch* str, SizeType length, bool copy) {
- if (copy)
+ bool RawNumber(const Ch* str, SizeType length, bool copy) {
+ if (copy)
new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
else
new (stack_.template Push<ValueType>()) ValueType(str, length);
return true;
}
- bool String(const Ch* str, SizeType length, bool copy) {
- if (copy)
+ bool String(const Ch* str, SizeType length, bool copy) {
+ if (copy)
new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
else
new (stack_.template Push<ValueType>()) ValueType(str, length);
@@ -2826,7 +2826,7 @@ public:
}
bool StartObject() { new (stack_.template Push<ValueType>()) ValueType(kObjectType); return true; }
-
+
bool Key(const Ch* str, SizeType length, bool copy) { return String(str, length, copy); }
bool EndObject(SizeType memberCount) {
@@ -2836,7 +2836,7 @@ public:
}
bool StartArray() { new (stack_.template Push<ValueType>()) ValueType(kArrayType); return true; }
-
+
bool EndArray(SizeType elementCount) {
ValueType* elements = stack_.template Pop<ValueType>(elementCount);
stack_.template Top<ValueType>()->SetArrayRaw(elements, elementCount, GetAllocator());
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
index cf046b89235..309499dc6b4 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ENCODEDSTREAM_H_
@@ -41,7 +41,7 @@ class EncodedInputStream {
public:
typedef typename Encoding::Ch Ch;
- EncodedInputStream(InputByteStream& is) : is_(is) {
+ EncodedInputStream(InputByteStream& is) : is_(is) {
current_ = Encoding::TakeBOM(is_);
}
@@ -51,7 +51,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
@@ -80,7 +80,7 @@ public:
// Not implemented
void Put(Ch) {}
- void Flush() {}
+ void Flush() {}
Ch* PutBegin() { return 0; }
size_t PutEnd(Ch*) { return 0; }
@@ -102,7 +102,7 @@ class EncodedOutputStream {
public:
typedef typename Encoding::Ch Ch;
- EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) {
+ EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) {
if (putBOM)
Encoding::PutBOM(os_);
}
@@ -143,7 +143,7 @@ public:
\param type UTF encoding type if it is not detected from the stream.
*/
AutoUTFInputStream(InputByteStream& is, UTFType type = kUTF8) : is_(&is), type_(type), hasBOM_(false) {
- RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
+ RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
DetectType();
static const TakeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Take) };
takeFunc_ = f[type_];
@@ -159,7 +159,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
@@ -258,7 +258,7 @@ public:
UTFType GetType() const { return type_; }
void Put(Ch c) { putFunc_(*os_, c); }
- void Flush() { os_->Flush(); }
+ void Flush() { os_->Flush(); }
// Not implemented
Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;}
@@ -271,7 +271,7 @@ private:
AutoUTFOutputStream(const AutoUTFOutputStream&);
AutoUTFOutputStream& operator=(const AutoUTFOutputStream&);
- void PutBOM() {
+ void PutBOM() {
typedef void (*PutBOMFunc)(OutputByteStream&);
static const PutBOMFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(PutBOM) };
f[type_](*os_);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
index 50ad18bdc08..f9f1ed181ea 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ENCODINGS_H_
@@ -100,7 +100,7 @@ struct UTF8 {
template<typename OutputStream>
static void Encode(OutputStream& os, unsigned codepoint) {
- if (codepoint <= 0x7F)
+ if (codepoint <= 0x7F)
os.Put(static_cast<Ch>(codepoint & 0xFF));
else if (codepoint <= 0x7FF) {
os.Put(static_cast<Ch>(0xC0 | ((codepoint >> 6) & 0xFF)));
@@ -122,7 +122,7 @@ struct UTF8 {
template<typename OutputStream>
static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
- if (codepoint <= 0x7F)
+ if (codepoint <= 0x7F)
PutUnsafe(os, static_cast<Ch>(codepoint & 0xFF));
else if (codepoint <= 0x7FF) {
PutUnsafe(os, static_cast<Ch>(0xC0 | ((codepoint >> 6) & 0xFF)));
@@ -276,7 +276,7 @@ struct UTF16 {
static void Encode(OutputStream& os, unsigned codepoint) {
RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
if (codepoint <= 0xFFFF) {
- RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
+ RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
os.Put(static_cast<typename OutputStream::Ch>(codepoint));
}
else {
@@ -292,7 +292,7 @@ struct UTF16 {
static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
if (codepoint <= 0xFFFF) {
- RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
+ RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
PutUnsafe(os, static_cast<typename OutputStream::Ch>(codepoint));
}
else {
@@ -406,7 +406,7 @@ struct UTF16BE : UTF16<CharType> {
///////////////////////////////////////////////////////////////////////////////
// UTF32
-//! UTF-32 encoding.
+//! UTF-32 encoding.
/*! http://en.wikipedia.org/wiki/UTF-32
\tparam CharType Type for storing 32-bit UTF-32 data. Default is unsigned. C++11 may use char32_t instead.
\note implements Encoding concept
@@ -498,7 +498,7 @@ struct UTF32BE : UTF32<CharType> {
static CharType TakeBOM(InputByteStream& is) {
RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
CharType c = Take(is);
- return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
+ return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
}
template <typename InputByteStream>
@@ -694,13 +694,13 @@ struct Transcoder<Encoding, Encoding> {
os.Put(is.Take()); // Just copy one code unit. This semantic is different from primary template class.
return true;
}
-
+
template<typename InputStream, typename OutputStream>
static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) {
PutUnsafe(os, is.Take()); // Just copy one code unit. This semantic is different from primary template class.
return true;
}
-
+
template<typename InputStream, typename OutputStream>
static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) {
return Encoding::Validate(is, os); // source/target encoding are the same
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
index 5d2e57b7fd4..7c620a2e6b8 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ERROR_EN_H_
@@ -39,13 +39,13 @@ inline const RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErro
case kParseErrorDocumentEmpty: return RAPIDJSON_ERROR_STRING("The document is empty.");
case kParseErrorDocumentRootNotSingular: return RAPIDJSON_ERROR_STRING("The document root must not be followed by other values.");
-
+
case kParseErrorValueInvalid: return RAPIDJSON_ERROR_STRING("Invalid value.");
-
+
case kParseErrorObjectMissName: return RAPIDJSON_ERROR_STRING("Missing a name for object member.");
case kParseErrorObjectMissColon: return RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member.");
case kParseErrorObjectMissCommaOrCurlyBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member.");
-
+
case kParseErrorArrayMissCommaOrSquareBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element.");
case kParseErrorStringUnicodeEscapeInvalidHex: return RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string.");
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
index 6270da11a54..5c890ba0ead 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ERROR_ERROR_H_
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
index f8bb43cb0cf..3daff09279a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FILEREADSTREAM_H_
@@ -41,7 +41,7 @@ public:
\param buffer user-supplied buffer.
\param bufferSize size of buffer in bytes. Must >=4 bytes.
*/
- FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
+ FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
RAPIDJSON_ASSERT(fp_ != 0);
RAPIDJSON_ASSERT(bufferSize >= 4);
Read();
@@ -53,7 +53,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
index 5d89588c218..8a78ef7f09c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FILEWRITESTREAM_H_
@@ -33,11 +33,11 @@ class FileWriteStream {
public:
typedef char Ch; //!< Character type. Only support char.
- FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) {
+ FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) {
RAPIDJSON_ASSERT(fp_ != 0);
}
- void Put(char c) {
+ void Put(char c) {
if (current_ >= bufferEnd_)
Flush();
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
index d62f77f0ecf..07358d8cc9c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FWD_H_
@@ -101,7 +101,7 @@ class PrettyWriter;
// document.h
-template <typename Encoding, typename Allocator>
+template <typename Encoding, typename Allocator>
class GenericMember;
template <bool Const, typename Encoding, typename Allocator>
@@ -110,7 +110,7 @@ class GenericMemberIterator;
template<typename CharType>
struct GenericStringRef;
-template <typename Encoding, typename Allocator>
+template <typename Encoding, typename Allocator>
class GenericValue;
typedef GenericValue<UTF8<char>, MemoryPoolAllocator<CrtAllocator> > Value;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
index af487380389..6c58fc87bb2 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_BIGINTEGER_H_
@@ -56,7 +56,7 @@ public:
if (length > 0)
AppendDecimal64(decimals + i, decimals + i + length);
}
-
+
BigInteger& operator=(const BigInteger &rhs)
{
if (this != &rhs) {
@@ -65,9 +65,9 @@ public:
}
return *this;
}
-
+
BigInteger& operator=(uint64_t u) {
- digits_[0] = u;
+ digits_[0] = u;
count_ = 1;
return *this;
}
@@ -100,7 +100,7 @@ public:
digits_[i] = MulAdd64(digits_[i], u, k, &hi);
k = hi;
}
-
+
if (k > 0)
PushBack(k);
@@ -123,7 +123,7 @@ public:
digits_[i] = (p0 & 0xFFFFFFFF) | (p1 << 32);
k = p1 >> 32;
}
-
+
if (k > 0)
PushBack(k);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
index 9f6ae3b3f00..aa27f7b673c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
// This is a C++ header-only implementation of Grisu2 algorithm from the publication:
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
index 68c9e96649b..f887d1b27cd 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_IEEE754_
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
index 27092dc0d69..76a1d5be46b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_META_H_
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
index eae1a43ed1a..04ee1f6b445 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_POW10_
@@ -27,8 +27,8 @@ namespace internal {
*/
inline double Pow10(int n) {
static const double e[] = { // 1e-0...1e308: 309 * 8 bytes = 2472 bytes
- 1e+0,
- 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20,
+ 1e+0,
+ 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20,
1e+21, 1e+22, 1e+23, 1e+24, 1e+25, 1e+26, 1e+27, 1e+28, 1e+29, 1e+30, 1e+31, 1e+32, 1e+33, 1e+34, 1e+35, 1e+36, 1e+37, 1e+38, 1e+39, 1e+40,
1e+41, 1e+42, 1e+43, 1e+44, 1e+45, 1e+46, 1e+47, 1e+48, 1e+49, 1e+50, 1e+51, 1e+52, 1e+53, 1e+54, 1e+55, 1e+56, 1e+57, 1e+58, 1e+59, 1e+60,
1e+61, 1e+62, 1e+63, 1e+64, 1e+65, 1e+66, 1e+67, 1e+68, 1e+69, 1e+70, 1e+71, 1e+72, 1e+73, 1e+74, 1e+75, 1e+76, 1e+77, 1e+78, 1e+79, 1e+80,
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
index 6446c403af9..e37126109fb 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_REGEX_H_
@@ -102,9 +102,9 @@ class GenericRegexSearch;
- \c \\t Tab (U+0009)
- \c \\v Vertical tab (U+000B)
- \note This is a Thompson NFA engine, implemented with reference to
- Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).",
- https://swtch.com/~rsc/regexp/regexp1.html
+ \note This is a Thompson NFA engine, implemented with reference to
+ Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).",
+ https://swtch.com/~rsc/regexp/regexp1.html
*/
template <typename Encoding, typename Allocator = CrtAllocator>
class GenericRegex {
@@ -113,9 +113,9 @@ public:
typedef typename Encoding::Ch Ch;
template <typename, typename> friend class GenericRegexSearch;
- GenericRegex(const Ch* source, Allocator* allocator = 0) :
- ownAllocator_(allocator ? 0 : RAPIDJSON_NEW(Allocator)()), allocator_(allocator ? allocator : ownAllocator_),
- states_(allocator_, 256), ranges_(allocator_, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(),
+ GenericRegex(const Ch* source, Allocator* allocator = 0) :
+ ownAllocator_(allocator ? 0 : RAPIDJSON_NEW(Allocator)()), allocator_(allocator ? allocator : ownAllocator_),
+ states_(allocator_, 256), ranges_(allocator_, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(),
anchorBegin_(), anchorEnd_()
{
GenericStringStream<Encoding> ss(source);
@@ -147,7 +147,7 @@ private:
static const unsigned kRangeNegationFlag = 0x80000000;
struct Range {
- unsigned start; //
+ unsigned start; //
unsigned end;
SizeType next;
};
@@ -402,7 +402,7 @@ private:
}
return false;
- default:
+ default:
// syntax error (e.g. unclosed kLeftParenthesis)
return false;
}
@@ -550,7 +550,7 @@ private:
}
return false;
}
-
+
SizeType NewRange(unsigned codepoint) {
Range* r = ranges_.template Push<Range>();
r->start = r->end = codepoint;
@@ -608,7 +608,7 @@ public:
typedef typename RegexType::EncodingType Encoding;
typedef typename Encoding::Ch Ch;
- GenericRegexSearch(const RegexType& regex, Allocator* allocator = 0) :
+ GenericRegexSearch(const RegexType& regex, Allocator* allocator = 0) :
regex_(regex), allocator_(allocator), ownAllocator_(0),
state0_(allocator, 0), state1_(allocator, 0), stateSet_()
{
@@ -667,7 +667,7 @@ private:
for (const SizeType* s = current->template Bottom<SizeType>(); s != current->template End<SizeType>(); ++s) {
const State& sr = regex_.GetState(*s);
if (sr.codepoint == codepoint ||
- sr.codepoint == RegexType::kAnyCharacterClass ||
+ sr.codepoint == RegexType::kAnyCharacterClass ||
(sr.codepoint == RegexType::kRangeCharacterClass && MatchRange(sr.rangeStart, codepoint)))
{
matched = AddState(*next, sr.out) || matched;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
index 73abd706e97..ceead449079 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_STACK_H_
@@ -98,7 +98,7 @@ public:
void Clear() { stackTop_ = stack_; }
- void ShrinkToFit() {
+ void ShrinkToFit() {
if (Empty()) {
// If the stack is empty, completely deallocate the memory.
Allocator::Free(stack_); // NOLINT (+clang-analyzer-unix.Malloc)
@@ -142,7 +142,7 @@ public:
}
template<typename T>
- T* Top() {
+ T* Top() {
RAPIDJSON_ASSERT(GetSize() >= sizeof(T));
return reinterpret_cast<T*>(stackTop_ - sizeof(T));
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
index b698a8f43fa..1a88f49bbac 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_
@@ -24,7 +24,7 @@ namespace internal {
//! Custom strlen() which works on different character types.
/*! \tparam Ch Character type (e.g. char, wchar_t, short)
\param s Null-terminated input string.
- \return Number of characters in the string.
+ \return Number of characters in the string.
\note This has the same semantics as strlen(), the return value is not number of Unicode codepoints.
*/
template <typename Ch>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
index 55f0e380bfa..62a42c69d88 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_STRTOD_
@@ -131,14 +131,14 @@ inline bool StrtodFast(double d, int p, double* result) {
template<typename Ch>
inline bool StrtodDiyFp(const Ch* decimals, int dLen, int dExp, double* result) {
uint64_t significand = 0;
- int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999
+ int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999
for (; i < dLen; i++) {
if (significand > RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) ||
(significand == RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) && decimals[i] > Ch('5')))
break;
significand = significand * 10u + static_cast<unsigned>(decimals[i] - Ch('0'));
}
-
+
if (i < dLen && decimals[i] >= Ch('5')) // Rounding
significand++;
@@ -185,7 +185,7 @@ inline bool StrtodDiyFp(const Ch* decimals, int dLen, int dExp, double* result)
if (precisionSize + kUlpShift >= 64) {
int scaleExp = (precisionSize + kUlpShift) - 63;
v.f >>= scaleExp;
- v.e += scaleExp;
+ v.e += scaleExp;
error = (error >> scaleExp) + 1 + kUlp;
precisionSize -= scaleExp;
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
index 01437ec0127..23dd83e96c0 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ISTREAMWRAPPER_H_
@@ -44,7 +44,7 @@ RAPIDJSON_NAMESPACE_BEGIN
\tparam StreamType Class derived from \c std::basic_istream.
*/
-
+
template <typename StreamType>
class BasicIStreamWrapper {
public:
@@ -54,7 +54,7 @@ public:
/*!
\param stream stream opened for read.
*/
- BasicIStreamWrapper(StreamType &stream) : stream_(stream), buffer_(peekBuffer_), bufferSize_(4), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
+ BasicIStreamWrapper(StreamType &stream) : stream_(stream), buffer_(peekBuffer_), bufferSize_(4), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
Read();
}
@@ -64,7 +64,7 @@ public:
\param buffer user-supplied buffer.
\param bufferSize size of buffer in bytes. Must >=4 bytes.
*/
- BasicIStreamWrapper(StreamType &stream, char* buffer, size_t bufferSize) : stream_(stream), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
+ BasicIStreamWrapper(StreamType &stream, char* buffer, size_t bufferSize) : stream_(stream), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
RAPIDJSON_ASSERT(bufferSize >= 4);
Read();
}
@@ -75,7 +75,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
index ffbc41ed1f7..14aad68636e 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_MEMORYBUFFER_H_
@@ -27,7 +27,7 @@ RAPIDJSON_NAMESPACE_BEGIN
It is similar to FileWriteBuffer but the destination is an in-memory buffer instead of a file.
Differences between MemoryBuffer and StringBuffer:
- 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer.
+ 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer.
2. StringBuffer::GetString() returns a null-terminated string. MemoryBuffer::GetBuffer() returns a buffer without terminator.
\tparam Allocator type for allocating memory buffer.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
index 77af6c999e9..1bc393f282f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_MEMORYSTREAM_H_
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
index 18111286bf5..1620402e013 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
@@ -1,37 +1,37 @@
// ISO C9x compliant inttypes.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
// Copyright (c) 2006-2013 Alexander Chemeris
-//
+//
// 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. Neither the name of the product nor the names of its contributors may
// 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,
+// 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 above software in this distribution may have been modified by
-// THL A29 Limited ("Tencent Modifications").
+// The above software in this distribution may have been modified by
+// THL A29 Limited ("Tencent Modifications").
// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited.
#ifndef _MSC_VER // [
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
index 3d4477b9a02..1c266ecfe68 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
@@ -1,37 +1,37 @@
// ISO C9x compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
// Copyright (c) 2006-2013 Alexander Chemeris
-//
+//
// 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. Neither the name of the product nor the names of its contributors may
// 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,
+// 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 above software in this distribution may have been modified by
-// THL A29 Limited ("Tencent Modifications").
+// The above software in this distribution may have been modified by
+// THL A29 Limited ("Tencent Modifications").
// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited.
#ifndef _MSC_VER // [
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
index 11ed4d33f92..bfd4d6dab06 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_OSTREAMWRAPPER_H_
@@ -40,7 +40,7 @@ RAPIDJSON_NAMESPACE_BEGIN
\tparam StreamType Class derived from \c std::basic_ostream.
*/
-
+
template <typename StreamType>
class BasicOStreamWrapper {
public:
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
index 67a9cb07686..d89f943c91c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_POINTER_H_
@@ -49,16 +49,16 @@ enum PointerParseErrorCode {
//! Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator.
/*!
- This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer"
+ This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer"
(https://tools.ietf.org/html/rfc6901).
A JSON pointer is for identifying a specific value in a JSON document
(GenericDocument). It can simplify coding of DOM tree manipulation, because it
can access multiple-level depth of DOM tree with single API call.
- After it parses a string representation (e.g. "/foo/0" or URI fragment
+ After it parses a string representation (e.g. "/foo/0" or URI fragment
representation (e.g. "#/foo/0") into its internal representation (tokens),
- it can be used to resolve a specific value in multiple documents, or sub-tree
+ it can be used to resolve a specific value in multiple documents, or sub-tree
of documents.
Contrary to GenericValue, Pointer can be copy constructed and copy assigned.
@@ -69,10 +69,10 @@ enum PointerParseErrorCode {
supplied tokens eliminates these.
GenericPointer depends on GenericDocument and GenericValue.
-
+
\tparam ValueType The value type of the DOM tree. E.g. GenericValue<UTF8<> >
\tparam Allocator The allocator type for allocating memory for internal representation.
-
+
\note GenericPointer uses same encoding of ValueType.
However, Allocator of GenericPointer is independent of Allocator of Value.
*/
@@ -86,7 +86,7 @@ public:
//! A token is the basic units of internal representation.
/*!
- A JSON pointer string representation "/foo/123" is parsed to two tokens:
+ A JSON pointer string representation "/foo/123" is parsed to two tokens:
"foo" and 123. 123 will be represented in both numeric form and string form.
They are resolved according to the actual value type (object or array).
@@ -94,7 +94,7 @@ public:
(greater than limits of SizeType), they are only treated as string form
(i.e. the token's index will be equal to kPointerInvalidIndex).
- This struct is public so that user can create a Pointer without parsing and
+ This struct is public so that user can create a Pointer without parsing and
allocation, using a special constructor.
*/
struct Token {
@@ -373,7 +373,7 @@ public:
for (size_t i = 0; i < tokenCount_; i++) {
if (tokens_[i].index != rhs.tokens_[i].index ||
- tokens_[i].length != rhs.tokens_[i].length ||
+ tokens_[i].length != rhs.tokens_[i].length ||
(tokens_[i].length != 0 && std::memcmp(tokens_[i].name, rhs.tokens_[i].name, sizeof(Ch)* tokens_[i].length) != 0))
{
return false;
@@ -451,9 +451,9 @@ public:
If the value is not exist, it creates all parent values and a JSON Null value.
So it always succeed and return the newly created or existing value.
- Remind that it may change types of parents according to tokens, so it
- potentially removes previously stored values. For example, if a document
- was an array, and "/foo" is used to create a value, then the document
+ Remind that it may change types of parents according to tokens, so it
+ potentially removes previously stored values. For example, if a document
+ was an array, and "/foo" is used to create a value, then the document
will be changed to an object, and all existing array elements are lost.
\param root Root value of a DOM subtree to be resolved. It can be any value other than document root.
@@ -639,7 +639,7 @@ public:
\param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root.
\return Pointer to the value if it can be resolved. Otherwise null.
*/
- const ValueType* Get(const ValueType& root, size_t* unresolvedTokenIndex = 0) const {
+ const ValueType* Get(const ValueType& root, size_t* unresolvedTokenIndex = 0) const {
return Get(const_cast<ValueType&>(root), unresolvedTokenIndex);
}
@@ -701,7 +701,7 @@ public:
ValueType& GetWithDefault(GenericDocument<EncodingType, typename ValueType::AllocatorType, stackAllocator>& document, const Ch* defaultValue) const {
return GetWithDefault(document, defaultValue, document.GetAllocator());
}
-
+
#if RAPIDJSON_HAS_STDSTRING
//! Query a value in a document with default std::basic_string.
template <typename stackAllocator>
@@ -938,7 +938,7 @@ private:
// Count number of '/' as tokenCount
tokenCount_ = 0;
- for (const Ch* s = source; s != source + length; s++)
+ for (const Ch* s = source; s != source + length; s++)
if (*s == '/')
tokenCount_++;
@@ -995,7 +995,7 @@ private:
}
i++;
-
+
// Escaping "~0" -> '~', "~1" -> '/'
if (c == '~') {
if (i < length) {
@@ -1084,7 +1084,7 @@ private:
os.Put('~');
os.Put('1');
}
- else if (uriFragment && NeedPercentEncode(c)) {
+ else if (uriFragment && NeedPercentEncode(c)) {
// Transcode to UTF8 sequence
GenericStringStream<typename ValueType::EncodingType> source(&t->name[j]);
PercentEncodeStream<OutputStream> target(os);
@@ -1102,7 +1102,7 @@ private:
//! A helper stream for decoding a percent-encoded sequence into code unit.
/*!
This stream decodes %XY triplet into code unit (0-255).
- If it encounters invalid characters, it sets output code unit as 0 and
+ If it encounters invalid characters, it sets output code unit as 0 and
mark invalid, and to be checked by IsValid().
*/
class PercentDecodeStream {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
index fe45df1d10f..cea596ef584 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_PRETTYWRITER_H_
@@ -55,11 +55,11 @@ public:
\param allocator User supplied allocator. If it is null, it will create a private one.
\param levelDepth Initial capacity of stack.
*/
- explicit PrettyWriter(OutputStream& os, StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
+ explicit PrettyWriter(OutputStream& os, StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
Base(os, allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {}
- explicit PrettyWriter(StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
+ explicit PrettyWriter(StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
Base(allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {}
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
@@ -133,13 +133,13 @@ public:
return Key(str.data(), SizeType(str.size()));
}
#endif
-
+
bool EndObject(SizeType memberCount = 0) {
(void)memberCount;
RAPIDJSON_ASSERT(Base::level_stack_.GetSize() >= sizeof(typename Base::Level)); // not inside an Object
RAPIDJSON_ASSERT(!Base::level_stack_.template Top<typename Base::Level>()->inArray); // currently inside an Array, not Object
RAPIDJSON_ASSERT(0 == Base::level_stack_.template Top<typename Base::Level>()->valueCount % 2); // Object has a Key without a Value
-
+
bool empty = Base::level_stack_.template Pop<typename Base::Level>(1)->valueCount == 0;
if (!empty) {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
index a4e8953244c..77cede6067f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_RAPIDJSON_H_
@@ -17,7 +17,7 @@
/*!\file rapidjson.h
\brief common definitions and configuration
-
+
\see RAPIDJSON_CONFIG
*/
@@ -195,7 +195,7 @@
*/
#ifndef RAPIDJSON_NO_INT64DEFINE
//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN
-#if defined(_MSC_VER) && (_MSC_VER < 1800) // Visual Studio 2013
+#if defined(_MSC_VER) && (_MSC_VER < 1800) // Visual Studio 2013
#include "msinttypes/stdint.h"
#include "msinttypes/inttypes.h"
#else
@@ -277,7 +277,7 @@
# elif defined(RAPIDJSON_DOXYGEN_RUNNING)
# define RAPIDJSON_ENDIAN
# else
-# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN.
+# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN.
# endif
#endif // RAPIDJSON_ENDIAN
@@ -462,7 +462,7 @@ RAPIDJSON_NAMESPACE_END
#if defined(__GNUC__) || defined(__clang__)
#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
#else
-#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE
+#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE
#endif
#ifndef __clang__
//!@endcond
@@ -513,7 +513,7 @@ RAPIDJSON_NAMESPACE_END
//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN
-#define RAPIDJSON_MULTILINEMACRO_BEGIN do {
+#define RAPIDJSON_MULTILINEMACRO_BEGIN do {
#define RAPIDJSON_MULTILINEMACRO_END \
} while((void)0, 0)
@@ -731,7 +731,7 @@ enum Type {
kFalseType = 1, //!< false
kTrueType = 2, //!< true
kObjectType = 3, //!< object
- kArrayType = 4, //!< array
+ kArrayType = 4, //!< array
kStringType = 5, //!< string
kNumberType = 6 //!< number
};
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
index f0759ffcf52..1db4b57cbf7 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available->
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip-> All rights reserved->
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource->org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied-> See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied-> See the License for the
// specific language governing permissions and limitations under the License->
#ifndef RAPIDJSON_SCHEMA_H_
@@ -256,10 +256,10 @@ public:
bool Uint(unsigned u) { Number n; n.u.u = u; n.d = static_cast<double>(u); return WriteNumber(n); }
bool Int64(int64_t i) { Number n; n.u.i = i; n.d = static_cast<double>(i); return WriteNumber(n); }
bool Uint64(uint64_t u) { Number n; n.u.u = u; n.d = static_cast<double>(u); return WriteNumber(n); }
- bool Double(double d) {
- Number n;
+ bool Double(double d) {
+ Number n;
if (d < 0) n.u.i = static_cast<int64_t>(d);
- else n.u.u = static_cast<uint64_t>(d);
+ else n.u.u = static_cast<uint64_t>(d);
n.d = d;
return WriteNumber(n);
}
@@ -276,7 +276,7 @@ public:
bool StartObject() { return true; }
bool Key(const Ch* str, SizeType len, bool copy) { return String(str, len, copy); }
- bool EndObject(SizeType memberCount) {
+ bool EndObject(SizeType memberCount) {
uint64_t h = Hash(0, kObjectType);
uint64_t* kv = stack_.template Pop<uint64_t>(memberCount * 2);
for (SizeType i = 0; i < memberCount; i++)
@@ -284,9 +284,9 @@ public:
*stack_.template Push<uint64_t>() = h;
return true;
}
-
+
bool StartArray() { return true; }
- bool EndArray(SizeType elementCount) {
+ bool EndArray(SizeType elementCount) {
uint64_t h = Hash(0, kArrayType);
uint64_t* e = stack_.template Pop<uint64_t>(elementCount);
for (SizeType i = 0; i < elementCount; i++)
@@ -313,9 +313,9 @@ private:
};
bool WriteType(Type type) { return WriteBuffer(type, 0, 0); }
-
+
bool WriteNumber(const Number& n) { return WriteBuffer(kNumberType, &n, sizeof(n)); }
-
+
bool WriteBuffer(Type type, const void* data, size_t len) {
// FNV-1a from http://isthe.com/chongo/tech/comp/fnv/
uint64_t h = Hash(RAPIDJSON_UINT64_C2(0x84222325, 0xcbf29ce4), type);
@@ -1987,7 +1987,7 @@ template <
typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>,
typename StateAllocator = CrtAllocator>
class GenericSchemaValidator :
- public internal::ISchemaStateFactory<typename SchemaDocumentType::SchemaType>,
+ public internal::ISchemaStateFactory<typename SchemaDocumentType::SchemaType>,
public internal::ISchemaValidator,
public internal::IValidationErrorHandler<typename SchemaDocumentType::SchemaType> {
public:
@@ -2008,7 +2008,7 @@ public:
*/
GenericSchemaValidator(
const SchemaDocumentType& schemaDocument,
- StateAllocator* allocator = 0,
+ StateAllocator* allocator = 0,
size_t schemaStackCapacity = kDefaultSchemaStackCapacity,
size_t documentStackCapacity = kDefaultDocumentStackCapacity)
:
@@ -2040,7 +2040,7 @@ public:
GenericSchemaValidator(
const SchemaDocumentType& schemaDocument,
OutputHandler& outputHandler,
- StateAllocator* allocator = 0,
+ StateAllocator* allocator = 0,
size_t schemaStackCapacity = kDefaultSchemaStackCapacity,
size_t documentStackCapacity = kDefaultDocumentStackCapacity)
:
@@ -2390,7 +2390,7 @@ RAPIDJSON_MULTILINEMACRO_END
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartObject, ());
return valid_ = !outputHandler_ || outputHandler_->StartObject();
}
-
+
bool Key(const Ch* str, SizeType len, bool copy) {
if (!valid_) return false;
AppendToken(str, len);
@@ -2398,7 +2398,7 @@ RAPIDJSON_MULTILINEMACRO_END
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(Key, (str, len, copy));
return valid_ = !outputHandler_ || outputHandler_->Key(str, len, copy);
}
-
+
bool EndObject(SizeType memberCount) {
if (!valid_) return false;
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndObject, (memberCount));
@@ -2411,7 +2411,7 @@ RAPIDJSON_MULTILINEMACRO_END
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartArray, ());
return valid_ = !outputHandler_ || outputHandler_->StartArray();
}
-
+
bool EndArray(SizeType elementCount) {
if (!valid_) return false;
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndArray, (elementCount));
@@ -2468,7 +2468,7 @@ private:
typedef GenericValue<UTF8<>, StateAllocator> HashCodeArray;
typedef internal::Hasher<EncodingType, StateAllocator> HasherType;
- GenericSchemaValidator(
+ GenericSchemaValidator(
const SchemaDocumentType& schemaDocument,
const SchemaType& root,
const char* basePath, size_t basePathSize,
@@ -2554,7 +2554,7 @@ private:
#endif
void* hasher = CurrentContext().hasher;
uint64_t h = hasher && CurrentContext().arrayUniqueness ? static_cast<HasherType*>(hasher)->GetHashCode() : 0;
-
+
PopSchema();
if (!schemaStack_.Empty()) {
@@ -2603,7 +2603,7 @@ private:
}
RAPIDJSON_FORCEINLINE void PushSchema(const SchemaType& schema) { new (schemaStack_.template Push<Context>()) Context(*this, *this, &schema); }
-
+
RAPIDJSON_FORCEINLINE void PopSchema() {
Context* c = schemaStack_.template Pop<Context>(1);
if (HashCodeArray* a = static_cast<HashCodeArray*>(c->arrayElementHashCodes)) {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
index 82ad3ca6bbf..17bfeac9f33 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_STRINGBUFFER_H_
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
index 8b389219ab9..81f34fc80db 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_WRITER_H_
@@ -52,7 +52,7 @@ RAPIDJSON_NAMESPACE_BEGIN
///////////////////////////////////////////////////////////////////////////////
// WriteFlag
-/*! \def RAPIDJSON_WRITE_DEFAULT_FLAGS
+/*! \def RAPIDJSON_WRITE_DEFAULT_FLAGS
\ingroup RAPIDJSON_CONFIG
\brief User-defined kWriteDefaultFlags definition.
@@ -76,7 +76,7 @@ enum WriteFlag {
User may programmatically calls the functions of a writer to generate JSON text.
- On the other side, a writer can also be passed to objects that generates events,
+ On the other side, a writer can also be passed to objects that generates events,
for example Reader::Parse() and Document::Accept().
@@ -99,7 +99,7 @@ public:
\param levelDepth Initial capacity of stack.
*/
explicit
- Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) :
+ Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) :
os_(&os), level_stack_(stackAllocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {}
explicit
@@ -153,7 +153,7 @@ public:
/*!
This setting truncates the output with specified number of decimal places.
- For example,
+ For example,
\code
writer.SetMaxDecimalPlaces(3);
@@ -258,7 +258,7 @@ public:
//! Simpler but slower overload.
bool String(const Ch* const& str) { return String(str, internal::StrLen(str)); }
bool Key(const Ch* const& str) { return Key(str, internal::StrLen(str)); }
-
+
//@}
//! Write a raw JSON value.
@@ -425,7 +425,7 @@ protected:
PutUnsafe(*os_, hexDigits[(trail >> 12) & 15]);
PutUnsafe(*os_, hexDigits[(trail >> 8) & 15]);
PutUnsafe(*os_, hexDigits[(trail >> 4) & 15]);
- PutUnsafe(*os_, hexDigits[(trail ) & 15]);
+ PutUnsafe(*os_, hexDigits[(trail ) & 15]);
}
}
else if ((sizeof(Ch) == 1 || static_cast<unsigned>(c) < 256) && RAPIDJSON_UNLIKELY(escape[static_cast<unsigned char>(c)])) {
@@ -439,7 +439,7 @@ protected:
PutUnsafe(*os_, hexDigits[static_cast<unsigned char>(c) & 0xF]);
}
}
- else if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
+ else if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
Transcoder<SourceEncoding, TargetEncoding>::Validate(is, *os_) :
Transcoder<SourceEncoding, TargetEncoding>::TranscodeUnsafe(is, *os_))))
return false;
@@ -462,7 +462,7 @@ protected:
GenericStringStream<SourceEncoding> is(json);
while (RAPIDJSON_LIKELY(is.Tell() < length)) {
RAPIDJSON_ASSERT(is.Peek() != '\0');
- if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
+ if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
Transcoder<SourceEncoding, TargetEncoding>::Validate(is, *os_) :
Transcoder<SourceEncoding, TargetEncoding>::TranscodeUnsafe(is, *os_))))
return false;
@@ -475,7 +475,7 @@ protected:
if (RAPIDJSON_LIKELY(level_stack_.GetSize() != 0)) { // this value is not at root
Level* level = level_stack_.template Top<Level>();
if (level->valueCount > 0) {
- if (level->inArray)
+ if (level->inArray)
os_->Put(','); // add comma if it is not the first element in array
else // in object
os_->Put((level->valueCount % 2 == 0) ? ',' : ':');
@@ -563,7 +563,7 @@ inline bool Writer<StringBuffer>::WriteDouble(double d) {
PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y');
return true;
}
-
+
char *buffer = os_->Push(25);
char* end = internal::dtoa(d, buffer, maxDecimalPlaces_);
os_->Pop(static_cast<size_t>(25 - (end - buffer)));
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
index f43b050181e..f7bf8a985f1 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
@@ -50,7 +50,7 @@ static const unsigned char utf8d[] = {
12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
- 12,36,12,12,12,12,12,12,12,12,12,12,
+ 12,36,12,12,12,12,12,12,12,12,12,12,
};
static unsigned inline decode(unsigned* state, unsigned* codep, unsigned byte) {
@@ -890,7 +890,7 @@ void itoa64_Writer_InsituStringStream() {
OUTPUT_LENGTH(length);
};
-// Full specialization for InsituStringStream to prevent memory copying
+// Full specialization for InsituStringStream to prevent memory copying
// (normally we will not use InsituStringStream for writing, just for testing)
namespace rapidjson {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
index b149a4c12c8..13d7b8a3e49 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
index 31e3ca63370..01fc1eb5e2a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef PERFTEST_H_
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
index c490da7a85e..ff7bf4fea91 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
@@ -91,14 +91,14 @@ TEST_F(Platform, Whitespace_strlen) {
for (int i = 0; i < kTrialCount; i++) {
size_t l = strlen(whitespace_);
EXPECT_GT(l, whitespace_length_);
- }
+ }
}
TEST_F(Platform, Whitespace_strspn) {
for (int i = 0; i < kTrialCount; i++) {
size_t l = strspn(whitespace_, " \n\r\t");
EXPECT_EQ(whitespace_length_, l);
- }
+ }
}
TEST_F(Platform, fread) {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
index ce41c109ab4..5afefcbecb0 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
index 2ffc3254265..4f08cad48e8 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
index fad54382ca2..b448b4dce2c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
index ad465e1f319..3e9cfc24152 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
index c3d1e484dcc..74432ba39ab 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -176,7 +176,7 @@ TEST(Document, Parse_Encoding) {
typedef GenericDocument<UTF16<> > DocumentType;
DocumentType doc;
-
+
// Parse<unsigned, SourceEncoding>(const SourceEncoding::Ch*)
// doc.Parse<kParseDefaultFlags, UTF8<> >(json);
// EXPECT_FALSE(doc.HasParseError());
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
index 3ec89828986..69e2256b6c4 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
index d9b87e94cd7..52e5040bb02 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -39,7 +39,7 @@ public:
private:
EncodedStreamTest(const EncodedStreamTest&);
EncodedStreamTest& operator=(const EncodedStreamTest&);
-
+
protected:
static FILE* Open(const char* filename) {
const char *paths[] = {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
index 455881e7e81..ab0175a7805 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -259,7 +259,7 @@ static const unsigned char utf8d[] = {
12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
- 12,36,12,12,12,12,12,12,12,12,12,12,
+ 12,36,12,12,12,12,12,12,12,12,12,12,
};
static unsigned inline decode(unsigned* state, unsigned* codep, unsigned byte) {
@@ -377,7 +377,7 @@ TEST(EncodingsTest, UTF16) {
unsigned decodedCodepoint;
bool result = UTF16<>::Decode(is, &decodedCodepoint);
EXPECT_TRUE(result);
- EXPECT_EQ(codepoint, decodedCodepoint);
+ EXPECT_EQ(codepoint, decodedCodepoint);
if (!result || codepoint != decodedCodepoint)
std::cout << std::hex << codepoint << " " << decodedCodepoint << std::endl;
}
@@ -408,7 +408,7 @@ TEST(EncodingsTest, UTF32) {
unsigned decodedCodepoint;
bool result = UTF32<>::Decode(is, &decodedCodepoint);
EXPECT_TRUE(result);
- EXPECT_EQ(codepoint, decodedCodepoint);
+ EXPECT_EQ(codepoint, decodedCodepoint);
if (!result || codepoint != decodedCodepoint)
std::cout << std::hex << codepoint << " " << decodedCodepoint << std::endl;
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
index de0b4d1a4aa..34da56cef8d 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -77,7 +77,7 @@ public:
private:
FileStreamTest(const FileStreamTest&);
FileStreamTest& operator=(const FileStreamTest&);
-
+
protected:
const char* filename_;
char *json_;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
index e9c707805a5..62ab5a03449 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -103,7 +103,7 @@ struct Foo {
typedef Transcoder<UTF8<>, UTF8<> > TranscoderUtf8ToUtf8;
typedef BaseReaderHandler<UTF8<>, void> BaseReaderHandlerUtf8Void;
-Foo::Foo() :
+Foo::Foo() :
// encodings.h
utf8(RAPIDJSON_NEW(UTF8<>)),
utf16(RAPIDJSON_NEW(UTF16<>)),
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
index f0cdb2d38c4..57634caf4d1 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
index 19e1f1c47a2..aadce0a060b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -104,7 +104,7 @@ TEST(JsonChecker, Reader) {
break;
}
EXPECT_TRUE(reader.HasParseError()) << filename;
-
+
free(json);
}
@@ -126,7 +126,7 @@ TEST(JsonChecker, Reader) {
// Test iterative parsing.
document.Parse<kParseIterativeFlag>(json);
EXPECT_FALSE(document.HasParseError()) << filename;
-
+
// Test iterative pull-parsing.
Reader reader;
StringStream ss(json);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
index e33e6d5f54c..2755d6f16ff 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,14 +7,14 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
-// test another instantiation of RapidJSON in a different namespace
+// test another instantiation of RapidJSON in a different namespace
#define RAPIDJSON_NAMESPACE my::rapid::json
#define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapid { namespace json {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
index c9bc5f4bfb1..ec809e2edcb 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -77,7 +77,7 @@ static void TestFileStream() {
}
fp = fopen(filename, "r");
- ASSERT_TRUE( fp != NULL );
+ ASSERT_TRUE( fp != NULL );
for (const char* p = s; *p; p++)
EXPECT_EQ(*p, static_cast<char>(fgetc(fp)));
fclose(fp);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
index 05eba3f5bdc..e03fe8f099b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2021 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,15 +7,15 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
// see https://github.com/Tencent/rapidjson/issues/1448
-// including windows.h on purpose to provoke a compile time problem as GetObject is a
+// including windows.h on purpose to provoke a compile time problem as GetObject is a
// macro that gets defined when windows.h is included
#ifdef _WIN32
#include <windows.h>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
index 342086dd10d..4173f15e7e4 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -475,7 +475,7 @@ TEST(Pointer, CopyConstructor) {
EXPECT_EQ(1u, q.GetTokens()[1].length);
EXPECT_STREQ("0", q.GetTokens()[1].name);
EXPECT_EQ(0u, q.GetTokens()[1].index);
-
+
// Copied pointer needs to have its own allocator
EXPECT_NE(&p.GetAllocator(), &q.GetAllocator());
}
@@ -837,7 +837,7 @@ TEST(Pointer, Set) {
Document d;
d.Parse(kJson);
Document::AllocatorType& a = d.GetAllocator();
-
+
// Value version
Pointer("/foo/0").Set(d, Value(123).Move(), a);
EXPECT_EQ(123, d["foo"][0].GetInt());
@@ -896,7 +896,7 @@ TEST(Pointer, Set) {
TEST(Pointer, Set_NoAllocator) {
Document d;
d.Parse(kJson);
-
+
// Value version
Pointer("/foo/0").Set(d, Value(123).Move());
EXPECT_EQ(123, d["foo"][0].GetInt());
@@ -1727,4 +1727,4 @@ TEST(Pointer, Issue1899) {
EXPECT_TRUE(PointerType("/foo/1234") == q);
q = q.Append("");
EXPECT_TRUE(PointerType("/foo/1234/") == q);
-} \ No newline at end of file
+}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
index 0b7feef3b25..3b3608097c2 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -150,15 +150,15 @@ private:
// For covering PutN() generic version
TEST(PrettyWriter, OStreamWrapper) {
StringStream s(kJson);
-
+
std::stringstream ss;
OStreamWrapper os(ss);
-
+
PrettyWriter<OStreamWrapper> writer(os);
Reader reader;
reader.Parse(s, writer);
-
+
std::string actual = ss.str();
EXPECT_STREQ(kPrettyJson, actual.c_str());
}
@@ -217,7 +217,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.EndArray(), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// [}
{
StringBuffer buffer;
@@ -226,7 +226,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.EndObject(), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// { 1:
{
StringBuffer buffer;
@@ -235,7 +235,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.Int(1), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// { 'a' }
{
StringBuffer buffer;
@@ -245,7 +245,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.EndObject(), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// { 'a':'b','c' }
{
StringBuffer buffer;
@@ -304,13 +304,13 @@ TEST(PrettyWriter, Inf) {
TEST(PrettyWriter, Issue_889) {
char buf[100] = "Hello";
-
+
StringBuffer buffer;
PrettyWriter<StringBuffer> writer(buffer);
writer.StartArray();
writer.String(buf);
writer.EndArray();
-
+
EXPECT_STREQ("[\n \"Hello\"\n]", buffer.GetString());
EXPECT_TRUE(writer.IsComplete()); \
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
index a288622bc7b..2296ba2980d 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -404,7 +404,7 @@ TEST(Regex, QuantifierMinMax5) {
#define EURO "\xE2\x82\xAC" // "\xE2\x82\xAC" is UTF-8 rsquence of Euro sign U+20AC
TEST(Regex, Unicode) {
- Regex re("a" EURO "+b");
+ Regex re("a" EURO "+b");
ASSERT_TRUE(re.IsValid());
RegexSearch rs(re);
EXPECT_TRUE(rs.Match("a" EURO "b"));
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
index 1b25e2f44e1..92c1b72384a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#define RAPIDJSON_SCHEMA_VERBOSE 0
@@ -192,7 +192,7 @@ TEST(SchemaValidator, Typeless) {
Document sd;
sd.Parse("{}");
SchemaDocument s(sd);
-
+
VALIDATE(s, "42", true);
VALIDATE(s, "\"I'm a string\"", true);
VALIDATE(s, "{ \"an\": [ \"arbitrarily\", \"nested\" ], \"data\": \"structure\" }", true);
@@ -1030,7 +1030,7 @@ TEST(SchemaValidator, Object) {
SchemaDocument s(sd);
VALIDATE(s, "{\"key\":\"value\",\"another_key\":\"another_value\"}", true);
- VALIDATE(s, "{\"Sun\":1.9891e30,\"Jupiter\":1.8986e27,\"Saturn\":5.6846e26,\"Neptune\":10.243e25,\"Uranus\":8.6810e25,\"Earth\":5.9736e24,\"Venus\":4.8685e24,\"Mars\":6.4185e23,\"Mercury\":3.3022e23,\"Moon\":7.349e22,\"Pluto\":1.25e22}", true);
+ VALIDATE(s, "{\"Sun\":1.9891e30,\"Jupiter\":1.8986e27,\"Saturn\":5.6846e26,\"Neptune\":10.243e25,\"Uranus\":8.6810e25,\"Earth\":5.9736e24,\"Venus\":4.8685e24,\"Mars\":6.4185e23,\"Mercury\":3.3022e23,\"Moon\":7.349e22,\"Pluto\":1.25e22}", true);
INVALIDATE(s, "[\"An\", \"array\", \"not\", \"an\", \"object\"]", "", "type", "",
"{ \"type\": {"
" \"errorCode\": 20,"
@@ -2089,9 +2089,9 @@ TEST(SchemaValidator, ValidateMetaSchema_UTF16) {
template <typename SchemaDocumentType = SchemaDocument>
class RemoteSchemaDocumentProvider : public IGenericRemoteSchemaDocumentProvider<SchemaDocumentType> {
public:
- RemoteSchemaDocumentProvider() :
- documentAllocator_(documentBuffer_, sizeof(documentBuffer_)),
- schemaAllocator_(schemaBuffer_, sizeof(schemaBuffer_))
+ RemoteSchemaDocumentProvider() :
+ documentAllocator_(documentBuffer_, sizeof(documentBuffer_)),
+ schemaAllocator_(schemaBuffer_, sizeof(schemaBuffer_))
{
const char* filenames[kCount] = {
"jsonschema/remotes/integer.json",
@@ -2402,11 +2402,11 @@ TEST(SchemaValidator, Issue1017_allOfHandler) {
GenericSchemaValidator<SchemaDocument, Writer<StringBuffer> > validator(s, writer);
EXPECT_TRUE(validator.StartObject());
EXPECT_TRUE(validator.Key("cyanArray2", 10, false));
- EXPECT_TRUE(validator.StartArray());
- EXPECT_TRUE(validator.EndArray(0));
+ EXPECT_TRUE(validator.StartArray());
+ EXPECT_TRUE(validator.EndArray(0));
EXPECT_TRUE(validator.Key("blackArray", 10, false));
- EXPECT_TRUE(validator.StartArray());
- EXPECT_TRUE(validator.EndArray(0));
+ EXPECT_TRUE(validator.StartArray());
+ EXPECT_TRUE(validator.EndArray(0));
EXPECT_TRUE(validator.EndObject(0));
EXPECT_TRUE(validator.IsValid());
EXPECT_STREQ("{\"cyanArray2\":[],\"blackArray\":[]}", sb.GetString());
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
index 649505fab29..924fd5c1b35 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
// Since Travis CI installs old Valgrind 3.7.0, which fails with some SSE4.2
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
index 411269396a0..a8d0aad1580 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
index eaa29e715e1..a7ec2b6af6b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
index 66167a4a35c..2fcb63524f4 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -117,7 +117,7 @@ TEST(Strtod, CheckApproximationCase) {
EXPECT_TRUE(BIGINTEGER_LITERAL("17763568394002504646778106689453125") == hS);
EXPECT_EQ(1, dS.Compare(bS));
-
+
BigInteger delta(0);
EXPECT_FALSE(dS.Difference(bS, &delta));
EXPECT_TRUE(BIGINTEGER_LITERAL("16216586195252933526457586554279088") == delta);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
index 879976a782f..c5b6f2710ae 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
index 0e64d3970b7..567389a17a8 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef UNITTEST_H_
@@ -85,7 +85,7 @@ inline FILE* TempFile(char *filename) {
if (filename[0] == '\\')
for (int i = 0; filename[i] != '\0'; i++)
filename[i] = filename[i + 1];
-
+
return fopen(filename, "wb");
#else
strcpy(filename, "/tmp/fileXXXXXX");
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
index 0a6b325f4b6..6ef22b72600 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -161,7 +161,7 @@ TEST(Value, AssignmentOperator) {
#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
}
-template <typename A, typename B>
+template <typename A, typename B>
void TestEqual(const A& a, const B& b) {
EXPECT_TRUE (a == b);
EXPECT_FALSE(a != b);
@@ -169,7 +169,7 @@ void TestEqual(const A& a, const B& b) {
EXPECT_FALSE(b != a);
}
-template <typename A, typename B>
+template <typename A, typename B>
void TestUnequal(const A& a, const B& b) {
EXPECT_FALSE(a == b);
EXPECT_TRUE (a != b);
@@ -1060,7 +1060,7 @@ static void TestArray(T& x, Allocator& allocator) {
x.Clear();
for (unsigned i = 0; i < n; i++)
x.PushBack(Value(kArrayType).PushBack(i, allocator).Move(), allocator);
-
+
itr = x.Erase(x.Begin() + first, x.Begin() + last);
if (last == n)
EXPECT_EQ(x.End(), itr);
@@ -1345,7 +1345,7 @@ static void TestObject(T& x, Allocator& allocator) {
#endif
// member iterator
- Value::MemberIterator itr = x.MemberBegin();
+ Value::MemberIterator itr = x.MemberBegin();
EXPECT_TRUE(itr != x.MemberEnd());
EXPECT_STREQ("A", itr->name.GetString());
EXPECT_STREQ("Apple", itr->value.GetString());
@@ -1361,7 +1361,7 @@ static void TestObject(T& x, Allocator& allocator) {
EXPECT_FALSE(itr != x.MemberEnd());
// const member iterator
- Value::ConstMemberIterator citr = y.MemberBegin();
+ Value::ConstMemberIterator citr = y.MemberBegin();
EXPECT_TRUE(citr != y.MemberEnd());
EXPECT_STREQ("A", citr->name.GetString());
EXPECT_STREQ("Apple", citr->value.GetString());
@@ -1556,7 +1556,7 @@ TEST(Value, ObjectHelper) {
EXPECT_STREQ("apple", y["a"].GetString());
EXPECT_TRUE(x.IsObject()); // Invariant
}
-
+
{
Value x(kObjectType);
x.AddMember("a", "apple", allocator);
@@ -1674,7 +1674,7 @@ TEST(Value, BigNestedObject) {
for (SizeType i = 0; i < n; i++) {
char name1[10];
sprintf(name1, "%d", i);
-
+
for (SizeType j = 0; j < n; j++) {
char name2[10];
sprintf(name2, "%d", j);
@@ -1689,8 +1689,8 @@ TEST(Value, BigNestedObject) {
TEST(Value, RemoveLastElement) {
rapidjson::Document doc;
rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();
- rapidjson::Value objVal(rapidjson::kObjectType);
- objVal.AddMember("var1", 123, allocator);
+ rapidjson::Value objVal(rapidjson::kObjectType);
+ objVal.AddMember("var1", 123, allocator);
objVal.AddMember("var2", "444", allocator);
objVal.AddMember("var3", 555, allocator);
EXPECT_TRUE(objVal.HasMember("var3"));
@@ -1712,22 +1712,22 @@ TEST(Document, CrtAllocator) {
static void TestShortStringOptimization(const char* str) {
const rapidjson::SizeType len = static_cast<rapidjson::SizeType>(strlen(str));
-
+
rapidjson::Document doc;
rapidjson::Value val;
val.SetString(str, len, doc.GetAllocator());
-
- EXPECT_EQ(val.GetStringLength(), len);
- EXPECT_STREQ(val.GetString(), str);
+
+ EXPECT_EQ(val.GetStringLength(), len);
+ EXPECT_STREQ(val.GetString(), str);
}
TEST(Value, AllocateShortString) {
- TestShortStringOptimization(""); // edge case: empty string
- TestShortStringOptimization("12345678"); // regular case for short strings: 8 chars
- TestShortStringOptimization("12345678901"); // edge case: 11 chars in 32-bit mode (=> short string)
- TestShortStringOptimization("123456789012"); // edge case: 12 chars in 32-bit mode (=> regular string)
- TestShortStringOptimization("123456789012345"); // edge case: 15 chars in 64-bit mode (=> short string)
- TestShortStringOptimization("1234567890123456"); // edge case: 16 chars in 64-bit mode (=> regular string)
+ TestShortStringOptimization(""); // edge case: empty string
+ TestShortStringOptimization("12345678"); // regular case for short strings: 8 chars
+ TestShortStringOptimization("12345678901"); // edge case: 11 chars in 32-bit mode (=> short string)
+ TestShortStringOptimization("123456789012"); // edge case: 12 chars in 32-bit mode (=> regular string)
+ TestShortStringOptimization("123456789012345"); // edge case: 15 chars in 64-bit mode (=> short string)
+ TestShortStringOptimization("1234567890123456"); // edge case: 16 chars in 64-bit mode (=> regular string)
}
template <int e>
@@ -1802,7 +1802,7 @@ static void MergeDuplicateKey(Value& v, Value::AllocatorType& a) {
// Convert all key:value into key:[value]
for (Value::MemberIterator itr = v.MemberBegin(); itr != v.MemberEnd(); ++itr)
itr->value = Value(kArrayType).Move().PushBack(itr->value, a);
-
+
// Merge arrays if key is duplicated
for (Value::MemberIterator itr = v.MemberBegin(); itr != v.MemberEnd();) {
Value::MemberIterator itr2 = v.FindMember(itr->name);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
index ac9ad899e17..bfbd71c4c96 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -102,13 +102,13 @@ TEST(Writer, String) {
TEST(Writer, Issue_889) {
char buf[100] = "Hello";
-
+
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
writer.StartArray();
writer.String(buf);
writer.EndArray();
-
+
EXPECT_STREQ("[\"Hello\"]", buffer.GetString());
EXPECT_TRUE(writer.IsComplete()); \
}
@@ -220,15 +220,15 @@ private:
TEST(Writer, OStreamWrapper) {
StringStream s("{ \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3], \"u64\": 1234567890123456789, \"i64\":-1234567890123456789 } ");
-
+
std::stringstream ss;
OStreamWrapper os(ss);
-
+
Writer<OStreamWrapper> writer(os);
Reader reader;
reader.Parse<0>(s, writer);
-
+
std::string actual = ss.str();
EXPECT_STREQ("{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3],\"u64\":1234567890123456789,\"i64\":-1234567890123456789}", actual.c_str());
}
@@ -449,7 +449,7 @@ TEST(Writer, InvalidEventSequence) {
EXPECT_FALSE(writer.IsComplete());
}
- // { 1:
+ // { 1:
{
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG
deleted file mode 100644
index 635fbcfde5d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG
+++ /dev/null
@@ -1,88 +0,0 @@
-Change Log
-
-0.2.5
- - Made threadpool compatible to boost::thread 1.37
- - Fixed hang problem in shutdown method (Thanks to Sohail Somani)
- - Adapted repository layout to boost (Thanks to Alex Ott)
-
-0.2.4 (Stable)
- - Made threadpool compatible to boost::thread 1.35.x code base
- - Fixed compiler warning in scope_guard.hpp
-
-0.2.3 (Development)
- - Implemented workaround for Sun C++ Pro compiler bug in pool_core
- - Removed subtask implementation (there was no demand for this feature)
- - Improved shutdown policies
-
-0.2.2 (Development)
- - Refactored SizePolicy and added SizePolicyController
- - Moved policies into separate files
- - Fixed some compiler problems (GCC)
- - Implemented size_controller handling
- - Implemented two size policies: static_size and fixed_size
- - Refactored worker_thread handling, moved policies from pool_core to pool
- - Specialized schedule function for usage with futures
- - Added compile test project
- - Improved constness in pool core class
- - Fixed timed wait
- - Implemented futures (in progress)
- - Added result_type to all functors
-
-0.2.1 (Development)
- - Pool base class (thread_pool) has now reference semantics
- - Large refactorings: Removed scoped_pool, reimplemented worker (now worker_thread)
- - Fixed odd resize behaviour. Now resize changes the number of threads immediately
- - Apply pimpl idiom on pool core class (to make the ugly scoped_pool class needless)
- - Introduced scheduling policies
- - Switched to policy-based design (PBD), inspired by Scott Meyers C++ workshop
- - Cosmetic code change: Replaced keyword 'class' with 'typename' in template definitions
- - Revised tutorials
- - New requirements: tasks functions should not and schedulers shall not throw exceptions
-
-
-0.2.0 (Development)
- - Moved threadpool into the boost namespace: boost::threadpool
- - Used keyword volatile to indicate thread-safe member functions
- - Used volatile on primitve types were appropriate
- - Moved worker to detail directory
- - Fixed thread deletion
- - Extended wait functionality (waiting for idle threads was implemented)
- - Renamed 'join()' to 'wait()' as 'join' indicates the termination of thread. That was not the case in pool::join.
- - Changed internal container of lifo and fifo schedulers to improve efficiency.
- - Improved code reference documentation (source code browser)
- - Renamed thread_func into task_func
- - Added += operator to scoped_pool to ease scheduling of tasks
- - Refactored file structures and class names
- - Added a new task concept (named subtask) which allows the combination of sequential and parallel execution
- - Added new task adaptor for looped or timed tasks: looped_task_func
- - Introduced function clear() which can be used to remove all tasks from the pool and schedulers
- - New function pool::active() which returns the number of active tasks
-
-0.1.8 (Development)
- - Fixed some compile errors which were reported by gcc
- - Wrote tutorial "Prioritized Tasks"
-
-0.1.7 (Development)
- - Added Visual Studio 2005 project files for tutorial and examples
-
-0.1.6 (Development)
- - Replaced task adaptor 'task' with boost::bind
- - Workers are unregistered from thread_group when they are terminated
- - Working on example boost::iostreams packet_filter
-
-0.1.5 (Development)
- - Finished threadpool reference
- - Class pool_adaptor was replaced by smart_pool
- - Minor pool improvements
- - First tutorial page online
-
-0.1.4 (Development)
- - Created the pool's homepage: http://threadpool.sourceforge.net
- - Improved documentation
- - Added build scripts
-
-0.1.3 (Development)
- - First public release
- - Added mergesort example
- - Added tutorial
- - Implementation of threadpool core and related classes \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/COPYING b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/COPYING
deleted file mode 100644
index 06bdc4605ad..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/COPYING
+++ /dev/null
@@ -1,5 +0,0 @@
-Copyright (c) 2005-2007 Philipp Henkel
-
-Use, modification, and distribution are subject to the
-Boost Software License, Version 1.0. (See accompanying file
-LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamfile.v2 b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamfile.v2
deleted file mode 100644
index 56c85497557..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamfile.v2
+++ /dev/null
@@ -1,13 +0,0 @@
-use-project /boost
- : $(BOOST_ROOT)
- ;
-
-project threadpool
- : requirements <include>.&&$(BOOST_ROOT)
- # disable auto-linking for all targets here,
- # primarily because it caused troubles with V2
- <define>BOOST_ALL_NO_LIB=1
- : usage-requirements <include>.&&$(BOOST_ROOT)
- : build-dir bin.v2
- ;
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamrules b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamrules
deleted file mode 100644
index 8571a1461c0..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Jamrules
+++ /dev/null
@@ -1 +0,0 @@
-project boost : $(BOOST_ROOT) ;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt
deleted file mode 100644
index 36b7cd93cdf..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Boost Software License - Version 1.0 - August 17th, 2003
-
-Permission is hereby granted, free of charge, to any person or organization
-obtaining a copy of the software and accompanying documentation covered by
-this license (the "Software") to use, reproduce, display, distribute,
-execute, and transmit the Software, and to prepare derivative works of the
-Software, and to permit third-parties to whom the Software is furnished to
-do so, all subject to the following:
-
-The copyright notices in the Software and this entire statement, including
-the above license grant, this restriction and the following disclaimer,
-must be included in all copies of the Software, in whole or in part, and
-all derivative works of the Software, unless such copies or derivative
-works are solely in the form of machine-executable object code generated by
-a source language processor.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Makefile b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Makefile
deleted file mode 100644
index 9acf23b2726..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-export RELEASE_MANAGER=philipphenkel
-export RELEASE_VERSION=0_2_5
-
-doc: clean
- make --directory=./libs/threadpool/doc --print-directory doc
-
-release_doc:
- make --directory=./libs/threadpool/doc --print-directory release_doc
-
-release_src: clean fetch_clean_src
- mv clean_src threadpool-$(RELEASE_VERSION)-src
- zip -r9 threadpool-$(RELEASE_VERSION)-src.zip threadpool-$(RELEASE_VERSION)-src
- rm -rf threadpool-$(RELEASE_VERSION)-src
-
-deploy_website:
- make --directory=./libs/threadpool/doc --print-directory deploy_sf
-
-clean:
- rm -rf clean_src
- rm -rf threadpool-$(RELEASE_VERSION)-src.zip
- rm -rf threadpool-$(RELEASE_VERSION)-doc.zip
- make --directory=./libs/threadpool/doc --print-directory clean
-
-fetch_clean_src:
- rm -rf clean_src
- mkdir clean_src
-# cvs -d:pserver:anonymous@threadpool.cvs.sourceforge.net:/cvsroot/threadpool login
- cd clean_src; cvs -z3 -d:pserver:anonymous@threadpool.cvs.sourceforge.net:/cvsroot/threadpool export -r RELEASE_$(RELEASE_VERSION) threadpool
-# cd clean_src; cvs -z3 -d:ext:$(RELEASE_MANAGER)@cvs.sourceforge.net:/cvsroot/threadpool export -r RELEASE_$(RELEASE_VERSION) threadpool
-
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/README b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/README
deleted file mode 100644
index c6f1a83d818..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/README
+++ /dev/null
@@ -1,10 +0,0 @@
-threadpool
-
-Copyright (c) 2005-2007 Philipp Henkel
-
-threadpool is a cross-platform C++ thread pool library and released under the Boost Software License.
-
-See doc/index.html for information on:
- - API documentation and a tutorial
- - External dependencies
- - Using threadpool
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/TODO b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/TODO
deleted file mode 100644
index 1c5e6e26d6b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/TODO
+++ /dev/null
@@ -1,36 +0,0 @@
-threadpool to-do items
-======================
-
-Documentation
---------------------------------------------
-- Source code documentation
-- Design rationale
-- Tutorial
-- Finish Quickstart Tutorial/Example
-
-Functionality
---------------------------------------------
-- Implement a size policy which dynamically
- increase/decrease the pool's size:
- - init with min/max threads
- - auto increase
- - auto decrease (using timed cleanup tasks)
-- Add some kind of deadline scheduler
-- Add futures to pool
-
-
-Examples
---------------------------------------------
-- Buffering Client Requests: Handle 'bursty' client traffic
- Some applications need more buffering than is provided by OS I/O subsystem
-
- Working on 'active' buffer for boost::iostreams
- buffer_filter which provides a dynamic amount of buffer objects.
- buffer_filter uses a threadpool with one thread which provides the buffers to
- consumer. (TODO Philipp)
-
- 2nd implemention step:
- Flexbile configuration: Buffer capacities can be configured according to
- - maximum number of requests
- - maximum number of bytes
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp
deleted file mode 100644
index 7d9ee48010b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*! \file
-* \brief Main include.
-*
-* This is the only file you have to include in order to use the
-* complete threadpool library.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-#ifndef THREADPOOL_HPP_INCLUDED
-#define THREADPOOL_HPP_INCLUDED
-
-#include "./threadpool/future.hpp"
-#include "./threadpool/pool.hpp"
-
-#include "./threadpool/pool_adaptors.hpp"
-#include "./threadpool/task_adaptors.hpp"
-
-
-#endif // THREADPOOL_HPP_INCLUDED
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp
deleted file mode 100644
index 4e4b35bebe1..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/*! \file
-* \brief TODO.
-*
-* TODO.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_DETAIL_FUTURE_IMPL_HPP_INCLUDED
-#define THREADPOOL_DETAIL_FUTURE_IMPL_HPP_INCLUDED
-
-
-#include "locking_ptr.hpp"
-
-#include <boost/smart_ptr.hpp>
-#include <boost/optional.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/condition.hpp>
-#include <boost/thread/xtime.hpp>
-#include <boost/utility/result_of.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits.hpp>
-
-namespace boost { namespace threadpool { namespace detail
-{
-
-template<class Result>
-class future_impl
-{
-public:
- typedef Result const & result_type; //!< Indicates the functor's result type.
-
- typedef Result future_result_type; //!< Indicates the future's result type.
- typedef future_impl<future_result_type> future_type;
-
-private:
- volatile bool m_ready;
- volatile future_result_type m_result;
-
- mutable mutex m_monitor;
- mutable condition m_condition_ready;
-
- volatile bool m_is_cancelled;
- volatile bool m_executing;
-
-public:
-
-
-public:
-
- future_impl()
- : m_ready(false)
- , m_is_cancelled(false)
- {
- }
-
- bool ready() const volatile
- {
- return m_ready;
- }
-
- void wait() const volatile
- {
- const future_type* self = const_cast<const future_type*>(this);
- mutex::scoped_lock lock(self->m_monitor);
-
- while(!m_ready)
- {
- self->m_condition_ready.wait(lock);
- }
- }
-
-
- bool timed_wait(boost::xtime const & timestamp) const
- {
- const future_type* self = const_cast<const future_type*>(this);
- mutex::scoped_lock lock(self->m_monitor);
-
- while(!m_ready)
- {
- if(!self->m_condition_ready.timed_wait(lock, timestamp)) return false;
- }
-
- return true;
- }
-
-
- result_type operator()() const volatile
- {
- wait();
-/*
- if( throw_exception_ != 0 )
- {
- throw_exception_( this );
- }
-*/
-
- return *(const_cast<const future_result_type*>(&m_result));
- }
-
-
- void set_value(future_result_type const & r) volatile
- {
- locking_ptr<future_type, mutex> lockedThis(*this, m_monitor);
- if(!m_ready && !m_is_cancelled)
- {
- lockedThis->m_result = r;
- lockedThis->m_ready = true;
- lockedThis->m_condition_ready.notify_all();
- }
- }
-/*
- template<class E> void set_exception() // throw()
- {
- m_impl->template set_exception<E>();
- }
-
- template<class E> void set_exception( char const * what ) // throw()
- {
- m_impl->template set_exception<E>( what );
- }
- */
-
-
- bool cancel() volatile
- {
- if(!m_ready || m_executing)
- {
- m_is_cancelled = true;
- return true;
- }
- else
- {
- return false;
- }
- }
-
-
- bool is_cancelled() const volatile
- {
- return m_is_cancelled;
- }
-
-
- void set_execution_status(bool executing) volatile
- {
- m_executing = executing;
- }
-};
-
-
-template<
- template <typename> class Future,
- typename Function
->
-class future_impl_task_func
-{
-
-public:
- typedef void result_type; //!< Indicates the functor's result type.
-
- typedef Function function_type; //!< Indicates the function's type.
- typedef typename result_of<function_type()>::type future_result_type; //!< Indicates the future's result type.
- typedef Future<future_result_type> future_type; //!< Indicates the future's type.
-
- // The task is required to be a nullary function.
- BOOST_STATIC_ASSERT(function_traits<function_type()>::arity == 0);
-
- // The task function's result type is required not to be void.
- BOOST_STATIC_ASSERT(!is_void<future_result_type>::value);
-
-private:
- function_type m_function;
- shared_ptr<future_type> m_future;
-
-public:
- future_impl_task_func(function_type const & function, shared_ptr<future_type> const & future)
- : m_function(function)
- , m_future(future)
- {
- }
-
- void operator()()
- {
- if(m_function)
- {
- m_future->set_execution_status(true);
- if(!m_future->is_cancelled())
- {
- // TODO future exeception handling
- m_future->set_value(m_function());
- }
- m_future->set_execution_status(false); // TODO consider exceptions
- }
- }
-
-};
-
-
-
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_DETAIL_FUTURE_IMPL_HPP_INCLUDED
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp
deleted file mode 100644
index 57ba560b5ad..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*! \file
-* \brief The locking_ptr is smart pointer with a scoped locking mechanism.
-*
-* The class is a wrapper for a volatile pointer. It enables synchronized access to the
-* internal pointer by locking the passed mutex.
-* locking_ptr is based on Andrei Alexandrescu's LockingPtr. For more information
-* see article "volatile - Multithreaded Programmer's Best Friend" by A. Alexandrescu.
-*
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_DETAIL_LOCKING_PTR_HPP_INCLUDED
-#define THREADPOOL_DETAIL_LOCKING_PTR_HPP_INCLUDED
-
-#include <boost/utility.hpp>
-#include <boost/thread/mutex.hpp>
-
-
-namespace boost { namespace threadpool { namespace detail
-{
-
-/*! \brief Smart pointer with a scoped locking mechanism.
- *
- * This class is a wrapper for a volatile pointer. It enables synchronized access to the
- * internal pointer by locking the passed mutex.
- */
- template <typename T, typename Mutex>
- class locking_ptr
- : private noncopyable
- {
- T* m_obj; //!< The instance pointer.
- Mutex & m_mutex; //!< Mutex is used for scoped locking.
-
- public:
- /// Constructor.
- locking_ptr(volatile T& obj, const volatile Mutex& mtx)
- : m_obj(const_cast<T*>(&obj))
- , m_mutex(*const_cast<Mutex*>(&mtx))
- {
- // Lock mutex
- m_mutex.lock();
- }
-
-
- /// Destructor.
- ~locking_ptr()
- {
- // Unlock mutex
- m_mutex.unlock();
- }
-
-
- /*! Returns a reference to the stored instance.
- * \return The instance's reference.
- */
- T& operator*() const
- {
- return *m_obj;
- }
-
-
- /*! Returns a pointer to the stored instance.
- * \return The instance's pointer.
- */
- T* operator->() const
- {
- return m_obj;
- }
- };
-
-
-} } } // namespace boost::threadpool::detail
-
-
-#endif // THREADPOOL_DETAIL_LOCKING_PTR_HPP_INCLUDED
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp
deleted file mode 100644
index a81df877635..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp
+++ /dev/null
@@ -1,453 +0,0 @@
-/*! \file
-* \brief Thread pool core.
-*
-* This file contains the threadpool's core class: pool<Task, SchedulingPolicy>.
-*
-* Thread pools are a mechanism for asynchronous and parallel processing
-* within the same process. The pool class provides a convenient way
-* for dispatching asynchronous tasks as functions objects. The scheduling
-* of these tasks can be easily controlled by using customized schedulers.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_POOL_CORE_HPP_INCLUDED
-#define THREADPOOL_POOL_CORE_HPP_INCLUDED
-
-
-
-
-#include "locking_ptr.hpp"
-#include "worker_thread.hpp"
-
-#include "../task_adaptors.hpp"
-
-#include <boost/thread.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/condition.hpp>
-#include <boost/smart_ptr.hpp>
-#include <boost/bind.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits.hpp>
-
-#include <vector>
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool { namespace detail
-{
-
- /*! \brief Thread pool.
- *
- * Thread pools are a mechanism for asynchronous and parallel processing
- * within the same process. The pool class provides a convenient way
- * for dispatching asynchronous tasks as functions objects. The scheduling
- * of these tasks can be easily controlled by using customized schedulers.
- * A task must not throw an exception.
- *
- * A pool_impl is DefaultConstructible and NonCopyable.
- *
- * \param Task A function object which implements the operator 'void operator() (void) const'. The operator () is called by the pool to execute the task. Exceptions are ignored.
- * \param Scheduler A task container which determines how tasks are scheduled. It is guaranteed that this container is accessed only by one thread at a time. The scheduler shall not throw exceptions.
- *
- * \remarks The pool class is thread-safe.
- *
- * \see Tasks: task_func, prio_task_func
- * \see Scheduling policies: fifo_scheduler, lifo_scheduler, prio_scheduler
- */
- template <
- typename Task,
-
- template <typename> class SchedulingPolicy,
- template <typename> class SizePolicy,
- template <typename> class SizePolicyController,
- template <typename> class ShutdownPolicy
- >
- class pool_core
- : public enable_shared_from_this< pool_core<Task, SchedulingPolicy, SizePolicy, SizePolicyController, ShutdownPolicy > >
- , private noncopyable
- {
-
- public: // Type definitions
- typedef Task task_type; //!< Indicates the task's type.
- typedef SchedulingPolicy<task_type> scheduler_type; //!< Indicates the scheduler's type.
- typedef pool_core<Task,
- SchedulingPolicy,
- SizePolicy,
- SizePolicyController,
- ShutdownPolicy > pool_type; //!< Indicates the thread pool's type.
- typedef SizePolicy<pool_type> size_policy_type; //!< Indicates the sizer's type.
- //typedef typename size_policy_type::size_controller size_controller_type;
-
- typedef SizePolicyController<pool_type> size_controller_type;
-
-// typedef SizePolicy<pool_type>::size_controller size_controller_type;
- typedef ShutdownPolicy<pool_type> shutdown_policy_type;//!< Indicates the shutdown policy's type.
-
- typedef worker_thread<pool_type> worker_type;
-
- // The task is required to be a nullary function.
- BOOST_STATIC_ASSERT(function_traits<task_type()>::arity == 0);
-
- // The task function's result type is required to be void.
- BOOST_STATIC_ASSERT(is_void<typename result_of<task_type()>::type >::value);
-
-
- private: // Friends
- friend class worker_thread<pool_type>;
-
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x580) // Tested with CC: Sun C++ 5.8 Patch 121018-08 2006/12/06
- friend class SizePolicy;
- friend class ShutdownPolicy;
-#else
- friend class SizePolicy<pool_type>;
- friend class ShutdownPolicy<pool_type>;
-#endif
-
- private: // The following members may be accessed by _multiple_ threads at the same time:
- volatile size_t m_worker_count;
- volatile size_t m_target_worker_count;
- volatile size_t m_active_worker_count;
-
-
-
- private: // The following members are accessed only by _one_ thread at the same time:
- scheduler_type m_scheduler;
- scoped_ptr<size_policy_type> m_size_policy; // is never null
-
- bool m_terminate_all_workers; // Indicates if termination of all workers was triggered.
- std::vector<shared_ptr<worker_type> > m_terminated_workers; // List of workers which are terminated but not fully destructed.
-
- private: // The following members are implemented thread-safe:
- mutable recursive_mutex m_monitor;
- mutable condition m_worker_idle_or_terminated_event; // A worker is idle or was terminated.
- mutable condition m_task_or_terminate_workers_event; // Task is available OR total worker count should be reduced.
-
- public:
- /// Constructor.
- pool_core()
- : m_worker_count(0)
- , m_target_worker_count(0)
- , m_active_worker_count(0)
- , m_terminate_all_workers(false)
- {
- pool_type volatile & self_ref = *this;
- m_size_policy.reset(new size_policy_type(self_ref));
-
- m_scheduler.clear();
- }
-
-
- /// Destructor.
- ~pool_core()
- {
- }
-
- /*! Gets the size controller which manages the number of threads in the pool.
- * \return The size controller.
- * \see SizePolicy
- */
- size_controller_type size_controller()
- {
- return size_controller_type(*m_size_policy, this->shared_from_this());
- }
-
- /*! Gets the number of threads in the pool.
- * \return The number of threads.
- */
- size_t size() const volatile
- {
- return m_worker_count;
- }
-
-// TODO is only called once
- void shutdown()
- {
- ShutdownPolicy<pool_type>::shutdown(*this);
- }
-
- /*! Schedules a task for asynchronous execution. The task will be executed once only.
- * \param task The task function object. It should not throw execeptions.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool schedule(task_type const & task) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
-
- if(lockedThis->m_scheduler.push(task))
- {
- lockedThis->m_task_or_terminate_workers_event.notify_one();
- return true;
- }
- else
- {
- return false;
- }
- }
-
-
- /*! Returns the number of tasks which are currently executed.
- * \return The number of active tasks.
- */
- size_t active() const volatile
- {
- return m_active_worker_count;
- }
-
-
- /*! Returns the number of tasks which are ready for execution.
- * \return The number of pending tasks.
- */
- size_t pending() const volatile
- {
- locking_ptr<const pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- return lockedThis->m_scheduler.size();
- }
-
-
- /*! Removes all pending tasks from the pool's scheduler.
- */
- void clear() volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- lockedThis->m_scheduler.clear();
- }
-
-
- /*! Indicates that there are no tasks pending.
- * \return true if there are no tasks ready for execution.
- * \remarks This function is more efficient that the check 'pending() == 0'.
- */
- bool empty() const volatile
- {
- locking_ptr<const pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- return lockedThis->m_scheduler.empty();
- }
-
-
- /*! The current thread of execution is blocked until the sum of all active
- * and pending tasks is equal or less than a given threshold.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- */
- void wait(size_t const task_threshold = 0) const volatile
- {
- const pool_type* self = const_cast<const pool_type*>(this);
- recursive_mutex::scoped_lock lock(self->m_monitor);
-
- if(0 == task_threshold)
- {
- while(0 != self->m_active_worker_count || !self->m_scheduler.empty())
- {
- self->m_worker_idle_or_terminated_event.wait(lock);
- }
- }
- else
- {
- while(task_threshold < self->m_active_worker_count + self->m_scheduler.size())
- {
- self->m_worker_idle_or_terminated_event.wait(lock);
- }
- }
- }
-
- /*! The current thread of execution is blocked until the timestamp is met
- * or the sum of all active and pending tasks is equal or less
- * than a given threshold.
- * \param timestamp The time when function returns at the latest.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- * \return true if the task sum is equal or less than the threshold, false otherwise.
- */
- bool wait(xtime const & timestamp, size_t const task_threshold = 0) const volatile
- {
- const pool_type* self = const_cast<const pool_type*>(this);
- recursive_mutex::scoped_lock lock(self->m_monitor);
-
- if(0 == task_threshold)
- {
- while(0 != self->m_active_worker_count || !self->m_scheduler.empty())
- {
- if(!self->m_worker_idle_or_terminated_event.timed_wait(lock, timestamp)) return false;
- }
- }
- else
- {
- while(task_threshold < self->m_active_worker_count + self->m_scheduler.size())
- {
- if(!self->m_worker_idle_or_terminated_event.timed_wait(lock, timestamp)) return false;
- }
- }
-
- return true;
- }
-
-
- private:
-
-
- void terminate_all_workers(bool const wait) volatile
- {
- pool_type* self = const_cast<pool_type*>(this);
- recursive_mutex::scoped_lock lock(self->m_monitor);
-
- self->m_terminate_all_workers = true;
-
- m_target_worker_count = 0;
- self->m_task_or_terminate_workers_event.notify_all();
-
- if(wait)
- {
- while(m_active_worker_count > 0)
- {
- self->m_worker_idle_or_terminated_event.wait(lock);
- }
-
- for(typename std::vector<shared_ptr<worker_type> >::iterator it = self->m_terminated_workers.begin();
- it != self->m_terminated_workers.end();
- ++it)
- {
- (*it)->join();
- }
- self->m_terminated_workers.clear();
- }
- }
-
-
- /*! Changes the number of worker threads in the pool. The resizing
- * is handled by the SizePolicy.
- * \param threads The new number of worker threads.
- * \return true, if pool will be resized and false if not.
- */
- bool resize(size_t const worker_count) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
-
- if(!m_terminate_all_workers)
- {
- m_target_worker_count = worker_count;
- }
- else
- {
- return false;
- }
-
-
- if(m_worker_count <= m_target_worker_count)
- { // increase worker count
- while(m_worker_count < m_target_worker_count)
- {
- try
- {
- worker_thread<pool_type>::create_and_attach(lockedThis->shared_from_this());
- m_worker_count++;
- m_active_worker_count++;
- }
- catch(thread_resource_error&)
- {
- return false;
- }
- }
- }
- else
- { // decrease worker count
- lockedThis->m_task_or_terminate_workers_event.notify_all(); // TODO: Optimize number of notified workers
- }
-
- return true;
- }
-
-
- // worker died with unhandled exception
- void worker_died_unexpectedly(shared_ptr<worker_type> worker) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
-
- m_worker_count--;
- m_active_worker_count--;
- lockedThis->m_worker_idle_or_terminated_event.notify_all();
-
- if(m_terminate_all_workers)
- {
- lockedThis->m_terminated_workers.push_back(worker);
- }
- else
- {
- lockedThis->m_size_policy->worker_died_unexpectedly(m_worker_count);
- }
- }
-
- void worker_destructed(shared_ptr<worker_type> worker) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- m_worker_count--;
- m_active_worker_count--;
- lockedThis->m_worker_idle_or_terminated_event.notify_all();
-
- if(m_terminate_all_workers)
- {
- lockedThis->m_terminated_workers.push_back(worker);
- }
- }
-
-
- bool execute_task() volatile
- {
- function0<void> task;
-
- { // fetch task
- pool_type* lockedThis = const_cast<pool_type*>(this);
- recursive_mutex::scoped_lock lock(lockedThis->m_monitor);
-
- // decrease number of threads if necessary
- if(m_worker_count > m_target_worker_count)
- {
- return false; // terminate worker
- }
-
-
- // wait for tasks
- while(lockedThis->m_scheduler.empty())
- {
- // decrease number of workers if necessary
- if(m_worker_count > m_target_worker_count)
- {
- return false; // terminate worker
- }
- else
- {
- m_active_worker_count--;
- lockedThis->m_worker_idle_or_terminated_event.notify_all();
- lockedThis->m_task_or_terminate_workers_event.wait(lock);
- m_active_worker_count++;
- }
- }
-
- task = lockedThis->m_scheduler.top();
- lockedThis->m_scheduler.pop();
- }
-
- // call task function
- if(task)
- {
- task();
- }
-
- //guard->disable();
- return true;
- }
- };
-
-
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_POOL_CORE_HPP_INCLUDED
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp
deleted file mode 100644
index 68634654ba5..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*! \file
-* \brief TODO.
-*
-* TODO.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_DETAIL_SCOPE_GUARD_HPP_INCLUDED
-#define THREADPOOL_DETAIL_SCOPE_GUARD_HPP_INCLUDED
-
-
-
-#include <boost/function.hpp>
-
-
-namespace boost { namespace threadpool { namespace detail
-{
-
-// TODO documentation
-class scope_guard
-: private boost::noncopyable
-{
- function0<void> const m_function;
- bool m_is_active;
-
-public:
- scope_guard(function0<void> const & call_on_exit)
- : m_function(call_on_exit)
- , m_is_active(true)
- {
- }
-
- ~scope_guard()
- {
- if(m_is_active && m_function)
- {
- m_function();
- }
- }
-
- void disable()
- {
- m_is_active = false;
- }
-};
-
-
-
-
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_DETAIL_SCOPE_GUARD_HPP_INCLUDED
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp
deleted file mode 100644
index d33467a5279..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*! \file
-* \brief Thread pool worker.
-*
-* The worker thread instance is attached to a pool
-* and executes tasks of this pool.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-#ifndef THREADPOOL_DETAIL_WORKER_THREAD_HPP_INCLUDED
-#define THREADPOOL_DETAIL_WORKER_THREAD_HPP_INCLUDED
-
-
-#include "scope_guard.hpp"
-
-#include <boost/smart_ptr.hpp>
-#include <boost/thread.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/bind.hpp>
-
-
-namespace boost { namespace threadpool { namespace detail
-{
-
- /*! \brief Thread pool worker.
- *
- * A worker_thread represents a thread of execution. The worker is attached to a
- * thread pool and processes tasks of that pool. The lifetime of the worker and its
- * internal boost::thread is managed automatically.
- *
- * This class is a helper class and cannot be constructed or accessed directly.
- *
- * \see pool_core
- */
- template <typename Pool>
- class worker_thread
- : public enable_shared_from_this< worker_thread<Pool> >
- , private noncopyable
- {
- public:
- typedef Pool pool_type; //!< Indicates the pool's type.
-
- private:
- shared_ptr<pool_type> m_pool; //!< Pointer to the pool which created the worker.
- shared_ptr<boost::thread> m_thread; //!< Pointer to the thread which executes the run loop.
-
-
- /*! Constructs a new worker.
- * \param pool Pointer to it's parent pool.
- * \see function create_and_attach
- */
- worker_thread(shared_ptr<pool_type> const & pool)
- : m_pool(pool)
- {
- assert(pool);
- }
-
-
- /*! Notifies that an exception occurred in the run loop.
- */
- void died_unexpectedly()
- {
- m_pool->worker_died_unexpectedly(this->shared_from_this());
- }
-
-
- public:
- /*! Executes pool's tasks sequentially.
- */
- void run()
- {
- scope_guard notify_exception(bind(&worker_thread::died_unexpectedly, this));
-
- while(m_pool->execute_task()) {}
-
- notify_exception.disable();
- m_pool->worker_destructed(this->shared_from_this());
- }
-
-
- /*! Joins the worker's thread.
- */
- void join()
- {
- m_thread->join();
- }
-
-
- /*! Constructs a new worker thread and attaches it to the pool.
- * \param pool Pointer to the pool.
- */
- static void create_and_attach(shared_ptr<pool_type> const & pool)
- {
- shared_ptr<worker_thread> worker(new worker_thread(pool));
- if(worker)
- {
- worker->m_thread.reset(new boost::thread(bind(&worker_thread::run, worker)));
- }
- }
-
- };
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_DETAIL_WORKER_THREAD_HPP_INCLUDED
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp
deleted file mode 100644
index f4a6e12244e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*! \file
-* \brief TODO.
-*
-* TODO.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-#ifndef THREADPOOL_FUTURE_HPP_INCLUDED
-#define THREADPOOL_FUTURE_HPP_INCLUDED
-
-
-
-#include "./detail/future.hpp"
-#include <boost/utility/enable_if.hpp>
-
-//#include "pool.hpp"
-//#include <boost/utility.hpp>
-
-//#include <boost/thread/mutex.hpp>
-
-
-namespace boost { namespace threadpool
-{
-
- /*! \brief Experimental. Do not use in production code. TODO.
- *
- * TODO Future
- *
- * \see TODO
- *
- */
-
-
-template<class Result>
-class future
-{
-private:
- shared_ptr<detail::future_impl<Result> > m_impl;
-
-public:
- typedef Result const & result_type; //!< Indicates the functor's result type.
- typedef Result future_result_type; //!< Indicates the future's result type.
-
-
-public:
-
- future()
- : m_impl(new detail::future_impl<future_result_type>()) // TODO remove this
- {
- }
-
- // only for internal usage
- future(shared_ptr<detail::future_impl<Result> > const & impl)
- : m_impl(impl)
- {
- }
-
- bool ready() const
- {
- return m_impl->ready();
- }
-
- void wait() const
- {
- m_impl->wait();
- }
-
- bool timed_wait(boost::xtime const & timestamp) const
- {
- return m_impl->timed_wait(timestamp);
- }
-
- result_type operator()() // throw( thread::cancelation_exception, ... )
- {
- return (*m_impl)();
- }
-
- result_type get() // throw( thread::cancelation_exception, ... )
- {
- return (*m_impl)();
- }
-
- bool cancel()
- {
- return m_impl->cancel();
- }
-
- bool is_cancelled() const
- {
- return m_impl->is_cancelled();
- }
-};
-
-
-
-
-
-template<class Pool, class Function>
-typename disable_if <
- is_void< typename result_of< Function() >::type >,
- future< typename result_of< Function() >::type >
->::type
-schedule(Pool& pool, const Function& task)
-{
- typedef typename result_of< Function() >::type future_result_type;
-
- // create future impl and future
- shared_ptr<detail::future_impl<future_result_type> > impl(new detail::future_impl<future_result_type>);
- future <future_result_type> res(impl);
-
- // schedule future impl
- pool.schedule(detail::future_impl_task_func<detail::future_impl, Function>(task, impl));
-
- // return future
- return res;
-
-/*
- TODO
- if(pool->schedule(bind(&Future::run, future)))
- {
- return future;
- }
- else
- {
- // construct empty future
- return error_future;
- }
- */
-}
-
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_FUTURE_HPP_INCLUDED
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp
deleted file mode 100644
index a4b6676ea92..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp
+++ /dev/null
@@ -1,232 +0,0 @@
-/*! \file
-* \brief Thread pool core.
-*
-* This file contains the threadpool's core class: pool<Task, SchedulingPolicy>.
-*
-* Thread pools are a mechanism for asynchronous and parallel processing
-* within the same process. The pool class provides a convenient way
-* for dispatching asynchronous tasks as functions objects. The scheduling
-* of these tasks can be easily controlled by using customized schedulers.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_POOL_HPP_INCLUDED
-#define THREADPOOL_POOL_HPP_INCLUDED
-
-#include <boost/ref.hpp>
-
-#include "./detail/pool_core.hpp"
-
-#include "task_adaptors.hpp"
-
-#include "./detail/locking_ptr.hpp"
-
-#include "scheduling_policies.hpp"
-#include "size_policies.hpp"
-#include "shutdown_policies.hpp"
-
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool
-{
-
-
-
- /*! \brief Thread pool.
- *
- * Thread pools are a mechanism for asynchronous and parallel processing
- * within the same process. The pool class provides a convenient way
- * for dispatching asynchronous tasks as functions objects. The scheduling
- * of these tasks can be easily controlled by using customized schedulers.
- * A task must not throw an exception.
- *
- * A pool is DefaultConstructible, CopyConstructible and Assignable.
- * It has reference semantics; all copies of the same pool are equivalent and interchangeable.
- * All operations on a pool except assignment are strongly thread safe or sequentially consistent;
- * that is, the behavior of concurrent calls is as if the calls have been issued sequentially in an unspecified order.
- *
- * \param Task A function object which implements the operator 'void operator() (void) const'. The operator () is called by the pool to execute the task. Exceptions are ignored.
- * \param SchedulingPolicy A task container which determines how tasks are scheduled. It is guaranteed that this container is accessed only by one thread at a time. The scheduler shall not throw exceptions.
- *
- * \remarks The pool class is thread-safe.
- *
- * \see Tasks: task_func, prio_task_func
- * \see Scheduling policies: fifo_scheduler, lifo_scheduler, prio_scheduler
- */
- template <
- typename Task = task_func,
- template <typename> class SchedulingPolicy = fifo_scheduler,
- template <typename> class SizePolicy = static_size,
- template <typename> class SizePolicyController = resize_controller,
- template <typename> class ShutdownPolicy = wait_for_all_tasks
- >
- class thread_pool
- {
- typedef detail::pool_core<Task,
- SchedulingPolicy,
- SizePolicy,
- SizePolicyController,
- ShutdownPolicy> pool_core_type;
- shared_ptr<pool_core_type> m_core; // pimpl idiom
- shared_ptr<void> m_shutdown_controller; // If the last pool holding a pointer to the core is deleted the controller shuts the pool down.
-
- public: // Type definitions
- typedef Task task_type; //!< Indicates the task's type.
- typedef SchedulingPolicy<task_type> scheduler_type; //!< Indicates the scheduler's type.
- /* typedef thread_pool<Task,
- SchedulingPolicy,
- SizePolicy,
- ShutdownPolicy > pool_type; //!< Indicates the thread pool's type.
- */
- typedef SizePolicy<pool_core_type> size_policy_type;
- typedef SizePolicyController<pool_core_type> size_controller_type;
-
-
- public:
- /*! Constructor.
- * \param initial_threads The pool is immediately resized to set the specified number of threads. The pool's actual number threads depends on the SizePolicy.
- */
- thread_pool(size_t initial_threads = 0)
- : m_core(new pool_core_type)
- , m_shutdown_controller(static_cast<void*>(0), bind(&pool_core_type::shutdown, m_core))
- {
- size_policy_type::init(*m_core, initial_threads);
- }
-
-
- /*! Gets the size controller which manages the number of threads in the pool.
- * \return The size controller.
- * \see SizePolicy
- */
- size_controller_type size_controller()
- {
- return m_core->size_controller();
- }
-
-
- /*! Gets the number of threads in the pool.
- * \return The number of threads.
- */
- size_t size() const
- {
- return m_core->size();
- }
-
-
- /*! Schedules a task for asynchronous execution. The task will be executed once only.
- * \param task The task function object. It should not throw execeptions.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool schedule(task_type const & task)
- {
- return m_core->schedule(task);
- }
-
-
- /*! Returns the number of tasks which are currently executed.
- * \return The number of active tasks.
- */
- size_t active() const
- {
- return m_core->active();
- }
-
-
- /*! Returns the number of tasks which are ready for execution.
- * \return The number of pending tasks.
- */
- size_t pending() const
- {
- return m_core->pending();
- }
-
-
- /*! Removes all pending tasks from the pool's scheduler.
- */
- void clear()
- {
- m_core->clear();
- }
-
-
- /*! Indicates that there are no tasks pending.
- * \return true if there are no tasks ready for execution.
- * \remarks This function is more efficient that the check 'pending() == 0'.
- */
- bool empty() const
- {
- return m_core->empty();
- }
-
-
- /*! The current thread of execution is blocked until the sum of all active
- * and pending tasks is equal or less than a given threshold.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- */
- void wait(size_t task_threshold = 0) const
- {
- m_core->wait(task_threshold);
- }
-
-
- /*! The current thread of execution is blocked until the timestamp is met
- * or the sum of all active and pending tasks is equal or less
- * than a given threshold.
- * \param timestamp The time when function returns at the latest.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- * \return true if the task sum is equal or less than the threshold, false otherwise.
- */
- bool wait(xtime const & timestamp, size_t task_threshold = 0) const
- {
- return m_core->wait(timestamp, task_threshold);
- }
- };
-
-
-
- /*! \brief Fifo pool.
- *
- * The pool's tasks are fifo scheduled task_func functors.
- *
- */
- typedef thread_pool<task_func, fifo_scheduler, static_size, resize_controller, wait_for_all_tasks> fifo_pool;
-
-
- /*! \brief Lifo pool.
- *
- * The pool's tasks are lifo scheduled task_func functors.
- *
- */
- typedef thread_pool<task_func, lifo_scheduler, static_size, resize_controller, wait_for_all_tasks> lifo_pool;
-
-
- /*! \brief Pool for prioritized task.
- *
- * The pool's tasks are prioritized prio_task_func functors.
- *
- */
- typedef thread_pool<prio_task_func, prio_scheduler, static_size, resize_controller, wait_for_all_tasks> prio_pool;
-
-
- /*! \brief A standard pool.
- *
- * The pool's tasks are fifo scheduled task_func functors.
- *
- */
- typedef fifo_pool pool;
-
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_POOL_HPP_INCLUDED
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp
deleted file mode 100644
index 6cde152d2ae..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*! \file
-* \brief Pool adaptors.
-*
-* This file contains an easy-to-use adaptor similar to a smart
-* pointer for the pool class.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
-#define THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
-
-#include <boost/smart_ptr.hpp>
-
-
-namespace boost { namespace threadpool
-{
-
-
-// TODO convenience scheduling function
- /*! Schedules a Runnable for asynchronous execution. A Runnable is an arbitrary class with a run()
- * member function. This a convenience shorthand for pool->schedule(bind(&Runnable::run, task_object)).
- * \param
- * \param obj The Runnable object. The member function run() will be exectued and should not throw execeptions.
- * \return true, if the task could be scheduled and false otherwise.
- */
- template<typename Pool, typename Runnable>
- bool schedule(Pool& pool, shared_ptr<Runnable> const & obj)
- {
- return pool->schedule(bind(&Runnable::run, obj));
- }
-
- /*! Schedules a task for asynchronous execution. The task will be executed once only.
- * \param task The task function object.
- */
- template<typename Pool>
- typename enable_if <
- is_void< typename result_of< typename Pool::task_type() >::type >,
- bool
- >::type
- schedule(Pool& pool, typename Pool::task_type const & task)
- {
- return pool.schedule(task);
- }
-
-
- template<typename Pool>
- typename enable_if <
- is_void< typename result_of< typename Pool::task_type() >::type >,
- bool
- >::type
- schedule(shared_ptr<Pool> const pool, typename Pool::task_type const & task)
- {
- return pool->schedule(task);
- }
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp
deleted file mode 100644
index 2d6c7c1baed..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/*! \file
-* \brief Task scheduling policies.
-*
-* This file contains some fundamental scheduling policies for the pool class.
-* A scheduling policy is realized by a task container which controls the access to
-* the tasks. Fundamentally the container determines the order the tasks are processed
-* by the thread pool.
-* The task containers need not to be thread-safe because they are used by the pool
-* in thread-safe way.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_SCHEDULING_POLICIES_HPP_INCLUDED
-#define THREADPOOL_SCHEDULING_POLICIES_HPP_INCLUDED
-
-
-#include <queue>
-#include <deque>
-
-#include "task_adaptors.hpp"
-
-namespace boost { namespace threadpool
-{
-
- /*! \brief SchedulingPolicy which implements FIFO ordering.
- *
- * This container implements a FIFO scheduling policy.
- * The first task to be added to the scheduler will be the first to be removed.
- * The processing proceeds sequentially in the same order.
- * FIFO stands for "first in, first out".
- *
- * \param Task A function object which implements the operator()(void).
- *
- */
- template <typename Task = task_func>
- class fifo_scheduler
- {
- public:
- typedef Task task_type; //!< Indicates the scheduler's task type.
-
- protected:
- std::deque<task_type> m_container; //!< Internal task container.
-
-
- public:
- /*! Adds a new task to the scheduler.
- * \param task The task object.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool push(task_type const & task)
- {
- m_container.push_back(task);
- return true;
- }
-
- /*! Removes the task which should be executed next.
- */
- void pop()
- {
- m_container.pop_front();
- }
-
- /*! Gets the task which should be executed next.
- * \return The task object to be executed.
- */
- task_type const & top() const
- {
- return m_container.front();
- }
-
- /*! Gets the current number of tasks in the scheduler.
- * \return The number of tasks.
- * \remarks Prefer empty() to size() == 0 to check if the scheduler is empty.
- */
- size_t size() const
- {
- return m_container.size();
- }
-
- /*! Checks if the scheduler is empty.
- * \return true if the scheduler contains no tasks, false otherwise.
- * \remarks Is more efficient than size() == 0.
- */
- bool empty() const
- {
- return m_container.empty();
- }
-
- /*! Removes all tasks from the scheduler.
- */
- void clear()
- {
- m_container.clear();
- }
- };
-
-
-
- /*! \brief SchedulingPolicy which implements LIFO ordering.
- *
- * This container implements a LIFO scheduling policy.
- * The last task to be added to the scheduler will be the first to be removed.
- * LIFO stands for "last in, first out".
- *
- * \param Task A function object which implements the operator()(void).
- *
- */
- template <typename Task = task_func>
- class lifo_scheduler
- {
- public:
- typedef Task task_type; //!< Indicates the scheduler's task type.
-
- protected:
- std::deque<task_type> m_container; //!< Internal task container.
-
- public:
- /*! Adds a new task to the scheduler.
- * \param task The task object.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool push(task_type const & task)
- {
- m_container.push_front(task);
- return true;
- }
-
- /*! Removes the task which should be executed next.
- */
- void pop()
- {
- m_container.pop_front();
- }
-
- /*! Gets the task which should be executed next.
- * \return The task object to be executed.
- */
- task_type const & top() const
- {
- return m_container.front();
- }
-
- /*! Gets the current number of tasks in the scheduler.
- * \return The number of tasks.
- * \remarks Prefer empty() to size() == 0 to check if the scheduler is empty.
- */
- size_t size() const
- {
- return m_container.size();
- }
-
- /*! Checks if the scheduler is empty.
- * \return true if the scheduler contains no tasks, false otherwise.
- * \remarks Is more efficient than size() == 0.
- */
- bool empty() const
- {
- return m_container.empty();
- }
-
- /*! Removes all tasks from the scheduler.
- */
- void clear()
- {
- m_container.clear();
- }
-
- };
-
-
-
- /*! \brief SchedulingPolicy which implements prioritized ordering.
- *
- * This container implements a scheduling policy based on task priorities.
- * The task with highest priority will be the first to be removed.
- * It must be possible to compare two tasks using operator<.
- *
- * \param Task A function object which implements the operator() and operator<. operator< must be a partial ordering.
- *
- * \see prio_thread_func
- *
- */
- template <typename Task = prio_task_func>
- class prio_scheduler
- {
- public:
- typedef Task task_type; //!< Indicates the scheduler's task type.
-
- protected:
- std::priority_queue<task_type> m_container; //!< Internal task container.
-
-
- public:
- /*! Adds a new task to the scheduler.
- * \param task The task object.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool push(task_type const & task)
- {
- m_container.push(task);
- return true;
- }
-
- /*! Removes the task which should be executed next.
- */
- void pop()
- {
- m_container.pop();
- }
-
- /*! Gets the task which should be executed next.
- * \return The task object to be executed.
- */
- task_type const & top() const
- {
- return m_container.top();
- }
-
- /*! Gets the current number of tasks in the scheduler.
- * \return The number of tasks.
- * \remarks Prefer empty() to size() == 0 to check if the scheduler is empty.
- */
- size_t size() const
- {
- return m_container.size();
- }
-
- /*! Checks if the scheduler is empty.
- * \return true if the scheduler contains no tasks, false otherwise.
- * \remarks Is more efficient than size() == 0.
- */
- bool empty() const
- {
- return m_container.empty();
- }
-
- /*! Removes all tasks from the scheduler.
- */
- void clear()
- {
- while(!m_container.empty())
- {
- m_container.pop();
- }
- }
- };
-
-
-} } // namespace boost::threadpool
-
-
-#endif // THREADPOOL_SCHEDULING_POLICIES_HPP_INCLUDED
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp
deleted file mode 100644
index 047a6eb516d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*! \file
-* \brief Shutdown policies.
-*
-* This file contains shutdown policies for thread_pool.
-* A shutdown policy controls the pool's behavior from the time
-* when the pool is not referenced any longer.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_SHUTDOWN_POLICIES_HPP_INCLUDED
-#define THREADPOOL_SHUTDOWN_POLICIES_HPP_INCLUDED
-
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool
-{
-
-
-/*! \brief ShutdownPolicy which waits for the completion of all tasks
- * and the worker termination afterwards.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class wait_for_all_tasks
- {
- public:
- static void shutdown(Pool& pool)
- {
- pool.wait();
- pool.terminate_all_workers(true);
- }
- };
-
-
- /*! \brief ShutdownPolicy which waits for the completion of all active tasks
- * and the worker termination afterwards.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class wait_for_active_tasks
- {
- public:
- static void shutdown(Pool& pool)
- {
- pool.clear();
- pool.wait();
- pool.terminate_all_workers(true);
- }
- };
-
-
- /*! \brief ShutdownPolicy which does not wait for any tasks or worker termination.
- *
- * This policy does not wait for any tasks. Nevertheless all active tasks will be processed completely.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class immediately
- {
- public:
- static void shutdown(Pool& pool)
- {
- pool.clear();
- pool.terminate_all_workers(false);
- }
- };
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_SHUTDOWN_POLICIES_HPP_INCLUDED
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp
deleted file mode 100644
index e3c08038db5..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*! \file
-* \brief Size policies.
-*
-* This file contains size policies for thread_pool. A size
-* policy controls the number of worker threads in the pool.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_SIZE_POLICIES_HPP_INCLUDED
-#define THREADPOOL_SIZE_POLICIES_HPP_INCLUDED
-
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool
-{
-
- /*! \brief SizePolicyController which provides no functionality.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- struct empty_controller
- {
- empty_controller(typename Pool::size_policy_type&, shared_ptr<Pool>) {}
- };
-
-
- /*! \brief SizePolicyController which allows resizing.
- *
- * \param Pool The pool's core type.
- */
- template< typename Pool >
- class resize_controller
- {
- typedef typename Pool::size_policy_type size_policy_type;
- reference_wrapper<size_policy_type> m_policy;
- shared_ptr<Pool> m_pool; //!< to make sure that the pool is alive (the policy pointer is valid) as long as the controller exists
-
- public:
- resize_controller(size_policy_type& policy, shared_ptr<Pool> pool)
- : m_policy(policy)
- , m_pool(pool)
- {
- }
-
- bool resize(size_t worker_count)
- {
- return m_policy.get().resize(worker_count);
- }
- };
-
-
- /*! \brief SizePolicy which preserves the thread count.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class static_size
- {
- reference_wrapper<Pool volatile> m_pool;
-
- public:
- static void init(Pool& pool, size_t const worker_count)
- {
- pool.resize(worker_count);
- }
-
- static_size(Pool volatile & pool)
- : m_pool(pool)
- {}
-
- bool resize(size_t const worker_count)
- {
- return m_pool.get().resize(worker_count);
- }
-
- void worker_died_unexpectedly(size_t const new_worker_count)
- {
- m_pool.get().resize(new_worker_count + 1);
- }
-
- // TODO this functions are not called yet
- void task_scheduled() {}
- void task_finished() {}
- };
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_SIZE_POLICIES_HPP_INCLUDED
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp
deleted file mode 100644
index 6b874e33587..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*! \file
-* \brief Task adaptors.
-*
-* This file contains adaptors for task function objects.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_TASK_ADAPTERS_HPP_INCLUDED
-#define THREADPOOL_TASK_ADAPTERS_HPP_INCLUDED
-
-
-#include <boost/smart_ptr.hpp>
-#include <boost/function.hpp>
-#include <boost/thread.hpp>
-
-
-namespace boost { namespace threadpool
-{
-
- /*! \brief Standard task function object.
- *
- * This function object wraps a nullary function which returns void.
- * The wrapped function is invoked by calling the operator ().
- *
- * \see boost function library
- *
- */
- typedef function0<void> task_func;
-
-
-
-
- /*! \brief Prioritized task function object.
- *
- * This function object wraps a task_func object and binds a priority to it.
- * prio_task_funcs can be compared using the operator < which realises a partial ordering.
- * The wrapped task function is invoked by calling the operator ().
- *
- * \see prio_scheduler
- *
- */
- class prio_task_func
- {
- private:
- unsigned int m_priority; //!< The priority of the task's function.
- task_func m_function; //!< The task's function.
-
- public:
- typedef void result_type; //!< Indicates the functor's result type.
-
- public:
- /*! Constructor.
- * \param priority The priority of the task.
- * \param function The task's function object.
- */
- prio_task_func(unsigned int const priority, task_func const & function)
- : m_priority(priority)
- , m_function(function)
- {
- }
-
- /*! Executes the task function.
- */
- void operator() (void) const
- {
- if(m_function)
- {
- m_function();
- }
- }
-
- /*! Comparison operator which realises a partial ordering based on priorities.
- * \param rhs The object to compare with.
- * \return true if the priority of *this is less than right hand side's priority, false otherwise.
- */
- bool operator< (const prio_task_func& rhs) const
- {
- return m_priority < rhs.m_priority;
- }
-
- }; // prio_task_func
-
-
-
-
-
-
-
-
- /*! \brief Looped task function object.
- *
- * This function object wraps a boolean thread function object.
- * The wrapped task function is invoked by calling the operator () and it is executed in regular
- * time intervals until false is returned. The interval length may be zero.
- * Please note that a pool's thread is engaged as long as the task is looped.
- *
- */
- class looped_task_func
- {
- private:
- function0<bool> m_function; //!< The task's function.
- unsigned int m_break_s; //!< Duration of breaks in seconds.
- unsigned int m_break_ns; //!< Duration of breaks in nano seconds.
-
- public:
- typedef void result_type; //!< Indicates the functor's result type.
-
- public:
- /*! Constructor.
- * \param function The task's function object which is looped until false is returned.
- * \param interval The minimum break time in milli seconds before the first execution of the task function and between the following ones.
- */
- looped_task_func(function0<bool> const & function, unsigned int const interval = 0)
- : m_function(function)
- {
- m_break_s = interval / 1000;
- m_break_ns = (interval - m_break_s * 1000) * 1000 * 1000;
- }
-
- /*! Executes the task function.
- */
- void operator() (void) const
- {
- if(m_function)
- {
- if(m_break_s > 0 || m_break_ns > 0)
- { // Sleep some time before first execution
- xtime xt;
- xtime_get(&xt, TIME_UTC);
- xt.nsec += m_break_ns;
- xt.sec += m_break_s;
- thread::sleep(xt);
- }
-
- while(m_function())
- {
- if(m_break_s > 0 || m_break_ns > 0)
- {
- xtime xt;
- xtime_get(&xt, TIME_UTC);
- xt.nsec += m_break_ns;
- xt.sec += m_break_s;
- thread::sleep(xt);
- }
- else
- {
- thread::yield(); // Be fair to other threads
- }
- }
- }
- }
-
- }; // looped_task_func
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_TASK_ADAPTERS_HPP_INCLUDED
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile
deleted file mode 100644
index 578ff7e0ba8..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-DOXYGEN=doxygen
-
-doc: clean copy_footer generate_doc
-
-copy_footer:
- cp footer/*.htm .
-
-copy_footer_sf:
- cp footer_sf/*.htm .
-
-generate_doc:
- $(DOXYGEN) overview.dox
- $(DOXYGEN) reference.dox
- $(DOXYGEN) tutorial.dox
- $(DOXYGEN) examples.dox
- $(DOXYGEN) design.dox
-
-clean:
- rm -rf ../../../doc
- rm -rf ../../../threadpool-$(RELEASE_VERSION)-doc
- rm -rf ../../../threadpool-$(RELEASE_VERSION)-doc.zip
-
-release_doc: clean doc
- cd ../../..; mv doc threadpool-$(RELEASE_VERSION)-doc
- cd ../../..; zip -r9 threadpool-$(RELEASE_VERSION)-doc.zip threadpool-$(RELEASE_VERSION)-doc
- cd ../../..; mv threadpool-$(RELEASE_VERSION)-doc doc
-
-doc_sf: clean copy_footer_sf generate_doc
-
-deploy_sf: doc_sf
- scp -vr ../../../doc/* $(RELEASE_MANAGER)@shell.sourceforge.net:/home/groups/t/th/threadpool/htdocs
-
-
-
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox
deleted file mode 100644
index 06b287c7e4c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/design
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../include/
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = design.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = design_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt
deleted file mode 100644
index 05cf85e8ace..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-/*! \page intro TODO5
-
-
-A thread pool manages a homogeneous pool of worker threads. In general worker threads are created once and are used to
-process a sequence of tasks. The re-use of threads reduces the thread creation and teardown overhead. The resource
-consumption is limited as the number of threads can be restricted. This leads to an improved system stability.
-
-Thread-per-task
-
-TODO5
-
-light-weight, no administration/management thread, synchronized scheduler, e.g. queue
-
-
- */
-
-
-/*! \page pattern Thread Pool Pattern
-
-
-In the thread pool pattern in programming, a number of N threads are created to perform a number of M tasks, usually organized in a queue. Typically, N << M. As soon as a thread completes its task, it will request the next task from the queue until all tasks have been completed. The thread can then terminate, or sleep until there are new tasks available.
-
-The number of threads used (N) is a parameter that can be tuned to provide the best performance.
-
-The advantage of using a Thread Pool over creating a new thread for each task, is that thread creation and destruction overhead is negated, which may result in better performance and better system stability.
-
-<BR>
-<B>From <A HREF="http://en.wikipedia.org/wiki/Thread_pool_pattern"> Wikipedia </A>, the free encyclopedia.</B>
-
-
-
- */
-
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm
deleted file mode 100644
index 006ce094908..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Design</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="intro.html">TODO5</A> |
- <A CLASS="qindex" HREF="pattern.html">Thread Pool Pattern</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox
deleted file mode 100644
index 128a4089ada..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/examples
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../include
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = examples.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = examples_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt
deleted file mode 100644
index fbb29f4d33a..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-
-/*! \page intro TODO3
-
-See src/examples/mergesort/mergesort.cpp
-<BR>
-
- */
-
-
-/*! \page pattern TODO4
-TODO4
-
- */
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm
deleted file mode 100644
index d35512cf52f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Examples</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="intro.html">TODO3</A> |
- <A CLASS="qindex" HREF="pattern.html">TODO4</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm
deleted file mode 100644
index 1debd97adf6..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm
+++ /dev/null
@@ -1,17 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
- </BODY>
-</HTML>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm
deleted file mode 100644
index 75ef22b1813..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm
+++ /dev/null
@@ -1,17 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Overview</A> |
- <A CLASS="qindex" HREF="reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
- </BODY>
-</HTML>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm
deleted file mode 100644
index 7c177c9f339..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm
+++ /dev/null
@@ -1,30 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
-
- <P align="right" valign="top">
- Hosted by
- <A HREF="http://sourceforge.net">
- <IMG src="http://sflogo.sourceforge.net/sflogo.php?group_id=158064&type=2"
- width="125"
- height="37"
- border="0"
- align="top"
- alt="SourceForge.net Logo"/>
- </A>
- </P>
-
- </BODY>
-</HTML>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm
deleted file mode 100644
index 4a6f80c53bb..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm
+++ /dev/null
@@ -1,29 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Overview</A> |
- <A CLASS="qindex" HREF="reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
-
- <P align="right" valign="top">
- Hosted by
- <A HREF="http://sourceforge.net">
- <IMG src="http://sflogo.sourceforge.net/sflogo.php?group_id=158064&type=2"
- width="125"
- height="37"
- border="0"
- align="top"
- alt="SourceForge.net Logo"/>
- </A>
- </P>
- </BODY>
-</HTML>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html
deleted file mode 100644
index f36e87310d0..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <meta http-equiv="refresh" content="2;url=overview/index.html">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- </BODY>
-</HTML>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox
deleted file mode 100644
index 3021c3972d7..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER = 0.2.5
-OUTPUT_DIRECTORY = ../../../doc
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../../boost/threadpool
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = overview.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH = ../../..
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = overview_header.htm
-HTML_FOOTER = overview_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt
deleted file mode 100644
index 3a995fffb9f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt
+++ /dev/null
@@ -1,205 +0,0 @@
-/*! \mainpage threadpool
-
-
-\section intro_sec threadpool
-threadpool is a cross-platform C++ thread pool library. In general terms thread pools
-are an efficient mechanism for asynchronous task processing within the same process.
-They realise the <A HREF="design/pattern.html"> thread pool pattern</A>.
-
-A thread pool manages a group of threads in order to process a large number of tasks.
-Since multiple threads can be executed in parallel this approach may be very efficient regarding the overall program performance on many computer systems. By restricting the number of threads and by reusing them resources are saved
-and additionally the system stability is increased.
-
-The threadpool library provides a convenient way for dispatching asynchronous tasks. Pools can be customized, managed dynamically and easily integrated into your software.
-
-
-\section dev_status_sec Development Status & Future Work
-The threadpool core classes are completed and the implemenation can be considered ready for production code. The library is used by several commercial server applications and can handle high workload without problems. I'm currently working on helper and service classes which make the
-usage of the pool more comfortable. A small tutorial introduces the thread pool and
-more example code will be added in the future. The documentation is far away from being finished.
-<BR>
-<BR><A HREF="http://threadpool.cvs.sourceforge.net/threadpool/threadpool">Browse CVS Repository</A>
-<BR>
-
-<P>
-Features
-- Policy-based thread pool implementation<BR>
-- Scheduling policies: fifo, lifo and priority<BR>
-- Size policies: static_size<BR>
-- Size policy controller: empty_controller, resize_controller<BR>
-- Shutdown policies: wait_for_all_tasks, wait_for_active_tasks, immediately<BR>
-- Smooth integration into STL and boost<BR>
-</P>
-
-<P>
-Future Work
-- More policies: deadline_scheduler, ...<BR>
-- Possibility of limiting the number of pending tasks<BR>
-- Futures (handles to results of scheduled functions)<BR>
-- More examples to illustrate the usage of the library<BR>
-- Provide Unit tests<BR>
-</P>
-
-
-
-
-\section down_sec Download Section
-<P>
-threadpool 0.2.5 (Development Snapshot)
-- <A HREF="http://prdownloads.sourceforge.net/threadpool/threadpool-0_2_5-src.zip?download">threadpool-0_2_5-src.zip</A><BR>
-- <A HREF="http://prdownloads.sourceforge.net/threadpool/threadpool-0_2_5-doc.zip?download">threadpool-0_2_5-doc.zip</A><BR>
-</P>
-
-For more information on the revisions see \ref changelog.
-
-
-\section platforms_sec Supported Platforms
-threadpool is highly portable. It runs on any platform on which Boost threads are available: Linux, Windows, Mac OS 9/X, Solaris, etc.
-
-
-\section boost_sec Boost Libraries
-Boost is a collection of high-quality C++ libraries and works on almost any
-modern operating system, including UNIX and Windows variants.
-In fact threadpool is only a small extension to the portable Boost source libraries.
-It incorporates the thread pool concept by using the thread library from William Kempf.
-For more information on this excellent library visit <A HREF="http://www.boost.org">Boost.org</A>.
-
-
-\section installation_sec Installing & Using threadpool
-threadpool consists only of header files, and so there is no need to build the library itself
-before using it in your own applications. You simply need to add the
-following directories to your compiler include path:<BR>
- - threadpool's include directory<BR>
- - the boost directory (e.g. the one called boost_1_37_0)<BR>
-
-Furthermore you have to compile boost's thread library and link against it (libboost_thread-*.lib under Windows).
-
-
-
-\section license_sec Software License
-threadpool is released under the \ref license "Boost Software License".
-This license encourages both commercial and non-commercial use.
-
-
-\section acknowledgments_sec Acknowledgments
-This library was written by Philipp Henkel.
-<P>
-I appreciate your suggestions, and would love to know if you
-use threadpool. Hopefully you will enjoy it and find it useful.
-Please post questions, comments, bugs, or contact me at:
-
-</P>
-
-threadpool@googlemail.com<BR>
-or<BR>
-<A HREF="http://www.sourceforge.net/projects/threadpool">www.sourceforge.net/projects/threadpool</A>
-<BR>
-<BR>
-*/
-
-
-
-/*! \page license Software License
-
-\verbinclude LICENSE_1_0.txt
-
-*/
-
-
-
- /*! \page changelog Change Log
-
- <B>0.2.5 (Stable)</B>
- - Made threadpool compatible to boost::thread 1.37
- - Fixed hang problem in shutdown method (Thanks to Sohail Somani)
- - Adapted repository layout to boost (Thanks to Alex Ott)
-
-<B>0.2.4 (Stable)</B>
- - Made threadpool compatible to boost::thread 1.35.x code base
- - Fixed compiler warning in scope_guard.hpp
-
-<B>0.2.4 (Stable)</B>
- - Made threadpool compatible to boost::thread 1.35.x code base
- - Fixed compiler warning in scope_guard.hpp
-
-<B>0.2.3 (Development)</B>
- - Implemented workaround for Sun C++ Pro compiler bug in pool_core
- - Removed subtask implementation (there was no demand for this feature)
- - Improved shutdown policies
-
-<B>0.2.2 (Development)</B>
- - Refactored SizePolicy and added SizePolicyController
- - Moved policies into separate files
- - Fixed some compiler problems (GCC)
- - Implemented size_controller handling
- - Implemented two size policies: static_size and fixed_size
- - Refactored worker_thread handling, moved policies from pool_core to pool
- - Specialized schedule function for usage with futures
- - Added compile test project
- - Improved constness in pool core class
- - Fixed timed wait
- - Implemented futures (in progress)
- - Added result_type to all functors
-
-<B>0.2.1 (Development)</B>
- - Pool base class (thread_pool) has now reference semantics.
- - Large refactorings: Removed scoped_pool, reimplemented worker (now worker_thread)
- - Fixed odd resize behaviour. Now resize changes the number of threads immediately.
- - Apply pimpl idiom on pool core class (to make the ugly scoped_pool class needless)
- - Introduced scheduling policies
- - Switched to policy-based design (PBD), inspired by Scott Meyers C++ workshop
- - Cosmetic code change: Replaced keyword 'class' with 'typename' in template definitions
- - Revised tutorials
- - New requirements: tasks functions should not and schedulers shall not throw exceptions
-
-<B>0.2.0 (Development)</B>
- - Moved threadpool into the boost namespace: boost::threadpool
- - Used keyword volatile to indicate thread-safe member functions
- - Used volatile on primitve types were appropriate
- - Moved worker to detail directory
- - Fixed thread deletion
- - Extended wait functionality (waiting for idle threads was implemented)
- - Renamed 'join()' to 'wait()' as 'join' indicates the termination of thread. That was not the case in pool::join.
- - Changed internal container of lifo and fifo schedulers to improve efficiency.
- - Improved code reference documentation (source code browser)
- - Renamed thread_func into task_func
- - Added += operator to scoped_pool to ease scheduling of tasks
- - Refactored file structures and class names
- - Added a new task concept (named subtask) which allows the combination of sequential and parallel execution
- - Added new task adaptor for looped or timed tasks: looped_task_func
- - Introduced function clear() which can be used to remove all tasks from the pool and schedulers
- - New function pool::active() which returns the number of active tasks
-
-<B>0.1.8 (Development)</B>
- - Fixed some compile errors which were reported by gcc
- - Wrote tutorial "Prioritized Tasks"
-
-<B>0.1.7 (Development)</B>
- - Added Visual Studio 2005 project files for tutorial and examples
-
-<B>0.1.6 (Development)</B>
- - Replaced task adaptor 'task' with boost::bind
- - Workers are unregistered from thread_group when they are terminated
- - Working on example boost::iostreams packet_filter
-
-<B>0.1.5 (Development)</B>
- - Finished threadpool reference
- - Class pool_adaptor was replaced by smart_pool
- - Minor pool improvements
- - First tutorial page online
-
-<B>0.1.4 (Development)</B>
- - Created the pool's homepage: http://threadpool.sourceforge.net
- - Improved documentation
- - Added build scripts
-
-<B>0.1.3 (Development)</B>
- - First public release
- - Added mergesort example
- - Added tutorial
- - Implementation of threadpool core and related classes
-
- */
-
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm
deleted file mode 100644
index dc6e9f6c182..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Overview</A> |
- <A CLASS="qindex" HREF="reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Overview</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Main Page</A> |
- <A CLASS="qindex" HREF="changelog.html">Change Log</A> |
- <A CLASS="qindex" HREF="license.html">Software License</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox
deleted file mode 100644
index d0fb3988345..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox
+++ /dev/null
@@ -1,220 +0,0 @@
-# Doxyfile 1.4.2
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/reference
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../../boost/threadpool
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = YES
-SORT_BRIEF_DOCS = YES
-SORT_BY_SCOPE_NAME = YES
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = ../../../boost ../../../boost/threadpool
-FILE_PATTERNS = *.hpp
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH = /../examples
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = YES
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = reference_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-USE_PDFLATEX = NO
-LATEX_BATCHMODE = NO
-LATEX_HIDE_INDICES = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
-XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
-XML_PROGRAMLISTING = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED =
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = NO
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = NO
-GROUP_GRAPHS = YES
-UML_LOOK = NO
-TEMPLATE_RELATIONS = YES
-INCLUDE_GRAPH = NO
-INCLUDED_BY_GRAPH = NO
-CALL_GRAPH = NO
-GRAPHICAL_HIERARCHY = NO
-DIRECTORY_GRAPH = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-MAX_DOT_GRAPH_DEPTH = 0
-DOT_TRANSPARENT = NO
-DOT_MULTI_TARGETS = NO
-GENERATE_LEGEND = NO
-DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm
deleted file mode 100644
index 40fd7423aa2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Reference</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="annotated.html">Class List</A> |
- <A CLASS="qindex" HREF="functions.html">Member Functions</A> |
- <A CLASS="qindex" HREF="namespacemembers.html">Typedefs</A> |
- <A CLASS="qindex" HREF="files.html">File List</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css
deleted file mode 100644
index 85937009050..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css
+++ /dev/null
@@ -1,331 +0,0 @@
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
- font-family: Geneva, Arial, Helvetica, sans-serif;
-}
-BODY,TD {
- font-size: 90%;
-}
-H1 {
- text-align: center;
- font-size: 160%;
-}
-H2 {
- font-size: 120%;
-}
-H3 {
- font-size: 100%;
-}
-CAPTION { font-weight: bold }
-DIV.sidebar {
- width: 210px;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-bottom: 20px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.sidebar TABLE TR TD {
- font-size: 80%;
-}
-DIV.sidebar UL {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-DIV.qindex {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.nav {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.navtab {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-TD.navtab {
- font-size: 70%;
-}
-A.qindex {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D;
-}
-A.qindex:visited {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D
-}
-A.qindex:hover {
- text-decoration: none;
- background-color: #ddddff;
-}
-A.qindexHL {
- text-decoration: none;
- font-weight: bold;
- background-color: #6666cc;
- color: #ffffff;
- border: 1px double #9295C2;
-}
-A.qindexHL:hover {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff;
-}
-A.anchor {
- text-decoration: none;
- color: #000000;
-}
-A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { text-decoration: none; font-weight: bold }
-A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A:hover { text-decoration: none; background-color: #f2f2ff }
-DL.el { margin-left: -1cm }
-.fragment {
- font-family: Fixed, monospace;
- font-size: 95%;
-}
-PRE.fragment {
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
- margin-top: 4px;
- margin-bottom: 4px;
- margin-left: 2px;
- margin-right: 8px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
-}
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-TD.md { background-color: #F4F4FB; font-weight: bold; }
-TD.mdPrefix {
- background-color: #F4F4FB;
- color: #606060;
- font-size: 80%;
-}
-TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
-TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
-DIV.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold;
-}
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
-BODY {
- background: white;
- color: black;
- margin-right: 20px;
- margin-left: 20px;
-}
-TD.indexkey {
- background-color: #e8eef2;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TD.indexvalue {
- background-color: #e8eef2;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TR.memlist {
- background-color: #f0f0f0;
-}
-P.formulaDsp { text-align: center; }
-IMG.formulaDsp { }
-IMG.formulaInl { vertical-align: middle; }
-SPAN.keyword { color: #008000 }
-SPAN.keywordtype { color: #604020 }
-SPAN.keywordflow { color: #e08000 }
-SPAN.comment { color: #800000 }
-SPAN.preprocessor { color: #806020 }
-SPAN.stringliteral { color: #002080 }
-SPAN.charliteral { color: #008080 }
-.mdTable {
- border: 1px solid #868686;
- background-color: #F4F4FB;
-}
-.mdRow {
- padding: 8px 10px;
-}
-.mdescLeft {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.mdescRight {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplParams {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- color: #606060;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.search { color: #003399;
- font-weight: bold;
-}
-FORM.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-INPUT.search { font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #e8eef2;
-}
-TD.tiny { font-size: 75%;
-}
-a {
- color: #1A41A8;
-}
-a:visited {
- color: #2A3798;
-}
-.dirtab { padding: 4px;
- border-collapse: collapse;
- border: 1px solid #84b0c7;
-}
-TH.dirtab { background: #e8eef2;
- font-weight: bold;
-}
-HR { height: 1px;
- border: none;
- border-top: 1px solid black;
-}
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox
deleted file mode 100644
index 66a39edf23d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/tutorial
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../include/
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = tutorial.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = tutorial_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt
deleted file mode 100644
index e89c96d9af5..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt
+++ /dev/null
@@ -1,207 +0,0 @@
-/*! \page intro Quick Start
-
-This tutorial introduces the threadpool library by discussing an easy to understand source listing:
-
-\code
-01
-02 #include "threadpool.hpp"
-03
-04 using namespace boost::threadpool;
-05
-06 // Some example tasks
-07 void first_task()
-08 {
-09 ...
-10 }
-11
-13 void second_task()
-14 {
-15 ...
-16 }
-17
-19 void third_task()
-20 {
-21 ...
-22 }
-23
-24 void execute_with_threadpool()
-25 {
-26 // Create a thread pool.
-27 pool tp(2);
-28
-29 // Add some tasks to the pool.
-30 tp.schedule(&first_task);
-31 tp.schedule(&second_task);
-32 tp.schedule(&third_task);
-33
-34 // Leave this function and wait until all tasks are finished.
-35 }
-36
-\endcode
-
-We start by including the necessary header files. The complete threadpool functionality can be used by simply including
-the "threadpool.hpp" header file at line 2.
-
-The three functions first_task(), second_task and third_task() are placeholders
-for tasks that should be executed by our pool.
-
-The thread pool is created at line 27. The argument indicates the number of initial threads.
-The new pool contains two threads that is two tasks can be processed in parallel. The pool's threads
-are sleeping until tasks are added.
-By default it uses a Fifo scheduling strategy.
-Fifo is an abbreviation of "first in, first out"
-and means in this case that the first task which is added is the
-first that will be executed. Generally this is the expected default behaviour
-since the tasks are executed in the order they are added to the pool.
-
-In line 30 to 32 the task functions are scheduled asynchronously using the pool's schedule function.
-A task is registered and it will be executed as soon as one of the pool's threads is idle.
-It is very important to understand that the task is only scheduled for execution.
-Schedule returns immediately and there are no guarantees about when the tasks are executed and how long
-the processing will take. As they are added to a fifo pool with two threads the following is true:
-- the execution of first_task begins first
-- second_task is started after first_task
-- third_task is begun at last
-- a maximum of two tasks may are processed in parallel
-- each scheduled task will be executed once only
-
-
-The pool reference tp is created in the scope of the function execute_with_threadpool(). When this
-function returns at line 35 tp goes out of scope and the pool will be destructed. As the default ShutdownPolicy
-is wait_for_all_tasks it is ensured that all tasks are processed before the pool is destroyed.
-
-\code
-101
-102 ...
-103 execute_with_threadpool(); // execute first_task, second_task and third_task
-104 // When this line is reached all tasks are finished and the pool is destructed.
-105
-\endcode
-
-The small code example clarifies the issue. When the function leaves the pool is shut down
-and waits for the tasks. That means the current thread of execution is blocked
-at the end of the execute_with_threadpool as long as
-the processing of tasks is in progress.
-
-<BR>
-*/
-
-
-/*! \page prioritized Prioritized Tasks
-
-TODO This tutorial is out dated.
-
-It's easy to prioritize asynchronous tasks by using the task adaptor prio_task_func.
-The following source listing illustrates how to setup the pool and add the tasks:
-
-\code
-01
-02 #include "threadpool.hpp"
-03
-04 using namespace boost::threadpool;
-05
-06 // Some example tasks
-07 void normal_task()
-08 {
-09 ...
-10 }
-11
-13 void important_task()
-14 {
-15 ...
-16 }
-17
-18 void execute_prioritized()
-19 {
-20 // Create prioritized thread pool container without any threads.
-21 scoped_pool<prio_pool, 0> tp;
-22
-23 // Add some tasks to the pool.
-24 tp += prio_task_func(5, &normal_task);
-25 tp += prio_task_func(100, &important_task);
-26 tp += prio_task_func(7, &normal_task);
-27
-28 // Add the some threads to the pool. This will start the execution of the tasks.
-29 tp->resize(2);
-30
-31 // The tasks are processed according to their priority: important_task(100), nonrelevant_task(7), nonrelevant_task(5).
-32
-33 tp->wait();
-34
-35 // Now all tasks are finished and the pool will be destroyed safely when tp goes out of scope.
-36 }
-37
-\endcode
-
-Like in the first tutorial we start including the main header file and defining some tasks.
-
-At line 21 a prioritized thread pool is created. That means that the pool's tasks are arranged
-according to their priority before they get executed. Therefore the tasks themselves have to realize a partial ordering based
-on operator<.
-
-The adaptor prio_thread_func satisfies our requirements regarding the order and is just a small wrapper object for
-the task functions. In line 24 to 26 some prioritized tasks are scheduled. This time the pool's schedule function is used and like smart pool's += operator
-this function returns immediately.
-
-At line 29 the first thread is added to the pool and the execution of important_task begins. As we have only one thread
-the tasks are processed sequentially.
-
-Finally wait() is called to ensure that all tasks are finished before our example function returns
-and the pool is destroyed. This is very important since the behavior is undefined if pool's lifetime ends while tasks are executed.
-
-*/
-
-
-/*! \page task_adaptor Arbitrary Task Functions
-
-TODO This tutorial is out dated.
-
-
-\section member_task Member Task Functions
-
-using namespace boost::threadpool;
-
-TODO <BR>
-boost::bind(member_function, shared_ptr)
-26 tp->schedule(boost::bind(task_with_parameter, 42));
-12 // Second example task
-13 void task_with_parameter(int value)
-14 {
-15 ...
-16 }
-
-\section member_task Functions With Arguments
-
-*/
-
-
-/*! \page instantiation Advanced Instantiation
-
-TODO This tutorial is out dated.
-
-TODO <BR>
-Pool instantiation
-\code
-
- boost::shared_ptr<fifo_pool> tp = fifo_pool::create_pool(5);
-
- print(" Add tasks ...\n");
- tp->schedule(&task_1);
- tp->schedule(&task_2);
- tp->schedule(&task_3);
-
- tp->schedule(looped_task_func(&looped_task, 1500));
-
- print(" Wait until all tasks are finished ...\n");
- tp->wait();
- print(" Tasks finished!\n");
-
-\endcode
-
-
-\code
- typedef threadpool::pool<boost::function0<void>, threadpool::fifo_scheduler<boost::function0<void> > > pool_type;
- boost::shared_ptr< pool_type > tp = pool_type::create_pool(5);
-\endcode
-
-*/ \ No newline at end of file
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm
deleted file mode 100644
index b087ec0f9f2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Tutorial</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="intro.html">Quick Start</A> |
- <A CLASS="qindex" HREF="prioritized.html">Prioritized Tasks</A> |
- <A CLASS="qindex" HREF="task_adaptor.html">Arbitrary Task Functions</A> |
- <A CLASS="qindex" HREF="instantiation.html">Advanced Pool Instantiation</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2 b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2
deleted file mode 100644
index 8ff7fe2dbba..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe mergesort : mergesort.cpp ;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp
deleted file mode 100644
index 338153453b4..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*! \file
- * \brief Mergesort example.
- *
- * This example shows how to use the threadpool library.
- *
- * Copyright (c) 2005-2006 Philipp Henkel
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * http://threadpool.sourceforge.net
- *
- */
-
-
-#include <boost/threadpool.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/smart_ptr.hpp>
-#include <iostream>
-#include <sstream>
-#include <algorithm>
-
-
-
-using namespace std;
-using namespace boost::threadpool;
-
-//
-// Helpers
-boost::mutex m_io_monitor;
-
-void print(string text)
-{
- boost::mutex::scoped_lock lock(m_io_monitor);
- cout << text;
-}
-
-template<class T>
-string to_string(const T& value)
-{
- ostringstream ost;
- ost << value;
- ost.flush();
- return ost.str();
-}
-
-unsigned long get_ms_diff(boost::xtime& start, boost::xtime& end)
-{
- boost::xtime::xtime_sec_t start_ms = start.sec * 1000 + start.nsec/1000000;
- boost::xtime::xtime_sec_t end_ms = end.sec * 1000 + end.nsec/1000000;
- return static_cast<unsigned long>(end_ms - start_ms);
-}
-
-class image
-{
-public:
- image() : m_content(0) {}
- image(int content) : m_content(content) {}
-
- image(const image& src)
- {
- m_content = src.m_content;
- }
-
- bool operator<(const image& l) const
- {
- { // simulate time needed for image comparision
- boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
- int duration = 1+(m_content % 4);
- xt.nsec += 250 * 1000 * duration;
- boost::thread::sleep(xt);
- print(".");
- }
- return m_content < l.m_content;
- }
-
-protected:
- int m_content; // represents image data in this example
-};
-
-
-template<class T>
-class merge_job
-{
-public:
- merge_job(boost::shared_array<T> data, unsigned int position, unsigned int length)
- : m_data(data)
- , m_position(position)
- , m_length(length)
- {
- print("merge job created : " + to_string(m_position) +", "+ to_string(m_length) +"\n");
- }
-
- void run()
- {
- print("merge job running : " + to_string(m_position) +", "+ to_string(m_length) +"\n");
-
- T* begin = m_data.get();
- std::advance(begin, m_position);
-
- T* mid = m_data.get();
- std::advance(mid, m_position + m_length/2);
-
- T* end = m_data.get();
- std::advance(end, m_position + m_length);
-
- std::inplace_merge(begin, mid, end);
-
- print("\nmerge job finished: " + to_string(m_position) +", "+ to_string(m_length) +"\n");
- }
-
-protected:
- boost::shared_array<T> m_data;
- unsigned int m_position;
- unsigned int m_length;
-};
-
-
-
-
-//
-// A demonstration of the thread_pool class
-int main (int argc, char * const argv[])
-{
- print("MAIN: construct thread pool\n");
-
-
-
- boost::xtime start;
- boost::xtime_get(&start, boost::TIME_UTC);
-
- int exponent = 7;
- int data_len = 1 << exponent; // = pow(2, exponent)
-
- print("MAIN: sort array with "+ to_string(data_len) + " elements.\n");
-
- boost::shared_array<image> data(new image[data_len]);
-
- // fill array with arbitrary values (not sorted ascendingly)
- for(int i = 0; i < data_len; i++)
- {
- data[i] = image((data_len - i - 1) % 23);
- }
-
-
- /***************************/
- /* Standard implementation */
- /***************************/
-
- pool tp;
- tp.size_controller().resize(5);
-
-// merge data array
- for(int step = 1; step <= exponent; step++)
- {
- print("\nMAIN: merge step "+ to_string(step)+"\n");
-
- // divide array into partitions
- int partition_size = 1 << step;
- for(int partition = 0; partition < data_len/partition_size; partition++)
- {
- // sort partition
- boost::shared_ptr<merge_job<image> > job(new merge_job<image>(data, partition*partition_size, partition_size));
- //tp->schedule(prio_task_func(5, boost::bind(&merge_job<image>::run, job)));
- schedule(tp, boost::bind(&merge_job<image>::run, job));
- // schedule(tp, job);
- }
- tp.wait(); // wait until all partitions are sorted
- }
-
- boost::xtime end;
- boost::xtime_get(&end, boost::TIME_UTC);
-
- print("\nMAIN: duration " + to_string(get_ms_diff(start, end)) + " ms \n");
-
- print("\nMAIN: check if array is sorted... \n");
-
- // check if array is sorted ascendingly
- bool ascending = true;
- for(int i = 0; i < data_len-1; i++)
- {
- if(data[i+1] < data[i])
- {
- ascending = false;
- }
- }
-
- if(ascending)
- {
- print("\nMAIN: array is sorted\n");
- }
- else
- {
- print("\nMAIN: array is NOT sorted!\n");
- }
-
- return 0;
-}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2 b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2
deleted file mode 100644
index 85b2bcb0fd4..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe quickstart : quickstart.cpp ;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README
deleted file mode 100644
index 4f97ce51d73..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README
+++ /dev/null
@@ -1,7 +0,0 @@
-Supposing the boost directory is in /usr/local/lib, it is also worth to mention that they need to
-set LD_LIBRARY_PATH as follows:
-export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/usr/local/lib
-
-Please adapt threadpool.makefile to your system.
-
-Special thanks to Rudy Prabowo who contributed this example to help linux users.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp
deleted file mode 100644
index 858573a0a8f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*! \file
- * \brief Quick start example.
- *
- * This is a very simple example which can be used to configure the threadpool environment on your system.
- *
- * Copyright (c) 2005-2006 Philipp Henkel
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * http://threadpool.sourceforge.net
- *
- */
-
-#include <iostream>
-
-#include <boost/threadpool.hpp>
-
-using namespace std;
-using namespace boost::threadpool;
-
-// Some example tasks
-void first_task()
-{
- cout << "first task is running\n" ;
-}
-
-void second_task()
-{
- cout << "second task is running\n" ;
-}
-
-int main(int argc,char *argv[])
-{
- // Create fifo thread pool container with two threads.
- pool tp(2);
-
- // Add some tasks to the pool.
- tp.schedule(&first_task);
- tp.schedule(&second_task);
-
- // Wait until all tasks are finished.
- tp.wait();
-
- // Now all tasks are finished!
- return(0);
-}
-
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2 b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2
deleted file mode 100644
index e14c124a8d8..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe compile_all : compile_all.cpp ;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp
deleted file mode 100644
index 1c349d4406d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/*! \file
-* \brief threadpool tutorial.
-*
-* This file contains a tutorial for the threadpool library.
-*
-* Copyright (c) 2005-2006 Philipp Henkel
-*
-* Distributed under the Boost Software License, Version 1.0. (See
-* accompanying file LICENSE_1_0.txt or copy at
-* http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-
-
-#include <iostream>
-#include <sstream>
-#include <boost/thread/mutex.hpp>
-#include <boost/bind.hpp>
-
-#include <boost/threadpool.hpp>
-
-using namespace std;
-using namespace boost::threadpool;
-
-
-//
-// Helpers
-boost::mutex m_io_monitor;
-
-void print(string text)
-{
- boost::mutex::scoped_lock lock(m_io_monitor);
- cout << text;
-}
-
-template<typename T>
-string to_string(T const & value)
-{
- ostringstream ost;
- ost << value;
- ost.flush();
- return ost.str();
-}
-
-
-
-//
-// An example task functions
-void task_1()
-{
- print(" task_1()\n");
-}
-
-void task_2()
-{
- print(" task_2()\n");
-}
-
-void task_3()
-{
- print(" task_3()\n");
-}
-
-int task_4()
-{
- print(" task_4()\n");
- return 4;
-}
-
-void task_with_parameter(int value)
-{
- print(" task_with_parameter(" + to_string(value) + ")\n");
-}
-
-int loops = 0;
-bool looped_task()
-{
- print(" looped_task()\n");
- return ++loops < 5;
-}
-
-
-int task_int()
-{
- print(" task_int()\n");
- return 23;
-}
-
-
-void fifo_pool_test()
-{
- pool tp;
-
- tp.schedule(&task_1);
- tp.schedule(boost::bind(task_with_parameter, 4));
-
- if(!tp.empty())
- {
- tp.clear(); // remove all tasks -> no output in this test
- }
-
- size_t active_threads = tp.active();
- size_t pending_threads = tp.pending();
- size_t total_threads = tp.size();
-
- size_t dummy = active_threads + pending_threads + total_threads;
- dummy++;
-
- tp.size_controller().resize(5);
- tp.wait();
-}
-
-void lifo_pool_test()
-{
- lifo_pool tp;
- tp.size_controller().resize(0);
- schedule(tp, &task_1);
- tp.size_controller().resize(10);
- tp.wait();
-}
-
-void prio_pool_test()
-{
- prio_pool tp(2);
- schedule(tp, prio_task_func(1, &task_1));
- schedule(tp, prio_task_func(10,&task_2));
-}
-
-
-void future_test()
-{
- fifo_pool tp(5);
- future<int> fut = schedule(tp, &task_4);
- int res = fut();
-}
-
-
-int main (int , char * const [])
-{
- fifo_pool_test();
- lifo_pool_test();
- prio_pool_test();
- future_test();
- return 0;
-}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2 b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2
deleted file mode 100644
index 5b9d02b459c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe tutorial : tutorial.cpp ;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp
deleted file mode 100644
index 4cc688509ef..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-/*! \file
-* \brief threadpool tutorial.
-*
-* This file contains a tutorial for the threadpool library.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Distributed under the Boost Software License, Version 1.0. (See
-* accompanying file LICENSE_1_0.txt or copy at
-* http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-//#define _CRTDBG_MAP_ALLOC
-#include <stdlib.h>
-
-#include <iostream>
-#include <sstream>
-#include <boost/thread/mutex.hpp>
-#include <boost/bind.hpp>
-#include <boost/threadpool.hpp>
-
-using namespace std;
-using namespace boost::threadpool;
-
-//
-// Helpers
-boost::mutex m_io_monitor;
-
-void print(string text)
-{
- boost::mutex::scoped_lock lock(m_io_monitor);
- cout << text;
-}
-
-template<typename T>
-string to_string(T const & value)
-{
- ostringstream ost;
- ost << value;
- ost.flush();
- return ost.str();
-}
-
-
-
-//
-// An example task functions
-void task_1()
-{
- print(" task_1()\n");
- throw 5;
-}
-
-void task_2()
-{
- print(" task_2()\n");
- throw 5;
-}
-
-void task_3()
-{
- print(" task_3()\n");
-}
-
-void task_with_parameter(int value)
-{
- print(" task_with_parameter(" + to_string(value) + ")\n");
-}
-
-int loops = 0;
-bool looped_task()
-{
- print(" looped_task()\n");
- return ++loops < 5;
-}
-
-
-int task_int_23()
-{
- print(" task_int_23()\n");
- return 23;
-}
-
-int task_int_1()
-{
- print(" task_int_1()\n");
- return 1;
-}
-
-
-class CTest
-{
- pool m_pool;
-public:
- CTest()
- : m_pool(pool(1000))
- {
- }
-};
-
-
-//
-// A demonstration of the thread_pool class
-int main (int , char * const [])
-{
- print("\nWelcome to the threadpool tutorial!\n");
-
- print("\n**************************************\n");
- print("Section 1: Quick Start\n");
-
- //void func()
- {
- print(" Create a new thread pool\n");
- pool tp(2); // tp is handle to the pool
-
- // Add tasks
- tp.schedule(&task_1);
- tp.schedule(&task_2);
- tp.schedule(&task_3);
- tp.schedule(boost::bind(task_with_parameter, 4));
-
- // The pool handle tp is allocated on stack and will
- // be destructed if it gets out of scope. Before the
- // pool is destroyed it waits for its tasks.
- // That means the current thread of execution is
- // blocked at the end of the function
- // (until all tasks are processed).
- // while (&tp){int i = 3; ++i;}
- }
-
- { // Section Futures
- print("\n**************************************\n");
- print("Section 1: Futures\n");
-
- //typedef thread_pool<task_func, fifo_scheduler, static_size, empty_controller, wait_for_all_tasks> test_pool;
-
- pool tp;
-
-// tp.resize(0);
- tp.pending();
-// tp.clear();
- boost::xtime t;
- tp.wait(t);
- bool test = tp.empty();
- if(test)
- {
- test = false;
- }
-
- tp.size_controller().resize(2);
-
- //test_pool::size_controller_type controller = tp.size_controller();
-// controller.resize(5);
-
- schedule(tp, &task_int_1);
- future<int> res = schedule(tp, &task_int_23);
- future<int> res2 = schedule(tp, &task_int_1);
-
- res.wait();
- int value = res.get() + res2.get();
-
- res.cancel();
- res.is_cancelled();
-value ++;
-
-//thread_pool<boost::function0<int>, fifo_scheduler> test2332;
-
-//TODO runnable comile test
- }
-
-
-
- { // Section 2
- print("\n**************************************\n");
- print("Section 2: Controlling scheduling\n");
-
- // Create a lifo_pool: last task in, first task out
- lifo_pool tp(0);
-
- print(" Add tasks (using the pool's schedule function)\n");
- schedule(tp, &task_1);
- schedule(tp, &task_2);
- schedule(tp, &task_3);
-
- // tp.wait(); This would be a deadlock as there are no threads which process the tasks.
-
- print(" Add some threads ...\n");
- tp.size_controller().resize(5);
-
- print(" Wait until all tasks are finished ...\n");
- tp.wait();
- print(" Tasks finished!\n");
- }
-
-
-
- { // Section 3:
- print("\n**************************************\n");
- print("Section 3: Prioritized Tasks\n");
-
- prio_pool tp(0);
-
-
- print(" Add prioritized tasks ...\n");
- schedule(tp, prio_task_func(1, &task_1));
- schedule(tp, prio_task_func(10,&task_2));
- schedule(tp, prio_task_func(5,&task_3));
-
- // Tasks are ordered according to their priority: task_2, task_4, task_3, task_1
-
- print(" Thread added\n");
- tp.size_controller().resize(10);
-
- print(" Wait until all tasks are finished ...\n");
- tp.wait();
- print(" Tasks finished!\n");
- }
-
-
-/* */
- { // Section 5:
- print("\n**************************************\n");
- print("Section 5: Advanced thread pool instantiation\n");
- // Create the pool directly
-/*
-TODO
-boost::shared_ptr<fifo_pool> tp = fifo_pool::create_pool(5);
-
- print(" Add tasks ...\n");
- tp->schedule(&task_1);
- tp->schedule(&task_2);
- tp->schedule(&task_3);
- tp->schedule(looped_task_func(&looped_task, 1500));
-
- print(" Wait until all tasks are finished ...\n");
- tp->wait();
-*/
-
- print(" Tasks finished!\n");
-
- }
-
-
- print("\n**************************************\n");
- print("Tutorial finished!\n");
-
-
-
- { // Section Compile Tests
- print("\n**************************************\n");
- print("Section Compile Tests\n");
-
-
- fifo_pool tp;
- tp.size_controller().resize(0);
- tp.empty();
- }
-
- return 0;
-}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/project-root.jam b/Build/source/utils/asymptote/LspCpp/third_party/threadpool/project-root.jam
deleted file mode 100644
index e94f7232e02..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/threadpool/project-root.jam
+++ /dev/null
@@ -1,2 +0,0 @@
-import os ;
-path-constant BOOST_ROOT : [ os.environ BOOST_ROOT ] ;
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
index c1e2fb3aed3..51d72c0b02a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -1,9 +1,9 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/u/bowman/camp/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/u/bowman/camp/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.84/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.84/LspCpp")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
index 8099e2cdb5f..4f54a7c7a85 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
@@ -1,5 +1,5 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
@@ -56,10 +56,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.84/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.84/LspCpp
# Utility rule file for doc.
@@ -70,8 +70,8 @@ include third_party/uri/CMakeFiles/doc.dir/compiler_depend.make
include third_party/uri/CMakeFiles/doc.dir/progress.make
third_party/uri/CMakeFiles/doc:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen"
- cd /u/bowman/camp/LspCpp/third_party/uri && /bin/doxygen /u/bowman/camp/LspCpp/third_party/uri/Doxyfile
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/Doxyfile
doc: third_party/uri/CMakeFiles/doc
doc: third_party/uri/CMakeFiles/doc.dir/build.make
@@ -82,10 +82,10 @@ third_party/uri/CMakeFiles/doc.dir/build: doc
.PHONY : third_party/uri/CMakeFiles/doc.dir/build
third_party/uri/CMakeFiles/doc.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake
.PHONY : third_party/uri/CMakeFiles/doc.dir/clean
third_party/uri/CMakeFiles/doc.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri /u/bowman/camp/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake --color=$(COLOR)
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.84/LspCpp /usr/local/src/asymptote-2.84/LspCpp/third_party/uri /usr/local/src/asymptote-2.84/LspCpp /usr/local/src/asymptote-2.84/LspCpp/third_party/uri /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : third_party/uri/CMakeFiles/doc.dir/depend
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/CTestTestfile.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/CTestTestfile.cmake
deleted file mode 100644
index 54925527470..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/CTestTestfile.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-# CMake generated Testfile for
-# Source directory: /u/bowman/camp/LspCpp/third_party/uri
-# Build directory: /u/bowman/camp/LspCpp/third_party/uri
-#
-# This file includes the relevant testing commands required for
-# testing this directory and lists subdirectories to be tested as well.
-subdirs("src")
-subdirs("deps/googletest")
-subdirs("test")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile b/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile
index b6a29db6530..40f28a7af0f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/Doxyfile
@@ -128,7 +128,7 @@ FULL_PATH_NAMES = YES
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH = /u/bowman/camp/LspCpp/third_party/uri/include/
+STRIP_FROM_PATH = /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
@@ -626,7 +626,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = /u/bowman/camp/LspCpp/third_party/uri/include
+INPUT = /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -658,7 +658,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
-EXCLUDE = /u/bowman/camp/LspCpp/third_party/uri/include/network/uri/detail
+EXCLUDE = /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -821,7 +821,7 @@ COLS_IN_ALPHA_INDEX = 5
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
-IGNORE_PREFIX = /u/bowman/camp/LspCpp/third_party/uri/uri/src/
+IGNORE_PREFIX = /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/uri/src/
#---------------------------------------------------------------------------
# configuration options related to the HTML output
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/Makefile b/Build/source/utils/asymptote/LspCpp/third_party/uri/Makefile
index faf146e4cf8..0eae21f572a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/Makefile
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/Makefile
@@ -1,5 +1,5 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Default target executed when no arguments are given to make.
default_target: all
@@ -60,10 +60,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.84/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.84/LspCpp
#=============================================================================
# Targets provided globally by CMake.
@@ -135,14 +135,14 @@ install/strip/fast: preinstall/fast
# The main all target
all: cmake_check_build_system
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles /u/bowman/camp/LspCpp/third_party/uri//CMakeFiles/progress.marks
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/all
- $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles 0
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.84/LspCpp/CMakeFiles /usr/local/src/asymptote-2.84/LspCpp/third_party/uri//CMakeFiles/progress.marks
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.84/LspCpp/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/clean
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/clean
.PHONY : clean
# The main clean target
@@ -151,22 +151,22 @@ clean/fast: clean
# Prepare targets for installation.
preinstall: all
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
third_party/uri/CMakeFiles/doc.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/CMakeFiles/doc.dir/rule
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/CMakeFiles/doc.dir/rule
.PHONY : third_party/uri/CMakeFiles/doc.dir/rule
# Convenience name for target.
@@ -175,7 +175,7 @@ doc: third_party/uri/CMakeFiles/doc.dir/rule
# fast build rule for target.
doc/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/CMakeFiles/doc.dir/build.make third_party/uri/CMakeFiles/doc.dir/build
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/CMakeFiles/doc.dir/build.make third_party/uri/CMakeFiles/doc.dir/build
.PHONY : doc/fast
# Help Target
@@ -202,6 +202,6 @@ help:
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/cmake_install.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/cmake_install.cmake
index ba9bcde9087..8682324697f 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/cmake_install.cmake
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/cmake_install.cmake
@@ -1,4 +1,4 @@
-# Install script for directory: /u/bowman/camp/LspCpp/third_party/uri
+# Install script for directory: /usr/local/src/asymptote-2.84/LspCpp/third_party/uri
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
@@ -42,13 +42,13 @@ if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/bin/objdump")
endif()
-if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
- file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE DIRECTORY FILES "/u/bowman/camp/LspCpp/third_party/uri/include")
+if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
+ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE DIRECTORY FILES "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
# Include the install script for each subdirectory.
- include("/u/bowman/camp/LspCpp/third_party/uri/src/cmake_install.cmake")
+ include("/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/cmake_install.cmake")
endif()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/docs/assets/css/style.scss b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/docs/assets/css/style.scss
deleted file mode 100644
index bb30f418da7..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/docs/assets/css/style.scss
+++ /dev/null
@@ -1,5 +0,0 @@
----
----
-
-@import "jekyll-theme-primer";
-@import "main";
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/CMakeDirectoryInformation.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/CMakeDirectoryInformation.cmake
deleted file mode 100644
index d2b940510bb..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/u/bowman/camp/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/u/bowman/camp/LspCpp")
-
-# Force unix paths in dependencies.
-set(CMAKE_FORCE_UNIX_PATHS 1)
-
-
-# The C and CXX include file regular expressions for this directory.
-set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake
deleted file mode 100644
index 7428db6aad0..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc" "third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o" "gcc" "third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make
deleted file mode 100644
index 83aa36ab561..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make
+++ /dev/null
@@ -1,114 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/deps/googletest/CMakeFiles/gtest.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/deps/googletest/CMakeFiles/gtest.dir/flags.make
-
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: third_party/uri/deps/googletest/CMakeFiles/gtest.dir/flags.make
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: third_party/uri/deps/googletest/src/gtest-all.cc
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o -MF CMakeFiles/gtest.dir/src/gtest-all.cc.o.d -o CMakeFiles/gtest.dir/src/gtest-all.cc.o -c /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc
-
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gtest.dir/src/gtest-all.cc.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc > CMakeFiles/gtest.dir/src/gtest-all.cc.i
-
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gtest.dir/src/gtest-all.cc.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc -o CMakeFiles/gtest.dir/src/gtest-all.cc.s
-
-# Object files for target gtest
-gtest_OBJECTS = \
-"CMakeFiles/gtest.dir/src/gtest-all.cc.o"
-
-# External object files for target gtest
-gtest_EXTERNAL_OBJECTS =
-
-lib/libgtest.a: third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
-lib/libgtest.a: third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make
-lib/libgtest.a: third_party/uri/deps/googletest/CMakeFiles/gtest.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library ../../../../lib/libgtest.a"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest.dir/cmake_clean_target.cmake
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gtest.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build: lib/libgtest.a
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build
-
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest.dir/cmake_clean.cmake
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest.dir/clean
-
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/deps/googletest /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/deps/googletest /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake
deleted file mode 100644
index 357994285ec..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../../../../bin/libgtest.pdb"
- "../../../../lib/libgtest.a"
- "CMakeFiles/gtest.dir/src/gtest-all.cc.o"
- "CMakeFiles/gtest.dir/src/gtest-all.cc.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/gtest.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake
deleted file mode 100644
index 1609a82609e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-file(REMOVE_RECURSE
- "../../../../lib/libgtest.a"
-)
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.make
deleted file mode 100644
index 71b2ee69087..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for gtest.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.ts
deleted file mode 100644
index 32ab1fb11c7..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for gtest.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend.make
deleted file mode 100644
index 37ac348dbde..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for gtest.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/flags.make
deleted file mode 100644
index a929d633184..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -I/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -I/u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -Wall -Wshadow -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/link.txt
deleted file mode 100644
index ba5baa87a4c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/link.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/ar qc ../../../../lib/libgtest.a CMakeFiles/gtest.dir/src/gtest-all.cc.o
-/bin/ranlib ../../../../lib/libgtest.a
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/progress.make
deleted file mode 100644
index 251317162d8..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 2
-CMAKE_PROGRESS_2 = 3
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake
deleted file mode 100644
index bf3e1307c73..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc" "third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o" "gcc" "third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make
deleted file mode 100644
index 23c677212b9..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make
+++ /dev/null
@@ -1,114 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/flags.make
-
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/flags.make
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: third_party/uri/deps/googletest/src/gtest_main.cc
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -MF CMakeFiles/gtest_main.dir/src/gtest_main.cc.o.d -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -c /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc
-
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gtest_main.dir/src/gtest_main.cc.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc > CMakeFiles/gtest_main.dir/src/gtest_main.cc.i
-
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gtest_main.dir/src/gtest_main.cc.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.s
-
-# Object files for target gtest_main
-gtest_main_OBJECTS = \
-"CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
-
-# External object files for target gtest_main
-gtest_main_EXTERNAL_OBJECTS =
-
-lib/libgtest_main.a: third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
-lib/libgtest_main.a: third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make
-lib/libgtest_main.a: third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library ../../../../lib/libgtest_main.a"
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest_main.dir/cmake_clean_target.cmake
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gtest_main.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build: lib/libgtest_main.a
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build
-
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/deps/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest_main.dir/cmake_clean.cmake
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/clean
-
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/deps/googletest /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/deps/googletest /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake
deleted file mode 100644
index 3eecc677eb6..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../../../../bin/libgtest_main.pdb"
- "../../../../lib/libgtest_main.a"
- "CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
- "CMakeFiles/gtest_main.dir/src/gtest_main.cc.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/gtest_main.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake
deleted file mode 100644
index f0924c4071b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-file(REMOVE_RECURSE
- "../../../../lib/libgtest_main.a"
-)
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.make
deleted file mode 100644
index 9a6afc065a8..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for gtest_main.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.ts
deleted file mode 100644
index 033891a800d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for gtest_main.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend.make
deleted file mode 100644
index 1d67c1ab524..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for gtest_main.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/flags.make
deleted file mode 100644
index 88d832e00ee..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -Wall -Wshadow -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/link.txt
deleted file mode 100644
index d045b32d848..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/link.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/ar qc ../../../../lib/libgtest_main.a CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
-/bin/ranlib ../../../../lib/libgtest_main.a
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/progress.make
deleted file mode 100644
index 19ce96ee792..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 4
-CMAKE_PROGRESS_2 = 5
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/progress.marks b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/progress.marks
deleted file mode 100644
index b8626c4cff2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeFiles/progress.marks
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CTestTestfile.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CTestTestfile.cmake
deleted file mode 100644
index 1e998f96801..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/CTestTestfile.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-# CMake generated Testfile for
-# Source directory: /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-# Build directory: /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-#
-# This file includes the relevant testing commands required for
-# testing this directory and lists subdirectories to be tested as well.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/Makefile b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/Makefile
deleted file mode 100644
index 742673a1f37..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/Makefile
+++ /dev/null
@@ -1,276 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Default target executed when no arguments are given to make.
-default_target: all
-.PHONY : default_target
-
-# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-.NOTPARALLEL:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-#=============================================================================
-# Targets provided globally by CMake.
-
-# Special rule for the target install/strip
-install/strip: preinstall
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
- /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-.PHONY : install/strip
-
-# Special rule for the target install/strip
-install/strip/fast: preinstall/fast
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
- /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-.PHONY : install/strip/fast
-
-# Special rule for the target install/local
-install/local: preinstall
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
- /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-.PHONY : install/local
-
-# Special rule for the target install/local
-install/local/fast: preinstall/fast
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
- /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-.PHONY : install/local/fast
-
-# Special rule for the target install
-install: preinstall
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
- /usr/bin/cmake -P cmake_install.cmake
-.PHONY : install
-
-# Special rule for the target install
-install/fast: preinstall/fast
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
- /usr/bin/cmake -P cmake_install.cmake
-.PHONY : install/fast
-
-# Special rule for the target list_install_components
-list_install_components:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
-.PHONY : list_install_components
-
-# Special rule for the target list_install_components
-list_install_components/fast: list_install_components
-.PHONY : list_install_components/fast
-
-# Special rule for the target rebuild_cache
-rebuild_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
- /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-.PHONY : rebuild_cache
-
-# Special rule for the target rebuild_cache
-rebuild_cache/fast: rebuild_cache
-.PHONY : rebuild_cache/fast
-
-# Special rule for the target edit_cache
-edit_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
- /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-.PHONY : edit_cache
-
-# Special rule for the target edit_cache
-edit_cache/fast: edit_cache
-.PHONY : edit_cache/fast
-
-# The main all target
-all: cmake_check_build_system
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles /u/bowman/camp/LspCpp/third_party/uri/deps/googletest//CMakeFiles/progress.marks
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/deps/googletest/all
- $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles 0
-.PHONY : all
-
-# The main clean target
-clean:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/deps/googletest/clean
-.PHONY : clean
-
-# The main clean target
-clean/fast: clean
-.PHONY : clean/fast
-
-# Prepare targets for installation.
-preinstall: all
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/deps/googletest/preinstall
-.PHONY : preinstall
-
-# Prepare targets for installation.
-preinstall/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/deps/googletest/preinstall
-.PHONY : preinstall/fast
-
-# clear depends
-depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-.PHONY : depend
-
-# Convenience name for target.
-third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/rule
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/rule
-
-# Convenience name for target.
-gtest_main: third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/rule
-.PHONY : gtest_main
-
-# fast build rule for target.
-gtest_main/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build
-.PHONY : gtest_main/fast
-
-# Convenience name for target.
-third_party/uri/deps/googletest/CMakeFiles/gtest.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/deps/googletest/CMakeFiles/gtest.dir/rule
-.PHONY : third_party/uri/deps/googletest/CMakeFiles/gtest.dir/rule
-
-# Convenience name for target.
-gtest: third_party/uri/deps/googletest/CMakeFiles/gtest.dir/rule
-.PHONY : gtest
-
-# fast build rule for target.
-gtest/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build
-.PHONY : gtest/fast
-
-src/gtest-all.o: src/gtest-all.cc.o
-.PHONY : src/gtest-all.o
-
-# target to build an object file
-src/gtest-all.cc.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
-.PHONY : src/gtest-all.cc.o
-
-src/gtest-all.i: src/gtest-all.cc.i
-.PHONY : src/gtest-all.i
-
-# target to preprocess a source file
-src/gtest-all.cc.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.i
-.PHONY : src/gtest-all.cc.i
-
-src/gtest-all.s: src/gtest-all.cc.s
-.PHONY : src/gtest-all.s
-
-# target to generate assembly for a file
-src/gtest-all.cc.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.s
-.PHONY : src/gtest-all.cc.s
-
-src/gtest_main.o: src/gtest_main.cc.o
-.PHONY : src/gtest_main.o
-
-# target to build an object file
-src/gtest_main.cc.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
-.PHONY : src/gtest_main.cc.o
-
-src/gtest_main.i: src/gtest_main.cc.i
-.PHONY : src/gtest_main.i
-
-# target to preprocess a source file
-src/gtest_main.cc.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.i
-.PHONY : src/gtest_main.cc.i
-
-src/gtest_main.s: src/gtest_main.cc.s
-.PHONY : src/gtest_main.s
-
-# target to generate assembly for a file
-src/gtest_main.cc.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/build.make third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.s
-.PHONY : src/gtest_main.cc.s
-
-# Help Target
-help:
- @echo "The following are some of the valid targets for this Makefile:"
- @echo "... all (the default if no target is provided)"
- @echo "... clean"
- @echo "... depend"
- @echo "... edit_cache"
- @echo "... install"
- @echo "... install/local"
- @echo "... install/strip"
- @echo "... list_install_components"
- @echo "... rebuild_cache"
- @echo "... gtest"
- @echo "... gtest_main"
- @echo "... src/gtest-all.o"
- @echo "... src/gtest-all.i"
- @echo "... src/gtest-all.s"
- @echo "... src/gtest_main.o"
- @echo "... src/gtest_main.i"
- @echo "... src/gtest_main.s"
-.PHONY : help
-
-
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-.PHONY : cmake_check_build_system
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/cmake_install.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/cmake_install.cmake
deleted file mode 100644
index 5bbd00f6201..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/deps/googletest/cmake_install.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-# Install script for directory: /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-# Set the install prefix
-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
- set(CMAKE_INSTALL_PREFIX "/usr/local")
-endif()
-string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
- if(BUILD_TYPE)
- string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
- CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
- else()
- set(CMAKE_INSTALL_CONFIG_NAME "RelWithDebInfo")
- endif()
- message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-endif()
-
-# Set the component getting installed.
-if(NOT CMAKE_INSTALL_COMPONENT)
- if(COMPONENT)
- message(STATUS "Install component: \"${COMPONENT}\"")
- set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
- else()
- set(CMAKE_INSTALL_COMPONENT)
- endif()
-endif()
-
-# Install shared libraries without execute permission?
-if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
- set(CMAKE_INSTALL_SO_NO_EXE "0")
-endif()
-
-# Is this installation the result of a crosscompile?
-if(NOT DEFINED CMAKE_CROSSCOMPILING)
- set(CMAKE_CROSSCOMPILING "FALSE")
-endif()
-
-# Set default install directory permissions.
-if(NOT DEFINED CMAKE_OBJDUMP)
- set(CMAKE_OBJDUMP "/bin/objdump")
-endif()
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
index c1e2fb3aed3..51d72c0b02a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -1,9 +1,9 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/u/bowman/camp/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/u/bowman/camp/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.84/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.84/LspCpp")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
index ddfd0ae49c3..83cd64d4882 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
@@ -8,14 +8,14 @@ set(CMAKE_DEPENDS_LANGUAGES
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_normalize.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_resolve.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/uri.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/uri_builder.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o.d"
- "/u/bowman/camp/LspCpp/third_party/uri/src/uri_errors.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_builder.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o.d"
+ "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_errors.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o.d"
)
# Targets to which this target links.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
index 1b0e7fcb666..83c7d48d5ee 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
@@ -1,5 +1,5 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
@@ -56,10 +56,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.84/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.84/LspCpp
# Include any dependencies generated for this target.
include third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
@@ -75,114 +75,114 @@ include third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/uri.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o -MF CMakeFiles/network-uri.dir/uri.cpp.o.d -o CMakeFiles/network-uri.dir/uri.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/uri.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o -MF CMakeFiles/network-uri.dir/uri.cpp.o.d -o CMakeFiles/network-uri.dir/uri.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/uri.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/uri.cpp > CMakeFiles/network-uri.dir/uri.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri.cpp > CMakeFiles/network-uri.dir/uri.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/uri.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/uri.cpp -o CMakeFiles/network-uri.dir/uri.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri.cpp -o CMakeFiles/network-uri.dir/uri.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/uri_builder.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o -MF CMakeFiles/network-uri.dir/uri_builder.cpp.o.d -o CMakeFiles/network-uri.dir/uri_builder.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/uri_builder.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o -MF CMakeFiles/network-uri.dir/uri_builder.cpp.o.d -o CMakeFiles/network-uri.dir/uri_builder.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_builder.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/uri_builder.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/uri_builder.cpp > CMakeFiles/network-uri.dir/uri_builder.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_builder.cpp > CMakeFiles/network-uri.dir/uri_builder.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/uri_builder.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/uri_builder.cpp -o CMakeFiles/network-uri.dir/uri_builder.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_builder.cpp -o CMakeFiles/network-uri.dir/uri_builder.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/uri_errors.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o -MF CMakeFiles/network-uri.dir/uri_errors.cpp.o.d -o CMakeFiles/network-uri.dir/uri_errors.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/uri_errors.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o -MF CMakeFiles/network-uri.dir/uri_errors.cpp.o.d -o CMakeFiles/network-uri.dir/uri_errors.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_errors.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/uri_errors.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/uri_errors.cpp > CMakeFiles/network-uri.dir/uri_errors.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_errors.cpp > CMakeFiles/network-uri.dir/uri_errors.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/uri_errors.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/uri_errors.cpp -o CMakeFiles/network-uri.dir/uri_errors.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_errors.cpp -o CMakeFiles/network-uri.dir/uri_errors.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/detail/uri_parse.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse.cpp > CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.cpp > CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/detail/uri_parse_authority.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp > CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp > CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/detail/uri_advance_parts.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp > CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp > CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/detail/uri_normalize.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_normalize.cpp > CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.cpp > CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_normalize.cpp -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.cpp -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/detail/uri_resolve.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -c /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_resolve.cpp > CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.cpp > CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/src/detail/uri_resolve.cpp -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.cpp -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
# Object files for target network-uri
network__uri_OBJECTS = \
@@ -208,19 +208,19 @@ third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri
third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri.dir/build.make
third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX static library libnetwork-uri.a"
- cd /u/bowman/camp/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean_target.cmake
- cd /u/bowman/camp/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/network-uri.dir/link.txt --verbose=$(VERBOSE)
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/usr/local/src/asymptote-2.84/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX static library libnetwork-uri.a"
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean_target.cmake
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/network-uri.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
third_party/uri/src/CMakeFiles/network-uri.dir/build: third_party/uri/src/libnetwork-uri.a
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/build
third_party/uri/src/CMakeFiles/network-uri.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean.cmake
+ cd /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean.cmake
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/clean
third_party/uri/src/CMakeFiles/network-uri.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/src /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/src /u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake --color=$(COLOR)
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.84/LspCpp /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src /usr/local/src/asymptote-2.84/LspCpp /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/depend
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
new file mode 100644
index 00000000000..d7989330a87
--- /dev/null
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
@@ -0,0 +1,1723 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
+ /usr/include/stdc-predef.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/include/c++/12/string
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/include/bits/locale.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/include/c++/12/cassert
+ /usr/include/assert.h
+ /usr/include/c++/12/limits
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
+ /usr/include/stdc-predef.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/include/bits/locale.h
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/string
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/include/c++/12/functional
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/std_function.h
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/include/c++/12/cassert
+ /usr/include/assert.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/include/c++/12/cstring
+ /usr/include/string.h
+ /usr/include/strings.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
+ /usr/include/c++/12/vector
+ /usr/include/c++/12/bits/stl_vector.h
+ /usr/include/c++/12/bits/stl_bvector.h
+ /usr/include/c++/12/bits/vector.tcc
+ /usr/include/c++/12/locale
+ /usr/include/c++/12/bits/locale_facets.h
+ /usr/include/c++/12/cwctype
+ /usr/include/wctype.h
+ /usr/include/bits/wctype-wchar.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h
+ /usr/include/c++/12/bits/locale_facets.tcc
+ /usr/include/c++/12/bits/locale_facets_nonio.h
+ /usr/include/c++/12/ctime
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h
+ /usr/include/libintl.h
+ /usr/include/c++/12/bits/codecvt.h
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc
+ /usr/include/c++/12/bits/locale_conv.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/algorithm.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/algorithm_split.hpp
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.cpp
+ /usr/include/stdc-predef.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/include/c++/12/string
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/include/bits/locale.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/include/c++/12/cassert
+ /usr/include/assert.h
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/include/c++/12/limits
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/grammar.hpp
+ /usr/include/c++/12/locale
+ /usr/include/c++/12/bits/locale_facets.h
+ /usr/include/c++/12/cwctype
+ /usr/include/wctype.h
+ /usr/include/bits/wctype-wchar.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h
+ /usr/include/c++/12/bits/locale_facets.tcc
+ /usr/include/c++/12/bits/locale_facets_nonio.h
+ /usr/include/c++/12/ctime
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h
+ /usr/include/libintl.h
+ /usr/include/c++/12/bits/codecvt.h
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc
+ /usr/include/c++/12/bits/locale_conv.h
+ /usr/include/c++/12/cstring
+ /usr/include/string.h
+ /usr/include/strings.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
+ /usr/include/stdc-predef.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/include/c++/12/string
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/include/bits/locale.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/include/c++/12/cassert
+ /usr/include/assert.h
+ /usr/include/c++/12/limits
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/grammar.hpp
+ /usr/include/c++/12/locale
+ /usr/include/c++/12/bits/locale_facets.h
+ /usr/include/c++/12/cwctype
+ /usr/include/wctype.h
+ /usr/include/bits/wctype-wchar.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h
+ /usr/include/c++/12/bits/locale_facets.tcc
+ /usr/include/c++/12/bits/locale_facets_nonio.h
+ /usr/include/c++/12/ctime
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h
+ /usr/include/libintl.h
+ /usr/include/c++/12/bits/codecvt.h
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc
+ /usr/include/c++/12/bits/locale_conv.h
+ /usr/include/c++/12/cstring
+ /usr/include/string.h
+ /usr/include/strings.h
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
+ /usr/include/stdc-predef.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/include/bits/locale.h
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/string
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/include/c++/12/functional
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/std_function.h
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/include/c++/12/cassert
+ /usr/include/assert.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/include/c++/12/cstring
+ /usr/include/string.h
+ /usr/include/strings.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/algorithm_find.hpp
+ /usr/include/c++/12/cstddef
+
+third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri.cpp
+ /usr/include/stdc-predef.h
+ /usr/include/c++/12/cassert
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/assert.h
+ /usr/include/c++/12/locale
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/include/bits/locale.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/string
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/bits/locale_facets.h
+ /usr/include/c++/12/cwctype
+ /usr/include/wctype.h
+ /usr/include/bits/wctype-wchar.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h
+ /usr/include/c++/12/bits/locale_facets.tcc
+ /usr/include/c++/12/bits/locale_facets_nonio.h
+ /usr/include/c++/12/ctime
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h
+ /usr/include/libintl.h
+ /usr/include/c++/12/bits/codecvt.h
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc
+ /usr/include/c++/12/bits/locale_conv.h
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/include/c++/12/functional
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/std_function.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/include/c++/12/cstring
+ /usr/include/string.h
+ /usr/include/strings.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
+ /usr/include/c++/12/vector
+ /usr/include/c++/12/bits/stl_vector.h
+ /usr/include/c++/12/bits/stl_bvector.h
+ /usr/include/c++/12/bits/vector.tcc
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/algorithm.hpp
+
+third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_builder.cpp
+ /usr/include/stdc-predef.h
+ /usr/include/c++/12/locale
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/include/bits/locale.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/locale_classes.h
+ /usr/include/c++/12/string
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/include/c++/12/ext/atomicity.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h
+ /usr/include/pthread.h
+ /usr/include/sched.h
+ /usr/include/bits/sched.h
+ /usr/include/bits/types/struct_sched_param.h
+ /usr/include/bits/cpu-set.h
+ /usr/include/time.h
+ /usr/include/bits/time.h
+ /usr/include/bits/timex.h
+ /usr/include/bits/types/struct_tm.h
+ /usr/include/bits/types/struct_itimerspec.h
+ /usr/include/bits/setjmp.h
+ /usr/include/bits/types/struct___jmp_buf_tag.h
+ /usr/include/bits/pthread_stack_min-dynamic.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h
+ /usr/include/sys/single_threaded.h
+ /usr/include/c++/12/bits/locale_classes.tcc
+ /usr/include/c++/12/bits/locale_facets.h
+ /usr/include/c++/12/cwctype
+ /usr/include/wctype.h
+ /usr/include/bits/wctype-wchar.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h
+ /usr/include/c++/12/bits/ios_base.h
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/include/c++/12/streambuf
+ /usr/include/c++/12/bits/streambuf.tcc
+ /usr/include/c++/12/bits/streambuf_iterator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h
+ /usr/include/c++/12/bits/locale_facets.tcc
+ /usr/include/c++/12/bits/locale_facets_nonio.h
+ /usr/include/c++/12/ctime
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h
+ /usr/include/libintl.h
+ /usr/include/c++/12/bits/codecvt.h
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc
+ /usr/include/c++/12/bits/locale_conv.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/include/c++/12/utility
+ /usr/include/c++/12/bits/stl_relops.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/include/c++/12/iterator
+ /usr/include/c++/12/bits/stream_iterator.h
+ /usr/include/c++/12/algorithm
+ /usr/include/c++/12/bits/stl_algo.h
+ /usr/include/c++/12/bits/algorithmfwd.h
+ /usr/include/c++/12/bits/stl_heap.h
+ /usr/include/c++/12/bits/stl_tempbuf.h
+ /usr/include/c++/12/bits/uniform_int_dist.h
+ /usr/include/c++/12/functional
+ /usr/include/c++/12/tuple
+ /usr/include/c++/12/bits/uses_allocator.h
+ /usr/include/c++/12/bits/std_function.h
+ /usr/include/c++/12/memory
+ /usr/include/c++/12/bits/stl_uninitialized.h
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h
+ /usr/include/c++/12/bits/align.h
+ /usr/include/c++/12/bit
+ /usr/include/c++/12/bits/unique_ptr.h
+ /usr/include/c++/12/bits/shared_ptr.h
+ /usr/include/c++/12/bits/shared_ptr_base.h
+ /usr/include/c++/12/bits/allocated_ptr.h
+ /usr/include/c++/12/ext/aligned_buffer.h
+ /usr/include/c++/12/ext/concurrence.h
+ /usr/include/c++/12/bits/shared_ptr_atomic.h
+ /usr/include/c++/12/bits/atomic_base.h
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h
+ /usr/include/c++/12/backward/auto_ptr.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/include/c++/12/cassert
+ /usr/include/assert.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/include/c++/12/cstring
+ /usr/include/string.h
+ /usr/include/strings.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/detail/algorithm.hpp
+
+third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/uri_errors.cpp
+ /usr/include/stdc-predef.h
+ /usr/include/c++/12/string
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h
+ /usr/include/bits/wordsize.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h
+ /usr/include/features.h
+ /usr/include/features-time64.h
+ /usr/include/bits/timesize.h
+ /usr/include/sys/cdefs.h
+ /usr/include/bits/long-double.h
+ /usr/include/gnu/stubs.h
+ /usr/include/gnu/stubs-64.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h
+ /usr/include/c++/12/bits/stringfwd.h
+ /usr/include/c++/12/bits/memoryfwd.h
+ /usr/include/c++/12/bits/char_traits.h
+ /usr/include/c++/12/bits/postypes.h
+ /usr/include/c++/12/cwchar
+ /usr/include/wchar.h
+ /usr/include/bits/libc-header-start.h
+ /usr/include/bits/floatn.h
+ /usr/include/bits/floatn-common.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h
+ /usr/include/bits/wchar.h
+ /usr/include/bits/types/wint_t.h
+ /usr/include/bits/types/mbstate_t.h
+ /usr/include/bits/types/__mbstate_t.h
+ /usr/include/bits/types/__FILE.h
+ /usr/include/bits/types/FILE.h
+ /usr/include/bits/types/locale_t.h
+ /usr/include/bits/types/__locale_t.h
+ /usr/include/c++/12/type_traits
+ /usr/include/c++/12/cstdint
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h
+ /usr/include/stdint.h
+ /usr/include/bits/types.h
+ /usr/include/bits/typesizes.h
+ /usr/include/bits/time64.h
+ /usr/include/bits/stdint-intn.h
+ /usr/include/bits/stdint-uintn.h
+ /usr/include/c++/12/bits/allocator.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h
+ /usr/include/c++/12/bits/new_allocator.h
+ /usr/include/c++/12/new
+ /usr/include/c++/12/bits/exception.h
+ /usr/include/c++/12/bits/functexcept.h
+ /usr/include/c++/12/bits/exception_defines.h
+ /usr/include/c++/12/bits/move.h
+ /usr/include/c++/12/bits/cpp_type_traits.h
+ /usr/include/c++/12/bits/localefwd.h
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h
+ /usr/include/c++/12/clocale
+ /usr/include/locale.h
+ /usr/include/bits/locale.h
+ /usr/include/c++/12/iosfwd
+ /usr/include/c++/12/cctype
+ /usr/include/ctype.h
+ /usr/include/bits/endian.h
+ /usr/include/bits/endianness.h
+ /usr/include/c++/12/bits/ostream_insert.h
+ /usr/include/c++/12/bits/cxxabi_forced.h
+ /usr/include/c++/12/bits/stl_iterator_base_types.h
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/12/bits/concept_check.h
+ /usr/include/c++/12/debug/assertions.h
+ /usr/include/c++/12/bits/stl_iterator.h
+ /usr/include/c++/12/ext/type_traits.h
+ /usr/include/c++/12/bits/ptr_traits.h
+ /usr/include/c++/12/bits/stl_function.h
+ /usr/include/c++/12/backward/binders.h
+ /usr/include/c++/12/ext/numeric_traits.h
+ /usr/include/c++/12/bits/stl_algobase.h
+ /usr/include/c++/12/bits/stl_pair.h
+ /usr/include/c++/12/bits/utility.h
+ /usr/include/c++/12/debug/debug.h
+ /usr/include/c++/12/bits/predefined_ops.h
+ /usr/include/c++/12/bits/refwrap.h
+ /usr/include/c++/12/bits/invoke.h
+ /usr/include/c++/12/bits/range_access.h
+ /usr/include/c++/12/initializer_list
+ /usr/include/c++/12/bits/basic_string.h
+ /usr/include/c++/12/ext/alloc_traits.h
+ /usr/include/c++/12/bits/alloc_traits.h
+ /usr/include/c++/12/bits/stl_construct.h
+ /usr/include/c++/12/ext/string_conversions.h
+ /usr/include/c++/12/cstdlib
+ /usr/include/stdlib.h
+ /usr/include/bits/waitflags.h
+ /usr/include/bits/waitstatus.h
+ /usr/include/sys/types.h
+ /usr/include/bits/types/clock_t.h
+ /usr/include/bits/types/clockid_t.h
+ /usr/include/bits/types/time_t.h
+ /usr/include/bits/types/timer_t.h
+ /usr/include/endian.h
+ /usr/include/bits/byteswap.h
+ /usr/include/bits/uintn-identity.h
+ /usr/include/sys/select.h
+ /usr/include/bits/select.h
+ /usr/include/bits/types/sigset_t.h
+ /usr/include/bits/types/__sigset_t.h
+ /usr/include/bits/types/struct_timeval.h
+ /usr/include/bits/types/struct_timespec.h
+ /usr/include/bits/pthreadtypes.h
+ /usr/include/bits/thread-shared-types.h
+ /usr/include/bits/pthreadtypes-arch.h
+ /usr/include/bits/atomic_wide_counter.h
+ /usr/include/bits/struct_mutex.h
+ /usr/include/bits/struct_rwlock.h
+ /usr/include/alloca.h
+ /usr/include/bits/stdlib-bsearch.h
+ /usr/include/bits/stdlib-float.h
+ /usr/include/c++/12/bits/std_abs.h
+ /usr/include/c++/12/cstdio
+ /usr/include/stdio.h
+ /usr/include/bits/types/__fpos_t.h
+ /usr/include/bits/types/__fpos64_t.h
+ /usr/include/bits/types/struct_FILE.h
+ /usr/include/bits/types/cookie_io_functions_t.h
+ /usr/include/bits/stdio_lim.h
+ /usr/include/bits/stdio.h
+ /usr/include/c++/12/cerrno
+ /usr/include/errno.h
+ /usr/include/bits/errno.h
+ /usr/include/linux/errno.h
+ /usr/include/asm/errno.h
+ /usr/include/asm-generic/errno.h
+ /usr/include/asm-generic/errno-base.h
+ /usr/include/bits/types/error_t.h
+ /usr/include/c++/12/bits/charconv.h
+ /usr/include/c++/12/bits/functional_hash.h
+ /usr/include/c++/12/bits/hash_bytes.h
+ /usr/include/c++/12/bits/basic_string.tcc
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/include/c++/12/system_error
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h
+ /usr/include/c++/12/stdexcept
+ /usr/include/c++/12/exception
+ /usr/include/c++/12/bits/exception_ptr.h
+ /usr/include/c++/12/bits/cxxabi_init_exception.h
+ /usr/include/c++/12/typeinfo
+ /usr/include/c++/12/bits/nested_exception.h
+ /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include/network/uri/config.hpp
+
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
index bb6f743826d..d8013e34c38 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
@@ -1,2 +1,2215 @@
-# Empty compiler generated dependencies file for network-uri.
-# This may be replaced when dependencies are built.
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/detail/uri_advance_parts.cpp \
+ /usr/include/stdc-predef.h \
+ third_party/uri/src/detail/uri_advance_parts.hpp \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/include/bits/locale.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ third_party/uri/include/network/optional.hpp \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ third_party/uri/include/network/string_view.hpp \
+ /usr/include/c++/12/cassert \
+ /usr/include/assert.h \
+ /usr/include/c++/12/limits
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/detail/uri_normalize.cpp \
+ /usr/include/stdc-predef.h \
+ third_party/uri/src/detail/uri_normalize.hpp \
+ third_party/uri/include/network/uri/uri.hpp \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/include/bits/locale.h \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ /usr/include/c++/12/functional \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/std_function.h \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h \
+ third_party/uri/include/network/string_view.hpp \
+ /usr/include/c++/12/cassert \
+ /usr/include/assert.h \
+ third_party/uri/include/network/optional.hpp \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ third_party/uri/include/network/uri/config.hpp \
+ third_party/uri/include/network/uri/uri_errors.hpp \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ third_party/uri/include/network/uri/detail/encode.hpp \
+ /usr/include/c++/12/cstring \
+ /usr/include/string.h \
+ /usr/include/strings.h \
+ third_party/uri/include/network/uri/detail/decode.hpp \
+ third_party/uri/include/network/uri/detail/translate.hpp \
+ third_party/uri/include/network/uri/uri_builder.hpp \
+ third_party/uri/src/detail/uri_percent_encode.hpp \
+ /usr/include/c++/12/vector \
+ /usr/include/c++/12/bits/stl_vector.h \
+ /usr/include/c++/12/bits/stl_bvector.h \
+ /usr/include/c++/12/bits/vector.tcc \
+ /usr/include/c++/12/locale \
+ /usr/include/c++/12/bits/locale_facets.h \
+ /usr/include/c++/12/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/bits/wctype-wchar.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h \
+ /usr/include/c++/12/bits/locale_facets.tcc \
+ /usr/include/c++/12/bits/locale_facets_nonio.h \
+ /usr/include/c++/12/ctime \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h \
+ /usr/include/libintl.h \
+ /usr/include/c++/12/bits/codecvt.h \
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/12/bits/locale_conv.h \
+ third_party/uri/src/detail/algorithm.hpp \
+ third_party/uri/src/detail/algorithm_split.hpp
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/detail/uri_parse.cpp \
+ /usr/include/stdc-predef.h \
+ third_party/uri/src/detail/uri_parse.hpp \
+ third_party/uri/include/network/string_view.hpp \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/include/bits/locale.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ /usr/include/c++/12/cassert \
+ /usr/include/assert.h \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ /usr/include/c++/12/limits \
+ third_party/uri/src/detail/grammar.hpp \
+ /usr/include/c++/12/locale \
+ /usr/include/c++/12/bits/locale_facets.h \
+ /usr/include/c++/12/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/bits/wctype-wchar.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h \
+ /usr/include/c++/12/bits/locale_facets.tcc \
+ /usr/include/c++/12/bits/locale_facets_nonio.h \
+ /usr/include/c++/12/ctime \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h \
+ /usr/include/libintl.h \
+ /usr/include/c++/12/bits/codecvt.h \
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/12/bits/locale_conv.h \
+ /usr/include/c++/12/cstring \
+ /usr/include/string.h \
+ /usr/include/strings.h \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ third_party/uri/include/network/optional.hpp \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/detail/uri_parse_authority.cpp \
+ /usr/include/stdc-predef.h \
+ third_party/uri/src/detail/uri_parse_authority.hpp \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/include/bits/locale.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ third_party/uri/include/network/optional.hpp \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ third_party/uri/include/network/string_view.hpp \
+ /usr/include/c++/12/cassert \
+ /usr/include/assert.h \
+ /usr/include/c++/12/limits \
+ third_party/uri/src/detail/grammar.hpp \
+ /usr/include/c++/12/locale \
+ /usr/include/c++/12/bits/locale_facets.h \
+ /usr/include/c++/12/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/bits/wctype-wchar.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h \
+ /usr/include/c++/12/bits/locale_facets.tcc \
+ /usr/include/c++/12/bits/locale_facets_nonio.h \
+ /usr/include/c++/12/ctime \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h \
+ /usr/include/libintl.h \
+ /usr/include/c++/12/bits/codecvt.h \
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/12/bits/locale_conv.h \
+ /usr/include/c++/12/cstring \
+ /usr/include/string.h \
+ /usr/include/strings.h
+
+third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/detail/uri_resolve.cpp \
+ /usr/include/stdc-predef.h \
+ third_party/uri/src/detail/uri_resolve.hpp \
+ third_party/uri/include/network/uri/uri.hpp \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/include/bits/locale.h \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ /usr/include/c++/12/functional \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/std_function.h \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h \
+ third_party/uri/include/network/string_view.hpp \
+ /usr/include/c++/12/cassert \
+ /usr/include/assert.h \
+ third_party/uri/include/network/optional.hpp \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ third_party/uri/include/network/uri/config.hpp \
+ third_party/uri/include/network/uri/uri_errors.hpp \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ third_party/uri/include/network/uri/detail/encode.hpp \
+ /usr/include/c++/12/cstring \
+ /usr/include/string.h \
+ /usr/include/strings.h \
+ third_party/uri/include/network/uri/detail/decode.hpp \
+ third_party/uri/include/network/uri/detail/translate.hpp \
+ third_party/uri/include/network/uri/uri_builder.hpp \
+ third_party/uri/src/detail/algorithm_find.hpp \
+ /usr/include/c++/12/cstddef
+
+third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/uri.cpp \
+ /usr/include/stdc-predef.h \
+ /usr/include/c++/12/cassert \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/assert.h \
+ /usr/include/c++/12/locale \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/include/bits/locale.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/bits/locale_facets.h \
+ /usr/include/c++/12/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/bits/wctype-wchar.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h \
+ /usr/include/c++/12/bits/locale_facets.tcc \
+ /usr/include/c++/12/bits/locale_facets_nonio.h \
+ /usr/include/c++/12/ctime \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h \
+ /usr/include/libintl.h \
+ /usr/include/c++/12/bits/codecvt.h \
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/12/bits/locale_conv.h \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ /usr/include/c++/12/functional \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/std_function.h \
+ third_party/uri/include/network/uri/uri.hpp \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h \
+ third_party/uri/include/network/string_view.hpp \
+ third_party/uri/include/network/optional.hpp \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ third_party/uri/include/network/uri/config.hpp \
+ third_party/uri/include/network/uri/uri_errors.hpp \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ third_party/uri/include/network/uri/detail/encode.hpp \
+ /usr/include/c++/12/cstring \
+ /usr/include/string.h \
+ /usr/include/strings.h \
+ third_party/uri/include/network/uri/detail/decode.hpp \
+ third_party/uri/include/network/uri/detail/translate.hpp \
+ third_party/uri/include/network/uri/uri_builder.hpp \
+ third_party/uri/src/detail/uri_parse.hpp \
+ third_party/uri/src/detail/uri_advance_parts.hpp \
+ third_party/uri/src/detail/uri_percent_encode.hpp \
+ /usr/include/c++/12/vector \
+ /usr/include/c++/12/bits/stl_vector.h \
+ /usr/include/c++/12/bits/stl_bvector.h \
+ /usr/include/c++/12/bits/vector.tcc \
+ third_party/uri/src/detail/uri_normalize.hpp \
+ third_party/uri/src/detail/uri_resolve.hpp \
+ third_party/uri/src/detail/algorithm.hpp
+
+third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/uri_builder.cpp \
+ /usr/include/stdc-predef.h \
+ /usr/include/c++/12/locale \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/include/bits/locale.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/locale_classes.h \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ /usr/include/c++/12/ext/atomicity.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h \
+ /usr/include/pthread.h \
+ /usr/include/sched.h \
+ /usr/include/bits/sched.h \
+ /usr/include/bits/types/struct_sched_param.h \
+ /usr/include/bits/cpu-set.h \
+ /usr/include/time.h \
+ /usr/include/bits/time.h \
+ /usr/include/bits/timex.h \
+ /usr/include/bits/types/struct_tm.h \
+ /usr/include/bits/types/struct_itimerspec.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/bits/pthread_stack_min-dynamic.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h \
+ /usr/include/sys/single_threaded.h \
+ /usr/include/c++/12/bits/locale_classes.tcc \
+ /usr/include/c++/12/bits/locale_facets.h \
+ /usr/include/c++/12/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/bits/wctype-wchar.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h \
+ /usr/include/c++/12/bits/ios_base.h \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ /usr/include/c++/12/streambuf \
+ /usr/include/c++/12/bits/streambuf.tcc \
+ /usr/include/c++/12/bits/streambuf_iterator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h \
+ /usr/include/c++/12/bits/locale_facets.tcc \
+ /usr/include/c++/12/bits/locale_facets_nonio.h \
+ /usr/include/c++/12/ctime \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h \
+ /usr/include/libintl.h \
+ /usr/include/c++/12/bits/codecvt.h \
+ /usr/include/c++/12/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/12/bits/locale_conv.h \
+ third_party/uri/include/network/uri/uri_builder.hpp \
+ /usr/include/c++/12/utility \
+ /usr/include/c++/12/bits/stl_relops.h \
+ third_party/uri/include/network/uri/uri.hpp \
+ /usr/include/c++/12/iterator \
+ /usr/include/c++/12/bits/stream_iterator.h \
+ /usr/include/c++/12/algorithm \
+ /usr/include/c++/12/bits/stl_algo.h \
+ /usr/include/c++/12/bits/algorithmfwd.h \
+ /usr/include/c++/12/bits/stl_heap.h \
+ /usr/include/c++/12/bits/stl_tempbuf.h \
+ /usr/include/c++/12/bits/uniform_int_dist.h \
+ /usr/include/c++/12/functional \
+ /usr/include/c++/12/tuple \
+ /usr/include/c++/12/bits/uses_allocator.h \
+ /usr/include/c++/12/bits/std_function.h \
+ /usr/include/c++/12/memory \
+ /usr/include/c++/12/bits/stl_uninitialized.h \
+ /usr/include/c++/12/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/12/bits/align.h \
+ /usr/include/c++/12/bit \
+ /usr/include/c++/12/bits/unique_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr.h \
+ /usr/include/c++/12/bits/shared_ptr_base.h \
+ /usr/include/c++/12/bits/allocated_ptr.h \
+ /usr/include/c++/12/ext/aligned_buffer.h \
+ /usr/include/c++/12/ext/concurrence.h \
+ /usr/include/c++/12/bits/shared_ptr_atomic.h \
+ /usr/include/c++/12/bits/atomic_base.h \
+ /usr/include/c++/12/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/12/backward/auto_ptr.h \
+ third_party/uri/include/network/string_view.hpp \
+ /usr/include/c++/12/cassert \
+ /usr/include/assert.h \
+ third_party/uri/include/network/optional.hpp \
+ third_party/uri/include/network/uri/config.hpp \
+ third_party/uri/include/network/uri/uri_errors.hpp \
+ third_party/uri/include/network/uri/detail/uri_parts.hpp \
+ third_party/uri/include/network/uri/detail/encode.hpp \
+ /usr/include/c++/12/cstring \
+ /usr/include/string.h \
+ /usr/include/strings.h \
+ third_party/uri/include/network/uri/detail/decode.hpp \
+ third_party/uri/include/network/uri/detail/translate.hpp \
+ third_party/uri/src/detail/uri_normalize.hpp \
+ third_party/uri/src/detail/uri_parse_authority.hpp \
+ third_party/uri/src/detail/algorithm.hpp
+
+third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/uri_errors.cpp \
+ /usr/include/stdc-predef.h \
+ /usr/include/c++/12/string \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h \
+ /usr/include/bits/wordsize.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h \
+ /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/bits/timesize.h \
+ /usr/include/sys/cdefs.h \
+ /usr/include/bits/long-double.h \
+ /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h \
+ /usr/include/c++/12/bits/stringfwd.h \
+ /usr/include/c++/12/bits/memoryfwd.h \
+ /usr/include/c++/12/bits/char_traits.h \
+ /usr/include/c++/12/bits/postypes.h \
+ /usr/include/c++/12/cwchar \
+ /usr/include/wchar.h \
+ /usr/include/bits/libc-header-start.h \
+ /usr/include/bits/floatn.h \
+ /usr/include/bits/floatn-common.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/include/bits/types/wint_t.h \
+ /usr/include/bits/types/mbstate_t.h \
+ /usr/include/bits/types/__mbstate_t.h \
+ /usr/include/bits/types/__FILE.h \
+ /usr/include/bits/types/FILE.h \
+ /usr/include/bits/types/locale_t.h \
+ /usr/include/bits/types/__locale_t.h \
+ /usr/include/c++/12/type_traits \
+ /usr/include/c++/12/cstdint \
+ /usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h \
+ /usr/include/stdint.h \
+ /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/include/bits/time64.h \
+ /usr/include/bits/stdint-intn.h \
+ /usr/include/bits/stdint-uintn.h \
+ /usr/include/c++/12/bits/allocator.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h \
+ /usr/include/c++/12/bits/new_allocator.h \
+ /usr/include/c++/12/new \
+ /usr/include/c++/12/bits/exception.h \
+ /usr/include/c++/12/bits/functexcept.h \
+ /usr/include/c++/12/bits/exception_defines.h \
+ /usr/include/c++/12/bits/move.h \
+ /usr/include/c++/12/bits/cpp_type_traits.h \
+ /usr/include/c++/12/bits/localefwd.h \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h \
+ /usr/include/c++/12/clocale \
+ /usr/include/locale.h \
+ /usr/include/bits/locale.h \
+ /usr/include/c++/12/iosfwd \
+ /usr/include/c++/12/cctype \
+ /usr/include/ctype.h \
+ /usr/include/bits/endian.h \
+ /usr/include/bits/endianness.h \
+ /usr/include/c++/12/bits/ostream_insert.h \
+ /usr/include/c++/12/bits/cxxabi_forced.h \
+ /usr/include/c++/12/bits/stl_iterator_base_types.h \
+ /usr/include/c++/12/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/12/bits/concept_check.h \
+ /usr/include/c++/12/debug/assertions.h \
+ /usr/include/c++/12/bits/stl_iterator.h \
+ /usr/include/c++/12/ext/type_traits.h \
+ /usr/include/c++/12/bits/ptr_traits.h \
+ /usr/include/c++/12/bits/stl_function.h \
+ /usr/include/c++/12/backward/binders.h \
+ /usr/include/c++/12/ext/numeric_traits.h \
+ /usr/include/c++/12/bits/stl_algobase.h \
+ /usr/include/c++/12/bits/stl_pair.h \
+ /usr/include/c++/12/bits/utility.h \
+ /usr/include/c++/12/debug/debug.h \
+ /usr/include/c++/12/bits/predefined_ops.h \
+ /usr/include/c++/12/bits/refwrap.h \
+ /usr/include/c++/12/bits/invoke.h \
+ /usr/include/c++/12/bits/range_access.h \
+ /usr/include/c++/12/initializer_list \
+ /usr/include/c++/12/bits/basic_string.h \
+ /usr/include/c++/12/ext/alloc_traits.h \
+ /usr/include/c++/12/bits/alloc_traits.h \
+ /usr/include/c++/12/bits/stl_construct.h \
+ /usr/include/c++/12/ext/string_conversions.h \
+ /usr/include/c++/12/cstdlib \
+ /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h \
+ /usr/include/bits/types/clock_t.h \
+ /usr/include/bits/types/clockid_t.h \
+ /usr/include/bits/types/time_t.h \
+ /usr/include/bits/types/timer_t.h \
+ /usr/include/endian.h \
+ /usr/include/bits/byteswap.h \
+ /usr/include/bits/uintn-identity.h \
+ /usr/include/sys/select.h \
+ /usr/include/bits/select.h \
+ /usr/include/bits/types/sigset_t.h \
+ /usr/include/bits/types/__sigset_t.h \
+ /usr/include/bits/types/struct_timeval.h \
+ /usr/include/bits/types/struct_timespec.h \
+ /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/thread-shared-types.h \
+ /usr/include/bits/pthreadtypes-arch.h \
+ /usr/include/bits/atomic_wide_counter.h \
+ /usr/include/bits/struct_mutex.h \
+ /usr/include/bits/struct_rwlock.h \
+ /usr/include/alloca.h \
+ /usr/include/bits/stdlib-bsearch.h \
+ /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/12/bits/std_abs.h \
+ /usr/include/c++/12/cstdio \
+ /usr/include/stdio.h \
+ /usr/include/bits/types/__fpos_t.h \
+ /usr/include/bits/types/__fpos64_t.h \
+ /usr/include/bits/types/struct_FILE.h \
+ /usr/include/bits/types/cookie_io_functions_t.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/stdio.h \
+ /usr/include/c++/12/cerrno \
+ /usr/include/errno.h \
+ /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h \
+ /usr/include/bits/types/error_t.h \
+ /usr/include/c++/12/bits/charconv.h \
+ /usr/include/c++/12/bits/functional_hash.h \
+ /usr/include/c++/12/bits/hash_bytes.h \
+ /usr/include/c++/12/bits/basic_string.tcc \
+ third_party/uri/include/network/uri/uri_errors.hpp \
+ /usr/include/c++/12/system_error \
+ /usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h \
+ /usr/include/c++/12/stdexcept \
+ /usr/include/c++/12/exception \
+ /usr/include/c++/12/bits/exception_ptr.h \
+ /usr/include/c++/12/bits/cxxabi_init_exception.h \
+ /usr/include/c++/12/typeinfo \
+ /usr/include/c++/12/bits/nested_exception.h \
+ third_party/uri/include/network/uri/config.hpp
+
+
+third_party/uri/src/uri_errors.cpp:
+
+third_party/uri/src/uri.cpp:
+
+third_party/uri/src/detail/algorithm_find.hpp:
+
+third_party/uri/src/detail/uri_resolve.cpp:
+
+third_party/uri/src/detail/uri_parse_authority.hpp:
+
+third_party/uri/src/detail/grammar.hpp:
+
+third_party/uri/src/detail/uri_parse.cpp:
+
+/usr/include/c++/12/bits/locale_conv.h:
+
+/usr/include/c++/12/bits/locale_facets_nonio.tcc:
+
+/usr/include/c++/12/bits/codecvt.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/time_members.h:
+
+/usr/include/c++/12/ctime:
+
+/usr/include/c++/12/bits/locale_facets.tcc:
+
+/usr/include/c++/12/locale:
+
+/usr/include/c++/12/bits/stl_bvector.h:
+
+/usr/include/c++/12/bits/stl_vector.h:
+
+third_party/uri/src/detail/uri_percent_encode.hpp:
+
+/usr/include/c++/12/cstring:
+
+third_party/uri/include/network/uri/detail/encode.hpp:
+
+third_party/uri/include/network/uri/config.hpp:
+
+/usr/include/c++/12/functional:
+
+third_party/uri/include/network/uri/uri.hpp:
+
+/usr/include/c++/12/limits:
+
+/usr/include/assert.h:
+
+/usr/include/c++/12/cassert:
+
+/usr/include/c++/12/bits/stl_heap.h:
+
+/usr/include/c++/12/bits/stl_algo.h:
+
+/usr/include/c++/12/algorithm:
+
+/usr/include/c++/12/bits/atomic_lockfree_defines.h:
+
+/usr/include/c++/12/bits/shared_ptr_atomic.h:
+
+/usr/include/c++/12/ext/aligned_buffer.h:
+
+/usr/include/c++/12/bits/locale_facets.h:
+
+/usr/include/c++/12/tuple:
+
+/usr/include/c++/12/cwctype:
+
+/usr/include/c++/12/bits/unique_ptr.h:
+
+/usr/include/c++/12/bit:
+
+/usr/include/c++/12/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/12/bits/stl_tempbuf.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/12/bits/stl_uninitialized.h:
+
+/usr/include/c++/12/bits/streambuf.tcc:
+
+third_party/uri/src/detail/uri_resolve.hpp:
+
+/usr/include/c++/12/bits/nested_exception.h:
+
+/usr/include/c++/12/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/12/bits/exception_ptr.h:
+
+/usr/include/c++/12/system_error:
+
+/usr/include/c++/12/bits/locale_classes.h:
+
+/usr/include/sys/single_threaded.h:
+
+/usr/include/bits/pthread_stack_min-dynamic.h:
+
+/usr/include/c++/12/bits/allocated_ptr.h:
+
+/usr/include/bits/types/struct___jmp_buf_tag.h:
+
+third_party/uri/src/detail/uri_parse_authority.cpp:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/bits/types/struct_tm.h:
+
+/usr/include/c++/12/typeinfo:
+
+/usr/include/bits/cpu-set.h:
+
+/usr/include/bits/types/struct_sched_param.h:
+
+/usr/include/c++/12/backward/auto_ptr.h:
+
+/usr/include/sched.h:
+
+/usr/include/pthread.h:
+
+/usr/include/c++/12/bits/ios_base.h:
+
+/usr/include/c++/12/streambuf:
+
+/usr/include/c++/12/vector:
+
+/usr/include/bits/sched.h:
+
+/usr/include/c++/12/bits/streambuf_iterator.h:
+
+/usr/include/c++/12/bits/stream_iterator.h:
+
+/usr/include/c++/12/iterator:
+
+/usr/include/c++/12/bits/hash_bytes.h:
+
+/usr/include/bits/types/error_t.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/asm-generic/errno.h:
+
+third_party/uri/include/network/uri/detail/translate.hpp:
+
+/usr/include/asm/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/wctype.h:
+
+/usr/include/bits/timex.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/c++/12/backward/binders.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/c++locale.h:
+
+/usr/include/c++/12/bits/localefwd.h:
+
+/usr/include/c++/12/bits/cpp_type_traits.h:
+
+/usr/include/c++/12/bits/allocator.h:
+
+/usr/include/c++/12/bits/exception_defines.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/types/wint_t.h:
+
+third_party/uri/include/network/uri/uri_errors.hpp:
+
+/usr/include/c++/12/bits/locale_classes.tcc:
+
+/usr/include/c++/12/bits/exception.h:
+
+/usr/include/bits/stdint-uintn.h:
+
+/usr/include/c++/12/ext/concurrence.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/types/cookie_io_functions_t.h:
+
+/usr/include/c++/12/memory:
+
+/usr/include/bits/stdint-intn.h:
+
+/usr/include/strings.h:
+
+/usr/include/c++/12/ext/atomicity.h:
+
+/usr/include/c++/12/string:
+
+/usr/include/c++/12/bits/shared_ptr.h:
+
+/usr/include/c++/12/initializer_list:
+
+third_party/uri/src/uri_builder.cpp:
+
+/usr/include/c++/12/new:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/bits/uintn-identity.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/12/bits/char_traits.h:
+
+/usr/include/c++/12/bits/stl_relops.h:
+
+/usr/include/c++/12/cstdint:
+
+/usr/include/bits/types/FILE.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/os_defines.h:
+
+/usr/include/c++/12/exception:
+
+/usr/lib/gcc/x86_64-redhat-linux/12/include/stddef.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/bits/long-double.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/cpu_defines.h:
+
+/usr/include/c++/12/bits/algorithmfwd.h:
+
+/usr/include/bits/stdlib-float.h:
+
+/usr/include/bits/time64.h:
+
+/usr/include/bits/types/__sigset_t.h:
+
+third_party/uri/include/network/uri/detail/uri_parts.hpp:
+
+/usr/include/c++/12/cstddef:
+
+/usr/include/c++/12/bits/new_allocator.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/c++/12/bits/postypes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/12/include/stdint.h:
+
+third_party/uri/include/network/string_view.hpp:
+
+/usr/include/bits/types/sigset_t.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/gthr.h:
+
+/usr/include/c++/12/type_traits:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/ctype_base.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/c++/12/cstdio:
+
+/usr/include/c++/12/ext/string_conversions.h:
+
+third_party/uri/include/network/uri/detail/decode.hpp:
+
+/usr/include/c++/12/bits/align.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/bits/pthreadtypes-arch.h:
+
+/usr/include/c++/12/iosfwd:
+
+/usr/include/c++/12/utility:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/12/bits/move.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/c++allocator.h:
+
+/usr/include/c++/12/bits/charconv.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+third_party/uri/src/detail/uri_normalize.hpp:
+
+/usr/include/c++/12/ext/alloc_traits.h:
+
+third_party/uri/src/detail/uri_advance_parts.cpp:
+
+third_party/uri/src/detail/algorithm.hpp:
+
+/usr/include/c++/12/bits/stringfwd.h:
+
+/usr/include/bits/floatn.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/atomic_word.h:
+
+/usr/include/c++/12/bits/memoryfwd.h:
+
+/usr/include/bits/wctype-wchar.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/12/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/messages_members.h:
+
+/usr/include/c++/12/bits/alloc_traits.h:
+
+/usr/include/bits/types/mbstate_t.h:
+
+third_party/uri/src/detail/algorithm_split.hpp:
+
+/usr/include/c++/12/bits/stl_iterator.h:
+
+/usr/include/c++/12/bits/utility.h:
+
+/usr/include/bits/floatn-common.h:
+
+/usr/include/c++/12/bits/uses_allocator.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/c++/12/bits/stl_iterator_base_funcs.h:
+
+/usr/include/bits/libc-header-start.h:
+
+third_party/uri/include/network/optional.hpp:
+
+/usr/lib/gcc/x86_64-redhat-linux/12/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/types/locale_t.h:
+
+/usr/include/c++/12/bits/atomic_base.h:
+
+/usr/include/c++/12/stdexcept:
+
+/usr/include/features-time64.h:
+
+/usr/include/c++/12/cctype:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types/__locale_t.h:
+
+/usr/include/c++/12/bits/stl_algobase.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/endianness.h:
+
+third_party/uri/src/detail/uri_normalize.cpp:
+
+/usr/include/c++/12/bits/ostream_insert.h:
+
+/usr/include/c++/12/bits/cxxabi_forced.h:
+
+/usr/include/c++/12/bits/stl_iterator_base_types.h:
+
+/usr/include/bits/struct_mutex.h:
+
+/usr/include/bits/types/__FILE.h:
+
+/usr/include/c++/12/bits/concept_check.h:
+
+/usr/include/c++/12/debug/debug.h:
+
+/usr/include/c++/12/bits/uniform_int_dist.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/error_constants.h:
+
+/usr/include/c++/12/bits/std_abs.h:
+
+/usr/include/c++/12/debug/assertions.h:
+
+/usr/include/c++/12/bits/ptr_traits.h:
+
+/usr/include/bits/types/time_t.h:
+
+/usr/include/bits/types/struct_itimerspec.h:
+
+/usr/include/bits/struct_rwlock.h:
+
+/usr/include/c++/12/bits/std_function.h:
+
+/usr/include/c++/12/bits/stl_function.h:
+
+third_party/uri/include/network/uri/uri_builder.hpp:
+
+/usr/include/c++/12/ext/numeric_traits.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/ctype_inline.h:
+
+/usr/include/c++/12/bits/stl_pair.h:
+
+/usr/include/c++/12/cstdlib:
+
+/usr/include/bits/thread-shared-types.h:
+
+/usr/include/c++/12/bits/stl_construct.h:
+
+/usr/include/c++/12/bits/vector.tcc:
+
+/usr/include/c++/12/bits/functexcept.h:
+
+/usr/include/c++/12/bits/predefined_ops.h:
+
+/usr/include/c++/12/bits/invoke.h:
+
+/usr/include/time.h:
+
+/usr/include/c++/12/bits/range_access.h:
+
+third_party/uri/src/detail/uri_parse.hpp:
+
+/usr/include/c++/12/ext/type_traits.h:
+
+/usr/include/c++/12/bits/basic_string.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/timesize.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/bits/types/clockid_t.h:
+
+/usr/include/bits/atomic_wide_counter.h:
+
+/usr/include/c++/12/x86_64-redhat-linux/bits/c++config.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/types/timer_t.h:
+
+/usr/include/c++/12/bits/functional_hash.h:
+
+/usr/include/stdio.h:
+
+third_party/uri/src/detail/uri_advance_parts.hpp:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/c++/12/bits/locale_facets_nonio.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/c++/12/bits/basic_string.tcc:
+
+/usr/include/bits/types/struct_timeval.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/types/__mbstate_t.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/types/struct_timespec.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib-bsearch.h:
+
+/usr/include/c++/12/bits/shared_ptr_base.h:
+
+/usr/include/bits/types/clock_t.h:
+
+/usr/include/bits/types/__fpos_t.h:
+
+/usr/include/c++/12/clocale:
+
+/usr/include/bits/types/__fpos64_t.h:
+
+/usr/include/bits/types/struct_FILE.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/c++/12/bits/refwrap.h:
+
+/usr/include/c++/12/cerrno:
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
index 65a6d8e3cca..92f7bade592 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
@@ -1,10 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# compile CXX with /bin/c++
CXX_DEFINES =
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include
+CXX_INCLUDES = -I/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src -I/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/include
-CXX_FLAGS = -fPIE -D_FILE_OFFSET_BITS=64 -DUSEGC -I../gc-8.2.0/include -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
+CXX_FLAGS = -fPIE -D_FILE_OFFSET_BIS=64 -DUSEGC -I../gc-8.2.0/include -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
index 2294b8160ac..f804330c4f5 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
@@ -1,2 +1,2 @@
-/bin/ar qc libnetwork-uri.a CMakeFiles/network-uri.dir/uri.cpp.o CMakeFiles/network-uri.dir/uri_builder.cpp.o CMakeFiles/network-uri.dir/uri_errors.cpp.o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
+/bin/ar qc libnetwork-uri.a "CMakeFiles/network-uri.dir/uri.cpp.o" "CMakeFiles/network-uri.dir/uri_builder.cpp.o" "CMakeFiles/network-uri.dir/uri_errors.cpp.o" "CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o" "CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o" "CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o" "CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o" "CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o"
/bin/ranlib libnetwork-uri.a
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/Makefile b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/Makefile
index 035d7fe7be3..c767b14344b 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/Makefile
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/Makefile
@@ -1,5 +1,5 @@
# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Default target executed when no arguments are given to make.
default_target: all
@@ -60,10 +60,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.84/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.84/LspCpp
#=============================================================================
# Targets provided globally by CMake.
@@ -135,14 +135,14 @@ install/strip/fast: preinstall/fast
# The main all target
all: cmake_check_build_system
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles /u/bowman/camp/LspCpp/third_party/uri/src//CMakeFiles/progress.marks
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/all
- $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles 0
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.84/LspCpp/CMakeFiles /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src//CMakeFiles/progress.marks
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.84/LspCpp/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/clean
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/clean
.PHONY : clean
# The main clean target
@@ -151,22 +151,22 @@ clean/fast: clean
# Prepare targets for installation.
preinstall: all
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
third_party/uri/src/CMakeFiles/network-uri.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/CMakeFiles/network-uri.dir/rule
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/CMakeFiles/network-uri.dir/rule
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/rule
# Convenience name for target.
@@ -175,7 +175,7 @@ network-uri: third_party/uri/src/CMakeFiles/network-uri.dir/rule
# fast build rule for target.
network-uri/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/build
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/build
.PHONY : network-uri/fast
detail/uri_advance_parts.o: detail/uri_advance_parts.cpp.o
@@ -183,7 +183,7 @@ detail/uri_advance_parts.o: detail/uri_advance_parts.cpp.o
# target to build an object file
detail/uri_advance_parts.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
.PHONY : detail/uri_advance_parts.cpp.o
detail/uri_advance_parts.i: detail/uri_advance_parts.cpp.i
@@ -191,7 +191,7 @@ detail/uri_advance_parts.i: detail/uri_advance_parts.cpp.i
# target to preprocess a source file
detail/uri_advance_parts.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
.PHONY : detail/uri_advance_parts.cpp.i
detail/uri_advance_parts.s: detail/uri_advance_parts.cpp.s
@@ -199,7 +199,7 @@ detail/uri_advance_parts.s: detail/uri_advance_parts.cpp.s
# target to generate assembly for a file
detail/uri_advance_parts.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
.PHONY : detail/uri_advance_parts.cpp.s
detail/uri_normalize.o: detail/uri_normalize.cpp.o
@@ -207,7 +207,7 @@ detail/uri_normalize.o: detail/uri_normalize.cpp.o
# target to build an object file
detail/uri_normalize.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
.PHONY : detail/uri_normalize.cpp.o
detail/uri_normalize.i: detail/uri_normalize.cpp.i
@@ -215,7 +215,7 @@ detail/uri_normalize.i: detail/uri_normalize.cpp.i
# target to preprocess a source file
detail/uri_normalize.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
.PHONY : detail/uri_normalize.cpp.i
detail/uri_normalize.s: detail/uri_normalize.cpp.s
@@ -223,7 +223,7 @@ detail/uri_normalize.s: detail/uri_normalize.cpp.s
# target to generate assembly for a file
detail/uri_normalize.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
.PHONY : detail/uri_normalize.cpp.s
detail/uri_parse.o: detail/uri_parse.cpp.o
@@ -231,7 +231,7 @@ detail/uri_parse.o: detail/uri_parse.cpp.o
# target to build an object file
detail/uri_parse.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
.PHONY : detail/uri_parse.cpp.o
detail/uri_parse.i: detail/uri_parse.cpp.i
@@ -239,7 +239,7 @@ detail/uri_parse.i: detail/uri_parse.cpp.i
# target to preprocess a source file
detail/uri_parse.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
.PHONY : detail/uri_parse.cpp.i
detail/uri_parse.s: detail/uri_parse.cpp.s
@@ -247,7 +247,7 @@ detail/uri_parse.s: detail/uri_parse.cpp.s
# target to generate assembly for a file
detail/uri_parse.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
.PHONY : detail/uri_parse.cpp.s
detail/uri_parse_authority.o: detail/uri_parse_authority.cpp.o
@@ -255,7 +255,7 @@ detail/uri_parse_authority.o: detail/uri_parse_authority.cpp.o
# target to build an object file
detail/uri_parse_authority.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
.PHONY : detail/uri_parse_authority.cpp.o
detail/uri_parse_authority.i: detail/uri_parse_authority.cpp.i
@@ -263,7 +263,7 @@ detail/uri_parse_authority.i: detail/uri_parse_authority.cpp.i
# target to preprocess a source file
detail/uri_parse_authority.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
.PHONY : detail/uri_parse_authority.cpp.i
detail/uri_parse_authority.s: detail/uri_parse_authority.cpp.s
@@ -271,7 +271,7 @@ detail/uri_parse_authority.s: detail/uri_parse_authority.cpp.s
# target to generate assembly for a file
detail/uri_parse_authority.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
.PHONY : detail/uri_parse_authority.cpp.s
detail/uri_resolve.o: detail/uri_resolve.cpp.o
@@ -279,7 +279,7 @@ detail/uri_resolve.o: detail/uri_resolve.cpp.o
# target to build an object file
detail/uri_resolve.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
.PHONY : detail/uri_resolve.cpp.o
detail/uri_resolve.i: detail/uri_resolve.cpp.i
@@ -287,7 +287,7 @@ detail/uri_resolve.i: detail/uri_resolve.cpp.i
# target to preprocess a source file
detail/uri_resolve.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
.PHONY : detail/uri_resolve.cpp.i
detail/uri_resolve.s: detail/uri_resolve.cpp.s
@@ -295,7 +295,7 @@ detail/uri_resolve.s: detail/uri_resolve.cpp.s
# target to generate assembly for a file
detail/uri_resolve.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
.PHONY : detail/uri_resolve.cpp.s
uri.o: uri.cpp.o
@@ -303,7 +303,7 @@ uri.o: uri.cpp.o
# target to build an object file
uri.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
.PHONY : uri.cpp.o
uri.i: uri.cpp.i
@@ -311,7 +311,7 @@ uri.i: uri.cpp.i
# target to preprocess a source file
uri.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.i
.PHONY : uri.cpp.i
uri.s: uri.cpp.s
@@ -319,7 +319,7 @@ uri.s: uri.cpp.s
# target to generate assembly for a file
uri.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.s
.PHONY : uri.cpp.s
uri_builder.o: uri_builder.cpp.o
@@ -327,7 +327,7 @@ uri_builder.o: uri_builder.cpp.o
# target to build an object file
uri_builder.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
.PHONY : uri_builder.cpp.o
uri_builder.i: uri_builder.cpp.i
@@ -335,7 +335,7 @@ uri_builder.i: uri_builder.cpp.i
# target to preprocess a source file
uri_builder.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.i
.PHONY : uri_builder.cpp.i
uri_builder.s: uri_builder.cpp.s
@@ -343,7 +343,7 @@ uri_builder.s: uri_builder.cpp.s
# target to generate assembly for a file
uri_builder.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.s
.PHONY : uri_builder.cpp.s
uri_errors.o: uri_errors.cpp.o
@@ -351,7 +351,7 @@ uri_errors.o: uri_errors.cpp.o
# target to build an object file
uri_errors.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
.PHONY : uri_errors.cpp.o
uri_errors.i: uri_errors.cpp.i
@@ -359,7 +359,7 @@ uri_errors.i: uri_errors.cpp.i
# target to preprocess a source file
uri_errors.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.i
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.i
.PHONY : uri_errors.cpp.i
uri_errors.s: uri_errors.cpp.s
@@ -367,7 +367,7 @@ uri_errors.s: uri_errors.cpp.s
# target to generate assembly for a file
uri_errors.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.s
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.s
.PHONY : uri_errors.cpp.s
# Help Target
@@ -418,6 +418,6 @@ help:
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+ cd /usr/local/src/asymptote-2.84/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
index 2df05e04288..6132ea45476 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
@@ -1,4 +1,4 @@
-# Install script for directory: /u/bowman/camp/LspCpp/third_party/uri/src
+# Install script for directory: /usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
@@ -42,7 +42,7 @@ if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/bin/objdump")
endif()
-if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
- file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/u/bowman/camp/LspCpp/third_party/uri/src/libnetwork-uri.a")
+if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
+ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/usr/local/src/asymptote-2.84/LspCpp/third_party/uri/src/libnetwork-uri.a")
endif()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/CMakeDirectoryInformation.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/CMakeDirectoryInformation.cmake
deleted file mode 100644
index d2b940510bb..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/u/bowman/camp/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/u/bowman/camp/LspCpp")
-
-# Force unix paths in dependencies.
-set(CMAKE_FORCE_UNIX_PATHS 1)
-
-
-# The C and CXX include file regular expressions for this directory.
-set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/DependInfo.cmake
deleted file mode 100644
index e1f8b3ae34e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/optional_test.cpp" "third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/build.make
deleted file mode 100644
index 2fea09d2fbc..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/optional_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/optional_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/optional_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o: third_party/uri/test/CMakeFiles/optional_test.dir/flags.make
-third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o: third_party/uri/test/optional_test.cpp
-third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o: third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o -MF CMakeFiles/optional_test.dir/optional_test.cpp.o.d -o CMakeFiles/optional_test.dir/optional_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/optional_test.cpp
-
-third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/optional_test.dir/optional_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/optional_test.cpp > CMakeFiles/optional_test.dir/optional_test.cpp.i
-
-third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/optional_test.dir/optional_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/optional_test.cpp -o CMakeFiles/optional_test.dir/optional_test.cpp.s
-
-# Object files for target optional_test
-optional_test_OBJECTS = \
-"CMakeFiles/optional_test.dir/optional_test.cpp.o"
-
-# External object files for target optional_test
-optional_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/optional_test: third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o
-third_party/uri/tests/optional_test: third_party/uri/test/CMakeFiles/optional_test.dir/build.make
-third_party/uri/tests/optional_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/optional_test: lib/libgtest_main.a
-third_party/uri/tests/optional_test: lib/libgtest.a
-third_party/uri/tests/optional_test: third_party/uri/test/CMakeFiles/optional_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/optional_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/optional_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/optional_test.dir/build: third_party/uri/tests/optional_test
-.PHONY : third_party/uri/test/CMakeFiles/optional_test.dir/build
-
-third_party/uri/test/CMakeFiles/optional_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/optional_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/optional_test.dir/clean
-
-third_party/uri/test/CMakeFiles/optional_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/optional_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/cmake_clean.cmake
deleted file mode 100644
index 7681e7e0f78..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/optional_test"
- "../tests/optional_test.pdb"
- "CMakeFiles/optional_test.dir/optional_test.cpp.o"
- "CMakeFiles/optional_test.dir/optional_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/optional_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.make
deleted file mode 100644
index d7663bb33c4..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for optional_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.ts
deleted file mode 100644
index 1064b508633..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for optional_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/depend.make
deleted file mode 100644
index 26cbb1b3c7a..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for optional_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/link.txt
deleted file mode 100644
index 5f0028caddf..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/optional_test.dir/optional_test.cpp.o -o ../tests/optional_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/progress.make
deleted file mode 100644
index 2178e35f72e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/optional_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 36
-CMAKE_PROGRESS_2 = 37
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/progress.marks b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/progress.marks
deleted file mode 100644
index 81b5c5d06cc..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/progress.marks
+++ /dev/null
@@ -1 +0,0 @@
-37
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/DependInfo.cmake
deleted file mode 100644
index 7b0bac6332f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_builder_test.cpp" "third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make
deleted file mode 100644
index 34ea47ed1b4..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_builder_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_builder_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o: third_party/uri/test/CMakeFiles/uri_builder_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o: third_party/uri/test/uri_builder_test.cpp
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o: third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o -MF CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o.d -o CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_builder_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_builder_test.cpp > CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_builder_test.cpp -o CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.s
-
-# Object files for target uri_builder_test
-uri_builder_test_OBJECTS = \
-"CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o"
-
-# External object files for target uri_builder_test
-uri_builder_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_builder_test: third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o
-third_party/uri/tests/uri_builder_test: third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make
-third_party/uri/tests/uri_builder_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_builder_test: lib/libgtest_main.a
-third_party/uri/tests/uri_builder_test: lib/libgtest.a
-third_party/uri/tests/uri_builder_test: third_party/uri/test/CMakeFiles/uri_builder_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_builder_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_builder_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/build: third_party/uri/tests/uri_builder_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_builder_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_builder_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_builder_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/cmake_clean.cmake
deleted file mode 100644
index af0eb8e6f50..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_builder_test"
- "../tests/uri_builder_test.pdb"
- "CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o"
- "CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_builder_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.make
deleted file mode 100644
index ca6c08f991b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_builder_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.ts
deleted file mode 100644
index 7c949685f9c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_builder_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend.make
deleted file mode 100644
index 453d695cf37..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_builder_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/link.txt
deleted file mode 100644
index b4266525799..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o -o ../tests/uri_builder_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/progress.make
deleted file mode 100644
index ad2d3574577..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_builder_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 38
-CMAKE_PROGRESS_2 = 39
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/DependInfo.cmake
deleted file mode 100644
index 5dda9db2232..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_comparison_test.cpp" "third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make
deleted file mode 100644
index fde8485140c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_comparison_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_comparison_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o: third_party/uri/test/CMakeFiles/uri_comparison_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o: third_party/uri/test/uri_comparison_test.cpp
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o: third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o -MF CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o.d -o CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_comparison_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_comparison_test.cpp > CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_comparison_test.cpp -o CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.s
-
-# Object files for target uri_comparison_test
-uri_comparison_test_OBJECTS = \
-"CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o"
-
-# External object files for target uri_comparison_test
-uri_comparison_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_comparison_test: third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o
-third_party/uri/tests/uri_comparison_test: third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make
-third_party/uri/tests/uri_comparison_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_comparison_test: lib/libgtest_main.a
-third_party/uri/tests/uri_comparison_test: lib/libgtest.a
-third_party/uri/tests/uri_comparison_test: third_party/uri/test/CMakeFiles/uri_comparison_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_comparison_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_comparison_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build: third_party/uri/tests/uri_comparison_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_comparison_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_comparison_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/cmake_clean.cmake
deleted file mode 100644
index 32e59d93fb8..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_comparison_test"
- "../tests/uri_comparison_test.pdb"
- "CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o"
- "CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_comparison_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.make
deleted file mode 100644
index afda6b8ad28..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_comparison_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.ts
deleted file mode 100644
index 7ec804617b6..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_comparison_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend.make
deleted file mode 100644
index 949bde3c294..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_comparison_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/link.txt
deleted file mode 100644
index 638a0046b81..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o -o ../tests/uri_comparison_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/progress.make
deleted file mode 100644
index eb247b08349..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_comparison_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 40
-CMAKE_PROGRESS_2 = 41
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/DependInfo.cmake
deleted file mode 100644
index eead809370b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_encoding_test.cpp" "third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make
deleted file mode 100644
index aeb05d20ec1..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_encoding_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_encoding_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o: third_party/uri/test/CMakeFiles/uri_encoding_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o: third_party/uri/test/uri_encoding_test.cpp
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o: third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o -MF CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o.d -o CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_encoding_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_encoding_test.cpp > CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_encoding_test.cpp -o CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.s
-
-# Object files for target uri_encoding_test
-uri_encoding_test_OBJECTS = \
-"CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o"
-
-# External object files for target uri_encoding_test
-uri_encoding_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_encoding_test: third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o
-third_party/uri/tests/uri_encoding_test: third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make
-third_party/uri/tests/uri_encoding_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_encoding_test: lib/libgtest_main.a
-third_party/uri/tests/uri_encoding_test: lib/libgtest.a
-third_party/uri/tests/uri_encoding_test: third_party/uri/test/CMakeFiles/uri_encoding_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_encoding_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_encoding_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build: third_party/uri/tests/uri_encoding_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_encoding_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_encoding_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/cmake_clean.cmake
deleted file mode 100644
index 77d8fed1e09..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_encoding_test"
- "../tests/uri_encoding_test.pdb"
- "CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o"
- "CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_encoding_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.make
deleted file mode 100644
index a1572a3a2f4..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_encoding_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.ts
deleted file mode 100644
index 7fdbc547f58..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_encoding_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend.make
deleted file mode 100644
index 0957caa273d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_encoding_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/link.txt
deleted file mode 100644
index dc3e1b3ab99..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o -o ../tests/uri_encoding_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/progress.make
deleted file mode 100644
index 0ae21653652..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_encoding_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 42
-CMAKE_PROGRESS_2 = 43
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/DependInfo.cmake
deleted file mode 100644
index 724a20af5c2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_normalization_test.cpp" "third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make
deleted file mode 100644
index 6f57eedaac0..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_normalization_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_normalization_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o: third_party/uri/test/CMakeFiles/uri_normalization_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o: third_party/uri/test/uri_normalization_test.cpp
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o: third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o -MF CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o.d -o CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_normalization_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_normalization_test.cpp > CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_normalization_test.cpp -o CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.s
-
-# Object files for target uri_normalization_test
-uri_normalization_test_OBJECTS = \
-"CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o"
-
-# External object files for target uri_normalization_test
-uri_normalization_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_normalization_test: third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o
-third_party/uri/tests/uri_normalization_test: third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make
-third_party/uri/tests/uri_normalization_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_normalization_test: lib/libgtest_main.a
-third_party/uri/tests/uri_normalization_test: lib/libgtest.a
-third_party/uri/tests/uri_normalization_test: third_party/uri/test/CMakeFiles/uri_normalization_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_normalization_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_normalization_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build: third_party/uri/tests/uri_normalization_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_normalization_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_normalization_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/cmake_clean.cmake
deleted file mode 100644
index 4a96b63c4fc..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_normalization_test"
- "../tests/uri_normalization_test.pdb"
- "CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o"
- "CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_normalization_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.make
deleted file mode 100644
index ab750c0e2ad..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_normalization_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.ts
deleted file mode 100644
index 9a7e2da3198..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_normalization_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend.make
deleted file mode 100644
index c6bdc8b573b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_normalization_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/link.txt
deleted file mode 100644
index 4294be3e811..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o -o ../tests/uri_normalization_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/progress.make
deleted file mode 100644
index c51eef3db77..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_normalization_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 44
-CMAKE_PROGRESS_2 = 45
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/DependInfo.cmake
deleted file mode 100644
index 53c5b14591e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_path_test.cpp" "third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make
deleted file mode 100644
index 927058a6bd9..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o: third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o: third_party/uri/test/uri_parse_path_test.cpp
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o: third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o -MF CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o.d -o CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_path_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_path_test.cpp > CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_path_test.cpp -o CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.s
-
-# Object files for target uri_parse_path_test
-uri_parse_path_test_OBJECTS = \
-"CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o"
-
-# External object files for target uri_parse_path_test
-uri_parse_path_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_parse_path_test: third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o
-third_party/uri/tests/uri_parse_path_test: third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make
-third_party/uri/tests/uri_parse_path_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_parse_path_test: lib/libgtest_main.a
-third_party/uri/tests/uri_parse_path_test: lib/libgtest.a
-third_party/uri/tests/uri_parse_path_test: third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_parse_path_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_parse_path_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build: third_party/uri/tests/uri_parse_path_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_parse_path_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/cmake_clean.cmake
deleted file mode 100644
index d054cdd0ea2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_parse_path_test"
- "../tests/uri_parse_path_test.pdb"
- "CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o"
- "CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_parse_path_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.make
deleted file mode 100644
index 2ac6c5da35f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_parse_path_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.ts
deleted file mode 100644
index 3030bdbaeaa..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_parse_path_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend.make
deleted file mode 100644
index 7e58262af1b..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_parse_path_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/link.txt
deleted file mode 100644
index b2965a46905..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o -o ../tests/uri_parse_path_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/progress.make
deleted file mode 100644
index 80ac6c176b9..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 46
-CMAKE_PROGRESS_2 = 47
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/DependInfo.cmake
deleted file mode 100644
index 1a224a7cab2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp" "third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make
deleted file mode 100644
index 50db09851dd..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o: third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o: third_party/uri/test/uri_parse_scheme_test.cpp
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o: third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o -MF CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o.d -o CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp > CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp -o CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.s
-
-# Object files for target uri_parse_scheme_test
-uri_parse_scheme_test_OBJECTS = \
-"CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o"
-
-# External object files for target uri_parse_scheme_test
-uri_parse_scheme_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_parse_scheme_test: third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o
-third_party/uri/tests/uri_parse_scheme_test: third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make
-third_party/uri/tests/uri_parse_scheme_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_parse_scheme_test: lib/libgtest_main.a
-third_party/uri/tests/uri_parse_scheme_test: lib/libgtest.a
-third_party/uri/tests/uri_parse_scheme_test: third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_parse_scheme_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_parse_scheme_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build: third_party/uri/tests/uri_parse_scheme_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_parse_scheme_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/cmake_clean.cmake
deleted file mode 100644
index b9dd88c6116..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_parse_scheme_test"
- "../tests/uri_parse_scheme_test.pdb"
- "CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o"
- "CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_parse_scheme_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.make
deleted file mode 100644
index 126fa457d5c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_parse_scheme_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.ts
deleted file mode 100644
index 4da7754d244..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_parse_scheme_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend.make
deleted file mode 100644
index f2a6a16d282..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_parse_scheme_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/link.txt
deleted file mode 100644
index 8866ba9781a..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o -o ../tests/uri_parse_scheme_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/progress.make
deleted file mode 100644
index 961e1cad8a4..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 48
-CMAKE_PROGRESS_2 = 49
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/DependInfo.cmake
deleted file mode 100644
index 3b713dc4392..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_test.cpp" "third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make
deleted file mode 100644
index 3aa7b509611..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_parse_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_parse_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o: third_party/uri/test/CMakeFiles/uri_parse_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o: third_party/uri/test/uri_parse_test.cpp
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o: third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o -MF CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o.d -o CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_test.cpp > CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_parse_test.cpp -o CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.s
-
-# Object files for target uri_parse_test
-uri_parse_test_OBJECTS = \
-"CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o"
-
-# External object files for target uri_parse_test
-uri_parse_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_parse_test: third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o
-third_party/uri/tests/uri_parse_test: third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make
-third_party/uri/tests/uri_parse_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_parse_test: lib/libgtest_main.a
-third_party/uri/tests/uri_parse_test: lib/libgtest.a
-third_party/uri/tests/uri_parse_test: third_party/uri/test/CMakeFiles/uri_parse_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_parse_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_parse_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/build: third_party/uri/tests/uri_parse_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_parse_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/cmake_clean.cmake
deleted file mode 100644
index 9f9071cbaee..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_parse_test"
- "../tests/uri_parse_test.pdb"
- "CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o"
- "CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_parse_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.make
deleted file mode 100644
index 50519a7e857..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_parse_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.ts
deleted file mode 100644
index e2570267ef2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_parse_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend.make
deleted file mode 100644
index d3ef211cf6c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_parse_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/link.txt
deleted file mode 100644
index 7294380edb7..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o -o ../tests/uri_parse_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/progress.make
deleted file mode 100644
index dbabe1f5030..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_parse_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 50
-CMAKE_PROGRESS_2 = 51
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/DependInfo.cmake
deleted file mode 100644
index 8a4abc87e4e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_reference_test.cpp" "third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make
deleted file mode 100644
index 22d0fe23f8a..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_reference_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_reference_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o: third_party/uri/test/CMakeFiles/uri_reference_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o: third_party/uri/test/uri_reference_test.cpp
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o: third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o -MF CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o.d -o CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_reference_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_reference_test.cpp > CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_reference_test.cpp -o CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.s
-
-# Object files for target uri_reference_test
-uri_reference_test_OBJECTS = \
-"CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o"
-
-# External object files for target uri_reference_test
-uri_reference_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_reference_test: third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o
-third_party/uri/tests/uri_reference_test: third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make
-third_party/uri/tests/uri_reference_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_reference_test: lib/libgtest_main.a
-third_party/uri/tests/uri_reference_test: lib/libgtest.a
-third_party/uri/tests/uri_reference_test: third_party/uri/test/CMakeFiles/uri_reference_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_reference_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_reference_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/build: third_party/uri/tests/uri_reference_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_reference_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_reference_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_reference_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/cmake_clean.cmake
deleted file mode 100644
index ede67e6d21f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_reference_test"
- "../tests/uri_reference_test.pdb"
- "CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o"
- "CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_reference_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.make
deleted file mode 100644
index 64966ad5096..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_reference_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.ts
deleted file mode 100644
index ae9d2510a53..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_reference_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend.make
deleted file mode 100644
index afa79f6cc4a..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_reference_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/link.txt
deleted file mode 100644
index 1cd059359af..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o -o ../tests/uri_reference_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/progress.make
deleted file mode 100644
index 3b1f03a2836..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_reference_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 52
-CMAKE_PROGRESS_2 = 53
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/DependInfo.cmake
deleted file mode 100644
index de31b9c2dde..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_resolve_test.cpp" "third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make
deleted file mode 100644
index f66120efe3e..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_resolve_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_resolve_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o: third_party/uri/test/CMakeFiles/uri_resolve_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o: third_party/uri/test/uri_resolve_test.cpp
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o: third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o -MF CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o.d -o CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_resolve_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_resolve_test.cpp > CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_resolve_test.cpp -o CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.s
-
-# Object files for target uri_resolve_test
-uri_resolve_test_OBJECTS = \
-"CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o"
-
-# External object files for target uri_resolve_test
-uri_resolve_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_resolve_test: third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o
-third_party/uri/tests/uri_resolve_test: third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make
-third_party/uri/tests/uri_resolve_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_resolve_test: lib/libgtest_main.a
-third_party/uri/tests/uri_resolve_test: lib/libgtest.a
-third_party/uri/tests/uri_resolve_test: third_party/uri/test/CMakeFiles/uri_resolve_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_resolve_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_resolve_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build: third_party/uri/tests/uri_resolve_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_resolve_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_resolve_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/cmake_clean.cmake
deleted file mode 100644
index f8efcb7ae0f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_resolve_test"
- "../tests/uri_resolve_test.pdb"
- "CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o"
- "CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_resolve_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.make
deleted file mode 100644
index bdfe565854c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_resolve_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.ts
deleted file mode 100644
index 14d8c8809b0..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_resolve_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend.make
deleted file mode 100644
index a7b85fc758c..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_resolve_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/link.txt
deleted file mode 100644
index e049e13e2d1..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o -o ../tests/uri_resolve_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/progress.make
deleted file mode 100644
index 2e6ba905696..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_resolve_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 54
-CMAKE_PROGRESS_2 = 55
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/DependInfo.cmake
deleted file mode 100644
index 4a5dd6c7af5..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_stream_test.cpp" "third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make
deleted file mode 100644
index dd4718d53f5..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_stream_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_stream_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o: third_party/uri/test/CMakeFiles/uri_stream_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o: third_party/uri/test/uri_stream_test.cpp
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o: third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o -MF CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o.d -o CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_stream_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_stream_test.cpp > CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_stream_test.cpp -o CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.s
-
-# Object files for target uri_stream_test
-uri_stream_test_OBJECTS = \
-"CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o"
-
-# External object files for target uri_stream_test
-uri_stream_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_stream_test: third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o
-third_party/uri/tests/uri_stream_test: third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make
-third_party/uri/tests/uri_stream_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_stream_test: lib/libgtest_main.a
-third_party/uri/tests/uri_stream_test: lib/libgtest.a
-third_party/uri/tests/uri_stream_test: third_party/uri/test/CMakeFiles/uri_stream_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_stream_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_stream_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/build: third_party/uri/tests/uri_stream_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_stream_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_stream_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_stream_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/cmake_clean.cmake
deleted file mode 100644
index fc1056c23c3..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_stream_test"
- "../tests/uri_stream_test.pdb"
- "CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o"
- "CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_stream_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.make
deleted file mode 100644
index 1039c1a90df..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_stream_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.ts
deleted file mode 100644
index f0ca0efd88f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_stream_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend.make
deleted file mode 100644
index 90f8b8e5c27..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_stream_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/link.txt
deleted file mode 100644
index f140c5f4322..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o -o ../tests/uri_stream_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/progress.make
deleted file mode 100644
index fb03824bd35..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_stream_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 56
-CMAKE_PROGRESS_2 = 57
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/DependInfo.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/DependInfo.cmake
deleted file mode 100644
index 5dfb523a856..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/test/uri_test.cpp" "third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o" "gcc" "third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o.d"
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- "/u/bowman/camp/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
- "/u/bowman/camp/LspCpp/third_party/uri/deps/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/build.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/build.make
deleted file mode 100644
index fe4cb094184..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/build.make
+++ /dev/null
@@ -1,116 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-# Include any dependencies generated for this target.
-include third_party/uri/test/CMakeFiles/uri_test.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include third_party/uri/test/CMakeFiles/uri_test.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include third_party/uri/test/CMakeFiles/uri_test.dir/flags.make
-
-third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o: third_party/uri/test/CMakeFiles/uri_test.dir/flags.make
-third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o: third_party/uri/test/uri_test.cpp
-third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o: third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o -MF CMakeFiles/uri_test.dir/uri_test.cpp.o.d -o CMakeFiles/uri_test.dir/uri_test.cpp.o -c /u/bowman/camp/LspCpp/third_party/uri/test/uri_test.cpp
-
-third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uri_test.dir/uri_test.cpp.i"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /u/bowman/camp/LspCpp/third_party/uri/test/uri_test.cpp > CMakeFiles/uri_test.dir/uri_test.cpp.i
-
-third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uri_test.dir/uri_test.cpp.s"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /u/bowman/camp/LspCpp/third_party/uri/test/uri_test.cpp -o CMakeFiles/uri_test.dir/uri_test.cpp.s
-
-# Object files for target uri_test
-uri_test_OBJECTS = \
-"CMakeFiles/uri_test.dir/uri_test.cpp.o"
-
-# External object files for target uri_test
-uri_test_EXTERNAL_OBJECTS =
-
-third_party/uri/tests/uri_test: third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o
-third_party/uri/tests/uri_test: third_party/uri/test/CMakeFiles/uri_test.dir/build.make
-third_party/uri/tests/uri_test: third_party/uri/src/libnetwork-uri.a
-third_party/uri/tests/uri_test: lib/libgtest_main.a
-third_party/uri/tests/uri_test: lib/libgtest.a
-third_party/uri/tests/uri_test: third_party/uri/test/CMakeFiles/uri_test.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/u/bowman/camp/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../tests/uri_test"
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uri_test.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-third_party/uri/test/CMakeFiles/uri_test.dir/build: third_party/uri/tests/uri_test
-.PHONY : third_party/uri/test/CMakeFiles/uri_test.dir/build
-
-third_party/uri/test/CMakeFiles/uri_test.dir/clean:
- cd /u/bowman/camp/LspCpp/third_party/uri/test && $(CMAKE_COMMAND) -P CMakeFiles/uri_test.dir/cmake_clean.cmake
-.PHONY : third_party/uri/test/CMakeFiles/uri_test.dir/clean
-
-third_party/uri/test/CMakeFiles/uri_test.dir/depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp /u/bowman/camp/LspCpp/third_party/uri/test /u/bowman/camp/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : third_party/uri/test/CMakeFiles/uri_test.dir/depend
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/cmake_clean.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/cmake_clean.cmake
deleted file mode 100644
index 37e9c356944..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-file(REMOVE_RECURSE
- "../tests/uri_test"
- "../tests/uri_test.pdb"
- "CMakeFiles/uri_test.dir/uri_test.cpp.o"
- "CMakeFiles/uri_test.dir/uri_test.cpp.o.d"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang CXX)
- include(CMakeFiles/uri_test.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.make
deleted file mode 100644
index 5f8f2d5002f..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for uri_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.ts b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.ts
deleted file mode 100644
index 9c552712444..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/compiler_depend.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for uri_test.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/depend.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/depend.make
deleted file mode 100644
index f09b71c14df..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/depend.make
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty dependencies file for uri_test.
-# This may be replaced when dependencies are built.
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/flags.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/flags.make
deleted file mode 100644
index 8e0692091e2..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# compile CXX with /bin/c++
-CXX_DEFINES =
-
-CXX_INCLUDES = -I/u/bowman/camp/LspCpp/third_party/uri/src -I/u/bowman/camp/LspCpp/third_party/uri/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest/include -isystem /u/bowman/camp/LspCpp/third_party/uri/deps/googletest
-
-CXX_FLAGS = -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/link.txt b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/link.txt
deleted file mode 100644
index 53c1cdbe1ad..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/bin/c++ -D_FILE_OFFSET_BITS=64 -DUSEGC -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG -rdynamic CMakeFiles/uri_test.dir/uri_test.cpp.o -o ../tests/uri_test -lpthread ../src/libnetwork-uri.a ../../../lib/libgtest_main.a ../../../lib/libgtest.a -lpthread
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/progress.make b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/progress.make
deleted file mode 100644
index 42baabaf6ed..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CMakeFiles/uri_test.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 58
-CMAKE_PROGRESS_2 = 59
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CTestTestfile.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CTestTestfile.cmake
deleted file mode 100644
index cf20b84f730..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/CTestTestfile.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
-# CMake generated Testfile for
-# Source directory: /u/bowman/camp/LspCpp/third_party/uri/test
-# Build directory: /u/bowman/camp/LspCpp/third_party/uri/test
-#
-# This file includes the relevant testing commands required for
-# testing this directory and lists subdirectories to be tested as well.
-add_test(uri_parse_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_parse_test")
-set_tests_properties(uri_parse_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_parse_scheme_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_parse_scheme_test")
-set_tests_properties(uri_parse_scheme_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_parse_path_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_parse_path_test")
-set_tests_properties(uri_parse_path_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_test")
-set_tests_properties(uri_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_encoding_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_encoding_test")
-set_tests_properties(uri_encoding_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_normalization_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_normalization_test")
-set_tests_properties(uri_normalization_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_comparison_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_comparison_test")
-set_tests_properties(uri_comparison_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_reference_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_reference_test")
-set_tests_properties(uri_reference_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_resolve_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_resolve_test")
-set_tests_properties(uri_resolve_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_builder_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_builder_test")
-set_tests_properties(uri_builder_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(uri_stream_test "/u/bowman/camp/LspCpp/third_party/uri/tests/uri_stream_test")
-set_tests_properties(uri_stream_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
-add_test(optional_test "/u/bowman/camp/LspCpp/third_party/uri/tests/optional_test")
-set_tests_properties(optional_test PROPERTIES _BACKTRACE_TRIPLES "/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;34;add_test;/u/bowman/camp/LspCpp/third_party/uri/test/CMakeLists.txt;0;")
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/Makefile b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/Makefile
deleted file mode 100644
index dd3788956ec..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/Makefile
+++ /dev/null
@@ -1,696 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.20
-
-# Default target executed when no arguments are given to make.
-default_target: all
-.PHONY : default_target
-
-# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-.NOTPARALLEL:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Produce verbose output by default.
-VERBOSE = 1
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /u/bowman/camp/LspCpp
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /u/bowman/camp/LspCpp
-
-#=============================================================================
-# Targets provided globally by CMake.
-
-# Special rule for the target install/strip
-install/strip: preinstall
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
- /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-.PHONY : install/strip
-
-# Special rule for the target install/strip
-install/strip/fast: preinstall/fast
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
- /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-.PHONY : install/strip/fast
-
-# Special rule for the target install/local
-install/local: preinstall
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
- /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-.PHONY : install/local
-
-# Special rule for the target install/local
-install/local/fast: preinstall/fast
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
- /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-.PHONY : install/local/fast
-
-# Special rule for the target install
-install: preinstall
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
- /usr/bin/cmake -P cmake_install.cmake
-.PHONY : install
-
-# Special rule for the target install
-install/fast: preinstall/fast
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
- /usr/bin/cmake -P cmake_install.cmake
-.PHONY : install/fast
-
-# Special rule for the target list_install_components
-list_install_components:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
-.PHONY : list_install_components
-
-# Special rule for the target list_install_components
-list_install_components/fast: list_install_components
-.PHONY : list_install_components/fast
-
-# Special rule for the target rebuild_cache
-rebuild_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
- /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-.PHONY : rebuild_cache
-
-# Special rule for the target rebuild_cache
-rebuild_cache/fast: rebuild_cache
-.PHONY : rebuild_cache/fast
-
-# Special rule for the target edit_cache
-edit_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
- /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-.PHONY : edit_cache
-
-# Special rule for the target edit_cache
-edit_cache/fast: edit_cache
-.PHONY : edit_cache/fast
-
-# The main all target
-all: cmake_check_build_system
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles /u/bowman/camp/LspCpp/third_party/uri/test//CMakeFiles/progress.marks
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/all
- $(CMAKE_COMMAND) -E cmake_progress_start /u/bowman/camp/LspCpp/CMakeFiles 0
-.PHONY : all
-
-# The main clean target
-clean:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/clean
-.PHONY : clean
-
-# The main clean target
-clean/fast: clean
-.PHONY : clean/fast
-
-# Prepare targets for installation.
-preinstall: all
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/preinstall
-.PHONY : preinstall
-
-# Prepare targets for installation.
-preinstall/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/preinstall
-.PHONY : preinstall/fast
-
-# clear depends
-depend:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-.PHONY : depend
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_parse_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_parse_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_test.dir/rule
-
-# Convenience name for target.
-uri_parse_test: third_party/uri/test/CMakeFiles/uri_parse_test.dir/rule
-.PHONY : uri_parse_test
-
-# fast build rule for target.
-uri_parse_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_test.dir/build
-.PHONY : uri_parse_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/rule
-
-# Convenience name for target.
-uri_parse_path_test: third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/rule
-.PHONY : uri_parse_path_test
-
-# fast build rule for target.
-uri_parse_path_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build
-.PHONY : uri_parse_path_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_test.dir/rule
-
-# Convenience name for target.
-uri_test: third_party/uri/test/CMakeFiles/uri_test.dir/rule
-.PHONY : uri_test
-
-# fast build rule for target.
-uri_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_test.dir/build.make third_party/uri/test/CMakeFiles/uri_test.dir/build
-.PHONY : uri_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/optional_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/optional_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/optional_test.dir/rule
-
-# Convenience name for target.
-optional_test: third_party/uri/test/CMakeFiles/optional_test.dir/rule
-.PHONY : optional_test
-
-# fast build rule for target.
-optional_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/optional_test.dir/build.make third_party/uri/test/CMakeFiles/optional_test.dir/build
-.PHONY : optional_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_normalization_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_normalization_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_normalization_test.dir/rule
-
-# Convenience name for target.
-uri_normalization_test: third_party/uri/test/CMakeFiles/uri_normalization_test.dir/rule
-.PHONY : uri_normalization_test
-
-# fast build rule for target.
-uri_normalization_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build
-.PHONY : uri_normalization_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_reference_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_reference_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_reference_test.dir/rule
-
-# Convenience name for target.
-uri_reference_test: third_party/uri/test/CMakeFiles/uri_reference_test.dir/rule
-.PHONY : uri_reference_test
-
-# fast build rule for target.
-uri_reference_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make third_party/uri/test/CMakeFiles/uri_reference_test.dir/build
-.PHONY : uri_reference_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_stream_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_stream_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_stream_test.dir/rule
-
-# Convenience name for target.
-uri_stream_test: third_party/uri/test/CMakeFiles/uri_stream_test.dir/rule
-.PHONY : uri_stream_test
-
-# fast build rule for target.
-uri_stream_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make third_party/uri/test/CMakeFiles/uri_stream_test.dir/build
-.PHONY : uri_stream_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/rule
-
-# Convenience name for target.
-uri_parse_scheme_test: third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/rule
-.PHONY : uri_parse_scheme_test
-
-# fast build rule for target.
-uri_parse_scheme_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build
-.PHONY : uri_parse_scheme_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_comparison_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_comparison_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_comparison_test.dir/rule
-
-# Convenience name for target.
-uri_comparison_test: third_party/uri/test/CMakeFiles/uri_comparison_test.dir/rule
-.PHONY : uri_comparison_test
-
-# fast build rule for target.
-uri_comparison_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build
-.PHONY : uri_comparison_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_resolve_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_resolve_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_resolve_test.dir/rule
-
-# Convenience name for target.
-uri_resolve_test: third_party/uri/test/CMakeFiles/uri_resolve_test.dir/rule
-.PHONY : uri_resolve_test
-
-# fast build rule for target.
-uri_resolve_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build
-.PHONY : uri_resolve_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_builder_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_builder_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_builder_test.dir/rule
-
-# Convenience name for target.
-uri_builder_test: third_party/uri/test/CMakeFiles/uri_builder_test.dir/rule
-.PHONY : uri_builder_test
-
-# fast build rule for target.
-uri_builder_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make third_party/uri/test/CMakeFiles/uri_builder_test.dir/build
-.PHONY : uri_builder_test/fast
-
-# Convenience name for target.
-third_party/uri/test/CMakeFiles/uri_encoding_test.dir/rule:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/test/CMakeFiles/uri_encoding_test.dir/rule
-.PHONY : third_party/uri/test/CMakeFiles/uri_encoding_test.dir/rule
-
-# Convenience name for target.
-uri_encoding_test: third_party/uri/test/CMakeFiles/uri_encoding_test.dir/rule
-.PHONY : uri_encoding_test
-
-# fast build rule for target.
-uri_encoding_test/fast:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build
-.PHONY : uri_encoding_test/fast
-
-optional_test.o: optional_test.cpp.o
-.PHONY : optional_test.o
-
-# target to build an object file
-optional_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/optional_test.dir/build.make third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.o
-.PHONY : optional_test.cpp.o
-
-optional_test.i: optional_test.cpp.i
-.PHONY : optional_test.i
-
-# target to preprocess a source file
-optional_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/optional_test.dir/build.make third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.i
-.PHONY : optional_test.cpp.i
-
-optional_test.s: optional_test.cpp.s
-.PHONY : optional_test.s
-
-# target to generate assembly for a file
-optional_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/optional_test.dir/build.make third_party/uri/test/CMakeFiles/optional_test.dir/optional_test.cpp.s
-.PHONY : optional_test.cpp.s
-
-uri_builder_test.o: uri_builder_test.cpp.o
-.PHONY : uri_builder_test.o
-
-# target to build an object file
-uri_builder_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.o
-.PHONY : uri_builder_test.cpp.o
-
-uri_builder_test.i: uri_builder_test.cpp.i
-.PHONY : uri_builder_test.i
-
-# target to preprocess a source file
-uri_builder_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.i
-.PHONY : uri_builder_test.cpp.i
-
-uri_builder_test.s: uri_builder_test.cpp.s
-.PHONY : uri_builder_test.s
-
-# target to generate assembly for a file
-uri_builder_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_builder_test.dir/build.make third_party/uri/test/CMakeFiles/uri_builder_test.dir/uri_builder_test.cpp.s
-.PHONY : uri_builder_test.cpp.s
-
-uri_comparison_test.o: uri_comparison_test.cpp.o
-.PHONY : uri_comparison_test.o
-
-# target to build an object file
-uri_comparison_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.o
-.PHONY : uri_comparison_test.cpp.o
-
-uri_comparison_test.i: uri_comparison_test.cpp.i
-.PHONY : uri_comparison_test.i
-
-# target to preprocess a source file
-uri_comparison_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.i
-.PHONY : uri_comparison_test.cpp.i
-
-uri_comparison_test.s: uri_comparison_test.cpp.s
-.PHONY : uri_comparison_test.s
-
-# target to generate assembly for a file
-uri_comparison_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_comparison_test.dir/build.make third_party/uri/test/CMakeFiles/uri_comparison_test.dir/uri_comparison_test.cpp.s
-.PHONY : uri_comparison_test.cpp.s
-
-uri_encoding_test.o: uri_encoding_test.cpp.o
-.PHONY : uri_encoding_test.o
-
-# target to build an object file
-uri_encoding_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.o
-.PHONY : uri_encoding_test.cpp.o
-
-uri_encoding_test.i: uri_encoding_test.cpp.i
-.PHONY : uri_encoding_test.i
-
-# target to preprocess a source file
-uri_encoding_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.i
-.PHONY : uri_encoding_test.cpp.i
-
-uri_encoding_test.s: uri_encoding_test.cpp.s
-.PHONY : uri_encoding_test.s
-
-# target to generate assembly for a file
-uri_encoding_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_encoding_test.dir/build.make third_party/uri/test/CMakeFiles/uri_encoding_test.dir/uri_encoding_test.cpp.s
-.PHONY : uri_encoding_test.cpp.s
-
-uri_normalization_test.o: uri_normalization_test.cpp.o
-.PHONY : uri_normalization_test.o
-
-# target to build an object file
-uri_normalization_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.o
-.PHONY : uri_normalization_test.cpp.o
-
-uri_normalization_test.i: uri_normalization_test.cpp.i
-.PHONY : uri_normalization_test.i
-
-# target to preprocess a source file
-uri_normalization_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.i
-.PHONY : uri_normalization_test.cpp.i
-
-uri_normalization_test.s: uri_normalization_test.cpp.s
-.PHONY : uri_normalization_test.s
-
-# target to generate assembly for a file
-uri_normalization_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_normalization_test.dir/build.make third_party/uri/test/CMakeFiles/uri_normalization_test.dir/uri_normalization_test.cpp.s
-.PHONY : uri_normalization_test.cpp.s
-
-uri_parse_path_test.o: uri_parse_path_test.cpp.o
-.PHONY : uri_parse_path_test.o
-
-# target to build an object file
-uri_parse_path_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.o
-.PHONY : uri_parse_path_test.cpp.o
-
-uri_parse_path_test.i: uri_parse_path_test.cpp.i
-.PHONY : uri_parse_path_test.i
-
-# target to preprocess a source file
-uri_parse_path_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.i
-.PHONY : uri_parse_path_test.cpp.i
-
-uri_parse_path_test.s: uri_parse_path_test.cpp.s
-.PHONY : uri_parse_path_test.s
-
-# target to generate assembly for a file
-uri_parse_path_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_path_test.dir/uri_parse_path_test.cpp.s
-.PHONY : uri_parse_path_test.cpp.s
-
-uri_parse_scheme_test.o: uri_parse_scheme_test.cpp.o
-.PHONY : uri_parse_scheme_test.o
-
-# target to build an object file
-uri_parse_scheme_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.o
-.PHONY : uri_parse_scheme_test.cpp.o
-
-uri_parse_scheme_test.i: uri_parse_scheme_test.cpp.i
-.PHONY : uri_parse_scheme_test.i
-
-# target to preprocess a source file
-uri_parse_scheme_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.i
-.PHONY : uri_parse_scheme_test.cpp.i
-
-uri_parse_scheme_test.s: uri_parse_scheme_test.cpp.s
-.PHONY : uri_parse_scheme_test.s
-
-# target to generate assembly for a file
-uri_parse_scheme_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_scheme_test.dir/uri_parse_scheme_test.cpp.s
-.PHONY : uri_parse_scheme_test.cpp.s
-
-uri_parse_test.o: uri_parse_test.cpp.o
-.PHONY : uri_parse_test.o
-
-# target to build an object file
-uri_parse_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.o
-.PHONY : uri_parse_test.cpp.o
-
-uri_parse_test.i: uri_parse_test.cpp.i
-.PHONY : uri_parse_test.i
-
-# target to preprocess a source file
-uri_parse_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.i
-.PHONY : uri_parse_test.cpp.i
-
-uri_parse_test.s: uri_parse_test.cpp.s
-.PHONY : uri_parse_test.s
-
-# target to generate assembly for a file
-uri_parse_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_parse_test.dir/build.make third_party/uri/test/CMakeFiles/uri_parse_test.dir/uri_parse_test.cpp.s
-.PHONY : uri_parse_test.cpp.s
-
-uri_reference_test.o: uri_reference_test.cpp.o
-.PHONY : uri_reference_test.o
-
-# target to build an object file
-uri_reference_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.o
-.PHONY : uri_reference_test.cpp.o
-
-uri_reference_test.i: uri_reference_test.cpp.i
-.PHONY : uri_reference_test.i
-
-# target to preprocess a source file
-uri_reference_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.i
-.PHONY : uri_reference_test.cpp.i
-
-uri_reference_test.s: uri_reference_test.cpp.s
-.PHONY : uri_reference_test.s
-
-# target to generate assembly for a file
-uri_reference_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_reference_test.dir/build.make third_party/uri/test/CMakeFiles/uri_reference_test.dir/uri_reference_test.cpp.s
-.PHONY : uri_reference_test.cpp.s
-
-uri_resolve_test.o: uri_resolve_test.cpp.o
-.PHONY : uri_resolve_test.o
-
-# target to build an object file
-uri_resolve_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.o
-.PHONY : uri_resolve_test.cpp.o
-
-uri_resolve_test.i: uri_resolve_test.cpp.i
-.PHONY : uri_resolve_test.i
-
-# target to preprocess a source file
-uri_resolve_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.i
-.PHONY : uri_resolve_test.cpp.i
-
-uri_resolve_test.s: uri_resolve_test.cpp.s
-.PHONY : uri_resolve_test.s
-
-# target to generate assembly for a file
-uri_resolve_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_resolve_test.dir/build.make third_party/uri/test/CMakeFiles/uri_resolve_test.dir/uri_resolve_test.cpp.s
-.PHONY : uri_resolve_test.cpp.s
-
-uri_stream_test.o: uri_stream_test.cpp.o
-.PHONY : uri_stream_test.o
-
-# target to build an object file
-uri_stream_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.o
-.PHONY : uri_stream_test.cpp.o
-
-uri_stream_test.i: uri_stream_test.cpp.i
-.PHONY : uri_stream_test.i
-
-# target to preprocess a source file
-uri_stream_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.i
-.PHONY : uri_stream_test.cpp.i
-
-uri_stream_test.s: uri_stream_test.cpp.s
-.PHONY : uri_stream_test.s
-
-# target to generate assembly for a file
-uri_stream_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_stream_test.dir/build.make third_party/uri/test/CMakeFiles/uri_stream_test.dir/uri_stream_test.cpp.s
-.PHONY : uri_stream_test.cpp.s
-
-uri_test.o: uri_test.cpp.o
-.PHONY : uri_test.o
-
-# target to build an object file
-uri_test.cpp.o:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_test.dir/build.make third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.o
-.PHONY : uri_test.cpp.o
-
-uri_test.i: uri_test.cpp.i
-.PHONY : uri_test.i
-
-# target to preprocess a source file
-uri_test.cpp.i:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_test.dir/build.make third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.i
-.PHONY : uri_test.cpp.i
-
-uri_test.s: uri_test.cpp.s
-.PHONY : uri_test.s
-
-# target to generate assembly for a file
-uri_test.cpp.s:
- cd /u/bowman/camp/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/test/CMakeFiles/uri_test.dir/build.make third_party/uri/test/CMakeFiles/uri_test.dir/uri_test.cpp.s
-.PHONY : uri_test.cpp.s
-
-# Help Target
-help:
- @echo "The following are some of the valid targets for this Makefile:"
- @echo "... all (the default if no target is provided)"
- @echo "... clean"
- @echo "... depend"
- @echo "... edit_cache"
- @echo "... install"
- @echo "... install/local"
- @echo "... install/strip"
- @echo "... list_install_components"
- @echo "... rebuild_cache"
- @echo "... optional_test"
- @echo "... uri_builder_test"
- @echo "... uri_comparison_test"
- @echo "... uri_encoding_test"
- @echo "... uri_normalization_test"
- @echo "... uri_parse_path_test"
- @echo "... uri_parse_scheme_test"
- @echo "... uri_parse_test"
- @echo "... uri_reference_test"
- @echo "... uri_resolve_test"
- @echo "... uri_stream_test"
- @echo "... uri_test"
- @echo "... optional_test.o"
- @echo "... optional_test.i"
- @echo "... optional_test.s"
- @echo "... uri_builder_test.o"
- @echo "... uri_builder_test.i"
- @echo "... uri_builder_test.s"
- @echo "... uri_comparison_test.o"
- @echo "... uri_comparison_test.i"
- @echo "... uri_comparison_test.s"
- @echo "... uri_encoding_test.o"
- @echo "... uri_encoding_test.i"
- @echo "... uri_encoding_test.s"
- @echo "... uri_normalization_test.o"
- @echo "... uri_normalization_test.i"
- @echo "... uri_normalization_test.s"
- @echo "... uri_parse_path_test.o"
- @echo "... uri_parse_path_test.i"
- @echo "... uri_parse_path_test.s"
- @echo "... uri_parse_scheme_test.o"
- @echo "... uri_parse_scheme_test.i"
- @echo "... uri_parse_scheme_test.s"
- @echo "... uri_parse_test.o"
- @echo "... uri_parse_test.i"
- @echo "... uri_parse_test.s"
- @echo "... uri_reference_test.o"
- @echo "... uri_reference_test.i"
- @echo "... uri_reference_test.s"
- @echo "... uri_resolve_test.o"
- @echo "... uri_resolve_test.i"
- @echo "... uri_resolve_test.s"
- @echo "... uri_stream_test.o"
- @echo "... uri_stream_test.i"
- @echo "... uri_stream_test.s"
- @echo "... uri_test.o"
- @echo "... uri_test.i"
- @echo "... uri_test.s"
-.PHONY : help
-
-
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
- cd /u/bowman/camp/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-.PHONY : cmake_check_build_system
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/cmake_install.cmake b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/cmake_install.cmake
deleted file mode 100644
index e5e298da17d..00000000000
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/cmake_install.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-# Install script for directory: /u/bowman/camp/LspCpp/third_party/uri/test
-
-# Set the install prefix
-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
- set(CMAKE_INSTALL_PREFIX "/usr/local")
-endif()
-string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
- if(BUILD_TYPE)
- string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
- CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
- else()
- set(CMAKE_INSTALL_CONFIG_NAME "RelWithDebInfo")
- endif()
- message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-endif()
-
-# Set the component getting installed.
-if(NOT CMAKE_INSTALL_COMPONENT)
- if(COMPONENT)
- message(STATUS "Install component: \"${COMPONENT}\"")
- set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
- else()
- set(CMAKE_INSTALL_COMPONENT)
- endif()
-endif()
-
-# Install shared libraries without execute permission?
-if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
- set(CMAKE_INSTALL_SO_NO_EXE "0")
-endif()
-
-# Is this installation the result of a crosscompile?
-if(NOT DEFINED CMAKE_CROSSCOMPILING)
- set(CMAKE_CROSSCOMPILING "FALSE")
-endif()
-
-# Set default install directory permissions.
-if(NOT DEFINED CMAKE_OBJDUMP)
- set(CMAKE_OBJDUMP "/bin/objdump")
-endif()
-
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/optional_test.cpp b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
index 32170fd04b7..0f0238f733a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
@@ -163,6 +163,6 @@ TEST(optional_test, value_or_rvalue_reference_with_value) {
}
TEST(optional_test, assign_nullopt_to_nullopt) {
- network::optional<std::string> opt;
- opt = network::nullopt;
-} \ No newline at end of file
+ network::optional<std::string> opt;
+ opt = network::nullopt;
+}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
index 54e29e0c5c6..4b2b9cd5e23 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
@@ -684,9 +684,9 @@ TEST(builder_test, clear_query_test) {
}
TEST(uri_test, clear_query_params_with_no_query) {
- network::uri original("http://example.com/path");
- network::uri_builder builder(original);
- builder.clear_query();
+ network::uri original("http://example.com/path");
+ network::uri_builder builder(original);
+ builder.clear_query();
}
TEST(builder_test, clear_fragment_test) {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
index 47bb4fdd438..4c97d87258d 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
@@ -13,7 +13,7 @@ TEST(uri_encoding_test, encode_user_info_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_user_info(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C%2F:%3B%3D%3F%40%5B%5D", instance);
}
@@ -21,7 +21,7 @@ TEST(uri_encoding_test, encode_host_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_host(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C%2F:%3B%3D%3F%40[]", instance);
}
@@ -29,7 +29,7 @@ TEST(uri_encoding_test, encode_ipv6_host) {
const std::string unencoded("[::1]");
std::string instance;
network::uri::encode_host(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("[::1]", instance);
}
@@ -37,7 +37,7 @@ TEST(uri_encoding_test, encode_port_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_port(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D", instance);
}
@@ -45,7 +45,7 @@ TEST(uri_encoding_test, encode_path_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_path(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C/%3A;=%3F@%5B%5D", instance);
}
@@ -69,7 +69,7 @@ TEST(uri_encoding_test, decode_iterator) {
const std::string encoded("%21%23%24%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D");
std::string instance;
network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("!#$&'()*+,/:;=?@[]", instance);
}
@@ -77,62 +77,62 @@ TEST(uri_encoding_test, decode_iterator_error_1) {
const std::string encoded("%");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_2) {
const std::string encoded("%2");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_3) {
const std::string encoded("%%%");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_4) {
const std::string encoded("%2%");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_5) {
const std::string encoded("%G0");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_6) {
const std::string encoded("%0G");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_not_an_error_1) {
const std::string encoded("%20");
std::string instance;
ASSERT_NO_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)));
+ std::back_inserter(instance)));
}
TEST(uri_encoding_test, decode_iterator_not_an_error_2) {
const std::string encoded("%80");
std::string instance;
ASSERT_NO_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)));
+ std::back_inserter(instance)));
}
TEST(uri_encoding_test, decode_accepts_utf8) {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_test.cpp b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
index 62e224867ad..ad3d58f45f4 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
@@ -470,7 +470,7 @@ TEST(uri_test, range_test) {
const std::string url("http://www.example.com/");
network::uri instance(url);
EXPECT_TRUE(std::equal(std::begin(instance), std::end(instance),
- std::begin(url)));
+ std::begin(url)));
}
TEST(uri_test, issue_104_test) {
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
index 65338872532..f1ec6b652cc 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
@@ -50,15 +50,15 @@ int main(int argc, char** argv)
#if __cplusplus >= 201103L // C++ 11 or later
string utf8line = utf8::utf16to8(utf16line);
#else
- string utf8line;
+ string utf8line;
utf8::utf16to8(utf16line.begin(), utf16line.end(), back_inserter(utf8line));
#endif // C++ 11
// Confirm that the conversion went OK:
if (utf8line != string(line.begin(), end_it))
- cout << "Error in UTF-16 conversion at line: " << line_count << "\n";
+ cout << "Error in UTF-16 conversion at line: " << line_count << "\n";
line_count++;
- }
+ }
return 0;
}
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
index de6199f2a3a..d237e77a07d 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
@@ -133,15 +133,15 @@ namespace internal
inline bool is_overlong_sequence(uint32_t cp, octet_difference_type length)
{
if (cp < 0x80) {
- if (length != 1)
+ if (length != 1)
return true;
}
else if (cp < 0x800) {
- if (length != 2)
+ if (length != 2)
return true;
}
else if (cp < 0x10000) {
- if (length != 3)
+ if (length != 3)
return true;
}
@@ -163,7 +163,7 @@ namespace internal
return UTF8_OK;
}
- #define UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(IT, END) {utf_error ret = increase_safely(IT, END); if (ret != UTF8_OK) return ret;}
+ #define UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(IT, END) {utf_error ret = increase_safely(IT, END); if (ret != UTF8_OK) return ret;}
/// get_sequence_x functions decode utf-8 sequences of the length x
template <typename octet_iterator>
@@ -180,7 +180,7 @@ namespace internal
template <typename octet_iterator>
utf_error get_sequence_2(octet_iterator& it, octet_iterator end, uint32_t& code_point)
{
- if (it == end)
+ if (it == end)
return NOT_ENOUGH_ROOM;
code_point = utf8::internal::mask8(*it);
@@ -197,7 +197,7 @@ namespace internal
{
if (it == end)
return NOT_ENOUGH_ROOM;
-
+
code_point = utf8::internal::mask8(*it);
UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)
@@ -282,7 +282,7 @@ namespace internal
else
err = OVERLONG_SEQUENCE;
}
- else
+ else
err = INVALID_CODE_POINT;
}
@@ -330,7 +330,7 @@ namespace internal
((it != end) && (utf8::internal::mask8(*it++)) == bom[1]) &&
((it != end) && (utf8::internal::mask8(*it)) == bom[2])
);
- }
+ }
} // namespace utf8
#endif // header guard
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
index d93961b04f8..77771ff8e1a 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
@@ -96,7 +96,7 @@ namespace utf8
{
return starts_with_bom(s.begin(), s.end());
}
-
+
} // namespace utf8
#endif // header guard
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
index 7bfa8699428..0205f127969 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
@@ -96,7 +96,7 @@ namespace utf8
{
return starts_with_bom(s.begin(), s.end());
}
-
+
} // namespace utf8
#endif // header guard
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
index 0e1b51cc7d3..8bc34e8f655 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
+++ b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
@@ -110,18 +110,18 @@ namespace utf8
cp = ((cp << 6) & 0x7ff) + ((*it) & 0x3f);
break;
case 3:
- ++it;
+ ++it;
cp = ((cp << 12) & 0xffff) + ((utf8::internal::mask8(*it) << 6) & 0xfff);
++it;
cp += (*it) & 0x3f;
break;
case 4:
++it;
- cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
+ cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
++it;
cp += (utf8::internal::mask8(*it) << 6) & 0xfff;
++it;
- cp += (*it) & 0x3f;
+ cp += (*it) & 0x3f;
break;
}
++it;
@@ -162,7 +162,7 @@ namespace utf8
distance (octet_iterator first, octet_iterator last)
{
typename std::iterator_traits<octet_iterator>::difference_type dist;
- for (dist = 0; first < last; ++dist)
+ for (dist = 0; first < last; ++dist)
utf8::unchecked::next(first);
return dist;
}
@@ -234,15 +234,15 @@ namespace utf8
octet_iterator temp = it;
return utf8::unchecked::next(temp);
}
- bool operator == (const iterator& rhs) const
- {
+ bool operator == (const iterator& rhs) const
+ {
return (it == rhs.it);
}
bool operator != (const iterator& rhs) const
{
return !(operator == (rhs));
}
- iterator& operator ++ ()
+ iterator& operator ++ ()
{
::std::advance(it, utf8::internal::sequence_length(it));
return *this;
@@ -252,7 +252,7 @@ namespace utf8
iterator temp = *this;
::std::advance(it, utf8::internal::sequence_length(it));
return temp;
- }
+ }
iterator& operator -- ()
{
utf8::unchecked::prior(it);
@@ -267,7 +267,7 @@ namespace utf8
}; // class iterator
} // namespace utf8::unchecked
-} // namespace utf8
+} // namespace utf8
#endif // header guard
diff --git a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
index f1bcc993e0f..26f72d9ef5c 100644
--- a/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
+++ b/Build/source/utils/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
@@ -13,7 +13,7 @@ const unsigned* INVALID_LINES_END = INVALID_LINES + sizeof(INVALID_LINES)/sizeof
int main(int argc, char** argv)
{
string test_file_path;
- if (argc == 2)
+ if (argc == 2)
test_file_path = argv[1];
else {
cout << "Wrong number of arguments" << endl;
diff --git a/Build/source/utils/asymptote/Makefile.in b/Build/source/utils/asymptote/Makefile.in
index e3bf1722c9e..31dcb616c80 100644
--- a/Build/source/utils/asymptote/Makefile.in
+++ b/Build/source/utils/asymptote/Makefile.in
@@ -46,7 +46,7 @@ PRC = PRCbitStream oPRCFile PRCdouble writePRC
COREFILES = $(CAMP) $(SYMBOL_FILES) env genv stm dec errormsg \
callable name symbol entry exp newexp stack camp.tab lex.yy \
access virtualfieldaccess absyn record interact fileio \
- fftw++asy simpson coder coenv impdatum \
+ fftw++asy parallel simpson coder coenv impdatum \
@getopt@ locate parser program application varinit fundec refaccess \
envcompleter process constructor array Delaunay predicates \
$(PRC) glrender tr shaders jsfile v3dfile tinyexr EXRFiles GLTextures \
@@ -63,7 +63,7 @@ ASYGENERATEDENUMS=$(addprefix base/,$(GENERATEDENUMS:=.asy))
PYGENERATEDENUMS=$(GENERATEDENUMS:=.py)
DIST = camp.tab.h camp.tab.cc lex.yy.cc runtime.cc keywords.cc \
- asy-keywords.el $(RUNTIME_FILES:=.cc) $(RUNTIME_FILES:=.h) asy.list \
+ asy-keywords.el $(RUNTIME_FILES:=.cc) asy.list \
$(SYMBOLSH) $(PYFILES) $(GENERATEDENUMS:=.h) $(ASYGENERATEDENUMS)
NAME = asy
@@ -126,7 +126,7 @@ endif
export prefix docdir exampledir mandir infodir INSTALL MAKE DESTDIR TEXI2DVI
-asy: version glew.o @LSPLIB@
+asy: version $(FILES:=.o) glew.o @LSPLIB@
if test -n "$(MSDOS)"; then \
$(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) revision.o asy.o $(DOSLIBS); \
else \
@@ -134,7 +134,7 @@ asy: version glew.o @LSPLIB@
$(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) revision.o $(LIBS); \
fi
-version: $(GCLIB) $(FILES:=.o) $(notdir $(UIFILES:.ui=.py)) GUI/icons_rc.py $(ASYGENERATEDENUMS) $(PYGENERATEDENUMS)
+version: $(GCLIB) $(notdir $(UIFILES:.ui=.py)) GUI/icons_rc.py $(ASYGENERATEDENUMS) $(PYGENERATEDENUMS)
if test ! -s revision.cc || test "$(revision)" != "$(last)"; then \
echo $(REVISION)\"$(revision)\"\; > revision.cc; \
echo const char *AsyGLVersion=\"$(ASYGLVERSION)\"\; >> revision.cc; \
@@ -338,7 +338,7 @@ uninstall-docdir:
clean: FORCE
-rm -f asy asymptote.so *.pic.o *.o *.d *mon.out $(CLEAN)
- cd LspCpp && $(MAKE) clean
+ -cd LspCpp && $(MAKE) clean
gc-clean: FORCE clean
-if test -d $(GC); then \
@@ -355,7 +355,10 @@ cleaner: FORCE clean
distclean: FORCE cleaner
cd doc && $(MAKE) distclean
- cd LspCpp && rm CMakeCache.txt
+ cd LspCpp && rm -rf CMakeCache.txt CMakeDoxyfile.in \
+ CMakeDoxygenDefaults.cmake CMakeFiles Makefile cmake_install.cmake \
+ third_party/uri/src/CMakeFiles/network-uri.dir/detail
+
cleanest: FORCE maintainer-clean
maintainer-clean: FORCE distclean
@@ -377,7 +380,7 @@ glew.o: glew.c GL/glew.h GL/glew.c config.h
$(CC) -I. $(GLEWOPTS) -o glew.o -c glew.c
.SUFFIXES: .c .cc .o .d .ui .py
-%.o: %.cc $(GENERATEDENUMS:=.h)
+%.o: %.cc $(GENERATEDENUMS:=.h) $(RUNTIME_FILES:=.cc)
$(CXX) $(OPTS) -o $@ -c $<
%.d: %.cc $(GENERATEDENUMS:=.h) $(GCLIB)
@echo Creating $@; \
diff --git a/Build/source/utils/asymptote/ReleaseNotes b/Build/source/utils/asymptote/ReleaseNotes
index 4823d35fc11..840284e0316 100644
--- a/Build/source/utils/asymptote/ReleaseNotes
+++ b/Build/source/utils/asymptote/ReleaseNotes
@@ -1,3 +1,48 @@
+Release Notes for Version 2.84
+
+PDF image compression is now disabled by default for alternative output
+formats. The default UNIX postscript and PDF viewers were changed to evince.
+Makefile dependencies were fixed. A Qt compatibility bug was fixed in Xasy.
+A bug in XDR reads was fixed. A runtime error in the TexHead arrow was fixed.
+An inversion bug was fixed in the geometry module. A division by zero error
+in the vectorfield function was fixed. An option to display environment
+settings was added. The default labelmargin function now accounts for
+the pen linewidth. The resolution of the wall clock timer was improved.
+
+Release Notes for Version 2.83
+
+WebGL triangle groups were fixed. Context menus were added to Xasy objects
+to allow one to edit the fill type, line type, color, line cap, and
+optionally add arrowheads. Support for begingroup() and endgroup() was
+added to Xasy. Scaling in the vectorfield function was fixed.
+A quotient(x,y) bug when -1 < x/y < 0, introduced in version 2.42, was fixed.
+
+Release Notes for Version 2.82
+
+Support for Ghostscript 9.56 was added.
+Ambiguous functions are listed.
+The dvisvgmMultipleFiles option is now enabled by default.
+A bug in generating PDF labels was fixed.
+The mean color of multicoloured patches is output only for PRC code.
+Subdivision crack adjustments were disabled for transparent patches.
+The OpenGL transparency shader was further accelerated.
+WebGL bounding boxes are now computed by the client upon loading.
+Version 1.02 of the AsyGL library was released.
+
+Release Notes for Version 2.81
+
+Schur decompositions were implemented. A bug in uniform() was fixed.
+The Xasy bounding box and a crash when opening Xasy files were fixed.
+The transparency offset buffer is zeroed when GPU compression is unavailable.
+The surface constructor for solids of revolution was documented.
+Support for pkg-config was added. Opaque rendering on platforms lacking
+GL_ARB_fragment_shader_interlock was fixed.
+
+Release Notes for Version 2.80
+
+Compression of empty transparent pixel counts and other optimizations were
+implemented in the transparency shader. A weighted least-squares fit was added.
+
Release Notes for Version 2.79
The transparency shader was further optimized. The tensorshade fillrule was
diff --git a/Build/source/utils/asymptote/abs3doutfile.h b/Build/source/utils/asymptote/abs3doutfile.h
index 78568c14a9c..2a6041e775d 100644
--- a/Build/source/utils/asymptote/abs3doutfile.h
+++ b/Build/source/utils/asymptote/abs3doutfile.h
@@ -19,56 +19,52 @@ protected:
bool singleprecision;
public:
abs3Doutfile(bool singleprecision=false) : singleprecision(singleprecision) {}
- virtual ~abs3Doutfile() = default;
+ virtual ~abs3Doutfile()=default;
virtual void close()=0;
- virtual void addPatch(triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) = 0;
+ virtual void addPatch(triple const* controls, prc::RGBAColour const* c)=0;
virtual void addStraightPatch(
- triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) = 0;
+ triple const* controls, prc::RGBAColour const* c)=0;
virtual void addBezierTriangle(
- triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) = 0;
+ triple const* controls, prc::RGBAColour const* c)=0;
virtual void addStraightBezierTriangle(
- triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) = 0;
+ triple const* controls, prc::RGBAColour const* c)=0;
#ifdef HAVE_LIBGLM
- virtual void addMaterial(Material const& mat) = 0;
+ virtual void addMaterial(Material const& mat)=0;
#endif
- virtual void addSphere(triple const& center, double radius) = 0;
+ virtual void addSphere(triple const& center, double radius)=0;
- virtual void addHemisphere(triple const& center, double radius, double const& polar, double const& azimuth) = 0;
+ virtual void addHemisphere(triple const& center, double radius, double const& polar, double const& azimuth)=0;
virtual void addCylinder(triple const& center, double radius, double height,
double const& polar, const double& azimuth,
- bool core) = 0;
+ bool core)=0;
virtual void addDisk(triple const& center, double radius,
- double const& polar, const double& azimuth) = 0;
+ double const& polar, const double& azimuth)=0;
- virtual void addTube(const triple* g, double width,
- const triple& Min, const triple& Max, bool core) = 0;
+ virtual void addTube(const triple* g, double width, bool core)=0;
virtual void addTriangles(size_t nP, const triple* P, size_t nN,
const triple* N, size_t nC, const prc::RGBAColour* C,
size_t nI, const uint32_t (* PI)[3],
- const uint32_t (* NI)[3], const uint32_t (* CI)[3],
- const triple& Min, const triple& Max) = 0;
+ const uint32_t (* NI)[3],
+ const uint32_t (* CI)[3])=0;
virtual void addCurve(const triple& z0, const triple& c0,
- const triple& c1, const triple& z1,
- const triple& Min, const triple& Max) = 0;
+ const triple& c1, const triple& z1)=0;
- virtual void addCurve(const triple& z0, const triple& z1,
- const triple& Min, const triple& Max) = 0;
+ virtual void addCurve(const triple& z0, const triple& z1)=0;
- virtual void addPixel(const triple& z0, double width,
- const triple& Min, const triple& Max) = 0;
+ virtual void addPixel(const triple& z0, double width)=0;
- virtual void precision(int digits) = 0;
+ virtual void precision(int digits)=0;
};
diff --git a/Build/source/utils/asymptote/asy-keywords.el b/Build/source/utils/asymptote/asy-keywords.el
index 3f3bf45ea10..00c79ad8474 100644
--- a/Build/source/utils/asymptote/asy-keywords.el
+++ b/Build/source/utils/asymptote/asy-keywords.el
@@ -2,16 +2,16 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "2.79")
+(defvar asy-keywords-version "2.84")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
(defvar asy-type-name '(
-Braid FitResult Label Legend Solution TreeNode abscissa arc arrowhead binarytree binarytreeNode block bool bool3 bounds bqe circle conic coord coordsys cputime ellipse evaluatedpoint file filltype frame grid3 guide horner hsv hyperbola int inversion key light line linefit marginT marker mass node object pair parabola patch path path3 pen picture point position positionedvector projection rational real revolution scaleT scientific segment side simplex slice solution splitface string surface tensionSpecifier ticklocate ticksgridT tickvalues transform transformation tree triangle trilinear triple vector vertex void ))
+Braid FitResult Label Legend Solution TreeNode abscissa arc arrowhead binarytree binarytreeNode block bool bool3 bounds bqe circle conic coord coordsys cputime ellipse evaluatedpoint file filltype frame grid3 guide horner hsv hyperbola int inversion key light line linefit marginT marker mass node object pair parabola patch path path3 pen picture point position positionedvector projection rational real realschur revolution scaleT schur scientific segment side simplex slice solution splitface string surface tensionSpecifier ticklocate ticksgridT tickvalues transform transformation tree triangle trilinear triple vector vertex void ))
(defvar asy-function-name '(
-AND Align Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs abs2 accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte byteinv calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale graphwithderiv gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface importv3d incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isometry isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map mapArray mapTemplate margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 phi4 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend primitive printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexInit simplexPhase1 simplexPhase2 simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube type uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans ))
+AND Align Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _schur _shipout _strokepath _texpath aCos aSin aTan abort abs abs2 accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte byteinv calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale graphwithderiv gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface importv3d incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isometry isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map mapArray mapTemplate margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocenter orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 phi4 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend primitive printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless schur scientific search searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexInit simplexPhase1 simplexPhase2 simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube type uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans ))
(defvar asy-variable-name '(
-Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkFillable MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RELEASE RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator diamond differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxDenominator maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip v3dheadertypes v3dtypes version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding ))
+Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkFillable MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RELEASE RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor artificialColumn authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator diamond differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxDenominator maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive optimizeTableau orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip v3dheadertypes v3dtypes version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding ))
diff --git a/Build/source/utils/asymptote/asy.list b/Build/source/utils/asymptote/asy.list
index 3b66c33c2e9..c802ef3bd6b 100644
--- a/Build/source/utils/asymptote/asy.list
+++ b/Build/source/utils/asymptote/asy.list
@@ -68,8 +68,8 @@ path3 subpath(path3 p, real a, real b);
bool isnan(real x);
string jobname(string name);
void print_random_addresses(int n=<default>);
-void attach(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void attach(picture dest=<default>, frame src, pair position, pair align, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void attach(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
real[] quadraticroots(real a, real b, real c);
pair[] quadraticroots(explicit pair a, explicit pair b, explicit pair c);
pen darkcyan;
@@ -106,8 +106,8 @@ void atupdate(void f());
void atupdate()();
void unfill(frame f, path[] g, bool copy=<default>);
void unfill(picture pic=<default>, path[] g, bool copy=<default>);
-bool Bar(picture, path, pen, marginT(path, pen));
bool Bar(picture, path, pen, marginT(path, pen))(real size=<default>);
+bool Bar(picture, path, pen, marginT(path, pen));
bool eol(file f);
pen zerowinding;
void atbreakpoint(string f(string, int, int, code));
@@ -147,8 +147,8 @@ pen rgb(real r, real g, real b);
pen rgb(real[] a);
pen rgb(string s);
real inch;
-bool ArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
bool ArcArrow(picture, path, pen, marginT(path, pen));
+bool ArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
bool ArcArrows(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>);
bool ArcArrows(picture, path, pen, marginT(path, pen));
pen currentpen;
@@ -256,24 +256,24 @@ int search(int[] a, int key);
int search(real[] a, real key);
int search(string[] a, string key);
int search(void()()[] a, void key()(), bool less(void()(), void()()));
-int search(Label[] a, Label key, bool less(Label, Label));
+int search(picture[] a, picture key, bool less(picture, picture));
int search(real[] a, real key, bool less(real, real));
int search(guide[] a, guide key, bool less(guide, guide));
-int search(Legend[] a, Legend key, bool less(Legend, Legend));
+int search(object[] a, object key, bool less(object, object));
int search(pair[] a, pair key, bool less(pair, pair));
-int search(frame[] a, frame key, bool less(frame, frame));
int search(coord[] a, coord key, bool less(coord, coord));
+int search(Label[] a, Label key, bool less(Label, Label));
+int search(frame[] a, frame key, bool less(frame, frame));
int search(coord[] a, coord key, bool less(coord, coord));
+int search(Legend[] a, Legend key, bool less(Legend, Legend));
int search(int[] a, int key, bool less(int, int));
int search(bool3[] a, bool3 key, bool less(bool3, bool3));
-int search(marker[] a, marker key, bool less(marker, marker));
int search(string[] a, string key, bool less(string, string));
int search(path[] a, path key, bool less(path, path));
int search(pen[] a, pen key, bool less(pen, pen));
-int search(picture[] a, picture key, bool less(picture, picture));
int search(bool[] a, bool key, bool less(bool, bool));
int search(triple[] a, triple key, bool less(triple, triple));
-int search(object[] a, object key, bool less(object, object));
+int search(marker[] a, marker key, bool less(marker, marker));
filltype RadialShadeDraw(real xmargin=<default>, real ymargin=<default>, pen penc, pen penr, pen drawpen=<default>);
real sin(real x);
real[] sin(real[] a);
@@ -349,18 +349,18 @@ pair max(explicit path p);
pair max(path[] p);
triple max(path3 p);
real max(real M, scaling s, coord[] c);
-real max(real M, scaling s, coord[] c);
int max(... int[] a);
pair max(picture pic, bool user=<default>);
real max(... real[] a);
+real max(real M, scaling s, coord[] c);
+Label Label(Label L, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(string s, string size=<default>, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(Label L, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(explicit pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
-Label Label(string s=<default>, string size=<default>, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label;
+Label Label(string s=<default>, string size=<default>, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(string s, string size=<default>, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(Label L, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
-Label Label(Label L, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
string font(pen p=<default>);
pen font(string name, string options=<default>);
pen font(string encoding, string family, string series, string shape);
@@ -405,9 +405,9 @@ void label(picture pic=<default>, Label L, explicit path g, align align=<default
real fabs(real x);
real[] fabs(real[] a);
bool labels(frame f);
-light light(explicit light light);
light light(pen diffuse=<default>, pen specular=<default>, pen background=<default>, real x, real y, real z);
light light(pen diffuse=<default>, pen specular=<default>, pen background=<default>, real specularfactor=<default> ... triple[] position);
+light light(explicit light light);
light light(pen[] diffuse, pen[] specular=<default>, pen background=<default>, real specularfactor=<default>, triple[] position);
real remainder(real x, real y);
int byte(real x);
@@ -433,10 +433,10 @@ real erf(real x);
void saveline(string name, string value, bool store=<default>);
pen fuchsia;
filltype filltype(int type=<default>, pen fillpen=<default>, pen drawpen=<default>, void fill2(frame f, path[] g, pen fillpen));
-path box(pair a, pair b);
+pen Bookman(string series=<default>, string shape=<default>);
path box(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
path box(frame f, Label L, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
-pen Bookman(string series=<default>, string shape=<default>);
+path box(pair a, pair b);
frame[] fit(string prefix=<default>, picture[] pictures, string format=<default>, bool view=<default>, string options=<default>, string script=<default>, projection P=<default>);
void seekeof(file f);
path unitcircle;
@@ -529,7 +529,6 @@ bool[] copy(bool[] a, int depth=<default>);
real[][] copy(real[][] a, int depth=<default>);
pen[] copy(pen[] a, int depth=<default>);
coord[] copy(coord[] a, int depth=<default>);
-coord[] copy(coord[] a, int depth=<default>);
object[] copy(object[] a, int depth=<default>);
marker[] copy(marker[] a, int depth=<default>);
Legend[] copy(Legend[] a, int depth=<default>);
@@ -542,6 +541,7 @@ string[][] copy(string[][] a, int depth=<default>);
frame[] copy(frame[] a, int depth=<default>);
pair[] copy(pair[] a, int depth=<default>);
bool3[] copy(bool3[] a, int depth=<default>);
+coord[] copy(coord[] a, int depth=<default>);
Label[] copy(Label[] a, int depth=<default>);
picture[] copy(picture[] a, int depth=<default>);
pair[][] copy(pair[][] a, int depth=<default>);
@@ -579,25 +579,25 @@ int[] map(int f(real), real[] a);
bool3[] map(bool3 f(bool3), bool3[] a);
frame[] map(frame f(frame), frame[] a);
coord[] map(coord f(coord), coord[] a);
-coord[] map(coord f(coord), coord[] a);
+Legend[] map(Legend f(Legend), Legend[] a);
pen[][] map(pen[] f(pen[]), pen[][] a);
triple[] map(triple f(triple), triple[] a);
pen[] map(pen f(pen), pen[] a);
+coord[] map(coord f(coord), coord[] a);
+Label[] map(Label f(Label), Label[] a);
pair[] map(pair f(pair), pair[] a);
-Legend[] map(Legend f(Legend), Legend[] a);
+object[] map(object f(object), object[] a);
string[] map(string f(string), string[] a);
-Label[] map(Label f(Label), Label[] a);
+picture[] map(picture f(picture), picture[] a);
void()()[] map(void f()()(void()()), void()()[] a);
pair[][] map(pair[] f(pair[]), pair[][] a);
real[] map(real f(real), real[] a);
-object[] map(object f(object), object[] a);
+marker[] map(marker f(marker), marker[] a);
int[] map(int f(int), int[] a);
string[][] map(string[] f(string[]), string[][] a);
-picture[] map(picture f(picture), picture[] a);
bool[] map(bool f(bool), bool[] a);
path[] map(path f(path), path[] a);
real[][] map(real[] f(real[]), real[][] a);
-marker[] map(marker f(marker), marker[] a);
guide[] map(guide f(guide), guide[] a);
path unstraighten(path p);
path3 unstraighten(path3 p);
@@ -613,7 +613,6 @@ pair minratio(path3 g);
int[] sequence(int n);
pen[][] sequence(pen[] f(int), int n);
coord[] sequence(coord f(int), int n);
-coord[] sequence(coord f(int), int n);
object[] sequence(object f(int), int n);
marker[] sequence(marker f(int), int n);
Legend[] sequence(Legend f(int), int n);
@@ -628,6 +627,7 @@ bool[] sequence(bool f(int), int n);
string[] sequence(string f(int), int n);
pair[][] sequence(pair[] f(int), int n);
bool3[] sequence(bool3 f(int), int n);
+coord[] sequence(coord f(int), int n);
Label[] sequence(Label f(int), int n);
picture[] sequence(picture f(int), int n);
real[][] sequence(real[] f(int), int n);
@@ -706,23 +706,23 @@ slice cut(path p, path knife, int n);
bool is3D(frame f);
bool is3D(string format=<default>);
void add(frame dest, frame src);
-void add(picture pic=<default>, void d(frame f, transform t), bool exact=<default>);
-void add(frame dest, frame src, filltype filltype, bool above=<default>);
-void add(frame dest, frame src, bool group, filltype filltype=<default>, bool above=<default>);
-void add(picture pic=<default>, void d(picture, real[][]), bool exact=<default>);
-void add(frame dest, frame src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
-void add(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
-void add(picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
-void add(picture pic=<default>, Label L);
-void add(frame f, transform t=<default>, Label L);
void add(picture dest=<default>, frame src, pair position, pair align, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(frame dest, frame src, pair position, pair align, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void add(picture pic=<default>, void d(frame f, transform t), bool exact=<default>);
void add(picture pic=<default>, void d(frame f, real[][] t, picture pic, projection P), bool exact=<default>);
-void add(picture pic=<default>, void d(picture, transform), bool exact=<default>);
+void add(picture pic=<default>, void d(picture, real[][]), bool exact=<default>);
void add(picture dest, picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest, picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest=<default>, object F, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void add(frame dest, frame src, filltype filltype, bool above=<default>);
+void add(frame dest, frame src, bool group, filltype filltype=<default>, bool above=<default>);
+void add(frame dest, frame src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void add(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void add(picture pic=<default>, Label L);
+void add(picture pic=<default>, void d(picture, transform), bool exact=<default>);
+void add(frame f, transform t=<default>, Label L);
+void add(picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
plain plain;
void purge(int divisor=<default>);
int Round(real x);
@@ -742,15 +742,16 @@ plain_scaling plain_scaling;
string file(string s);
plain_bounds plain_bounds;
string outprefix(string prefix=<default>);
-object object(Label L);
-object object(frame f);
object object(Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
+object object(frame f);
+object object(Label L);
file stdin;
void()()[] array(int n, void value()(), int depth=<default>);
bool[] array(int n, bool value, int depth=<default>);
string[] array(int n, string value, int depth=<default>);
pair[][] array(int n, pair[] value, int depth=<default>);
bool3[] array(int n, bool3 value, int depth=<default>);
+coord[] array(int n, coord value, int depth=<default>);
Label[] array(int n, Label value, int depth=<default>);
picture[] array(int n, picture value, int depth=<default>);
real[][] array(int n, real[] value, int depth=<default>);
@@ -760,7 +761,6 @@ path[] array(int n, path value, int depth=<default>);
frame[] array(int n, frame value, int depth=<default>);
pen[][] array(int n, pen[] value, int depth=<default>);
coord[] array(int n, coord value, int depth=<default>);
-coord[] array(int n, coord value, int depth=<default>);
object[] array(int n, object value, int depth=<default>);
marker[] array(int n, marker value, int depth=<default>);
Legend[] array(int n, Legend value, int depth=<default>);
@@ -811,18 +811,18 @@ void draw(frame f, triple[] p, real[] knot, real[] weights=<default>, pen p);
void draw(frame f, triple[][] p, real[] uknot, real[] vknot, real[][] weights=<default>, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors);
void draw(frame f, triple[] v, int[][] vi, triple center=<default>, triple[] n, int[][] ni, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] c=<default>, int[][] ci=<default>, int interaction);
void draw(picture pic=<default>, path[] g, pen fillrule=<default>, pen[] p);
-object draw(picture pic=<default>, Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
+object draw(picture pic=<default>, Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), pair position, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
void draw(frame f, explicit path[] g, pen p=<default>);
-void draw(frame f, path g, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen)));
+void draw(picture pic=<default>, guide[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
+void draw(pair origin, picture pic=<default>, guide[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, explicit path[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
void draw(pair origin, picture pic=<default>, explicit path[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
-object draw(picture pic=<default>, Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), pair position, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
-void draw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
-void draw(pair origin, picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+object draw(picture pic=<default>, Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
void draw(frame f, guide[] g, pen p=<default>);
void draw(frame f, path g, pen p=<default>);
-void draw(picture pic=<default>, guide[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
-void draw(pair origin, picture pic=<default>, guide[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
+void draw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(pair origin, picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
+void draw(frame f, path g, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen)));
int mantissaBits;
real identity(real x);
real[] identity(real[] a);
@@ -886,13 +886,13 @@ void write(file file=<default>, string s=<default>, guide x, void suffix(file)=<
void write(file file=<default>, string s=<default>, pen x, void suffix(file)=<default> ... pen[]);
void write(file file, string s=<default>, explicit guide[] x, void suffix(file)=<default>);
void write(string s=<default>, cputime c, string format=<default>, void suffix(file)=<default>);
-void write(pairOrTriple a);
void write(string s=<default>, explicit path[] x, void suffix(file)=<default>);
void write(file file, void suffix(file)=<default>);
void write(file file=<default>, string s=<default>, pen[] p);
void write(void suffix(file)=<default>);
void write(file file, string s=<default>, explicit path[] x, void suffix(file)=<default>);
void write(file file=<default>, align align, void suffix(file)=<default>);
+void write(pairOrTriple a);
void write(file file, string s=<default>, cputime c, string format=<default>, void suffix(file)=<default>);
void write(string s=<default>, bool3 b, void suffix(file)=<default>);
void write(file file, string s=<default>, bool3 b, void suffix(file)=<default>);
@@ -949,22 +949,22 @@ pen dotted;
string blend(pen p);
arrowhead HookHead;
arrowhead HookHead(real dir=<default>, real barb=<default>);
-object[] concat(... object[][]);
+marker[] concat(... marker[][]);
real[] concat(... real[][]);
-Label[] concat(... Label[][]);
+picture[] concat(... picture[][]);
pair[] concat(... pair[][]);
-Legend[] concat(... Legend[][]);
+object[] concat(... object[][]);
pen[] concat(... pen[][]);
-path[] concat(... path[][]);
coord[] concat(... coord[][]);
+Label[] concat(... Label[][]);
+path[] concat(... path[][]);
coord[] concat(... coord[][]);
+Legend[] concat(... Legend[][]);
int[] concat(... int[][]);
void()()[] concat(... void()()[][]);
bool3[] concat(... bool3[][]);
string[] concat(... string[][]);
-marker[] concat(... marker[][]);
triple[] concat(... triple[][]);
-picture[] concat(... picture[][]);
frame[] concat(... frame[][]);
guide[] concat(... guide[][]);
bool[] concat(... bool[][]);
@@ -974,61 +974,63 @@ real[] log1p(real[] a);
real infinity;
bool alias(pair[][] a, pair[][] b);
bool alias(guide[] a, guide[] b);
-bool alias(filltype a, filltype b);
-bool alias(coord[] a, coord[] b);
+bool alias(marginT a, marginT b);
bool alias(coord[] a, coord[] b);
-bool alias(coords3 a, coords3 b);
-bool alias(marker a, marker b);
+bool alias(autoscaleT a, autoscaleT b);
+bool alias(align a, align b);
+bool alias(Legend[] a, Legend[] b);
+bool alias(processtime a, processtime b);
bool alias(pair[] a, pair[] b);
bool alias(scaling a, scaling b);
-bool alias(scaling a, scaling b);
-bool alias(ScaleT a, ScaleT b);
-bool alias(side a, side b);
-bool alias(arrowhead a, arrowhead b);
-bool alias(picture[] a, picture[] b);
+bool alias(coord a, coord b);
+bool alias(light a, light b);
+bool alias(node a, node b);
+bool alias(Label a, Label b);
+bool alias(schur a, schur b);
bool alias(int[] a, int[] b);
bool alias(string[][] a, string[][] b);
bool alias(slice a, slice b);
-bool alias(simplex a, simplex b);
-bool alias(projection a, projection b);
-bool alias(pairOrTriple a, pairOrTriple b);
-bool alias(object a, object b);
-bool alias(Legend[] a, Legend[] b);
+bool alias(freezableBounds a, freezableBounds b);
+bool alias(transformation a, transformation b);
+bool alias(coords3 a, coords3 b);
+bool alias(object[] a, object[] b);
+bool alias(marker a, marker b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
-bool alias(bounds a, bounds b);
bool alias(scaleT a, scaleT b);
-bool alias(processtime a, processtime b);
+bool alias(ScaleT a, ScaleT b);
+bool alias(side a, side b);
bool alias(cputime a, cputime b);
bool alias(string[] a, string[] b);
bool alias(frame[] a, frame[] b);
bool alias(coords2 a, coords2 b);
-bool alias(coords2 a, coords2 b);
-bool alias(Legend a, Legend b);
-bool alias(position a, position b);
-bool alias(object[] a, object[] b);
+bool alias(scaling a, scaling b);
+bool alias(pairOrTriple a, pairOrTriple b);
+bool alias(object a, object b);
+bool alias(marker[] a, marker[] b);
bool alias(bool[] a, bool[] b);
bool alias(void()()[] a, void()()[] b);
bool alias(pen[][] a, pen[][] b);
-bool alias(marginT a, marginT b);
-bool alias(light a, light b);
-bool alias(picture a, picture b);
+bool alias(filltype a, filltype b);
+bool alias(simplex a, simplex b);
+bool alias(coord[] a, coord[] b);
+bool alias(projection a, projection b);
+bool alias(Label[] a, Label[] b);
+bool alias(arrowhead a, arrowhead b);
bool alias(path[] a, path[] b);
bool alias(triple[] a, triple[] b);
bool alias(coord a, coord b);
-bool alias(coord a, coord b);
-bool alias(autoscaleT a, autoscaleT b);
-bool alias(align a, align b);
-bool alias(marker[] a, marker[] b);
+bool alias(bounds a, bounds b);
+bool alias(Legend a, Legend b);
+bool alias(position a, position b);
+bool alias(realschur a, realschur b);
bool alias(real[] a, real[] b);
bool alias(pen[] a, pen[] b);
bool alias(hsv a, hsv b);
-bool alias(freezableBounds a, freezableBounds b);
-bool alias(transformation a, transformation b);
-bool alias(node a, node b);
-bool alias(Label a, Label b);
-bool alias(Label[] a, Label[] b);
+bool alias(coords2 a, coords2 b);
+bool alias(picture a, picture b);
+bool alias(picture[] a, picture[] b);
real pi;
int getint(string name=<default>, int default=<default>, string prompt=<default>, bool store=<default>);
int bitreverse(int a, int bits);
@@ -1058,7 +1060,6 @@ real[][] sort(real[][] a);
string[] sort(string[] a);
string[][] sort(string[][] a);
coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
-coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
object[] sort(object[] a, bool less(object, object), bool stable=<default>);
marker[] sort(marker[] a, bool less(marker, marker), bool stable=<default>);
Legend[] sort(Legend[] a, bool less(Legend, Legend), bool stable=<default>);
@@ -1070,6 +1071,7 @@ bool[] sort(bool[] a, bool less(bool, bool), bool stable=<default>);
void()()[] sort(void()()[] a, bool less(void()(), void()()), bool stable=<default>);
frame[] sort(frame[] a, bool less(frame, frame), bool stable=<default>);
bool3[] sort(bool3[] a, bool less(bool3, bool3), bool stable=<default>);
+coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
Label[] sort(Label[] a, bool less(Label, Label), bool stable=<default>);
picture[] sort(picture[] a, bool less(picture, picture), bool stable=<default>);
int[] sort(int[] a, bool less(int, int), bool stable=<default>);
@@ -1089,11 +1091,11 @@ void latticeshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fi
pair[] pairs(real[] x, real[] y);
void eval(code s, bool embedded=<default>);
void eval(string s, bool embedded=<default>);
-bool Arrow(picture, path, pen, marginT(path, pen));
bool Arrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
+bool Arrow(picture, path, pen, marginT(path, pen));
void drawTube(frame f, triple[] g, real width, pen[] p, real opacity, real shininess, real metallic, real fresnel0, triple min, triple max, bool core=<default>);
-bool Arrows(picture, path, pen, marginT(path, pen));
bool Arrows(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>);
+bool Arrows(picture, path, pen, marginT(path, pen));
int tell(file f);
pen Yellow;
pair up;
@@ -1119,9 +1121,9 @@ pen[] mean(pen[][] palette, real opacity(real[])=<default>);
string mktemp(string s);
void sleep(int seconds);
void drawstrokepath(picture pic=<default>, path g, pen strokepen, pen p=<default>);
-void unitsize(picture pic=<default>, real x, real y=<default>, real z=<default>);
void arrow(picture pic=<default>, Label L=<default>, pair b, pair dir, real length=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
picture arrow(arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, bool forwards=<default>, marginT margin(path, pen)=<default>, bool center=<default>);
+void unitsize(picture pic=<default>, real x, real y=<default>, real z=<default>);
picture arrow2(arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>);
path unitsquare;
real arrowdir;
@@ -1202,6 +1204,7 @@ projection projection(triple camera, triple up=<default>, triple target=<default
void endl(file file);
path diamond;
marginT TrueMargin(path, pen)(real begin, real end=<default>);
+real bezier(real a, real b, real c, real d, real t);
pair bezier(pair a, pair b, pair c, pair d, real t);
triple bezier(triple a, triple b, triple c, triple d, real t);
pair SSE;
@@ -1296,10 +1299,10 @@ triple[] operator +(triple[] a);
pen operator +(pen a, pen b);
transform operator +(transform a, transform b);
pen operator +(pen p, real w);
-marginT operator +(path, pen)(marginT ma(path, pen), marginT mb(path, pen));
pen[] operator +(pen a, pen[] b);
pen operator +(real w, pen p);
string operator +(... string[] a);
+marginT operator +(path, pen)(marginT ma(path, pen), marginT mb(path, pen));
pen[] operator +(pen[] a, pen b);
int operator -(int a, int b);
int[] operator -(int a, int[] b);
@@ -1373,15 +1376,15 @@ triple operator *(real[][] t, triple v);
triple operator *(real x, triple v);
triple operator *(triple v, real x);
path3 operator *(real[][] t, path3 g);
+side operator *(real x, side s);
+Label operator *(real[][] t, Label L);
picture operator *(transform t, picture orig);
object operator *(transform t, explicit object F);
-Label operator *(transform t, Label L);
path[] operator *(transform t, explicit path[] p);
+Label operator *(transform t, Label L);
pair[] operator *(transform t, pair[] z);
-picture operator *(real[][] t, picture orig);
bounds operator *(transform t, bounds b);
-side operator *(real x, side s);
-Label operator *(real[][] t, Label L);
+picture operator *(real[][] t, picture orig);
bool operator init();
int operator init();
real operator init();
@@ -1395,38 +1398,40 @@ path3 operator init();
pen operator init();
frame operator init();
file operator init();
-filltype operator init();
-coords3 operator init();
-marker operator init();
marginT operator init();
-light operator init();
-picture operator init();
-slice operator init();
+autoscaleT operator init();
+align operator init();
+processtime operator init();
+filltype operator init();
simplex operator init();
projection operator init();
-pairOrTriple operator init();
-object operator init();
-hsv operator init();
+arrowhead operator init();
+slice operator init();
transformation operator init();
-node operator init();
-Label operator init();
+coords3 operator init();
+marker operator init();
+hsv operator init();
coords2 operator init();
+picture operator init();
coords2 operator init();
-Legend operator init();
-position operator init();
scaling operator init();
+pairOrTriple operator init();
+object operator init();
scaling operator init();
-ScaleT operator init();
-side operator init();
-arrowhead operator init();
coord operator init();
+light operator init();
+node operator init();
+Label operator init();
+schur operator init();
coord operator init();
-autoscaleT operator init();
-align operator init();
-bool3 operator init();
bounds operator init();
+Legend operator init();
+position operator init();
+realschur operator init();
+bool3 operator init();
scaleT operator init();
-processtime operator init();
+ScaleT operator init();
+side operator init();
cputime operator init();
real operator cast(int);
pair operator cast(int);
@@ -1469,33 +1474,33 @@ string[][][] operator cast(file);
guide operator cast(cycleToken tok);
guide operator cast(curlSpecifier spec);
guide operator cast(tensionSpecifier t);
+align operator cast(side side);
guide[] operator cast(path[] g);
-pair operator cast(position P);
+pair operator cast(pairOrTriple a);
+triple operator cast(pairOrTriple a);
+frame operator cast(object F);
hsv operator cast(pen p);
-object operator cast(frame f);
bool3[] operator cast(bool[] b);
-align operator cast(pair dir);
+position operator cast(pair x);
+object operator cast(Label L);
+Label operator cast(object F);
+pair operator cast(position P);
+object operator cast(frame f);
guide[] operator cast(pair[] z);
-align operator cast(triple dir);
path[] operator cast(guide[] g);
bool operator cast(bool3 b);
+align operator cast(pair dir);
path[] operator cast(guide g);
-align operator cast(side side);
-position operator cast(int x);
-object operator cast(string s);
path[] operator cast(pair[] z);
+align operator cast(triple dir);
path[] operator cast(path p);
bool[] operator cast(bool3[] b);
-position operator cast(real x);
-Label operator cast(string s);
-object operator cast(Label L);
-Label operator cast(object F);
-pair operator cast(pairOrTriple a);
-triple operator cast(pairOrTriple a);
-frame operator cast(object F);
bool3 operator cast(bool b);
+position operator cast(int x);
+object operator cast(string s);
pen operator cast(hsv hsv);
-position operator cast(pair x);
+position operator cast(real x);
+Label operator cast(string s);
pen deepred;
bool error(file f);
string operator ecast(int);
@@ -1600,41 +1605,43 @@ bool operator ==(file a, file b);
bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
-bool operator ==(bounds a, bounds b);
bool operator ==(scaleT a, scaleT b);
-bool operator ==(processtime a, processtime b);
+bool operator ==(ScaleT a, ScaleT b);
+bool operator ==(side a, side b);
bool operator ==(cputime a, cputime b);
bool operator ==(coords2 a, coords2 b);
-bool operator ==(coords2 a, coords2 b);
+bool operator ==(scaling a, scaling b);
+bool operator ==(pairOrTriple a, pairOrTriple b);
+bool operator ==(object a, object b);
+bool operator ==(filltype a, filltype b);
+bool operator ==(simplex a, simplex b);
+bool operator ==(projection a, projection b);
+bool operator ==(arrowhead a, arrowhead b);
+bool operator ==(coord a, coord b);
+bool operator ==(bounds a, bounds b);
bool operator ==(Legend a, Legend b);
bool operator ==(position a, position b);
-bool operator ==(marginT a, marginT b);
-bool operator ==(light a, light b);
+bool operator ==(realschur a, realschur b);
+bool operator ==(hsv a, hsv b);
+bool operator ==(coords2 a, coords2 b);
bool operator ==(picture a, picture b);
-bool operator ==(coord a, coord b);
-bool operator ==(coord a, coord b);
+bool operator ==(bool3 a, bool b);
+bool operator ==(marginT a, marginT b);
bool operator ==(autoscaleT a, autoscaleT b);
bool operator ==(align a, align b);
-bool operator ==(hsv a, hsv b);
-bool operator ==(freezableBounds a, freezableBounds b);
-bool operator ==(transformation a, transformation b);
+bool operator ==(processtime a, processtime b);
+bool operator ==(scaling a, scaling b);
+bool operator ==(coord a, coord b);
+bool operator ==(light a, light b);
bool operator ==(node a, node b);
bool operator ==(Label a, Label b);
-bool operator ==(bool3 a, bool b);
-bool operator ==(filltype a, filltype b);
-bool operator ==(coords3 a, coords3 b);
-bool operator ==(marker a, marker b);
-bool operator ==(scaling a, scaling b);
-bool operator ==(scaling a, scaling b);
-bool operator ==(ScaleT a, ScaleT b);
-bool operator ==(side a, side b);
-bool operator ==(arrowhead a, arrowhead b);
+bool operator ==(schur a, schur b);
bool operator ==(bool a, bool3 b);
bool operator ==(slice a, slice b);
-bool operator ==(simplex a, simplex b);
-bool operator ==(projection a, projection b);
-bool operator ==(pairOrTriple a, pairOrTriple b);
-bool operator ==(object a, object b);
+bool operator ==(freezableBounds a, freezableBounds b);
+bool operator ==(transformation a, transformation b);
+bool operator ==(coords3 a, coords3 b);
+bool operator ==(marker a, marker b);
bool operator !=(bool a, bool b);
bool[] operator !=(bool a, bool[] b);
bool[] operator !=(bool[] a, bool b);
@@ -1672,41 +1679,43 @@ bool operator !=(file a, file b);
bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
-bool operator !=(bounds a, bounds b);
bool operator !=(scaleT a, scaleT b);
-bool operator !=(processtime a, processtime b);
+bool operator !=(ScaleT a, ScaleT b);
+bool operator !=(side a, side b);
bool operator !=(cputime a, cputime b);
bool operator !=(coords2 a, coords2 b);
-bool operator !=(coords2 a, coords2 b);
+bool operator !=(scaling a, scaling b);
+bool operator !=(pairOrTriple a, pairOrTriple b);
+bool operator !=(object a, object b);
+bool operator !=(filltype a, filltype b);
+bool operator !=(simplex a, simplex b);
+bool operator !=(projection a, projection b);
+bool operator !=(arrowhead a, arrowhead b);
+bool operator !=(coord a, coord b);
+bool operator !=(bounds a, bounds b);
bool operator !=(Legend a, Legend b);
bool operator !=(position a, position b);
-bool operator !=(marginT a, marginT b);
-bool operator !=(light a, light b);
+bool operator !=(realschur a, realschur b);
+bool operator !=(hsv a, hsv b);
+bool operator !=(coords2 a, coords2 b);
bool operator !=(picture a, picture b);
-bool operator !=(coord a, coord b);
-bool operator !=(coord a, coord b);
+bool operator !=(bool3 a, bool b);
+bool operator !=(marginT a, marginT b);
bool operator !=(autoscaleT a, autoscaleT b);
bool operator !=(align a, align b);
-bool operator !=(hsv a, hsv b);
-bool operator !=(freezableBounds a, freezableBounds b);
-bool operator !=(transformation a, transformation b);
+bool operator !=(processtime a, processtime b);
+bool operator !=(scaling a, scaling b);
+bool operator !=(coord a, coord b);
+bool operator !=(light a, light b);
bool operator !=(node a, node b);
bool operator !=(Label a, Label b);
-bool operator !=(bool3 a, bool b);
-bool operator !=(filltype a, filltype b);
-bool operator !=(coords3 a, coords3 b);
-bool operator !=(marker a, marker b);
-bool operator !=(scaling a, scaling b);
-bool operator !=(scaling a, scaling b);
-bool operator !=(ScaleT a, ScaleT b);
-bool operator !=(side a, side b);
-bool operator !=(arrowhead a, arrowhead b);
+bool operator !=(schur a, schur b);
bool operator !=(bool a, bool3 b);
bool operator !=(slice a, slice b);
-bool operator !=(simplex a, simplex b);
-bool operator !=(projection a, projection b);
-bool operator !=(pairOrTriple a, pairOrTriple b);
-bool operator !=(object a, object b);
+bool operator !=(freezableBounds a, freezableBounds b);
+bool operator !=(transformation a, transformation b);
+bool operator !=(coords3 a, coords3 b);
+bool operator !=(marker a, marker b);
bool operator <(int a, int b);
bool[] operator <(int a, int[] b);
bool[] operator <(int[] a, int b);
@@ -1853,6 +1862,7 @@ real dot(real[] a, real[] b);
pair dot(pair[] a, pair[] b);
real dot(explicit pair z, explicit pair w);
real dot(triple u, triple v);
+void dot(picture pic=<default>, Label[] L=<default>, explicit path g, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
marker dot(pen p=<default>, filltype filltype=<default>);
void dot(picture pic=<default>, pair z, pen p=<default>, filltype filltype=<default>);
void dot(frame f, pair z, pen p=<default>, filltype filltype=<default>);
@@ -1861,7 +1871,6 @@ void dot(picture pic=<default>, Label[] L=<default>, pair[] z, align align=<defa
void dot(picture pic=<default>, path[] g, pen p=<default>, filltype filltype=<default>);
marker dot;
void dot(picture pic=<default>, Label L, pair z, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
-void dot(picture pic=<default>, Label[] L=<default>, explicit path g, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
void list(string s, bool imports=<default>);
pair NNW;
string phantom(string s);
@@ -1947,6 +1956,8 @@ void deactivatequote(picture pic=<default>);
string format(string format, int x, string locale=<default>);
string format(string format, bool forcemath=<default>, string separator, real x, string locale=<default>);
string format(string format=<default>, bool forcemath=<default>, real x, string locale=<default>);
+real[][][] _schur(real[][] a);
+pair[][][] _schur(pair[][] a);
real expm1(real x);
real[] expm1(real[] a);
void activatequote(picture pic=<default>);
@@ -1978,11 +1989,13 @@ pen Black;
triple size3(frame f);
void size3(picture pic=<default>, real x, real y=<default>, real z=<default>, bool keepAspect=<default>);
bool eof(file f);
-frame dotframe;
frame dotframe(pen p=<default>, filltype filltype=<default>);
+frame dotframe;
real realMax;
pair NE;
real realMin;
+realschur schur(real[][] a);
+schur schur(pair[][] a);
path nib(pen p);
file _outpipe;
void gouraudshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, pair[] z, int[] edges, bool copy=<default>);
@@ -2296,7 +2309,7 @@ void draw(picture pic=<default>, Label L=<default>, hyperbola h, align align=<de
void draw(picture pic=<default>, Label L=<default>, explicit conic co, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, Label L=<default>, arc a, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, triangle t, pen p=<default>, marker marker=<default>);
-void draw(picture pic=<default>, triangle[] t, pen p=<default>, marker marker=<default>);
+void draw(picture pic=<default>, triangle[] ts, pen p=<default>, marker marker=<default>);
coordsys defaultcoordsys;
string defaultmassformat;
line radicalline(circle c1, circle c2);
@@ -2366,6 +2379,8 @@ int sgnd(real x);
int sgnd(int x);
circle excircle(point A, point B, point C);
circle excircle(side side);
+point orthocenter(point A, point B, point C);
+point orthocenter(triangle t);
line extend(line l);
point intersectionpoint(line l1, line l2);
pair[] intersectionpoints(pair A, pair B, real a, real b, real c, real d, real f, real g);
@@ -2408,10 +2423,10 @@ point[] intersectionpoints(arc a, conic co);
point[] intersectionpoints(arc a1, arc a2);
point[] intersectionpoints(line l, arc a);
point[] intersectionpoints(arc a, line l);
-point intouch(side side);
-triangle intouch(triangle t);
point orthocentercenter(point A, point B, point C);
point orthocentercenter(triangle t);
+point intouch(side side);
+triangle intouch(triangle t);
real rf(real x, real y, real z);
bool concurrent(... line[] l);
real inradius(point A, point B, point C);
@@ -2493,6 +2508,10 @@ point centroid(point A, point B, point C);
point centroid(triangle t);
int angularsystem;
path square(pair z1, pair z2);
+void filldraw(picture pic=<default>, circle c, pen fillpen=<default>, pen drawpen=<default>);
+void filldraw(picture pic=<default>, ellipse el, pen fillpen=<default>, pen drawpen=<default>);
+void filldraw(picture pic=<default>, triangle t, pen fillpen=<default>, pen drawpen=<default>);
+void filldraw(picture pic=<default>, triangle[] ts, pen fillpen=<default>, pen drawpen=<default>);
point symmedian(triangle t);
point symmedian(side side);
line symmedian(vertex V);
@@ -2743,11 +2762,13 @@ mass[] operator cast(point[] P);
mass operator cast(pair m);
path operator cast(mass M);
guide operator cast(mass M);
+path operator cast(triangle t);
line operator cast(side side);
point operator cast(vertex V);
point operator cast(trilinear tri);
circle operator cast(inversion i);
inversion operator cast(circle c);
+path operator ecast(segment s);
circle operator ecast(ellipse el);
ellipse operator ecast(conic co);
parabola operator ecast(conic co);
@@ -2795,6 +2816,10 @@ bool operator @(point m, line l);
bool operator @(point M, conic co);
bool operator @(point M, explicit circle c);
bool operator @(point M, arc a);
+void fill(picture pic=<default>, circle c, pen p=<default>);
+void fill(picture pic=<default>, ellipse el, pen p=<default>);
+void fill(picture pic=<default>, triangle t, pen p=<default>);
+void fill(picture pic=<default>, triangle[] ts, pen p=<default>);
triangle triangle(line l1, line l2, line l3);
trilinear trilinear(triangle t, real a, real b, real c);
trilinear trilinear(triangle t, point M);
@@ -3062,7 +3087,6 @@ string LogFormat(real);
axisT axis;
void axis(picture pic=<default>, Label L=<default>, path g, path g2=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>), ticklocate locate, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
-real maxlength(pair a, pair b, int nx, int ny);
void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, pair[] z, pair[] dp, pair[] dm=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpx, real[] dpy, real[] dmx=<default>, real[] dmy=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
@@ -3075,7 +3099,7 @@ scaleT Logarithmic;
void limits(picture pic=<default>, pair min, pair max, bool crop=<default>);
void crop(picture pic=<default>);
picture vectorfield(path vector(real), path g, int n, bool truesize=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
-picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
+picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
string OmitFormat(real)(string s=<default> ... real[] x);
guide Straight(... guide[]);
int Min;
@@ -3108,8 +3132,8 @@ scaleT Linear;
scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
pair tickMin(picture pic);
pair tickMax(picture pic);
-tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
string autoformat(string format=<default>, real norm ... real[] a);
+tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
tickvalues OmitTickInterval(tickvalues)(real a, real b);
tickvalues OmitTick(tickvalues)(... real[] x);
real linear(real)(real S(real x)=<default>, real Min, real Max);
@@ -3144,9 +3168,9 @@ real xtrans(transform t, real x);
void Top(picture, axisT)(bool extend=<default>);
void Top(picture, axisT);
real ytrans(transform t, real y);
-string NoZeroFormat(real);
void scale(picture pic=<default>, scaleT x, scaleT y=<default>, scaleT z=<default>);
void scale(picture pic=<default>, bool xautoscale=<default>, bool yautoscale=<default>, bool zautoscale=<default>);
+string NoZeroFormat(real);
int[] divisors(int a, int b);
scientific operator init();
bounds operator init();
@@ -3267,10 +3291,10 @@ grid3(picture pic)[][] XYZgrid(position pos=<default>);
grid3(picture pic)[][] XYZgrid;
grid3(picture pic)[] ZYZgrid(position pos=<default>);
grid3(picture pic)[] ZYZgrid;
-grid3 XZgrid(picture pic)(position pos=<default>);
-grid3 XZgrid(picture pic);
grid3(picture pic)[] YZYgrid(position pos=<default>);
grid3(picture pic)[] YZYgrid;
+grid3 XZgrid(picture pic)(position pos=<default>);
+grid3 XZgrid(picture pic);
grid3 YZgrid(picture pic)(position pos=<default>);
grid3 YZgrid(picture pic);
real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
@@ -3521,11 +3545,13 @@ rational sum(rational[] a);
int lcm(int m, int n);
rational max(rational a, rational b);
rational max(rational[] a);
+bool optimizeTableau;
simplex operator init();
void simplexInit(rational[] c, rational[][] A, int[] s=<default>, rational[] b, int count);
void simplexPhase1(rational[] c, rational[][] A, rational[] b, int[] Bindices);
-void simplexTableau(rational[][] E, int[] Bindices, int I=<default>, int J=<default>);
+void simplexTableau(rational[][] E, int[] Bindices, int I=<default>, int J=<default>, int n=<default>);
void simplexPhase2();
+int[] artificialColumn;
void simplexWrite(rational[][] E, int[] Bindices, int, int);
path roundedpath(path A, real R, real S=<default>);
simplex operator init();
@@ -3534,8 +3560,8 @@ void display(frame f, real margin=<default>, pair align=<default>, pen p=<defaul
void display(string[] s, real margin=<default>, string[] captions=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void display(string s, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
-int page;
void subitem(string s, pen p=<default>);
+int page;
pen pagenumberpen;
pair pagenumberalign;
pair pagenumberposition;
@@ -3566,8 +3592,8 @@ void asycode(bool center=<default>, string s, string options=<default>, string c
void exitfunction();
bool havepagenumber;
real pageheight;
-void item(string s, pen p=<default>, bool step=<default>);
real pagewidth;
+void item(string s, pen p=<default>, bool step=<default>);
picture background;
void background();
pen backgroundcolor;
@@ -3579,9 +3605,9 @@ pair dateskip;
pair titlealign;
pen titlepagepen;
void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
-pen authorpen;
pair titlepageposition;
pen codepen;
+pen authorpen;
void erasestep(int erasenode);
bool checkposition();
void setpens(pen red=<default>, pen blue=<default>, pen steppen=<default>);
@@ -3627,8 +3653,8 @@ real minipagemargin;
real stepfraction;
path curve(pair c, real f(real, real), pair a, pair b);
path curve(pair c, real f(real), pair a, pair b);
-picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
-picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
+picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>);
+picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>);
real B03(real t);
patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
real B23(real t);
@@ -3707,15 +3733,17 @@ real stdev(real[] A);
real variance(real[] A);
real legendmarkersize;
real variancebiased(real[] A);
+linefit operator init();
real Gaussian(real x, real sigma);
real Gaussian(real x);
pair Gaussrandpair();
-linefit operator init();
real Gaussrand();
real skewness(real[] A);
linefit leastsquares(real[] x, real[] y);
+linefit leastsquares(real[] x, real[] y, real[] w);
real kurtosis(real[] A);
real kurtosisexcess(real[] A);
+real hwratio;
Relation r4a;
pair[] endpoints(guide[] a);
Relation r3;
@@ -3734,7 +3762,6 @@ Syzygy operator init();
Relation r4b;
Component wye;
pair max(pair[] z);
-real hwratio;
pen Orchid;
pen WildStrawberry;
pen Magenta;
@@ -3763,8 +3790,8 @@ pen BurntOrange;
pen Tan;
pen Aquamarine;
pen Brown;
-pen Lavender;
pen RubineRed;
+pen Lavender;
pen TealBlue;
pen White;
pen Purple;
@@ -3778,27 +3805,27 @@ pen Dandelion;
pen Black;
pen NavyBlue;
pen Rhodamine;
+pen ProcessBlue;
pen YellowOrange;
pen Maroon;
-pen ProcessBlue;
pen YellowGreen;
pen LimeGreen;
pen Green;
pen GreenYellow;
-pen Sepia;
pen Emerald;
+pen Sepia;
pen Mulberry;
pen RedViolet;
pen SkyBlue;
pen SeaGreen;
pen VioletRed;
-pen Violet;
pen Periwinkle;
+pen Violet;
pen Thistle;
pen Yellow;
pen JungleGreen;
-pen DarkOrchid;
pen CornflowerBlue;
+pen DarkOrchid;
pen RoyalBlue;
pen Melon;
pen RoyalPurple;
@@ -3849,22 +3876,22 @@ pen DarkOrange;
pen CadetBlue;
pen DeepPink;
pen SpringGreen;
-pen Silver;
pen MidnightBlue;
pen Olive;
+pen Silver;
pen OliveDrab;
pen Salmon;
pen Chocolate;
-pen Linen;
-pen SandyBrown;
pen Cyan;
pen Gainsboro;
+pen Linen;
+pen SandyBrown;
pen Ivory;
pen PapayaWhip;
pen Red;
pen Pink;
-pen DeepSkyBlue;
pen MintCream;
+pen DeepSkyBlue;
pen DarkTurquoise;
pen Gray;
pen MediumBlue;
@@ -3881,8 +3908,8 @@ pen Blue;
pen Gold;
pen BlueViolet;
pen Goldenrod;
-pen Cornsilk;
pen ForestGreen;
+pen Cornsilk;
pen Chartreuse;
pen NavajoWhite;
pen Tan;
@@ -3890,18 +3917,18 @@ pen DarkMagenta;
pen AntiqueWhite;
pen PaleTurquoise;
pen IndianRed;
+pen Crimson;
pen Seashell;
pen Aquamarine;
-pen Crimson;
pen Azure;
pen Brown;
-pen LawnGreen;
pen BurlyWood;
pen Moccasin;
-pen Lavender;
pen DarkBlue;
-pen GhostWhite;
+pen LawnGreen;
+pen Lavender;
pen Peru;
+pen GhostWhite;
pen White;
pen Purple;
pen WhiteSmoke;
@@ -3921,8 +3948,8 @@ pen PeachPuff;
pen Snow;
pen Maroon;
pen YellowGreen;
-pen Lime;
pen LimeGreen;
+pen Lime;
pen SteelBlue;
pen OldLace;
pen Green;
@@ -3936,10 +3963,10 @@ pen PowderBlue;
pen DarkGray;
pen DarkGreen;
pen DarkGoldenrod;
-pen Aqua;
pen SkyBlue;
pen SeaGreen;
pen DarkViolet;
+pen Aqua;
pen Teal;
pen AliceBlue;
pen Violet;
@@ -3963,12 +3990,12 @@ pen LightSalmon;
pen LightSeaGreen;
pen LightSkyBlue;
pen Navy;
-pen Sienna;
pen PaleVioletRed;
-pen DarkOrchid;
+pen Sienna;
pen CornflowerBlue;
pen LightSlateGray;
pen LightSteelBlue;
+pen DarkOrchid;
pen rgbint(int r, int g, int b);
pen LightYellow;
pen Coral;
diff --git a/Build/source/utils/asymptote/asymptote.spec b/Build/source/utils/asymptote/asymptote.spec
index 24c788759dc..f8917660c32 100644
--- a/Build/source/utils/asymptote/asymptote.spec
+++ b/Build/source/utils/asymptote/asymptote.spec
@@ -3,7 +3,7 @@
%global __python %{__python3}
Name: asymptote
-Version: 2.79
+Version: 2.84
Release: 1%{?dist}
Summary: Descriptive vector graphics language
diff --git a/Build/source/utils/asymptote/base/asy-kate.sh b/Build/source/utils/asymptote/base/asy-kate.sh
index 5f482b376d9..4212b1cb85a 100644
--- a/Build/source/utils/asymptote/base/asy-kate.sh
+++ b/Build/source/utils/asymptote/base/asy-kate.sh
@@ -2,7 +2,7 @@
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- based on asy-keywords.el and Highlighting file asymptote.xml by Christoph Hormann-->
-<language version="1.0" kateversion="3.2.2" name="asymptote" section="Sources" extensions="*.asy" mimetype="text/x-asymptote" licence="LGPL" author="Carsten Brenner">
+<language version="1.0" kateversion="3.2.2" name="Asymptote" section="Sources" extensions="*.asy" mimetype="text/x-asymptote" licence="LGPL" author="Carsten Brenner">
<highlighting>
' > asymptote.xml
@@ -122,7 +122,7 @@ echo '
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Extensions" defStyleNum="dsKeyword" color="#0095ff" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Float" defStyleNum="dsFloat"/>
- <itemData name="Function" defStyleNum="dsFunction" />
+ <itemData name="Function" defStyleNum="dsFunction" />
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
diff --git a/Build/source/utils/asymptote/base/geometry.asy b/Build/source/utils/asymptote/base/geometry.asy
index 9f4be8d15ca..37d085cb1c4 100644
--- a/Build/source/utils/asymptote/base/geometry.asy
+++ b/Build/source/utils/asymptote/base/geometry.asy
@@ -1556,6 +1556,11 @@ segment operator cast(line l)
return segment(l.A, l.B);
}
+path operator ecast(segment s)
+{
+ return s.A -- s.B;
+}
+
/*<asyxml><operator type = "line" signature="*(transform,line)"><code></asyxml>*/
line operator *(transform t, line l)
{/*<asyxml></code><documentation>Provide transform * line</documentation></operator></asyxml>*/
@@ -3738,6 +3743,17 @@ void draw(picture pic = currentpicture, Label L = "", circle c,
else draw(pic, L, (path)c, align, p, arrow, bar, margin, legend, marker);
}
+void fill(picture pic = currentpicture, circle c, pen p = currentpen)
+{
+ if (!degenerate(c)) fill(pic, (path)c, p);
+}
+
+void filldraw(picture pic = currentpicture, circle c, pen fillpen = currentpen, pen drawpen = currentpen)
+{
+ fill(pic, c, fillpen);
+ draw(pic, c, drawpen);
+}
+
/*<asyxml><function type="void" signature="draw(picture,Label,ellipse,align,pen,arrowbar,arrowbar,margin,Label,marker)"><code></asyxml>*/
void draw(picture pic = currentpicture, Label L = "", ellipse el,
align align = NoAlign, pen p = currentpen,
@@ -3748,6 +3764,17 @@ void draw(picture pic = currentpicture, Label L = "", ellipse el,
else draw(pic, L, (path)el, align, p, arrow, bar, margin, legend, marker);
}
+void fill(picture pic = currentpicture, ellipse el, pen p = currentpen)
+{
+ if (!degenerate(el)) fill(pic, (path)el, p);
+}
+
+void filldraw(picture pic = currentpicture, ellipse el, pen fillpen = currentpen, pen drawpen = currentpen)
+{
+ fill(pic, el, fillpen);
+ draw(pic, el, drawpen);
+}
+
/*<asyxml><function type="void" signature="draw(picture,Label,parabola,align,pen,arrowbar,arrowbar,margin,Label,marker)"><code></asyxml>*/
void draw(picture pic = currentpicture, Label L = "", parabola parabola,
align align = NoAlign, pen p = currentpen,
@@ -5383,8 +5410,8 @@ void dot(picture pic = currentpicture, Label L, explicit mass M, align align = N
// *=======================================================*
// *.......................TRIANGLES.......................*
-/*<asyxml><function type="point" signature="orthocentercenter(point,point,point)"><code></asyxml>*/
-point orthocentercenter(point A, point B, point C)
+/*<asyxml><function type="point" signature="orthocenter(point,point,point)"><code></asyxml>*/
+point orthocenter(point A, point B, point C)
{/*<asyxml></code><documentation>Return the orthocenter of the triangle ABC.</documentation></function></asyxml>*/
point[] P = standardizecoordsys(A, B, C);
coordsys R = P[0].coordsys;
@@ -5539,9 +5566,9 @@ struct triangle {/*<asyxml></code><documentation></documentation></asyxml>*/
real gamma() {return degrees(acos((a()^2 + b()^2 - c()^2)/(2a() * b())));}
/*<asyxml><method type = "path" signature="Path()"><code></asyxml>*/
- path Path()
+ path Path() // retained for backward compatibility
{/*<asyxml></code><documentation>The path of the triangle.</documentation></method></asyxml>*/
- return A--C--B--cycle;
+ return A--B--C--cycle;
}
/*<asyxml><struct signature="side"><code></asyxml>*/
@@ -5584,6 +5611,8 @@ struct triangle {/*<asyxml></code><documentation></documentation></asyxml>*/
}/*<asyxml></struct></asyxml>*/
+path operator cast(triangle t) { return t.A -- t.B -- t.C -- cycle; }
+
from triangle unravel side; // The structure 'side' is now available outside the triangle structure.
from triangle unravel vertex; // The structure 'vertex' is now available outside the triangle structure.
@@ -5715,10 +5744,10 @@ line altitude(side side)
return altitude(opposite(side));
}
-/*<asyxml><function type="point" signature="orthocentercenter(triangle)"><code></asyxml>*/
-point orthocentercenter(triangle t)
+/*<asyxml><function type="point" signature="orthocenter(triangle)"><code></asyxml>*/
+point orthocenter(triangle t)
{/*<asyxml></code><documentation>Return the orthocenter of the triangle t.</documentation></function></asyxml>*/
- return orthocentercenter(t.A, t.B, t.C);
+ return orthocenter(t.A, t.B, t.C);
}
/*<asyxml><function type="point" signature="centroid(triangle)"><code></asyxml>*/
@@ -6276,13 +6305,34 @@ void show(picture pic = currentpicture,
/*<asyxml><function type="void" signature="draw(picture,triangle,pen,marker)"><code></asyxml>*/
void draw(picture pic = currentpicture, triangle t, pen p = currentpen, marker marker = nomarker)
{/*<asyxml></code><documentation>Draw sides of the triangle 't' on picture 'pic' using pen 'p'.</documentation></function></asyxml>*/
- draw(pic, t.Path(), p, marker);
+ draw(pic, (path)t, p, marker);
+}
+
+void fill(picture pic = currentpicture, triangle t, pen p = currentpen)
+{
+ fill(pic, (path)t, p);
+}
+
+void filldraw(picture pic = currentpicture, triangle t, pen fillpen = currentpen, pen drawpen = currentpen)
+{
+ fill(pic, t, fillpen);
+ draw(pic, t, drawpen);
}
/*<asyxml><function type="void" signature="draw(picture,triangle[],pen,marker)"><code></asyxml>*/
-void draw(picture pic = currentpicture, triangle[] t, pen p = currentpen, marker marker = nomarker)
+void draw(picture pic = currentpicture, triangle[] ts, pen p = currentpen, marker marker = nomarker)
{/*<asyxml></code><documentation>Draw sides of the triangles 't' on picture 'pic' using pen 'p'.</documentation></function></asyxml>*/
- for(int i = 0; i < t.length; ++i) draw(pic, t[i], p, marker);
+ for(triangle t: ts) draw(pic, t, p, marker);
+}
+
+void fill(picture pic = currentpicture, triangle[] ts, pen p = currentpen)
+{
+ for(triangle t: ts) fill(pic, t, p);
+}
+
+void filldraw(picture pic = currentpicture, triangle[] ts, pen fillpen = currentpen, pen drawpen = currentpen)
+{
+ for(triangle t: ts) filldraw(pic, t, fillpen, drawpen);
}
/*<asyxml><function type="void" signature="drawline(picture,triangle,pen)"><code></asyxml>*/
@@ -6368,13 +6418,13 @@ inversion inversion(circle c1, circle c2, real sgn = 1)
point O = radicalcenter(c1, c2);
return inversion(O^c1, O);
}
- real a = abs(c1.r/c2.r);
- if(sgn > 0) {
- point O = c1.C + a/abs(1 - a) * (c2.C - c1.C);
- return inversion(a * abs(abs(O - c2.C)^2 - c2.r^2), O);
+ else {
+ point C1 = c1.C, C2 = c2.C;
+ real r1 = c1.r, r2 = sgn(sgn) * c2.r;
+ return inversion(
+ r1 * r2 * (1 - (length(C2 - C1) / (r1 + r2))^2),
+ (r2 * C1 + r1 * C2) / (r1 + r2));
}
- point O = c1.C + a/abs(1 + a) * (c2.C - c1.C);
- return inversion(-a * abs(abs(O - c2.C)^2 - c2.r^2), O);
}
/*<asyxml><function type="inversion" signature="inversion(circle,circle,circle)"><code></asyxml>*/
@@ -7192,9 +7242,18 @@ path arc(explicit pair B, explicit pair A, explicit pair C, real r)
return arc(A, abs(r), BA, CA, (r < 0) ^ ((BA-CA) % 360 < 180) ? CW : CCW);
}
+point orthocentercenter(point A, point B, point C)
+{
+ return orthocenter(A, B, C);
+}
+
+point orthocentercenter(triangle t)
+{
+ return orthocenter(t.A, t.B, t.C);
+}
+
// *.......End of compatibility routines........*
// *=======================================================*
// *........................FOOTER.........................*
// *=======================================================*
-
diff --git a/Build/source/utils/asymptote/base/graph.asy b/Build/source/utils/asymptote/base/graph.asy
index 1d4dfc1bfd3..433aa2fc20f 100644
--- a/Build/source/utils/asymptote/base/graph.asy
+++ b/Build/source/utils/asymptote/base/graph.asy
@@ -2186,45 +2186,49 @@ picture vectorfield(path vector(real), path g, int n, bool truesize=false,
return pic;
}
-real maxlength(pair a, pair b, int nx, int ny)
-{
- return min((b.x-a.x)/nx,(b.y-a.y)/ny);
-}
-
// return a vector field over box(a,b).
picture vectorfield(path vector(pair), pair a, pair b,
int nx=nmesh, int ny=nx, bool truesize=false,
- real maxlength=truesize ? 0 : maxlength(a,b,nx,ny),
bool cond(pair z)=null, pen p=currentpen,
arrowbar arrow=Arrow, margin margin=PenMargin)
{
picture pic;
- real dx=1/nx;
- real dy=1/ny;
+ real dx=(b.x-a.x)/(nx-1);
+ real dy=(b.y-a.y)/(ny-1);
bool all=cond == null;
real scale;
- if(maxlength > 0) {
- real size(pair z) {
- path g=vector(z);
- return abs(point(g,size(g)-1)-point(g,0));
- }
- real max=size(a);
- for(int i=0; i <= nx; ++i) {
- real x=interp(a.x,b.x,i*dx);
- for(int j=0; j <= ny; ++j)
- max=max(max,size((x,interp(a.y,b.y,j*dy))));
+ transform t=scale(dx,dy);
+ pair size(pair z) {
+ path g=t*vector(z);
+ int n=size(g);
+ pair w=n == 1 ? point(g,0) : point(g,n-1)-point(g,0);
+ return (abs(w.x),abs(w.y));
+ }
+ pair max=size(a);
+ for(int i=0; i < nx; ++i) {
+ real x=a.x+i*dx;
+ for(int j=0; j < ny; ++j) {
+ real y=a.y+j*dy;
+ max=maxbound(max,size((x,y)));
}
- scale=max > 0 ? maxlength/max : 1;
- } else scale=1;
+ }
+
+ if(max.x == 0)
+ scale=max.y == 0 ? 1.0 : dy/max.y;
+ else if(max.y == 0)
+ scale=dx/max.x;
+ else
+ scale=min(dx/max.x,dy/max.y);
- for(int i=0; i <= nx; ++i) {
- real x=interp(a.x,b.x,i*dx);
- for(int j=0; j <= ny; ++j) {
- real y=interp(a.y,b.y,j*dy);
+ for(int i=0; i < nx; ++i) {
+ real x=a.x+i*dx;
+ for(int j=0; j < ny; ++j) {
+ real y=a.y+j*dy;
pair z=(x,y);
if(all || cond(z)) {
- path g=scale(scale)*vector(z);
+ path v=scale(scale)*t*vector(z);
+ path g=size(v) == 1 ? (0,0)--v : v;
if(truesize)
draw(z,pic,g,p,arrow);
else
diff --git a/Build/source/utils/asymptote/base/graph3.asy b/Build/source/utils/asymptote/base/graph3.asy
index f690c6a3c10..f17b4e97074 100644
--- a/Build/source/utils/asymptote/base/graph3.asy
+++ b/Build/source/utils/asymptote/base/graph3.asy
@@ -2201,21 +2201,24 @@ picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b,
string name="", render render=defaultrender)
{
picture pic;
- real du=1/nu;
- real dv=1/nv;
+ real du=(b.x-a.x)/(nu-1);
+ real dv=(b.y-a.y)/(nv-1);
bool all=cond == null;
real scale;
if(maxlength > 0) {
real size(pair z) {
path3 g=vector(z);
- return abs(point(g,size(g)-1)-point(g,0));
+ triple w=point(g,size(g)-1)-point(g,0);
+ return max(w.x,w.y,w.z);
}
- real max=size((0,0));
+ real max=size(a);
for(int i=0; i <= nu; ++i) {
- real x=interp(a.x,b.x,i*du);
- for(int j=0; j <= nv; ++j)
- max=max(max,size((x,interp(a.y,b.y,j*dv))));
+ real u=a.x+i*du;
+ for(int j=0; j < nv; ++j) {
+ real v=a.y+j*dv;
+ max=max(max,size((u,v)));
+ }
}
scale=max > 0 ? maxlength/max : 1;
} else scale=1;
@@ -2224,9 +2227,10 @@ picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b,
if(group)
begingroup3(pic,name == "" ? "vectorfield" : name,render);
for(int i=0; i <= nu; ++i) {
- real x=interp(a.x,b.x,i*du);
+ real u=a.x+i*du;
for(int j=0; j <= nv; ++j) {
- pair z=(x,interp(a.y,b.y,j*dv));
+ real v=a.y+j*dv;
+ pair z=(u,v);
if(all || cond(z)) {
path3 g=scale3(scale)*vector(z);
string name="vector";
diff --git a/Build/source/utils/asymptote/base/plain.asy b/Build/source/utils/asymptote/base/plain.asy
index cac6aa07222..084fedd7581 100644
--- a/Build/source/utils/asymptote/base/plain.asy
+++ b/Build/source/utils/asymptote/base/plain.asy
@@ -171,7 +171,7 @@ string[] reverse(string[] a) {return a[reverse(a.length)];}
real[] uniform(real a, real b, int n)
{
if(n <= 0) return new real[];
- return a+(b-a)/n*sequence(n+1);
+ return a+sequence(n+1)/n*(b-a);
}
void eval(string s, bool embedded=false)
@@ -264,7 +264,7 @@ struct cputime {
cputime cputime()
{
static processtime last;
- real [] a=_cputime();
+ real[] a=_cputime();
cputime cputime;
real clock=a[4];
cputime.parent.user=a[0];
@@ -302,6 +302,34 @@ void write(string s="", cputime c, string format=cputimeformat,
write(stdout,s,c,format,suffix);
}
+struct realschur {
+ real[][] U;
+ real[][] T;
+}
+
+realschur schur(real[][] a)
+{
+ real[][][] S=_schur(a);
+ realschur schur;
+ schur.U=S[0];
+ schur.T=S[1];
+ return schur;
+}
+
+struct schur {
+ pair[][] U;
+ pair[][] T;
+}
+
+schur schur(pair[][] a)
+{
+ pair[][][] S=_schur(a);
+ schur schur;
+ schur.U=S[0];
+ schur.T=S[1];
+ return schur;
+}
+
if(settings.autoimport != "") {
string s=settings.autoimport;
settings.autoimport="";
diff --git a/Build/source/utils/asymptote/base/plain_arrows.asy b/Build/source/utils/asymptote/base/plain_arrows.asy
index 79ee403af3d..d9c08636fc9 100644
--- a/Build/source/utils/asymptote/base/plain_arrows.asy
+++ b/Build/source/utils/asymptote/base/plain_arrows.asy
@@ -53,39 +53,39 @@ path arrowbase(path r, pair y, real t, real size)
arrowhead DefaultHead;
DefaultHead.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle) {
- if(size == 0) size=DefaultHead.size(p);
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair x=point(r,0);
- real t=arctime(r,size);
- pair y=point(r,t);
- path base=arrowbase(r,y,t,size);
- path left=rotate(-angle,x)*r;
- path right=rotate(angle,x)*r;
- real[] T=arrowbasepoints(base,left,right);
- pair denom=point(right,T[1])-y;
- real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
- path left=rotate(-angle*factor,x)*r;
- path right=rotate(angle*factor,x)*r;
- real[] T=arrowbasepoints(base,left,right);
- return subpath(left,0,T[0])--subpath(right,T[1],0)&cycle;
+ if(size == 0) size=DefaultHead.size(p);
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair x=point(r,0);
+ real t=arctime(r,size);
+ pair y=point(r,t);
+ path base=arrowbase(r,y,t,size);
+ path left=rotate(-angle,x)*r;
+ path right=rotate(angle,x)*r;
+ real[] T=arrowbasepoints(base,left,right);
+ pair denom=point(right,T[1])-y;
+ real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
+ path left=rotate(-angle*factor,x)*r;
+ path right=rotate(angle*factor,x)*r;
+ real[] T=arrowbasepoints(base,left,right);
+ return subpath(left,0,T[0])--subpath(right,T[1],0)&cycle;
};
arrowhead SimpleHead;
SimpleHead.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle) {
- if(size == 0) size=SimpleHead.size(p);
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair x=point(r,0);
- real t=arctime(r,size);
- path left=rotate(-angle,x)*r;
- path right=rotate(angle,x)*r;
- return subpath(left,t,0)--subpath(right,0,t);
+ if(size == 0) size=SimpleHead.size(p);
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair x=point(r,0);
+ real t=arctime(r,size);
+ path left=rotate(-angle,x)*r;
+ path right=rotate(angle,x)*r;
+ return subpath(left,t,0)--subpath(right,0,t);
};
arrowhead HookHead(real dir=arrowdir, real barb=arrowbarb)
@@ -94,34 +94,34 @@ arrowhead HookHead(real dir=arrowdir, real barb=arrowbarb)
a.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle)
{
- if(size == 0) size=a.size(p);
- angle=min(angle*arrowhookfactor,45);
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair x=point(r,0);
- real t=arctime(r,size);
- pair y=point(r,t);
- path base=arrowbase(r,y,t,size);
- path left=rotate(-angle,x)*r;
- path right=rotate(angle,x)*r;
- real[] T=arrowbasepoints(base,left,right,1);
- pair denom=point(right,T[1])-y;
- real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
- path left=rotate(-angle*factor,x)*r;
- path right=rotate(angle*factor,x)*r;
- real[] T=arrowbasepoints(base,left,right,1);
- left=subpath(left,0,T[0]);
- right=subpath(right,T[1],0);
- pair pl0=point(left,0), pl1=relpoint(left,1);
- pair pr0=relpoint(right,0), pr1=relpoint(right,1);
- pair M=(pl1+pr0)/2;
- pair v=barb*unit(M-pl0);
- pl1=pl1+v; pr0=pr0+v;
- left=pl0{dir(-dir+degrees(M-pl0,false))}..pl1--M;
- right=M--pr0..pr1{dir(dir+degrees(pr1-M,false))};
- return left--right&cycle;
+ if(size == 0) size=a.size(p);
+ angle=min(angle*arrowhookfactor,45);
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair x=point(r,0);
+ real t=arctime(r,size);
+ pair y=point(r,t);
+ path base=arrowbase(r,y,t,size);
+ path left=rotate(-angle,x)*r;
+ path right=rotate(angle,x)*r;
+ real[] T=arrowbasepoints(base,left,right,1);
+ pair denom=point(right,T[1])-y;
+ real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1;
+ path left=rotate(-angle*factor,x)*r;
+ path right=rotate(angle*factor,x)*r;
+ real[] T=arrowbasepoints(base,left,right,1);
+ left=subpath(left,0,T[0]);
+ right=subpath(right,T[1],0);
+ pair pl0=point(left,0), pl1=relpoint(left,1);
+ pair pr0=relpoint(right,0), pr1=relpoint(right,1);
+ pair M=(pl1+pr0)/2;
+ pair v=barb*unit(M-pl0);
+ pl1=pl1+v; pr0=pr0+v;
+ left=pl0{dir(-dir+degrees(M-pl0,false))}..pl1--M;
+ right=M--pr0..pr1{dir(dir+degrees(pr1-M,false))};
+ return left--right&cycle;
};
return a;
}
@@ -130,34 +130,34 @@ arrowhead HookHead=HookHead();
arrowhead TeXHead;
TeXHead.size=new real(pen p)
{
- static real hcoef=2.1; // 84/40=abs(base-hint)/base_height
- return hcoef*arrowtexfactor*linewidth(p);
+ static real hcoef=2.1; // 84/40=abs(base-hint)/base_height
+ return hcoef*arrowtexfactor*linewidth(p);
};
TeXHead.arcsize=TeXHead.size;
TeXHead.head=new path(path g, position position=EndPoint, pen p=currentpen,
real size=0, real angle=arrowangle) {
- static real wcoef=1/84; // 1/abs(base-hint)
- static path texhead=scale(wcoef)*
- ((0,20) .. controls (-75,75) and (-108,158) ..
- (-108,166) .. controls (-108,175) and (-100,178) ..
- (-93,178) .. controls (-82,178) and (-80,173) ..
- (-77,168) .. controls (-62,134) and (-30,61) ..
- (70,14) .. controls (82,8) and (84,7) ..
- (84,0) .. controls (84,-7) and (82,-8) ..
- (70,-14) .. controls (-30,-61) and (-62,-134) ..
- (-77,-168) .. controls (-80,-173) and (-82,-178) ..
- (-93,-178) .. controls (-100,-178) and (-108,-175)..
- (-108,-166).. controls (-108,-158) and (-75,-75) ..
- (0,-20)--cycle);
- if(size == 0) size=TeXHead.size(p);
- path gp=scale(size)*texhead;
- bool relative=position.relative;
- real position=position.position.x;
- if(relative) position=reltime(g,position);
- path r=subpath(g,position,0);
- pair y=point(r,arctime(r,size));
- return shift(y)*rotate(degrees(-dir(r,arctime(r,0.5*size))))*gp;
+ static real wcoef=1/84; // 1/abs(base-hint)
+ static path texhead=scale(wcoef)*
+ ((0,20) .. controls (-75,75) and (-108,158) ..
+ (-108,166) .. controls (-108,175) and (-100,178) ..
+ (-93,178) .. controls (-82,178) and (-80,173) ..
+ (-77,168) .. controls (-62,134) and (-30,61) ..
+ (70,14) .. controls (82,8) and (84,7) ..
+ (84,0) .. controls (84,-7) and (82,-8) ..
+ (70,-14) .. controls (-30,-61) and (-62,-134) ..
+ (-77,-168) .. controls (-80,-173) and (-82,-178) ..
+ (-93,-178) .. controls (-100,-178) and (-108,-175)..
+ (-108,-166).. controls (-108,-158) and (-75,-75) ..
+ (0,-20)--cycle);
+ if(size == 0) size=TeXHead.size(p);
+ path gp=scale(size)*texhead;
+ bool relative=position.relative;
+ real position=position.position.x;
+ if(relative) position=reltime(g,position);
+ path r=subpath(g,position,0);
+ pair y=point(r,arctime(r,size));
+ return shift(y)*rotate(degrees(-dir(r,arctime(r,0.5*size)),false))*gp;
};
TeXHead.defaultfilltype=new filltype(pen p) {return Fill(p);};
diff --git a/Build/source/utils/asymptote/base/plain_pens.asy b/Build/source/utils/asymptote/base/plain_pens.asy
index 2e3a4449a38..2f47855a9f4 100644
--- a/Build/source/utils/asymptote/base/plain_pens.asy
+++ b/Build/source/utils/asymptote/base/plain_pens.asy
@@ -1,4 +1,4 @@
-real labelmargin=0.3;
+real labelmargin=0.28;
real dotfactor=6;
pen solid=linetype(new real[]);
@@ -173,7 +173,7 @@ pen fontsize(real size)
real labelmargin(pen p=currentpen)
{
- return labelmargin*fontsize(p);
+ return labelmargin*fontsize(p)+0.5*linewidth(p);
}
void write(file file=stdout, string s="", pen[] p)
diff --git a/Build/source/utils/asymptote/base/rationalSimplex.asy b/Build/source/utils/asymptote/base/rationalSimplex.asy
index 3a376ba2ddb..b6ce98c4ae9 100644
--- a/Build/source/utils/asymptote/base/rationalSimplex.asy
+++ b/Build/source/utils/asymptote/base/rationalSimplex.asy
@@ -1,9 +1,14 @@
// Rational simplex solver written by John C. Bowman and Pouria Ramazi, 2018.
import rational;
+bool optimizeTableau=true;
+
+int[] artificialColumn;
+
void simplexInit(rational[] c, rational[][] A, int[] s=new int[],
rational[] b, int count) {}
-void simplexTableau(rational[][] E, int[] Bindices, int I=-1, int J=-1) {}
+void simplexTableau(rational[][] E, int[] Bindices, int I=-1, int J=-1,
+ int n=E[0].length-1) {}
void simplexPhase1(rational[] c, rational[][] A, rational[] b,
int[] Bindices) {}
void simplexPhase2() {}
@@ -71,7 +76,7 @@ struct simplex {
}
}
- int iterate(rational[][] E, int N, int[] Bindices) {
+ int iterate(rational[][] E, int N, int[] Bindices, bool phase1=false) {
while(true) {
// Bland's rule: first negative entry in reduced cost (bottom) row enters
rational[] Em=E[m];
@@ -108,11 +113,13 @@ struct simplex {
// Generate new tableau
Bindices[I]=J;
rowreduce(E,N,I,J);
+
+ if(phase1 && Em[0] == 0) break;
}
return OPTIMAL;
}
- int iterateDual(rational[][] E, int N, int[] Bindices) {
+ int iterateDual(rational[][] E, int N, int[] Bindices, bool phase1=false) {
while(true) {
// Bland's rule: negative variable with smallest subscript exits
int I;
@@ -211,30 +218,31 @@ struct simplex {
if(phase1) {
Bindices=new int[m];
- int p=0;
+ int k=0;
+ artificialColumn.delete();
// Check for redundant basis vectors.
- bool checkBasis(int j) {
- for(int i=0; i < m; ++i) {
- rational[] Ei=E[i];
- if(i != p ? Ei[j] != 0 : Ei[j] <= 0) return false;
+ for(int p=0; p < m; ++p) {
+ bool checkBasis(int j) {
+ for(int i=0; i < m; ++i) {
+ rational[] Ei=E[i];
+ if(i != p ? Ei[j] != 0 : Ei[j] <= 0)
+ return false;
+ }
+ return true;
}
- return true;
- }
- int checkTableau() {
- for(int j=1; j <= n; ++j)
- if(checkBasis(j)) return j;
- return 0;
- }
+ int checkTableau() {
+ if(optimizeTableau)
+ for(int j=1; j <= n; ++j)
+ if(checkBasis(j)) return j;
+ return 0;
+ }
- int k=0;
- while(p < m) {
int j=checkTableau();
- if(j > 0)
- Bindices[p]=j;
- else { // Add an artificial variable
- Bindices[p]=n+1+k;
+ Bindices[p]=n+1+p;
+ if(j == 0) { // Add an artificial variable
+ artificialColumn.push(p+1);
for(int i=0; i < p; ++i)
E[i].push(0);
E[p].push(1);
@@ -243,14 +251,13 @@ struct simplex {
E[m].push(0);
++k;
}
- ++p;
}
basicValues();
simplexPhase1(c,A,b,Bindices);
- iterate(E,n+k,Bindices);
+ iterate(E,n+k,Bindices,true);
if(Em[0] != 0) {
simplexTableau(E,Bindices);
@@ -265,23 +272,22 @@ struct simplex {
rational[] cB=phase1 ? new rational[m] : c[n-m:n];
rational[][] D=phase1 ? new rational[m+1][n+1] : E;
if(phase1) {
- bool output=true;
+ write("n=",n);
+ write(Bindices);
// Drive artificial variables out of basis.
for(int i=0; i < m; ++i) {
- int k=Bindices[i];
- if(k > n) {
+ if(Bindices[i] > n) {
rational[] Ei=E[i];
int j;
for(j=1; j <= n; ++j)
if(Ei[j] != 0) break;
if(j > n) continue;
- output=false;
- simplexTableau(E,Bindices,i,j);
+ simplexTableau(E,Bindices,i,j,n);
Bindices[i]=j;
rowreduce(E,n,i,j);
}
}
- if(output) simplexTableau(E,Bindices);
+ simplexTableau(E,Bindices,-1,-1,n);
int ip=0; // reduced i
for(int i=0; i < m; ++i) {
int k=Bindices[i];
@@ -307,7 +313,6 @@ struct simplex {
D.delete(ip,m-1);
m=ip;
}
- if(!output) simplexTableau(D,Bindices);
}
rational[] Dm=D[m];
@@ -335,6 +340,8 @@ struct simplex {
for(int k=0; k < m; ++k)
x[Bindices[k]-1]=D[k][0];
+
+ xStandard=copy(x);
}
if(case == UNBOUNDED) {
@@ -414,10 +421,7 @@ struct simplex {
simplexInit(C,a,b,count);
operator init(C,a,b,phase1);
- if(case != INFEASIBLE) {
- xStandard=copy(x);
- if(count > 0)
- x.delete(n,n+count-1);
- }
+ if(case != INFEASIBLE && count > 0)
+ x.delete(n,n+count-1);
}
}
diff --git a/Build/source/utils/asymptote/base/shaders/blend.glsl b/Build/source/utils/asymptote/base/shaders/blend.glsl
index 76dfe94ad30..2db4f30abee 100644
--- a/Build/source/utils/asymptote/base/shaders/blend.glsl
+++ b/Build/source/utils/asymptote/base/shaders/blend.glsl
@@ -1,34 +1,22 @@
-layout(binding=0, std430) buffer offsetBuffer {
+layout(binding=0, std430) buffer offsetBuffer
+{
+ uint maxDepth;
uint offset[];
};
-layout(binding=1, std430) buffer maxBuffer {
+layout(binding=2, std430) buffer countBuffer
+{
uint maxSize;
-};
-
-#ifdef GPUINDEXING
-uniform uint offset2;
-uniform uint m1;
-uniform uint r;
-
-layout(binding=2, std430) buffer localSumBuffer {
- uint localSum[];
-};
-
-layout(binding=3, std430) buffer globalSumBuffer {
- uint globalSum[];
-};
-#else
-layout(binding=2, std430) buffer countBuffer {
uint count[];
};
-#endif
-layout(binding=4, std430) buffer fragmentBuffer {
+layout(binding=4, std430) buffer fragmentBuffer
+{
vec4 fragment[];
};
-layout(binding=5, std430) buffer depthBuffer {
+layout(binding=5, std430) buffer depthBuffer
+{
float depth[];
};
@@ -40,10 +28,21 @@ layout(binding=7, std430) buffer opaqueDepthBuffer {
float opaqueDepth[];
};
+#ifdef GPUCOMPRESS
+layout(binding=1, std430) buffer indexBuffer
+{
+ uint index[];
+};
+#define INDEX(pixel) index[pixel]
+#define COUNT(pixel) index[pixel]
+#else
+#define INDEX(pixel) pixel
+#define COUNT(pixel) count[pixel]
+#endif
+
out vec4 outColor;
uniform uint width;
-uniform uint pixels;
uniform vec4 background;
vec4 blend(vec4 outColor, vec4 color)
@@ -53,29 +52,37 @@ vec4 blend(vec4 outColor, vec4 color)
void main()
{
- uint headIndex=uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x);
+ uint pixel=uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x);
+ float OpaqueDepth=opaqueDepth[pixel];
+ uint element=INDEX(pixel);
+
+#ifdef GPUCOMPRESS
+ if(element == 0u) {
+ if(OpaqueDepth != 0.0)
+ opaqueDepth[pixel]=0.0;
+ discard;
+ }
+#endif
+
#ifdef GPUINDEXING
- uint size=offset[headIndex];
+ uint listIndex=offset[element];
+ uint size=offset[element+1u]-listIndex;
#else
- uint size=count[headIndex];
+ uint size=count[element];
#endif
- float OpaqueDepth=opaqueDepth[headIndex];
+
+#ifndef GPUCOMPRESS
if(size == 0u) {
-#ifdef GPUINDEXING
- offset[pixels+headIndex]=0u;
-#endif
- opaqueDepth[headIndex]=0.0;
+ if(OpaqueDepth != 0.0)
+ opaqueDepth[pixel]=0.0;
discard;
}
+#endif
- outColor=OpaqueDepth != 0.0 ? opaqueColor[headIndex] : background;
+ outColor=OpaqueDepth != 0.0 ? opaqueColor[pixel] : background;
-#ifdef GPUINDEXING
- uint p=headIndex < r*(m1+1u) ? headIndex/(m1+1u) : (headIndex-r)/m1;
- uint listIndex=localSum[p]+localSum[offset2+p/m2]+globalSum[p/(m2*m2)]+
- offset[pixels+headIndex];
-#else
- uint listIndex=offset[headIndex]-size;
+#ifndef GPUINDEXING
+ uint listIndex=offset[element]-size;
#endif
uint k=0u;
@@ -83,36 +90,49 @@ void main()
while(k < size && depth[listIndex+k] >= OpaqueDepth)
++k;
+ uint n=size-k;
+
// Sort the fragments with respect to descending depth
- if(size-k <= ARRAYSIZE) {
- if(k < size) {
- uint Index[ARRAYSIZE];
- float Depth[ARRAYSIZE];
- Index[0]=k;
- Depth[0]=depth[listIndex+k];
- ++k;
+ if(n <= ARRAYSIZE) {
+ if(n == 1)
+ outColor=blend(outColor,fragment[listIndex+k]);
+ else if(n > 0) {
+ struct element {
+ uint index;
+ float depth;
+ };
+
+ element E[ARRAYSIZE];
+ E[0]=element(k,depth[listIndex+k]);
uint i=1u;
- while(true) {
- if(OpaqueDepth != 0.0)
- while(k < size && depth[listIndex+k] >= OpaqueDepth)
- ++k;
- if(k == size) break;
+ while(++k < size) {
float d=depth[listIndex+k];
+ if(OpaqueDepth != 0.0) {
+ while(k < size && d >= OpaqueDepth) {
+ ++k;
+ d=depth[listIndex+k];
+ }
+ if(k == size) break;
+ }
uint j=i;
- while(j > 0u && d > Depth[j-1u]) {
- Index[j]=Index[j-1u];
- Depth[j]=Depth[j-1u];
+ while(j > 0u && d > E[j-1u].depth) {
+ E[j]=E[j-1u];
--j;
}
- Index[j]=k++;
- Depth[j]=d;
+ E[j]=element(k,d);
++i;
}
for(uint j=0u; j < i; ++j)
- outColor=blend(outColor,fragment[listIndex+Index[j]]);
+ outColor=blend(outColor,fragment[listIndex+E[j].index]);
}
+
+ if(OpaqueDepth != 0.0)
+ opaqueDepth[pixel]=0.0;
} else {
- atomicMax(maxSize,size);
+ atomicMax(maxDepth,size);
+#ifndef GPUINDEXING
+ maxSize=maxDepth;
+#endif
for(uint i=k+1u; i < size; i++) {
vec4 temp=fragment[listIndex+i];
float d=depth[listIndex+i];
@@ -130,19 +150,14 @@ void main()
if(OpaqueDepth == 0.0)
for(uint i=listIndex+k; i < stop; i++)
outColor=blend(outColor,fragment[i]);
- else
+ else {
for(uint i=listIndex+k; i < stop; i++) {
if(depth[i] < OpaqueDepth)
outColor=blend(outColor,fragment[i]);
}
+ opaqueDepth[pixel]=0.0;
+ }
}
-
- opaqueDepth[headIndex]=0.0;
-#ifdef GPUINDEXING
- offset[headIndex]=0u;
- offset[pixels+headIndex]=0u;
-#else
- count[headIndex]=0u;
-#endif
+ COUNT(pixel)=0u;
}
diff --git a/Build/source/utils/asymptote/base/shaders/compress.glsl b/Build/source/utils/asymptote/base/shaders/compress.glsl
new file mode 100644
index 00000000000..26b4e1041e9
--- /dev/null
+++ b/Build/source/utils/asymptote/base/shaders/compress.glsl
@@ -0,0 +1,23 @@
+layout(binding=0) uniform atomic_uint elements;
+
+layout(binding=1, std430) buffer indexBuffer
+{
+ uint index[];
+};
+
+layout(binding=2, std430) buffer countBuffer
+{
+ uint maxSize;
+ uint count[];
+};
+
+uniform uint width;
+
+void main()
+{
+ uint pixel=uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x);
+ uint Count=index[pixel];
+ if(Count > 0u)
+ count[(index[pixel]=atomicCounterIncrement(elements))]=Count;
+ discard;
+}
diff --git a/Build/source/utils/asymptote/base/shaders/count.glsl b/Build/source/utils/asymptote/base/shaders/count.glsl
index c9427714980..f64b25ed44a 100644
--- a/Build/source/utils/asymptote/base/shaders/count.glsl
+++ b/Build/source/utils/asymptote/base/shaders/count.glsl
@@ -1,10 +1,13 @@
-#ifdef GPUINDEXING
-layout(binding=0, std430) buffer offsetBuffer {
- uint count[];
+#ifdef GPUCOMPRESS
+layout(binding=1, std430) buffer indexBuffer
+{
+ uint index[];
};
#else
-layout(binding=2, std430) buffer countBuffer {
- uint count[];
+layout(binding=2, std430) buffer countBuffer
+{
+ uint maxSize;
+ uint index[];
};
#endif
@@ -12,6 +15,6 @@ uniform uint width;
void main()
{
- atomicAdd(count[uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x)],1u);
+ atomicAdd(index[uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x)],1u);
discard;
}
diff --git a/Build/source/utils/asymptote/base/shaders/fragment.glsl b/Build/source/utils/asymptote/base/shaders/fragment.glsl
index e8d4be86cf2..6f42f7d4919 100644
--- a/Build/source/utils/asymptote/base/shaders/fragment.glsl
+++ b/Build/source/utils/asymptote/base/shaders/fragment.glsl
@@ -30,49 +30,51 @@ float Roughness;
#ifdef HAVE_SSBO
-layout(binding=0, std430) buffer offsetBuffer {
+layout(binding=0, std430) buffer offsetBuffer
+{
+ uint maxDepth;
uint offset[];
};
-#ifdef GPUINDEXING
-
-#if defined(TRANSPARENT) || (!defined(HAVE_INTERLOCK) && !defined(OPAQUE))
-uniform uint offset2;
-uniform uint m1;
-uniform uint r;
-#endif
-
-layout(binding=2, std430) buffer localSumBuffer {
- uint localSum[];
-};
-
-layout(binding=3, std430) buffer globalSumBuffer {
- uint globalSum[];
-};
-#else
-layout(binding=2, std430) buffer countBuffer {
+#ifndef GPUINDEXING
+layout(binding=2, std430) buffer countBuffer
+{
+ uint maxSize;
uint count[];
};
#endif
-layout(binding=4, std430) buffer fragmentBuffer {
+layout(binding=4, std430) buffer fragmentBuffer
+{
vec4 fragment[];
};
-layout(binding=5, std430) buffer depthBuffer {
+layout(binding=5, std430) buffer depthBuffer
+{
float depth[];
};
-layout(binding=6, std430) buffer opaqueBuffer {
+layout(binding=6, std430) buffer opaqueBuffer
+{
vec4 opaqueColor[];
};
-layout(binding=7, std430) buffer opaqueDepthBuffer {
+layout(binding=7, std430) buffer opaqueDepthBuffer
+{
float opaqueDepth[];
};
+#ifdef GPUCOMPRESS
+layout(binding=1, std430) buffer indexBuffer
+{
+ uint index[];
+};
+#define INDEX(pixel) index[pixel]
+#else
+#define INDEX(pixel) pixel
+#endif
+
uniform uint width;
-uniform uint pixels;
#endif
@@ -272,14 +274,13 @@ void main()
#ifndef WIDTH
#ifdef HAVE_SSBO
- uint headIndex=uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x);
+ uint pixel=uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x);
#if defined(TRANSPARENT) || (!defined(HAVE_INTERLOCK) && !defined(OPAQUE))
+ uint element=INDEX(pixel);
#ifdef GPUINDEXING
- uint p=headIndex < r*(m1+1u) ? headIndex/(m1+1u) : (headIndex-r)/m1;
- uint listIndex=localSum[p]+localSum[offset2+p/m2]+globalSum[p/(m2*m2)]+
- atomicAdd(offset[pixels+headIndex],-1u)-1u;
+ uint listIndex=atomicAdd(offset[element],-1u)-1u;
#else
- uint listIndex=offset[headIndex]-atomicAdd(count[headIndex],1u)-1u;
+ uint listIndex=offset[element]-atomicAdd(count[element],1u)-1u;
#endif
fragment[listIndex]=outColor;
depth[listIndex]=gl_FragCoord.z;
@@ -287,18 +288,16 @@ void main()
discard;
#endif
#else
-#ifndef OPAQUE
-#ifdef HAVE_INTERLOCK
+#if defined(HAVE_INTERLOCK) && !defined(OPAQUE)
beginInvocationInterlockARB();
- if(opaqueDepth[headIndex] == 0.0 || gl_FragCoord.z < opaqueDepth[headIndex])
+ if(opaqueDepth[pixel] == 0.0 || gl_FragCoord.z < opaqueDepth[pixel])
{
- opaqueDepth[headIndex]=gl_FragCoord.z;
- opaqueColor[headIndex]=outColor;
+ opaqueDepth[pixel]=gl_FragCoord.z;
+ opaqueColor[pixel]=outColor;
}
endInvocationInterlockARB();
#endif
#endif
#endif
#endif
-#endif
}
diff --git a/Build/source/utils/asymptote/base/shaders/sum1.glsl b/Build/source/utils/asymptote/base/shaders/sum1.glsl
index 2cb9ed23aac..e54744a1d46 100644
--- a/Build/source/utils/asymptote/base/shaders/sum1.glsl
+++ b/Build/source/utils/asymptote/base/shaders/sum1.glsl
@@ -1,38 +1,40 @@
-layout(local_size_x=LOCAL_SIZE_X) in;
+layout(local_size_x=LOCALSIZE) in;
+
+const uint groupSize=LOCALSIZE*BLOCKSIZE;
uniform uint elements;
-layout(binding=0, std430) buffer offsetBuffer
+layout(binding=2, std430) buffer countBuffer
{
- uint offset[];
+ uint maxSize;
+ uint count[];
};
-layout(binding=2, std430) buffer localSumBuffer
+layout(binding=3, std430) buffer globalSumBuffer
{
- uint localSum[];
+ uint globalSum[];
};
-void main(void)
+shared uint groupSum[LOCALSIZE];
+
+void main()
{
- uint id=gl_GlobalInvocationID.x;
-
- uint m=elements/(gl_WorkGroupSize.x*gl_NumWorkGroups.x);
- uint r=elements-m*gl_WorkGroupSize.x*gl_NumWorkGroups.x;
- uint row,stop;
- if(id < r) {
- row=m*id+id;
- stop=row+m+1u;
- } else {
- row=m*id+r;
- stop=row+m;
- }
+ uint id=gl_LocalInvocationID.x;
+ uint dataOffset=gl_WorkGroupID.x*groupSize+id;
+ uint stop=dataOffset+groupSize;
+ uint sum=0u;
+ for(uint i=dataOffset; i < stop; i += LOCALSIZE)
+ sum += count[i];
+
+ groupSum[id]=sum;
+ barrier();
- uint Sum=offset[row];
- offset[elements+row]=Sum;
- for(uint i=row+1u; i < stop; ++i) {
- Sum += offset[i];
- offset[elements+i]=Sum;
+ for(uint s=LOCALSIZE/2; s > 0u; s >>= 1u) {
+ if(id < s)
+ groupSum[id] += groupSum[id+s];
+ barrier();
}
- localSum[id+1u]=Sum;
+ if(id == 0u)
+ globalSum[gl_WorkGroupID.x]=groupSum[0u];
}
diff --git a/Build/source/utils/asymptote/base/shaders/sum2.glsl b/Build/source/utils/asymptote/base/shaders/sum2.glsl
index 1ab03513ebd..17b5efeaeeb 100644
--- a/Build/source/utils/asymptote/base/shaders/sum2.glsl
+++ b/Build/source/utils/asymptote/base/shaders/sum2.glsl
@@ -1,24 +1,43 @@
-layout(local_size_x=LOCAL_SIZE_X) in;
+layout(local_size_x=LOCALSIZE) in;
-uniform uint offset2;
+const uint groupSize=LOCALSIZE*BLOCKSIZE;
-layout(binding=2, std430) buffer localSumBuffer
+uniform uint blockSize;
+
+layout(binding=3, std430) buffer globalSumBuffer
{
- uint localSum[];
+ uint globalSum[];
};
-void main(void)
+shared uint groupSum[LOCALSIZE];
+
+void main()
{
- uint id=gl_GlobalInvocationID.x;
+ uint localSum[groupSize];
+ uint id=gl_LocalInvocationID.x;
+
+ uint dataOffset=blockSize*id;
+ uint sum=0u;
+ for(uint i=0; i < blockSize; ++i) {
+ localSum[i]=sum;
+ sum += globalSum[dataOffset+i];
+ }
- uint row=LOCAL_SIZE_X*id;
- uint stop=row+LOCAL_SIZE_X;
+ groupSum[id]=sum;
+ barrier();
- uint Sum=localSum[row];
- for(uint i=row+1u; i < stop; ++i) {
- Sum += localSum[i];
- localSum[i]=Sum;
+ for(uint shift=1u; shift < LOCALSIZE; shift *= 2u) {
+ uint read;
+ if(shift <= id)
+ read=groupSum[id]+groupSum[id-shift];
+ barrier();
+ if(shift <= id)
+ groupSum[id]=read;
+ barrier();
}
- localSum[offset2+id+1u]=Sum;
+ // shift local sums and store
+ uint shift=id > 0u ? groupSum[id-1u] : 0u;
+ for(uint i=0u; i < blockSize; ++i)
+ globalSum[dataOffset+i]=localSum[i]+shift;
}
diff --git a/Build/source/utils/asymptote/base/shaders/sum2fast.glsl b/Build/source/utils/asymptote/base/shaders/sum2fast.glsl
new file mode 100644
index 00000000000..d0c93c09575
--- /dev/null
+++ b/Build/source/utils/asymptote/base/shaders/sum2fast.glsl
@@ -0,0 +1,59 @@
+layout(local_size_x=LOCALSIZE) in;
+
+const uint groupSize=LOCALSIZE*BLOCKSIZE;
+
+layout(binding=3, std430) buffer globalSumBuffer
+{
+ uint globalSum[];
+};
+
+layout(binding=8, std430) buffer feedbackBuffer
+{
+ uint maxSize;
+ uint fragments;
+};
+
+shared uint shuffle[groupSize+LOCALSIZE-1u];
+shared uint groupSum[LOCALSIZE+1u];
+
+void main()
+{
+ uint id=gl_LocalInvocationID.x;
+
+// avoid bank conflicts and coalesce global memory accesses
+ uint shuffleOffset=id/BLOCKSIZE+id;
+ const uint stride=LOCALSIZE/BLOCKSIZE+LOCALSIZE;
+ for(uint i=0u; i < BLOCKSIZE; i++)
+ shuffle[shuffleOffset+i*stride]=globalSum[id+i*LOCALSIZE];
+
+ barrier();
+
+ uint Offset=id*BLOCKSIZE+id;
+ uint stop=Offset+BLOCKSIZE;
+ uint sum=0u;
+ for(uint i=Offset; i < stop; ++i) {
+ uint value=shuffle[i];
+ shuffle[i]=sum;
+ sum += value;
+ }
+
+ if(id == 0u)
+ groupSum[0u]=0u;
+ groupSum[id+1u]=sum;
+ barrier();
+
+ // Apply Hillis-Steele algorithm over all sums in workgroup
+ for(uint shift=1u; shift < LOCALSIZE; shift *= 2u) {
+ uint read;
+ if(shift <= id)
+ read=groupSum[id]+groupSum[id-shift];
+ barrier();
+ if(shift <= id)
+ groupSum[id]=read;
+ barrier();
+ }
+
+ for(uint i=0u; i < BLOCKSIZE; i++)
+ globalSum[id+i*LOCALSIZE]=
+ shuffle[shuffleOffset+i*stride]+groupSum[(i*LOCALSIZE+id)/BLOCKSIZE];
+}
diff --git a/Build/source/utils/asymptote/base/shaders/sum3.glsl b/Build/source/utils/asymptote/base/shaders/sum3.glsl
index 85f55ff2a6c..4ee5203060b 100644
--- a/Build/source/utils/asymptote/base/shaders/sum3.glsl
+++ b/Build/source/utils/asymptote/base/shaders/sum3.glsl
@@ -1,28 +1,80 @@
-layout(local_size_x=LOCAL_SIZE_X) in;
+layout(local_size_x=LOCALSIZE) in;
-uniform uint offset2;
+const uint groupSize=LOCALSIZE*BLOCKSIZE;
-layout(binding=2, std430) buffer localSumBuffer
+uniform uint final;
+
+layout(binding=0, std430) buffer offsetBuffer
+{
+ uint maxDepth;
+ uint offset[];
+};
+
+layout(binding=2, std430) buffer countBuffer
{
- uint localSum[];
+ uint maxSize;
+ uint count[];
};
-layout(binding=3, std430) buffer globalSumBuffer {
+layout(binding=3, std430) buffer globalSumBuffer
+{
uint globalSum[];
};
-void main(void)
+layout(binding=8, std430) buffer feedbackBuffer
{
- uint id=gl_GlobalInvocationID.x;
+ uint size;
+ uint fragments;
+};
- uint row=offset2+LOCAL_SIZE_X*id;
- uint stop=row+LOCAL_SIZE_X;
+shared uint shuffle[groupSize+LOCALSIZE-1u];
+shared uint groupSum[LOCALSIZE+1u];
+
+void main()
+{
+ uint id=gl_LocalInvocationID.x;
- uint Sum=localSum[row];
- for(uint i=row+1u; i < stop; ++i) {
- Sum += localSum[i];
- localSum[i]=Sum;
+// avoid bank conflicts and coalesce global memory accesses
+ uint dataOffset=gl_WorkGroupID.x*groupSize+id;
+ uint shuffleOffset=id/BLOCKSIZE+id;
+ const uint stride=LOCALSIZE/BLOCKSIZE+LOCALSIZE;
+ for(uint i=0u; i < BLOCKSIZE; i++)
+ shuffle[shuffleOffset+i*stride]=count[dataOffset+i*LOCALSIZE];
+
+ barrier();
+
+ uint Offset=id*BLOCKSIZE+id;
+ uint stop=Offset+BLOCKSIZE;
+
+ uint sum=0u;
+ for(uint i=Offset; i < stop; ++i)
+ shuffle[i]=sum += shuffle[i];
+
+ if(id == 0u)
+ groupSum[0u]=0u;
+ groupSum[id+1u]=sum;
+ barrier();
+
+ // Apply Hillis-Steele algorithm over all sums in workgroup
+ for(uint shift=1u; shift < LOCALSIZE; shift *= 2u) {
+ uint read;
+ if(shift <= id)
+ read=groupSum[id]+groupSum[id-shift];
+ barrier();
+ if(shift <= id)
+ groupSum[id]=read;
+ barrier();
}
- globalSum[id+1u]=Sum;
+ uint groupOffset=globalSum[gl_WorkGroupID.x];
+ for(uint i=0u; i < BLOCKSIZE; ++i)
+ offset[dataOffset+i*LOCALSIZE]=shuffle[shuffleOffset+i*stride]+
+ groupSum[(i*LOCALSIZE+id)/BLOCKSIZE]+groupOffset;
+
+ uint diff=final-dataOffset;
+ if(diff < groupSize && diff % LOCALSIZE == 0) {
+ size=maxDepth;
+ maxDepth=0u;
+ fragments=offset[final+1u]=offset[final];
+ }
}
diff --git a/Build/source/utils/asymptote/base/shaders/zero.glsl b/Build/source/utils/asymptote/base/shaders/zero.glsl
index 9bcb6d222e5..06a5359e6d9 100644
--- a/Build/source/utils/asymptote/base/shaders/zero.glsl
+++ b/Build/source/utils/asymptote/base/shaders/zero.glsl
@@ -1,4 +1,6 @@
-layout(binding=2, std430) buffer countBuffer {
+layout(binding=2, std430) buffer countBuffer
+{
+ uint maxSize;
uint count[];
};
diff --git a/Build/source/utils/asymptote/base/simplex.asy b/Build/source/utils/asymptote/base/simplex.asy
index 3bc74635dbb..8b53ede6eb6 100644
--- a/Build/source/utils/asymptote/base/simplex.asy
+++ b/Build/source/utils/asymptote/base/simplex.asy
@@ -42,7 +42,7 @@ struct simplex {
}
}
- int iterate(real[][] E, int N, int[] Bindices) {
+ int iterate(real[][] E, int N, int[] Bindices, bool phase1=false) {
while(true) {
// Bland's rule: first negative entry in reduced cost (bottom) row enters
real[] Em=E[m];
@@ -77,11 +77,13 @@ struct simplex {
// Generate new tableau
Bindices[I]=J;
rowreduce(E,N,I,J);
+
+ if(phase1 && abs(Em[0]) <= EpsilonA) break;
}
return OPTIMAL;
}
- int iterateDual(real[][] E, int N, int[] Bindices) {
+ int iterateDual(real[][] E, int N, int[] Bindices, bool phase1=false) {
while(true) {
// Bland's rule: negative variable with smallest subscript exits
int I;
@@ -182,30 +184,28 @@ struct simplex {
if(phase1) {
Bindices=new int[m];
- int p=0;
+ int k=0;
// Check for redundant basis vectors.
- bool checkBasis(int j) {
- for(int i=0; i < m; ++i) {
- real[] Ei=E[i];
- if(i != p ? abs(Ei[j]) >= epsilonA : Ei[j] <= epsilonA) return false;
+ for(int p=0; p < m; ++p) {
+ bool checkBasis(int j) {
+ for(int i=0; i < m; ++i) {
+ real[] Ei=E[i];
+ if(i != p ? abs(Ei[j]) >= epsilonA : Ei[j] <= epsilonA)
+ return false;
+ }
+ return true;
}
- return true;
- }
- int checkTableau() {
- for(int j=1; j <= n; ++j)
- if(checkBasis(j)) return j;
- return 0;
- }
+ int checkTableau() {
+ for(int j=1; j <= n; ++j)
+ if(checkBasis(j)) return j;
+ return 0;
+ }
- int k=0;
- while(p < m) {
int j=checkTableau();
- if(j > 0)
- Bindices[p]=j;
- else { // Add an artificial variable
- Bindices[p]=n+1+k;
+ Bindices[p]=n+1+p;
+ if(j == 0) { // Add an artificial variable
for(int i=0; i < p; ++i)
E[i].push(0.0);
E[p].push(1.0);
@@ -214,11 +214,11 @@ struct simplex {
E[m].push(0.0);
++k;
}
- ++p;
}
basicValues();
- iterate(E,n+k,Bindices);
+
+ iterate(E,n+k,Bindices,true);
if(abs(Em[0]) > EpsilonA) {
case=INFEASIBLE;
@@ -234,8 +234,7 @@ struct simplex {
if(phase1) {
// Drive artificial variables out of basis.
for(int i=0; i < m; ++i) {
- int k=Bindices[i];
- if(k > n) {
+ if(Bindices[i] > n) {
real[] Ei=E[i];
int j;
for(j=1; j <= n; ++j)
diff --git a/Build/source/utils/asymptote/base/slopefield.asy b/Build/source/utils/asymptote/base/slopefield.asy
index c36ee4d9d01..c295fd61b63 100644
--- a/Build/source/utils/asymptote/base/slopefield.asy
+++ b/Build/source/utils/asymptote/base/slopefield.asy
@@ -3,7 +3,7 @@ real stepfraction=0.05;
picture slopefield(real f(real,real), pair a, pair b,
int nx=nmesh, int ny=nx,
- real tickfactor=0.5, pen p=currentpen, arrowbar arrow=None)
+ real tickfactor=0.5, pen p=currentpen)
{
picture pic;
real dx=(b.x-a.x)/nx;
@@ -16,17 +16,16 @@ picture slopefield(real f(real,real), pair a, pair b,
pair cp=(x,a.y+j*dy);
real slope=f(cp.x,cp.y);
real mp=step/sqrt(1+slope^2);
- draw(pic,(cp.x-mp,cp.y-mp*slope)--(cp.x+mp,cp.y+mp*slope),p,arrow);
+ draw(pic,(cp.x-mp,cp.y-mp*slope)--(cp.x+mp,cp.y+mp*slope),p);
}
}
return pic;
}
picture slopefield(real f(real), pair a, pair b,
- int nx=nmesh, int ny=nx, pen p=currentpen,
- arrowbar arrow=None)
+ int nx=nmesh, int ny=nx, pen p=currentpen)
{
- return slopefield(new real(real x, real y) {return f(x);},a,b,nx,ny,p,arrow);
+ return slopefield(new real(real x, real y) {return f(x);},a,b,nx,ny,p);
}
path curve(pair c, real f(real,real), pair a, pair b)
@@ -83,4 +82,3 @@ path curve(pair c, real f(real), pair a, pair b)
{
return curve(c,new real(real x, real y){return f(x);},a,b);
}
-
diff --git a/Build/source/utils/asymptote/base/stats.asy b/Build/source/utils/asymptote/base/stats.asy
index 6183fc18df2..3143a390035 100644
--- a/Build/source/utils/asymptote/base/stats.asy
+++ b/Build/source/utils/asymptote/base/stats.asy
@@ -290,3 +290,30 @@ linefit leastsquares(real[] x, real[] y)
}
return L;
}
+
+// Do a least-squares fit of data in real arrays x and y weighted by w
+// to the line y=m*x+b, by minimizing sum(w*(y-m*x-b)^2).
+linefit leastsquares(real[] x, real[] y, real[] w)
+{
+ linefit L;
+ int n=x.length;
+ if(n == 1) abort("Least squares fit requires at least 2 data points");
+ real sx=sum(w*x);
+ real sy=sum(w*y);
+ real W=sum(w);
+ real sxx=W*sum(w*x^2)-sx^2;
+ real sxy=W*sum(w*x*y)-sx*sy;
+ L.m=sxy/sxx;
+ L.b=(sy-L.m*sx)/W;
+ if(n > 2) {
+ real syy=W*sum(w*y^2)-sy^2;
+ if(sxx == 0 || syy == 0) return L;
+ L.r=sxy/sqrt(sxx*syy);
+ real arg=syy-sxy^2/sxx;
+ if(arg <= 0) return L;
+ real s=sqrt(arg/(n-2));
+ L.dm=s*sqrt(1/sxx);
+ L.db=s*sqrt(1+sx^2/sxx)/W;
+ }
+ return L;
+}
diff --git a/Build/source/utils/asymptote/base/three.asy b/Build/source/utils/asymptote/base/three.asy
index c208f59df84..9dfad6ce798 100644
--- a/Build/source/utils/asymptote/base/three.asy
+++ b/Build/source/utils/asymptote/base/three.asy
@@ -2907,11 +2907,6 @@ object embed(string prefix=outprefix(), string label=prefix,
if((preview || (prc && settings.render == 0)) && settings.embed) {
image=prefix;
if(settings.inlinetex) image += "_0";
- if(!preview && !S.pic2.empty2()) {
- transform T=S.pic2.scaling(S.width,S.height);
- _shipout(image,S.pic2.fit(T),newframe,nativeformat(),false,false);
- }
-
image += "."+nativeformat();
if(!settings.inlinetex) file3.push(image);
image=graphic(image,"hiresbb");
diff --git a/Build/source/utils/asymptote/base/three_surface.asy b/Build/source/utils/asymptote/base/three_surface.asy
index 95f41a61817..16613f3e33e 100644
--- a/Build/source/utils/asymptote/base/three_surface.asy
+++ b/Build/source/utils/asymptote/base/three_surface.asy
@@ -20,7 +20,7 @@ triple coons3(path3 external) {
struct patch {
triple[][] P;
- pen[] colors; // Optionally specify 4 corner colors.
+ pen[] colors; // Optionally specify corner colors.
bool straight; // Patch is based on a piecewise straight external path.
bool3 planar; // Patch is planar.
bool triangular; // Patch is a Bezier triangle.
@@ -1384,7 +1384,8 @@ void draw3D(frame f, patch s, material m,
if(prc() && light.on())
straight=false; // PRC vertex colors (for quads only) ignore lighting
m=material(m);
- m.diffuse(mean(s.colors));
+ if(prc())
+ m.diffuse(mean(s.colors));
}
m=material(m,light,s.colors.length > 0);
@@ -1423,7 +1424,7 @@ void draw(frame f, triple[] v, int[][] vi,
triple[] n={}, int[][] ni={}, material m=currentpen, pen[] p={},
int[][] pi={}, light light=currentlight, render render=defaultrender)
{
- bool normals=n.length > 0;
+ bool normals=ni.length > 0;
if(!normals) {
ni=new int[vi.length][3];
normals=computeNormals(v,vi,n,ni) > 0;
@@ -1431,6 +1432,35 @@ void draw(frame f, triple[] v, int[][] vi,
if(p.length > 0)
m=mean(p);
m=material(m,light);
+
+ if(prc()) {
+ int[] vertexNormal=new int[ni.length];
+ int[] vertexPen=new int[pi.length];
+
+ bool pens=pi.length > 0;
+
+ for(int i=0; i < vi.length; ++i) {
+ int[] vii=vi[i];
+ int[] nii=ni[i];
+ for(int j=0; j < 3; ++j) {
+ int V=vii[j];
+ vertexNormal[V]=nii[j];
+ if(pens)
+ vertexPen[V]=pi[i][j];
+ }
+ }
+
+ for(int i=0; i < vi.length; ++i) {
+ int[] vii=vi[i];
+ for(int j=0; j < 3; ++j) {
+ int V=vii[j];
+ ni[i][j]=vertexNormal[V];
+ if(pens)
+ pi[i][j]=vertexPen[V];
+ }
+ }
+ }
+
draw(f,v,vi,render.interaction.center,n,ni,
m.p,m.opacity,m.shininess,m.metallic,m.fresnel0,p,pi,
render.interaction.type);
@@ -1441,8 +1471,7 @@ void draw(picture pic=currentpicture, triple[] v, int[][] vi,
triple[] n={}, int[][] ni={}, material m=currentpen, pen[] p={},
int[][] pi={}, light light=currentlight, render render=defaultrender)
{
- bool prc=prc();
- bool normals=n.length > 0;
+ bool normals=ni.length > 0;
if(!normals) {
ni=new int[vi.length][3];
normals=computeNormals(v,vi,n,ni) > 0;
diff --git a/Build/source/utils/asymptote/base/v3dheadertypes.asy b/Build/source/utils/asymptote/base/v3dheadertypes.asy
index dba3c18d0b3..653a8ba2d98 100644
--- a/Build/source/utils/asymptote/base/v3dheadertypes.asy
+++ b/Build/source/utils/asymptote/base/v3dheadertypes.asy
@@ -1,6 +1,6 @@
// Enum class for v3dheadertypes
// AUTO-GENERATED from v3dheadertypes.csv
-// Generated at 2022-03-07 12:05:14.285216
+// Generated at 2023-01-23 00:17:44
struct v3dheadertypes
{
diff --git a/Build/source/utils/asymptote/base/v3dtypes.asy b/Build/source/utils/asymptote/base/v3dtypes.asy
index 6de6b31c5c2..c1014888275 100644
--- a/Build/source/utils/asymptote/base/v3dtypes.asy
+++ b/Build/source/utils/asymptote/base/v3dtypes.asy
@@ -1,6 +1,6 @@
// Enum class for v3dtypes
// AUTO-GENERATED from v3dtypes.csv
-// Generated at 2022-03-07 12:05:14.274334
+// Generated at 2023-01-23 00:17:44
struct v3dtypes
{
diff --git a/Build/source/utils/asymptote/base/webgl/asygl.js b/Build/source/utils/asymptote/base/webgl/asygl.js
index f33ee3ef54f..b5f77299a6e 100644
--- a/Build/source/utils/asymptote/base/webgl/asygl.js
+++ b/Build/source/utils/asymptote/base/webgl/asygl.js
@@ -36,4 +36,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.*/
-let vertex="\n#ifdef WEBGL2\n#define IN in\n#define OUT out\n#else\n#define IN attribute\n#define OUT varying\n#endif\n\nIN vec3 position;\n#ifdef WIDTH\nIN float width;\n#endif\n#ifdef NORMAL\nIN vec3 normal;\n#endif\n\nIN float materialIndex;\n\n#ifdef WEBGL2\nflat out int MaterialIndex;\n#ifdef COLOR\nOUT vec4 Color;\n#endif\n\n#else\nOUT vec4 diffuse;\nOUT vec3 specular;\nOUT float roughness,metallic,fresnel0;\nOUT vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n#endif\n\n#ifdef COLOR\nIN vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nOUT vec3 ViewPosition;\n#endif\nOUT vec3 Normal;\n#endif\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif\n Normal=normalize(normal*normMat);\n#endif\n\n#ifdef WEBGL2\n MaterialIndex=int(materialIndex);\n#ifdef COLOR\n Color=color;\n#endif\n#else\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0)\n diffuse=m.diffuse;\n else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef WEBGL2\n#define IN in\nout vec4 outValue;\n#define OUTVALUE outValue\n#else\n#define IN varying\n#define OUTVALUE gl_FragColor\n#endif\n\n#ifdef WEBGL2\nflat in int MaterialIndex;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvec4 diffuse;\nvec3 specular;\nfloat roughness,metallic,fresnel0;\nvec4 emissive;\n\n#ifdef COLOR\nin vec4 Color;\n#endif\n\n#else\nIN vec4 diffuse;\nIN vec3 specular;\nIN float roughness,metallic,fresnel0;\nIN vec4 emissive;\n#endif\n\n#ifdef NORMAL\n\n#ifndef ORTHOGRAPHIC\nIN vec3 ViewPosition;\n#endif\nIN vec3 Normal;\n\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\n#ifdef USE_IBL\nuniform sampler2D reflBRDFSampler;\nuniform sampler2D diffuseSampler;\nuniform sampler2D reflImgSampler;\n\nconst float pi=acos(-1.0);\nconst float piInv=1.0/pi;\nconst float twopi=2.0*pi;\nconst float twopiInv=1.0/twopi;\n\n// (x,y,z) -> (r,theta,phi);\n// theta -> [0,pi]: colatitude\n// phi -> [-pi,pi]: longitude\nvec3 cart2sphere(vec3 cart)\n{\n float x=cart.x;\n float y=cart.z;\n float z=cart.y;\n\n float r=length(cart);\n float theta=r > 0.0 ? acos(z/r) : 0.0;\n float phi=atan(y,x);\n\n return vec3(r,theta,phi);\n}\n\nvec2 normalizedAngle(vec3 cartVec)\n{\n vec3 sphericalVec=cart2sphere(cartVec);\n sphericalVec.y=sphericalVec.y*piInv;\n sphericalVec.z=0.75-sphericalVec.z*twopiInv;\n return sphericalVec.zy;\n}\n\nvec3 IBLColor(vec3 viewDir)\n{\n vec3 IBLDiffuse=diffuse.rgb*texture(diffuseSampler,normalizedAngle(normal)).rgb;\n vec3 reflectVec=normalize(reflect(-viewDir,normal));\n vec2 reflCoord=normalizedAngle(reflectVec);\n vec3 IBLRefl=textureLod(reflImgSampler,reflCoord,roughness*ROUGHNESS_STEP_COUNT).rgb;\n vec2 IBLbrdf=texture(reflBRDFSampler,vec2(dot(normal,viewDir),roughness)).rg;\n float specularMultiplier=fresnel0*IBLbrdf.x+IBLbrdf.y;\n vec3 dielectric=IBLDiffuse+specularMultiplier*IBLRefl;\n vec3 metal=diffuse.rgb*IBLRefl;\n return mix(dielectric,metal,metallic);\n}\n#else\nfloat Roughness2;\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 ? alpha2/(denom*denom) : 0.0;\n}\n\nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n\nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n\nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n\n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n\n float omegain=max(dot(viewDirection,normal),0.0);\n float omegaln=max(dot(lightDirection,normal),0.0);\n\n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n\n float denom=4.0*omegain*omegaln;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n\n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n\n return mix(dielectric,metal,metallic);\n}\n#endif\n\n#endif\n\nvoid main(void)\n{\n#ifdef WEBGL2\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[abs(MaterialIndex)-1];\n emissive=m.emissive;\n if(MaterialIndex >= 0)\n diffuse=m.diffuse;\n else {\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n }\n#else\n m=Materials[MaterialIndex];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[MaterialIndex].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n\nvec3 color;\n#ifdef USE_IBL\n color=IBLColor(viewDir);\n#else\n Roughness2=roughness*roughness;\n color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n#endif\n OUTVALUE=vec4(color,diffuse.a);\n#else\n OUTVALUE=emissive;\n#endif\n}\n";!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var a in i)("object"==typeof exports?exports:e)[a]=i[a]}}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function i(a){if(t[a])return t[a].exports;var n=t[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=e,i.c=t,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:a})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=1)}([function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setMatrixArrayType=function(e){t.ARRAY_TYPE=e},t.toRadian=function(e){return e*n},t.equals=function(e,t){return Math.abs(e-t)<=a*Math.max(1,Math.abs(e),Math.abs(t))};var a=t.EPSILON=1e-6;t.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,t.RANDOM=Math.random;var n=Math.PI/180},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mat4=t.mat3=void 0;var a=r(i(2)),n=r(i(3));function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}t.mat3=a,t.mat4=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=function(){var e=new a.ARRAY_TYPE(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat4=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e},t.invert=function(e,t){var i=t[0],a=t[1],n=t[2],r=t[3],s=t[4],o=t[5],l=t[6],h=t[7],c=t[8],d=c*s-o*h,m=-c*r+o*l,f=h*r-s*l,u=i*d+a*m+n*f;if(!u)return null;return u=1/u,e[0]=d*u,e[1]=(-c*a+n*h)*u,e[2]=(o*a-n*s)*u,e[3]=m*u,e[4]=(c*i-n*l)*u,e[5]=(-o*i+n*r)*u,e[6]=f*u,e[7]=(-h*i+a*l)*u,e[8]=(s*i-a*r)*u,e};var a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(0))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=function(){var e=new a.ARRAY_TYPE(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},t.identity=function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},t.invert=function(e,t){var i=t[0],a=t[1],n=t[2],r=t[3],s=t[4],o=t[5],l=t[6],h=t[7],c=t[8],d=t[9],m=t[10],f=t[11],u=t[12],p=t[13],g=t[14],v=t[15],x=i*o-a*s,w=i*l-n*s,M=i*h-r*s,b=a*l-n*o,T=a*h-r*o,S=n*h-r*l,R=c*p-d*u,A=c*g-m*u,I=c*v-f*u,P=d*g-m*p,E=d*v-f*p,y=m*v-f*g,L=x*y-w*E+M*P+b*I-T*A+S*R;if(!L)return null;return L=1/L,e[0]=(o*y-l*E+h*P)*L,e[1]=(n*E-a*y-r*P)*L,e[2]=(p*S-g*T+v*b)*L,e[3]=(m*T-d*S-f*b)*L,e[4]=(l*I-s*y-h*A)*L,e[5]=(i*y-n*I+r*A)*L,e[6]=(g*M-u*S-v*w)*L,e[7]=(c*S-m*M+f*w)*L,e[8]=(s*E-o*I+h*R)*L,e[9]=(a*I-i*E-r*R)*L,e[10]=(u*T-p*M+v*x)*L,e[11]=(d*M-c*T-f*x)*L,e[12]=(o*A-s*P-l*R)*L,e[13]=(i*P-a*A+n*R)*L,e[14]=(p*w-u*b-g*x)*L,e[15]=(c*b-d*w+m*x)*L,e},t.multiply=n,t.translate=function(e,t,i){var a=i[0],n=i[1],r=i[2],s=void 0,o=void 0,l=void 0,h=void 0,c=void 0,d=void 0,m=void 0,f=void 0,u=void 0,p=void 0,g=void 0,v=void 0;t===e?(e[12]=t[0]*a+t[4]*n+t[8]*r+t[12],e[13]=t[1]*a+t[5]*n+t[9]*r+t[13],e[14]=t[2]*a+t[6]*n+t[10]*r+t[14],e[15]=t[3]*a+t[7]*n+t[11]*r+t[15]):(s=t[0],o=t[1],l=t[2],h=t[3],c=t[4],d=t[5],m=t[6],f=t[7],u=t[8],p=t[9],g=t[10],v=t[11],e[0]=s,e[1]=o,e[2]=l,e[3]=h,e[4]=c,e[5]=d,e[6]=m,e[7]=f,e[8]=u,e[9]=p,e[10]=g,e[11]=v,e[12]=s*a+c*n+u*r+t[12],e[13]=o*a+d*n+p*r+t[13],e[14]=l*a+m*n+g*r+t[14],e[15]=h*a+f*n+v*r+t[15]);return e},t.rotate=function(e,t,i,n){var r,s,o,l,h,c,d,m,f,u,p,g,v,x,w,M,b,T,S,R,A,I,P,E,y=n[0],L=n[1],D=n[2],O=Math.sqrt(y*y+L*L+D*D);if(Math.abs(O)<a.EPSILON)return null;y*=O=1/O,L*=O,D*=O,r=Math.sin(i),s=Math.cos(i),o=1-s,l=t[0],h=t[1],c=t[2],d=t[3],m=t[4],f=t[5],u=t[6],p=t[7],g=t[8],v=t[9],x=t[10],w=t[11],M=y*y*o+s,b=L*y*o+D*r,T=D*y*o-L*r,S=y*L*o-D*r,R=L*L*o+s,A=D*L*o+y*r,I=y*D*o+L*r,P=L*D*o-y*r,E=D*D*o+s,e[0]=l*M+m*b+g*T,e[1]=h*M+f*b+v*T,e[2]=c*M+u*b+x*T,e[3]=d*M+p*b+w*T,e[4]=l*S+m*R+g*A,e[5]=h*S+f*R+v*A,e[6]=c*S+u*R+x*A,e[7]=d*S+p*R+w*A,e[8]=l*I+m*P+g*E,e[9]=h*I+f*P+v*E,e[10]=c*I+u*P+x*E,e[11]=d*I+p*P+w*E,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]);return e},t.fromTranslation=function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e},t.fromRotation=function(e,t,i){var n,r,s,o=i[0],l=i[1],h=i[2],c=Math.sqrt(o*o+l*l+h*h);if(Math.abs(c)<a.EPSILON)return null;return o*=c=1/c,l*=c,h*=c,n=Math.sin(t),r=Math.cos(t),s=1-r,e[0]=o*o*s+r,e[1]=l*o*s+h*n,e[2]=h*o*s-l*n,e[3]=0,e[4]=o*l*s-h*n,e[5]=l*l*s+r,e[6]=h*l*s+o*n,e[7]=0,e[8]=o*h*s+l*n,e[9]=l*h*s-o*n,e[10]=h*h*s+r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},t.frustum=function(e,t,i,a,n,r,s){var o=1/(i-t),l=1/(n-a),h=1/(r-s);return e[0]=2*r*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*r*l,e[6]=0,e[7]=0,e[8]=(i+t)*o,e[9]=(n+a)*l,e[10]=(s+r)*h,e[11]=-1,e[12]=0,e[13]=0,e[14]=s*r*2*h,e[15]=0,e},t.ortho=function(e,t,i,a,n,r,s){var o=1/(t-i),l=1/(a-n),h=1/(r-s);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*h,e[11]=0,e[12]=(t+i)*o,e[13]=(n+a)*l,e[14]=(s+r)*h,e[15]=1,e};var a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(0));function n(e,t,i){var a=t[0],n=t[1],r=t[2],s=t[3],o=t[4],l=t[5],h=t[6],c=t[7],d=t[8],m=t[9],f=t[10],u=t[11],p=t[12],g=t[13],v=t[14],x=t[15],w=i[0],M=i[1],b=i[2],T=i[3];return e[0]=w*a+M*o+b*d+T*p,e[1]=w*n+M*l+b*m+T*g,e[2]=w*r+M*h+b*f+T*v,e[3]=w*s+M*c+b*u+T*x,w=i[4],M=i[5],b=i[6],T=i[7],e[4]=w*a+M*o+b*d+T*p,e[5]=w*n+M*l+b*m+T*g,e[6]=w*r+M*h+b*f+T*v,e[7]=w*s+M*c+b*u+T*x,w=i[8],M=i[9],b=i[10],T=i[11],e[8]=w*a+M*o+b*d+T*p,e[9]=w*n+M*l+b*m+T*g,e[10]=w*r+M*h+b*f+T*v,e[11]=w*s+M*c+b*u+T*x,w=i[12],M=i[13],b=i[14],T=i[15],e[12]=w*a+M*o+b*d+T*p,e[13]=w*n+M*l+b*m+T*g,e[14]=w*r+M*h+b*f+T*v,e[15]=w*s+M*c+b*u+T*x,e}}])}));let Transform,canvasWidth,canvasHeight,imageURL,image,minBound,maxBound,orthographic,angleOfView,initialZoom,viewportMargin,zoomFactor,zoomPinchFactor,zoomPinchCap,zoomStep,shiftHoldDistance,shiftWaitTime,vibrateTime,canvasWidth0,canvasHeight0,zoom0,embedded,canvas,gl,alpha,offscreen,context,maxMaterials,halfCanvasWidth,halfCanvasHeight,P=[],Materials=[],Lights=[],Centers=[],Background=[1,1,1,1],absolute=!1,ibl=!1,viewportShift=[0,0],webgl2=!1,nlights=0,Nmaterials=2,materials=[];const pixelResolution=.75,zoomRemeshFactor=1.5,FillFactor=.1,windowTrim=10,third=1/3,pi=Math.acos(-1),radians=pi/180;let Zoom,lastZoom,xshift,yshift,maxViewportWidth,maxViewportHeight,H,zmin,zmax,size2,ArcballFactor,rotMat=mat4.create(),projMat=mat4.create(),viewMat=mat4.create(),projViewMat=mat4.create(),normMat=mat3.create(),viewMat3=mat3.create(),cjMatInv=mat4.create(),Temp=mat4.create(),center={x:0,y:0,z:0},shift={x:0,y:0},viewParam={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},remesh=!0,wireframe=0,mouseDownOrTouchActive=!1,lastMouseX=null,lastMouseY=null,touchID=null,Positions=[],Normals=[],Colors=[],Indices=[],IBLReflMap=null,IBLDiffuseMap=null,IBLbdrfMap=null;function IBLReady(){return null!==IBLReflMap&&null!==IBLDiffuseMap&&null!==IBLbdrfMap}function SetIBL(){embedded||deleteShaders(),initShaders(ibl)}let roughnessStepCount=8;class Material{constructor(e,t,i,a,n,r){this.diffuse=e,this.emissive=t,this.specular=i,this.shininess=a,this.metallic=n,this.fresnel0=r}setUniform(e,t){let i=i=>gl.getUniformLocation(e,"Materials["+t+"]."+i);gl.uniform4fv(i("diffuse"),new Float32Array(this.diffuse)),gl.uniform4fv(i("emissive"),new Float32Array(this.emissive)),gl.uniform4fv(i("specular"),new Float32Array(this.specular)),gl.uniform4f(i("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let indexExt,TRIANGLES,material0Data,material1Data,materialData,colorData,transparentData,triangleData,materialIndex,enumPointLight=1,enumDirectionalLight=2;class Light{constructor(e,t){this.direction=e,this.color=t}setUniform(e,t){let i=i=>gl.getUniformLocation(e,"Lights["+t+"]."+i);gl.uniform3fv(i("direction"),new Float32Array(this.direction)),gl.uniform3fv(i("color"),new Float32Array(this.color))}}function initShaders(e=!1){let t=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);maxMaterials=Math.floor((t-14)/4),Nmaterials=Math.min(Math.max(Nmaterials,Materials.length),maxMaterials),pixelOpt=["WIDTH"],materialOpt=["NORMAL"],colorOpt=["NORMAL","COLOR"],transparentOpt=["NORMAL","COLOR","TRANSPARENT"],e&&(materialOpt.push("USE_IBL"),transparentOpt.push("USE_IBL")),pixelShader=initShader(pixelOpt),materialShader=initShader(materialOpt),colorShader=initShader(colorOpt),transparentShader=initShader(transparentOpt)}function deleteShaders(){gl.deleteProgram(transparentShader),gl.deleteProgram(colorShader),gl.deleteProgram(materialShader),gl.deleteProgram(pixelShader)}function saveAttributes(){let e=webgl2?window.top.document.asygl2[alpha]:window.top.document.asygl[alpha];e.gl=gl,e.nlights=Lights.length,e.Nmaterials=Nmaterials,e.maxMaterials=maxMaterials,e.pixelShader=pixelShader,e.materialShader=materialShader,e.colorShader=colorShader,e.transparentShader=transparentShader}function restoreAttributes(){let e=webgl2?window.top.document.asygl2[alpha]:window.top.document.asygl[alpha];gl=e.gl,nlights=e.nlights,Nmaterials=e.Nmaterials,maxMaterials=e.maxMaterials,pixelShader=e.pixelShader,materialShader=e.materialShader,colorShader=e.colorShader,transparentShader=e.transparentShader}function webGL(e,t){let i;return webgl2&&(i=e.getContext("webgl2",{alpha:t}),embedded&&!i)?(webgl2=!1,ibl=!1,initGL(!1),null):(i||(webgl2=!1,ibl=!1,i=e.getContext("webgl",{alpha:t})),i||alert("Could not initialize WebGL"),i)}function initGL(e=!0){if(ibl&&(webgl2=!0),alpha=Background[3]<1,embedded){let t=window.top.document;if(e&&(context=canvas.getContext("2d")),offscreen=webgl2?t.offscreen2:t.offscreen,offscreen||(offscreen=t.createElement("canvas"),webgl2?t.offscreen2=offscreen:t.offscreen=offscreen),webgl2?t.asygl2||(t.asygl2=Array(2)):t.asygl||(t.asygl=Array(2)),asygl=webgl2?t.asygl2:t.asygl,asygl[alpha]&&asygl[alpha].gl)restoreAttributes(),(Lights.length!=nlights||Math.min(Materials.length,maxMaterials)>Nmaterials)&&(initShaders(),saveAttributes());else{if(rc=webGL(offscreen,alpha),!rc)return;gl=rc,initShaders(),webgl2?t.asygl2[alpha]={}:t.asygl[alpha]={},saveAttributes()}}else gl=webGL(canvas,alpha),initShaders();indexExt=gl.getExtension("OES_element_index_uint"),TRIANGLES=gl.TRIANGLES,material0Data=new vertexBuffer(gl.POINTS),material1Data=new vertexBuffer(gl.LINES),materialData=new vertexBuffer,colorData=new vertexBuffer,transparentData=new vertexBuffer,triangleData=new vertexBuffer}function getShader(e,t,i,a=[]){let n=webgl2?"300 es":"100",r=Array(...a),s=[["nlights",0==wireframe?Lights.length:0],["Nmaterials",Nmaterials]],o=[["int","Nlights",Math.max(Lights.length,1)]];webgl2&&r.push("WEBGL2"),ibl&&s.push(["ROUGHNESS_STEP_COUNT",roughnessStepCount.toFixed(2)]),orthographic&&r.push("ORTHOGRAPHIC"),macros_str=s.map(e=>`#define ${e[0]} ${e[1]}`).join("\n"),define_str=r.map(e=>"#define "+e).join("\n"),const_str=o.map(e=>`const ${e[0]} ${e[1]}=${e[2]};`).join("\n"),ext_str=[].map(e=>`#extension ${e}: enable`).join("\n"),shaderSrc=`#version ${n}\n${ext_str}\n${define_str}\n${const_str}\n${macros_str}\n\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n \n${t}\n `;let l=e.createShader(i);return e.shaderSource(l,shaderSrc),e.compileShader(l),e.getShaderParameter(l,e.COMPILE_STATUS)?l:(alert(e.getShaderInfoLog(l)),null)}function registerBuffer(e,t,i,a=gl.ARRAY_BUFFER){return e.length>0&&(0==t&&(t=gl.createBuffer(),i=!0),gl.bindBuffer(a,t),i&&gl.bufferData(a,e,gl.STATIC_DRAW)),t}function drawBuffer(e,t,i=e.indices){if(0==e.indices.length)return;let a=t!=pixelShader;setUniforms(e,t),null!=IBLDiffuseMap&&(gl.activeTexture(gl.TEXTURE0),gl.bindTexture(gl.TEXTURE_2D,IBLbdrfMap),gl.uniform1i(gl.getUniformLocation(t,"reflBRDFSampler"),0),gl.activeTexture(gl.TEXTURE1),gl.bindTexture(gl.TEXTURE_2D,IBLDiffuseMap),gl.uniform1i(gl.getUniformLocation(t,"diffuseSampler"),1),gl.activeTexture(gl.TEXTURE2),gl.bindTexture(gl.TEXTURE_2D,IBLReflMap),gl.uniform1i(gl.getUniformLocation(t,"reflImgSampler"),2));let n=remesh||e.partial||!e.rendered;e.verticesBuffer=registerBuffer(new Float32Array(e.vertices),e.verticesBuffer,n),gl.vertexAttribPointer(positionAttribute,3,gl.FLOAT,!1,a?24:16,0),a?Lights.length>0&&gl.vertexAttribPointer(normalAttribute,3,gl.FLOAT,!1,24,12):gl.vertexAttribPointer(widthAttribute,1,gl.FLOAT,!1,16,12),e.materialsBuffer=registerBuffer(new Int16Array(e.materialIndices),e.materialsBuffer,n),gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,!1,2,0),t!=colorShader&&t!=transparentShader||(e.colorsBuffer=registerBuffer(new Uint8Array(e.colors),e.colorsBuffer,n),gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,!0,0,0)),e.indicesBuffer=registerBuffer(indexExt?new Uint32Array(i):new Uint16Array(i),e.indicesBuffer,n,gl.ELEMENT_ARRAY_BUFFER),e.rendered=!0,gl.drawElements(a?wireframe?gl.LINES:e.type:gl.POINTS,i.length,indexExt?gl.UNSIGNED_INT:gl.UNSIGNED_SHORT,0)}class vertexBuffer{constructor(e){this.type=e||TRIANGLES,this.verticesBuffer=0,this.materialsBuffer=0,this.colorsBuffer=0,this.indicesBuffer=0,this.rendered=!1,this.partial=!1,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(e,t){return this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.materialIndices.push(materialIndex),this.nvertices++}Vertex(e,t,i=[0,0,0,0]){return this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.materialIndices.push(materialIndex),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(e,t){return this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.vertices.push(t),this.materialIndices.push(materialIndex),this.nvertices++}iVertex(e,t,i,a=[0,0,0,0]){let n=6*e;this.vertices[n]=t[0],this.vertices[n+1]=t[1],this.vertices[n+2]=t[2],this.vertices[n+3]=i[0],this.vertices[n+4]=i[1],this.vertices[n+5]=i[2],this.materialIndices[e]=materialIndex;let r=4*e;this.colors[r]=a[0],this.colors[r+1]=a[1],this.colors[r+2]=a[2],this.colors[r+3]=a[3],this.indices.push(e)}append(e){append(this.vertices,e.vertices),append(this.materialIndices,e.materialIndices),append(this.colors,e.colors),appendOffset(this.indices,e.indices,this.nvertices),this.nvertices+=e.nvertices}}function append(e,t){let i=e.length,a=t.length;e.length+=a;for(let n=0;n<a;++n)e[i+n]=t[n]}function appendOffset(e,t,i){let a=e.length,n=t.length;e.length+=t.length;for(let r=0;r<n;++r)e[a+r]=t[r]+i}class Geometry{constructor(){this.data=new vertexBuffer,this.Onscreen=!1,this.m=[]}offscreen(e){let t=projViewMat,i=e[0],a=i[0],n=i[1],r=i[2],s=1/(t[3]*a+t[7]*n+t[11]*r+t[15]);this.x=this.X=(t[0]*a+t[4]*n+t[8]*r+t[12])*s,this.y=this.Y=(t[1]*a+t[5]*n+t[9]*r+t[13])*s;for(let i=1,a=e.length;i<a;++i){let a=e[i],n=a[0],r=a[1],s=a[2],o=1/(t[3]*n+t[7]*r+t[11]*s+t[15]),l=(t[0]*n+t[4]*r+t[8]*s+t[12])*o,h=(t[1]*n+t[5]*r+t[9]*s+t[13])*o;l<this.x?this.x=l:l>this.X&&(this.X=l),h<this.y?this.y=h:h>this.Y&&(this.Y=h)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(e){let t=this.c[0],i=this.c[1],a=this.c[2],n=e[0]-t,r=e[1]-i,s=e[2]-a;return[n*normMat[0]+r*normMat[3]+s*normMat[6]+t,n*normMat[1]+r*normMat[4]+s*normMat[7]+i,n*normMat[2]+r*normMat[5]+s*normMat[8]+a]}Tcorners(e,t){return[this.T(e),this.T([e[0],e[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],t[1],e[2]]),this.T(t)]}setMaterial(e,t){null==e.materialTable[this.MaterialIndex]&&(e.materials.length>=Nmaterials&&(e.partial=!0,t()),e.materialTable[this.MaterialIndex]=e.materials.length,e.materials.push(Materials[this.MaterialIndex])),materialIndex=e.materialTable[this.MaterialIndex]}render(){let e;if(this.setMaterialIndex(),0==this.CenterIndex?e=corners(this.Min,this.Max):(this.c=Centers[this.CenterIndex-1],e=this.Tcorners(this.Min,this.Max)),this.offscreen(e))return this.data.clear(),void this.notRendered();let t,i=this.controlpoints;if(0==this.CenterIndex){if(!remesh&&this.Onscreen)return void this.append();t=i}else{let e=i.length;t=Array(e);for(let a=0;a<e;++a)t[a]=this.T(i[a])}let a=orthographic?1:this.Min[2]/maxBound[2],n=.75*Math.hypot(a*(viewParam.xmax-viewParam.xmin),a*(viewParam.ymax-viewParam.ymin))/size2;this.res2=n*n,this.Epsilon=.1*n,this.data.clear(),this.notRendered(),this.Onscreen=!0,this.process(t)}}class BezierPatch extends Geometry{constructor(e,t,i,a,n,r){super(),this.controlpoints=e,this.CenterIndex=t,this.MaterialIndex=i,this.Min=a,this.Max=n,this.color=r;let s=e.length;if(r){let e=r[0][3]+r[1][3]+r[2][3];this.transparent=16==s||4==s?e+r[3][3]<1020:e<765}else this.transparent=Materials[i].diffuse[3]<1;this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data),this.L2norm(this.controlpoints)}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.color?this.setMaterial(colorData,drawColor):this.setMaterial(materialData,drawMaterial)}L2norm(e){let t=e[0];this.epsilon=0;let i=e.length;for(let a=1;a<i;++a)this.epsilon=Math.max(this.epsilon,abs2([e[a][0]-t[0],e[a][1]-t[1],e[a][2]-t[2]]));this.epsilon*=Number.EPSILON}processTriangle(e){let t=e[0],i=e[1],a=e[2],n=unit(cross([i[0]-t[0],i[1]-t[1],i[2]-t[2]],[a[0]-t[0],a[1]-t[1],a[2]-t[2]]));if(!this.offscreen([t,i,a])){let e,r,s;this.color?(e=this.data.Vertex(t,n,this.color[0]),r=this.data.Vertex(i,n,this.color[1]),s=this.data.Vertex(a,n,this.color[2])):(e=this.vertex(t,n),r=this.vertex(i,n),s=this.vertex(a,n)),0==wireframe?(this.data.indices.push(e),this.data.indices.push(r),this.data.indices.push(s)):(this.data.indices.push(e),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(e)),this.append()}}processQuad(e){let t=e[0],i=e[1],a=e[2],n=e[3],r=cross([i[0]-t[0],i[1]-t[1],i[2]-t[2]],[a[0]-i[0],a[1]-i[1],a[2]-i[2]]),s=cross([a[0]-n[0],a[1]-n[1],a[2]-n[2]],[n[0]-t[0],n[1]-t[1],n[2]-t[2]]),o=unit([r[0]+s[0],r[1]+s[1],r[2]+s[2]]);if(!this.offscreen([t,i,a,n])){let e,r,s,l;this.color?(e=this.data.Vertex(t,o,this.color[0]),r=this.data.Vertex(i,o,this.color[1]),s=this.data.Vertex(a,o,this.color[2]),l=this.data.Vertex(n,o,this.color[3])):(e=this.vertex(t,o),r=this.vertex(i,o),s=this.vertex(a,o),l=this.vertex(n,o)),0==wireframe?(this.data.indices.push(e),this.data.indices.push(r),this.data.indices.push(s),this.data.indices.push(e),this.data.indices.push(s),this.data.indices.push(l)):(this.data.indices.push(e),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(l),this.data.indices.push(l),this.data.indices.push(e)),this.append()}}curve(e,t,i,a,n){new BezierCurve([e[t],e[i],e[a],e[n]],0,materialIndex,this.Min,this.Max).render()}process(e){if(this.transparent&&1!=wireframe&&(materialIndex=this.color?-1-materialIndex:1+materialIndex),10==e.length)return this.process3(e);if(3==e.length)return this.processTriangle(e);if(4==e.length)return this.processQuad(e);if(1==wireframe)return this.curve(e,0,4,8,12),this.curve(e,12,13,14,15),this.curve(e,15,11,7,3),void this.curve(e,3,2,1,0);let t=e[0],i=e[3],a=e[12],n=e[15],r=this.normal(i,e[2],e[1],t,e[4],e[8],a);abs2(r)<this.epsilon&&(r=this.normal(i,e[2],e[1],t,e[13],e[14],n),abs2(r)<this.epsilon&&(r=this.normal(n,e[11],e[7],i,e[4],e[8],a)));let s=this.normal(t,e[4],e[8],a,e[13],e[14],n);abs2(s)<this.epsilon&&(s=this.normal(t,e[4],e[8],a,e[11],e[7],i),abs2(s)<this.epsilon&&(s=this.normal(i,e[2],e[1],t,e[13],e[14],n)));let o=this.normal(a,e[13],e[14],n,e[11],e[7],i);abs2(o)<this.epsilon&&(o=this.normal(a,e[13],e[14],n,e[2],e[1],t),abs2(o)<this.epsilon&&(o=this.normal(t,e[4],e[8],a,e[11],e[7],i)));let l=this.normal(n,e[11],e[7],i,e[2],e[1],t);if(abs2(l)<this.epsilon&&(l=this.normal(n,e[11],e[7],i,e[4],e[8],a),abs2(l)<this.epsilon&&(l=this.normal(a,e[13],e[14],n,e[2],e[1],t))),this.color){let h=this.color[0],c=this.color[1],d=this.color[2],m=this.color[3],f=this.data.Vertex(t,r,h),u=this.data.Vertex(a,s,c),p=this.data.Vertex(n,o,d),g=this.data.Vertex(i,l,m);this.Render(e,f,u,p,g,t,a,n,i,!1,!1,!1,!1,h,c,d,m)}else{let h=this.vertex(t,r),c=this.vertex(a,s),d=this.vertex(n,o),m=this.vertex(i,l);this.Render(e,h,c,d,m,t,a,n,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):this.color?colorData.append(this.data):materialData.append(this.data)}notRendered(){this.transparent?transparentData.rendered=!1:this.color?colorData.rendered=!1:materialData.rendered=!1}Render(e,t,i,a,n,r,s,o,l,h,c,d,m,f,u,p,g){let v=this.Distance(e);if(v[0]<this.res2&&v[1]<this.res2)this.offscreen([r,s,o])||(0==wireframe?(this.data.indices.push(t),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(t),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a))),this.offscreen([r,o,l])||(0==wireframe?(this.data.indices.push(t),this.data.indices.push(a),this.data.indices.push(n)):(this.data.indices.push(a),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(t)));else{if(this.offscreen(e))return;let x=e[0],w=e[3],M=e[12],b=e[15];if(v[0]<this.res2){let v=new Split3(x,e[1],e[2],w),T=new Split3(e[4],e[5],e[6],e[7]),S=new Split3(e[8],e[9],e[10],e[11]),R=new Split3(M,e[13],e[14],b),A=[x,v.m0,v.m3,v.m5,e[4],T.m0,T.m3,T.m5,e[8],S.m0,S.m3,S.m5,M,R.m0,R.m3,R.m5],I=[v.m5,v.m4,v.m2,w,T.m5,T.m4,T.m2,e[7],S.m5,S.m4,S.m2,e[11],R.m5,R.m4,R.m2,b],P=this.normal(A[12],A[13],A[14],A[15],A[11],A[7],A[3]);abs2(P)<=this.epsilon&&(P=this.normal(A[12],A[13],A[14],A[15],A[2],A[1],A[0]),abs2(P)<=this.epsilon&&(P=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3])));let E=this.normal(I[3],I[2],I[1],I[0],I[4],I[8],I[12]);abs2(E)<=this.epsilon&&(E=this.normal(I[3],I[2],I[1],I[0],I[13],I[14],I[15]),abs2(E)<=this.epsilon&&(E=this.normal(I[15],I[11],I[7],I[3],I[4],I[8],I[12])));let y=this.Epsilon,L=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!c)if(c=Straightness(M,e[13],e[14],b)<this.res2){let e=unit(this.differential(I[12],I[8],I[4],I[0]));L=[L[0]-y*e[0],L[1]-y*e[1],L[2]-y*e[2]]}else L=A[15];let D=[.5*(l[0]+r[0]),.5*(l[1]+r[1]),.5*(l[2]+r[2])];if(!m)if(m=Straightness(x,e[1],e[2],w)<this.res2){let e=unit(this.differential(A[3],A[7],A[11],A[15]));D=[D[0]-y*e[0],D[1]-y*e[1],D[2]-y*e[2]]}else D=I[0];if(f){let e=Array(4),v=Array(4);for(let t=0;t<4;++t)e[t]=.5*(u[t]+p[t]),v[t]=.5*(g[t]+f[t]);let x=this.data.Vertex(L,P,e),w=this.data.Vertex(D,E,v);this.Render(A,t,i,x,w,r,s,L,D,h,c,!1,m,f,u,e,v),this.Render(I,w,x,a,n,D,L,o,l,!1,c,d,m,v,e,p,g)}else{let e=this.vertex(L,P),f=this.vertex(D,E);this.Render(A,t,i,e,f,r,s,L,D,h,c,!1,m),this.Render(I,f,e,a,n,D,L,o,l,!1,c,d,m)}return}if(v[1]<this.res2){let v=new Split3(x,e[4],e[8],M),T=new Split3(e[1],e[5],e[9],e[13]),S=new Split3(e[2],e[6],e[10],e[14]),R=new Split3(w,e[7],e[11],b),A=[x,e[1],e[2],w,v.m0,T.m0,S.m0,R.m0,v.m3,T.m3,S.m3,R.m3,v.m5,T.m5,S.m5,R.m5],I=[v.m5,T.m5,S.m5,R.m5,v.m4,T.m4,S.m4,R.m4,v.m2,T.m2,S.m2,R.m2,M,e[13],e[14],b],P=this.normal(A[0],A[4],A[8],A[12],A[13],A[14],A[15]);abs2(P)<=this.epsilon&&(P=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3]),abs2(P)<=this.epsilon&&(P=this.normal(A[3],A[2],A[1],A[0],A[13],A[14],A[15])));let E=this.normal(I[15],I[11],I[7],I[3],I[2],I[1],I[0]);abs2(E)<=this.epsilon&&(E=this.normal(I[15],I[11],I[7],I[3],I[4],I[8],I[12]),abs2(E)<=this.epsilon&&(E=this.normal(I[12],I[13],I[14],I[15],I[2],I[1],I[0])));let y=this.Epsilon,L=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])];if(!h)if(h=Straightness(x,e[4],e[8],M)<this.res2){let e=unit(this.differential(I[0],I[1],I[2],I[3]));L=[L[0]-y*e[0],L[1]-y*e[1],L[2]-y*e[2]]}else L=A[12];let D=[.5*(o[0]+l[0]),.5*(o[1]+l[1]),.5*(o[2]+l[2])];if(!d)if(d=Straightness(b,e[11],e[7],w)<this.res2){let e=unit(this.differential(A[15],A[14],A[13],A[12]));D=[D[0]-y*e[0],D[1]-y*e[1],D[2]-y*e[2]]}else D=I[3];if(f){let e=Array(4),v=Array(4);for(let t=0;t<4;++t)e[t]=.5*(f[t]+u[t]),v[t]=.5*(p[t]+g[t]);let x=this.data.Vertex(L,P,e),w=this.data.Vertex(D,E,v);this.Render(A,t,x,w,n,r,L,D,l,h,!1,d,m,f,e,v,g),this.Render(I,x,i,a,w,L,s,o,D,h,c,d,!1,e,u,p,v)}else{let e=this.vertex(L,P),f=this.vertex(D,E);this.Render(A,t,e,f,n,r,L,D,l,h,!1,d,m),this.Render(I,e,i,a,f,L,s,o,D,h,c,d,!1)}return}let T=new Split3(x,e[1],e[2],w),S=new Split3(e[4],e[5],e[6],e[7]),R=new Split3(e[8],e[9],e[10],e[11]),A=new Split3(M,e[13],e[14],b),I=new Split3(x,e[4],e[8],M),P=new Split3(T.m0,S.m0,R.m0,A.m0),E=new Split3(T.m3,S.m3,R.m3,A.m3),y=new Split3(T.m5,S.m5,R.m5,A.m5),L=new Split3(T.m4,S.m4,R.m4,A.m4),D=new Split3(T.m2,S.m2,R.m2,A.m2),O=new Split3(w,e[7],e[11],b),B=[x,T.m0,T.m3,T.m5,I.m0,P.m0,E.m0,y.m0,I.m3,P.m3,E.m3,y.m3,I.m5,P.m5,E.m5,y.m5],N=[I.m5,P.m5,E.m5,y.m5,I.m4,P.m4,E.m4,y.m4,I.m2,P.m2,E.m2,y.m2,M,A.m0,A.m3,A.m5],z=[y.m5,L.m5,D.m5,O.m5,y.m4,L.m4,D.m4,O.m4,y.m2,L.m2,D.m2,O.m2,A.m5,A.m4,A.m2,b],_=[T.m5,T.m4,T.m2,w,y.m0,L.m0,D.m0,O.m0,y.m3,L.m3,D.m3,O.m3,y.m5,L.m5,D.m5,O.m5],C=B[15],V=this.normal(B[0],B[4],B[8],B[12],B[13],B[14],B[15]);abs2(V)<this.epsilon&&(V=this.normal(B[0],B[4],B[8],B[12],B[11],B[7],B[3]),abs2(V)<this.epsilon&&(V=this.normal(B[3],B[2],B[1],B[0],B[13],B[14],B[15])));let U=this.normal(N[12],N[13],N[14],N[15],N[11],N[7],N[3]);abs2(U)<this.epsilon&&(U=this.normal(N[12],N[13],N[14],N[15],N[2],N[1],N[0]),abs2(U)<this.epsilon&&(U=this.normal(N[0],N[4],N[8],N[12],N[11],N[7],N[3])));let H=this.normal(z[15],z[11],z[7],z[3],z[2],z[1],z[0]);abs2(H)<this.epsilon&&(H=this.normal(z[15],z[11],z[7],z[3],z[4],z[8],z[12]),abs2(H)<this.epsilon&&(H=this.normal(z[12],z[13],z[14],z[15],z[2],z[1],z[0])));let G=this.normal(_[3],_[2],_[1],_[0],_[4],_[8],_[12]);abs2(G)<this.epsilon&&(G=this.normal(_[3],_[2],_[1],_[0],_[13],_[14],_[15]),abs2(G)<this.epsilon&&(G=this.normal(_[15],_[11],_[7],_[3],_[4],_[8],_[12])));let F=this.normal(z[3],z[2],z[1],C,z[4],z[8],z[12]),W=this.Epsilon,X=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])];if(!h)if(h=Straightness(x,e[4],e[8],M)<this.res2){let e=unit(this.differential(N[0],N[1],N[2],N[3]));X=[X[0]-W*e[0],X[1]-W*e[1],X[2]-W*e[2]]}else X=B[12];let j=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!c)if(c=Straightness(M,e[13],e[14],b)<this.res2){let e=unit(this.differential(z[12],z[8],z[4],z[0]));j=[j[0]-W*e[0],j[1]-W*e[1],j[2]-W*e[2]]}else j=N[15];let Z=[.5*(o[0]+l[0]),.5*(o[1]+l[1]),.5*(o[2]+l[2])];if(!d)if(d=Straightness(b,e[11],e[7],w)<this.res2){let e=unit(this.differential(_[15],_[14],_[13],_[12]));Z=[Z[0]-W*e[0],Z[1]-W*e[1],Z[2]-W*e[2]]}else Z=z[3];let k=[.5*(l[0]+r[0]),.5*(l[1]+r[1]),.5*(l[2]+r[2])];if(!m)if(m=Straightness(x,e[1],e[2],w)<this.res2){let e=unit(this.differential(B[3],B[7],B[11],B[15]));k=[k[0]-W*e[0],k[1]-W*e[1],k[2]-W*e[2]]}else k=_[0];if(f){let e=Array(4),v=Array(4),x=Array(4),w=Array(4),M=Array(4);for(let t=0;t<4;++t)e[t]=.5*(f[t]+u[t]),v[t]=.5*(u[t]+p[t]),x[t]=.5*(p[t]+g[t]),w[t]=.5*(g[t]+f[t]),M[t]=.5*(e[t]+x[t]);let b=this.data.Vertex(X,V,e),T=this.data.Vertex(j,U,v),S=this.data.Vertex(Z,H,x),R=this.data.Vertex(k,G,w),A=this.data.Vertex(C,F,M);this.Render(B,t,b,A,R,r,X,C,k,h,!1,!1,m,f,e,M,w),this.Render(N,b,i,T,A,X,s,j,C,h,c,!1,!1,e,u,v,M),this.Render(z,A,T,a,S,C,j,o,Z,!1,c,d,!1,M,v,p,x),this.Render(_,R,A,S,n,k,C,Z,l,!1,!1,d,m,w,M,x,g)}else{let e=this.vertex(X,V),f=this.vertex(j,U),u=this.vertex(Z,H),p=this.vertex(k,G),g=this.vertex(C,F);this.Render(B,t,e,g,p,r,X,C,k,h,!1,!1,m),this.Render(N,e,i,f,g,X,s,j,C,h,c,!1,!1),this.Render(z,g,f,a,u,C,j,o,Z,!1,c,d,!1),this.Render(_,p,g,u,n,k,C,Z,l,!1,!1,d,m)}}}process3(e){if(1==wireframe)return this.curve(e,0,1,3,6),this.curve(e,6,7,8,9),void this.curve(e,9,5,2,0);let t=e[0],i=e[6],a=e[9],n=this.normal(a,e[5],e[2],t,e[1],e[3],i),r=this.normal(t,e[1],e[3],i,e[7],e[8],a),s=this.normal(i,e[7],e[8],a,e[5],e[2],t);if(this.color){let o=this.color[0],l=this.color[1],h=this.color[2],c=this.data.Vertex(t,n,o),d=this.data.Vertex(i,r,l),m=this.data.Vertex(a,s,h);this.Render3(e,c,d,m,t,i,a,!1,!1,!1,o,l,h)}else{let o=this.vertex(t,n),l=this.vertex(i,r),h=this.vertex(a,s);this.Render3(e,o,l,h,t,i,a,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(e,t,i,a,n,r,s,o,l,h,c,d,m){if(this.Distance3(e)<this.res2)this.offscreen([n,r,s])||(0==wireframe?(this.data.indices.push(t),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(t),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(t)));else{if(this.offscreen(e))return;let f=e[0],u=e[1],p=e[2],g=e[3],v=e[4],x=e[5],w=e[6],M=e[7],b=e[8],T=e[9],S=[.5*(T[0]+x[0]),.5*(T[1]+x[1]),.5*(T[2]+x[2])],R=[.5*(T[0]+b[0]),.5*(T[1]+b[1]),.5*(T[2]+b[2])],A=[.5*(x[0]+p[0]),.5*(x[1]+p[1]),.5*(x[2]+p[2])],I=[.5*(b[0]+v[0]),.5*(b[1]+v[1]),.5*(b[2]+v[2])],P=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],E=[.5*(p[0]+v[0]),.5*(p[1]+v[1]),.5*(p[2]+v[2])],y=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],L=[.5*(v[0]+g[0]),.5*(v[1]+g[1]),.5*(v[2]+g[2])],D=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],O=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],B=[.5*(u[0]+g[0]),.5*(u[1]+g[1]),.5*(u[2]+g[2])],N=[.5*(g[0]+w[0]),.5*(g[1]+w[1]),.5*(g[2]+w[2])],z=[.5*(S[0]+A[0]),.5*(S[1]+A[1]),.5*(S[2]+A[2])],_=[.5*(R[0]+P[0]),.5*(R[1]+P[1]),.5*(R[2]+P[2])],C=[.5*(A[0]+y[0]),.5*(A[1]+y[1]),.5*(A[2]+y[2])],V=[.5*I[0]+.25*(v[0]+u[0]),.5*I[1]+.25*(v[1]+u[1]),.5*I[2]+.25*(v[2]+u[2])],U=[.5*(P[0]+D[0]),.5*(P[1]+D[1]),.5*(P[2]+D[2])],H=[.5*E[0]+.25*(v[0]+M[0]),.5*E[1]+.25*(v[1]+M[1]),.5*E[2]+.25*(v[2]+M[2])],G=[.25*(x[0]+v[0])+.5*L[0],.25*(x[1]+v[1])+.5*L[1],.25*(x[2]+v[2])+.5*L[2]],F=[.5*(O[0]+B[0]),.5*(O[1]+B[1]),.5*(O[2]+B[2])],W=[.5*(B[0]+N[0]),.5*(B[1]+N[1]),.5*(B[2]+N[2])],X=[.5*(H[0]+F[0]),.5*(H[1]+F[1]),.5*(H[2]+F[2])],j=[.5*(H[0]+W[0]),.5*(H[1]+W[1]),.5*(H[2]+W[2])],Z=[.5*(F[0]+W[0]),.5*(F[1]+W[1]),.5*(F[2]+W[2])],k=[.5*(G[0]+U[0]),.5*(G[1]+U[1]),.5*(G[2]+U[2])],Y=[.5*(_[0]+G[0]),.5*(_[1]+G[1]),.5*(_[2]+G[2])],q=[.5*(_[0]+U[0]),.5*(_[1]+U[1]),.5*(_[2]+U[2])],$=[.5*(z[0]+V[0]),.5*(z[1]+V[1]),.5*(z[2]+V[2])],K=[.5*(C[0]+V[0]),.5*(C[1]+V[1]),.5*(C[2]+V[2])],Q=[.5*(z[0]+C[0]),.5*(z[1]+C[1]),.5*(z[2]+C[2])],J=[f,O,y,F,[.5*(E[0]+O[0]),.5*(E[1]+O[1]),.5*(E[2]+O[2])],C,Z,X,K,Q],ee=[Z,W,j,N,[.5*(L[0]+D[0]),.5*(L[1]+D[1]),.5*(L[2]+D[2])],k,w,D,U,q],te=[Q,$,z,Y,[.5*(S[0]+I[0]),.5*(S[1]+I[1]),.5*(S[2]+I[2])],S,q,_,R,T],ie=[q,Y,k,$,[.25*(A[0]+P[0]+B[0]+v[0]),.25*(A[1]+P[1]+B[1]+v[1]),.25*(A[2]+P[2]+B[2]+v[2])],j,Q,K,X,Z],ae=this.normal(Z,j,k,q,Y,$,Q),ne=this.normal(q,Y,$,Q,K,X,Z),re=this.normal(Q,K,X,Z,j,k,q),se=this.Epsilon,oe=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])];if(!o)if(o=Straightness(w,M,b,T)<this.res2){let e=unit(this.sumdifferential(ie[0],ie[2],ie[5],ie[9],ie[1],ie[3],ie[6]));oe=[oe[0]-se*e[0],oe[1]-se*e[1],oe[2]-se*e[2]]}else oe=q;let le=[.5*(s[0]+n[0]),.5*(s[1]+n[1]),.5*(s[2]+n[2])];if(!l)if(l=Straightness(f,p,x,T)<this.res2){let e=unit(this.sumdifferential(ie[6],ie[3],ie[1],ie[0],ie[7],ie[8],ie[9]));le=[le[0]-se*e[0],le[1]-se*e[1],le[2]-se*e[2]]}else le=Q;let he=[.5*(n[0]+r[0]),.5*(n[1]+r[1]),.5*(n[2]+r[2])];if(!h)if(h=Straightness(f,u,g,w)<this.res2){let e=unit(this.sumdifferential(ie[9],ie[8],ie[7],ie[6],ie[5],ie[2],ie[0]));he=[he[0]-se*e[0],he[1]-se*e[1],he[2]-se*e[2]]}else he=Z;if(c){let e=Array(4),f=Array(4),u=Array(4);for(let t=0;t<4;++t)e[t]=.5*(d[t]+m[t]),f[t]=.5*(m[t]+c[t]),u[t]=.5*(c[t]+d[t]);let p=this.data.Vertex(oe,ae,e),g=this.data.Vertex(le,ne,f),v=this.data.Vertex(he,re,u);this.Render3(J,t,v,g,n,he,le,!1,l,h,c,u,f),this.Render3(ee,v,i,p,he,r,oe,o,!1,h,u,d,e),this.Render3(te,g,p,a,le,oe,s,o,l,!1,f,e,m),this.Render3(ie,p,g,v,oe,le,he,!1,!1,!1,e,f,u)}else{let e=this.vertex(oe,ae),c=this.vertex(le,ne),d=this.vertex(he,re);this.Render3(J,t,d,c,n,he,le,!1,l,h),this.Render3(ee,d,i,e,he,r,oe,o,!1,h),this.Render3(te,c,e,a,le,oe,s,o,l,!1),this.Render3(ie,e,c,d,oe,le,he,!1,!1,!1)}}}Distance(e){let t=e[0],i=e[3],a=e[12],n=e[15],r=Flatness(t,a,i,n);r=Math.max(Straightness(t,e[4],e[8],a)),r=Math.max(r,Straightness(e[1],e[5],e[9],e[13])),r=Math.max(r,Straightness(i,e[7],e[11],n)),r=Math.max(r,Straightness(e[2],e[6],e[10],e[14]));let s=Flatness(t,i,a,n);return s=Math.max(s,Straightness(t,e[1],e[2],i)),s=Math.max(s,Straightness(e[4],e[5],e[6],e[7])),s=Math.max(s,Straightness(e[8],e[9],e[10],e[11])),s=Math.max(s,Straightness(a,e[13],e[14],n)),[r,s]}Distance3(e){let t=e[0],i=e[4],a=e[6],n=e[9],r=abs2([(t[0]+a[0]+n[0])*(1/3)-i[0],(t[1]+a[1]+n[1])*(1/3)-i[1],(t[2]+a[2]+n[2])*(1/3)-i[2]]);return r=Math.max(r,Straightness(t,e[1],e[3],a)),r=Math.max(r,Straightness(t,e[2],e[5],n)),Math.max(r,Straightness(a,e[7],e[8],n))}differential(e,t,i,a){let n=[3*(t[0]-e[0]),3*(t[1]-e[1]),3*(t[2]-e[2])];return abs2(n)>this.epsilon?n:(n=bezierPP(e,t,i),abs2(n)>this.epsilon?n:bezierPPP(e,t,i,a))}sumdifferential(e,t,i,a,n,r,s){let o=this.differential(e,t,i,a),l=this.differential(e,n,r,s);return[o[0]+l[0],o[1]+l[1],o[2]+l[2]]}normal(e,t,i,a,n,r,s){let o=3*(n[0]-a[0]),l=3*(n[1]-a[1]),h=3*(n[2]-a[2]),c=3*(i[0]-a[0]),d=3*(i[1]-a[1]),m=3*(i[2]-a[2]),f=[l*m-h*d,h*c-o*m,o*d-l*c];if(abs2(f)>this.epsilon)return f;let u=[c,d,m],p=[o,l,h],g=bezierPP(a,i,t),v=bezierPP(a,n,r),x=cross(v,u),w=cross(p,g);if(f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]],abs2(f)>this.epsilon)return f;let M=bezierPPP(a,i,t,e),b=bezierPPP(a,n,r,s);x=cross(p,M),w=cross(b,u);let T=cross(v,g);return f=[x[0]+w[0]+T[0],x[1]+w[1]+T[1],x[2]+w[2]+T[2]],abs2(f)>this.epsilon?f:(x=cross(b,g),w=cross(v,M),f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]],abs2(f)>this.epsilon?f:cross(b,M))}}class BezierCurve extends Geometry{constructor(e,t,i,a,n){super(),this.controlpoints=e,this.CenterIndex=t,this.MaterialIndex=i,this.Min=a,this.Max=n}setMaterialIndex(){this.setMaterial(material1Data,drawMaterial1)}processLine(e){let t=e[0],i=e[1];if(!this.offscreen([t,i])){let e=[0,0,1];this.data.indices.push(this.data.vertex(t,e)),this.data.indices.push(this.data.vertex(i,e)),this.append()}}process(e){if(2==e.length)return this.processLine(e);let t=e[0],i=e[1],a=e[2],n=e[3],r=this.normal(bezierP(t,i),bezierPP(t,i,a)),s=this.normal(bezierP(a,n),bezierPP(n,a,i)),o=this.data.vertex(t,r),l=this.data.vertex(n,s);this.Render(e,o,l),this.data.indices.length>0&&this.append()}append(){material1Data.append(this.data)}notRendered(){material1Data.rendered=!1}Render(e,t,i){let a=e[0],n=e[1],r=e[2],s=e[3];if(Straightness(a,n,r,s)<this.res2)this.offscreen([a,s])||(this.data.indices.push(t),this.data.indices.push(i));else{if(this.offscreen(e))return;let o=[.5*(a[0]+n[0]),.5*(a[1]+n[1]),.5*(a[2]+n[2])],l=[.5*(n[0]+r[0]),.5*(n[1]+r[1]),.5*(n[2]+r[2])],h=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])],c=[.5*(o[0]+l[0]),.5*(o[1]+l[1]),.5*(o[2]+l[2])],d=[.5*(l[0]+h[0]),.5*(l[1]+h[1]),.5*(l[2]+h[2])],m=[.5*(c[0]+d[0]),.5*(c[1]+d[1]),.5*(c[2]+d[2])],f=[a,o,c,m],u=[m,d,h,s],p=this.normal(bezierPh(a,n,r,s),bezierPPh(a,n,r,s)),g=this.data.vertex(m,p);this.Render(f,t,g),this.Render(u,g,i)}}normal(e,t){let i=dot(e,e),a=dot(e,t);return[i*t[0]-a*e[0],i*t[1]-a*e[1],i*t[2]-a*e[2]]}}class Pixel extends Geometry{constructor(e,t,i,a,n){super(),this.controlpoint=e,this.width=t,this.CenterIndex=0,this.MaterialIndex=i,this.Min=a,this.Max=n}setMaterialIndex(){this.setMaterial(material0Data,drawMaterial0)}process(e){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){material0Data.append(this.data)}notRendered(){material0Data.rendered=!1}}class Triangles extends Geometry{constructor(e,t,i,a){super(),this.CenterIndex=e,this.MaterialIndex=t,this.Min=i,this.Max=a,this.controlpoints=Positions,this.Normals=Normals,this.Colors=Colors,this.Indices=Indices,Positions=[],Normals=[],Colors=[],Indices=[],this.transparent=Materials[this.MaterialIndex].diffuse[3]<1}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.setMaterial(triangleData,drawTriangle)}process(e){this.data.vertices=new Array(6*e.length),materialIndex=this.Colors.length>0?-1-materialIndex:1+materialIndex;for(let t=0,i=this.Indices.length;t<i;++t){let i=this.Indices[t],a=i[0],n=e[a[0]],r=e[a[1]],s=e[a[2]];if(!this.offscreen([n,r,s])){let e=i.length>1?i[1]:a;if(e&&0!=e.length||(e=a),this.Colors.length>0){let t=i.length>2?i[2]:a;t&&0!=t.length||(t=a);let o=this.Colors[t[0]],l=this.Colors[t[1]],h=this.Colors[t[2]];this.transparent|=o[3]+l[3]+h[3]<765,0==wireframe?(this.data.iVertex(a[0],n,this.Normals[e[0]],o),this.data.iVertex(a[1],r,this.Normals[e[1]],l),this.data.iVertex(a[2],s,this.Normals[e[2]],h)):(this.data.iVertex(a[0],n,this.Normals[e[0]],o),this.data.iVertex(a[1],r,this.Normals[e[1]],l),this.data.iVertex(a[1],r,this.Normals[e[1]],l),this.data.iVertex(a[2],s,this.Normals[e[2]],h),this.data.iVertex(a[2],s,this.Normals[e[2]],h),this.data.iVertex(a[0],n,this.Normals[e[0]],o))}else 0==wireframe?(this.data.iVertex(a[0],n,this.Normals[e[0]]),this.data.iVertex(a[1],r,this.Normals[e[1]]),this.data.iVertex(a[2],s,this.Normals[e[2]])):(this.data.iVertex(a[0],n,this.Normals[e[0]]),this.data.iVertex(a[1],r,this.Normals[e[1]]),this.data.iVertex(a[1],r,this.Normals[e[1]]),this.data.iVertex(a[2],s,this.Normals[e[2]]),this.data.iVertex(a[2],s,this.Normals[e[2]]),this.data.iVertex(a[0],n,this.Normals[e[0]]))}}this.data.nvertices=e.length,this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):triangleData.append(this.data)}notRendered(){this.transparent?transparentData.rendered=!1:triangleData.rendered=!1}}function redrawScene(){initProjection(),setProjection(),remesh=!0,drawScene()}function home(){mat4.identity(rotMat),redrawScene(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(""),window.parent.asyProjection=!1}let positionAttribute=0,normalAttribute=1,materialAttribute=2,colorAttribute=3,widthAttribute=4;function initShader(e=[]){let t=getShader(gl,vertex,gl.VERTEX_SHADER,e),i=getShader(gl,fragment,gl.FRAGMENT_SHADER,e),a=gl.createProgram();return gl.attachShader(a,t),gl.attachShader(a,i),gl.bindAttribLocation(a,positionAttribute,"position"),gl.bindAttribLocation(a,normalAttribute,"normal"),gl.bindAttribLocation(a,materialAttribute,"materialIndex"),gl.bindAttribLocation(a,colorAttribute,"color"),gl.bindAttribLocation(a,widthAttribute,"width"),gl.linkProgram(a),gl.getProgramParameter(a,gl.LINK_STATUS)||alert("Could not initialize shaders"),a}class Split3{constructor(e,t,i,a){this.m0=[.5*(e[0]+t[0]),.5*(e[1]+t[1]),.5*(e[2]+t[2])];let n=.5*(t[0]+i[0]),r=.5*(t[1]+i[1]),s=.5*(t[2]+i[2]);this.m2=[.5*(i[0]+a[0]),.5*(i[1]+a[1]),.5*(i[2]+a[2])],this.m3=[.5*(this.m0[0]+n),.5*(this.m0[1]+r),.5*(this.m0[2]+s)],this.m4=[.5*(n+this.m2[0]),.5*(r+this.m2[1]),.5*(s+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}function unit(e){let t=1/(Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])||1);return[e[0]*t,e[1]*t,e[2]*t]}function abs2(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]}function dot(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function cross(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function bezierP(e,t){return[t[0]-e[0],t[1]-e[1],t[2]-e[2]]}function bezierPP(e,t,i){return[3*(e[0]+i[0])-6*t[0],3*(e[1]+i[1])-6*t[1],3*(e[2]+i[2])-6*t[2]]}function bezierPPP(e,t,i,a){return[a[0]-e[0]+3*(t[0]-i[0]),a[1]-e[1]+3*(t[1]-i[1]),a[2]-e[2]+3*(t[2]-i[2])]}function bezierPh(e,t,i,a){return[i[0]+a[0]-e[0]-t[0],i[1]+a[1]-e[1]-t[1],i[2]+a[2]-e[2]-t[2]]}function bezierPPh(e,t,i,a){return[3*e[0]-5*t[0]+i[0]+a[0],3*e[1]-5*t[1]+i[1]+a[1],3*e[2]-5*t[2]+i[2]+a[2]]}function Straightness(e,t,i,a){let n=[1/3*(a[0]-e[0]),1/3*(a[1]-e[1]),1/3*(a[2]-e[2])];return Math.max(abs2([t[0]-n[0]-e[0],t[1]-n[1]-e[1],t[2]-n[2]-e[2]]),abs2([a[0]-n[0]-i[0],a[1]-n[1]-i[1],a[2]-n[2]-i[2]]))}function Flatness(e,t,i,a){let n=[t[0]-e[0],t[1]-e[1],t[2]-e[2]],r=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return Math.max(abs2(cross(n,unit(r))),abs2(cross(r,unit(n))))/9}function corners(e,t){return[e,[e[0],e[1],t[2]],[e[0],t[1],e[2]],[e[0],t[1],t[2]],[t[0],e[1],e[2]],[t[0],e[1],t[2]],[t[0],t[1],e[2]],t]}function minbound(e){return[Math.min(e[0][0],e[1][0],e[2][0],e[3][0],e[4][0],e[5][0],e[6][0],e[7][0]),Math.min(e[0][1],e[1][1],e[2][1],e[3][1],e[4][1],e[5][1],e[6][1],e[7][1]),Math.min(e[0][2],e[1][2],e[2][2],e[3][2],e[4][2],e[5][2],e[6][2],e[7][2])]}function maxbound(e){return[Math.max(e[0][0],e[1][0],e[2][0],e[3][0],e[4][0],e[5][0],e[6][0],e[7][0]),Math.max(e[0][1],e[1][1],e[2][1],e[3][1],e[4][1],e[5][1],e[6][1],e[7][1]),Math.max(e[0][2],e[1][2],e[2][2],e[3][2],e[4][2],e[5][2],e[6][2],e[7][2])]}function COBTarget(e,t){mat4.fromTranslation(Temp,[center.x,center.y,center.z]),mat4.invert(cjMatInv,Temp),mat4.multiply(e,t,cjMatInv),mat4.multiply(e,Temp,e)}function setUniforms(e,t){let i=t==pixelShader;gl.useProgram(t),gl.enableVertexAttribArray(positionAttribute),i&&gl.enableVertexAttribArray(widthAttribute);let a=!i&&Lights.length>0;if(a&&gl.enableVertexAttribArray(normalAttribute),gl.enableVertexAttribArray(materialAttribute),t.projViewMatUniform=gl.getUniformLocation(t,"projViewMat"),t.viewMatUniform=gl.getUniformLocation(t,"viewMat"),t.normMatUniform=gl.getUniformLocation(t,"normMat"),t!=colorShader&&t!=transparentShader||gl.enableVertexAttribArray(colorAttribute),a)for(let e=0;e<Lights.length;++e)Lights[e].setUniform(t,e);for(let i=0;i<e.materials.length;++i)e.materials[i].setUniform(t,i);gl.uniformMatrix4fv(t.projViewMatUniform,!1,projViewMat),gl.uniformMatrix4fv(t.viewMatUniform,!1,viewMat),gl.uniformMatrix3fv(t.normMatUniform,!1,normMat)}function handleMouseDown(e){zoomEnabled||enableZoom(),mouseDownOrTouchActive=!0,lastMouseX=e.clientX,lastMouseY=e.clientY}let pinchStart,touchStartTime,pinch=!1;function pinchDistance(e){return Math.hypot(e[0].pageX-e[1].pageX,e[0].pageY-e[1].pageY)}function handleTouchStart(e){e.preventDefault(),zoomEnabled||enableZoom();let t=e.targetTouches;swipe=rotate=pinch=!1,zooming||(1!=t.length||mouseDownOrTouchActive||(touchStartTime=(new Date).getTime(),touchId=t[0].identifier,lastMouseX=t[0].pageX,lastMouseY=t[0].pageY),2!=t.length||mouseDownOrTouchActive||(touchId=t[0].identifier,pinchStart=pinchDistance(t),pinch=!0))}function handleMouseUpOrTouchEnd(e){mouseDownOrTouchActive=!1}function rotateScene(e,t,i,a,n){if(e==i&&t==a)return;let[r,s]=arcball([e,-t],[i,-a]);mat4.fromRotation(Temp,2*n*ArcballFactor*r/Zoom,s),mat4.multiply(rotMat,Temp,rotMat)}function shiftScene(e,t,i,a){let n=1/Zoom;shift.x+=(i-e)*n*halfCanvasWidth,shift.y-=(a-t)*n*halfCanvasHeight}function panScene(e,t,i,a){orthographic?shiftScene(e,t,i,a):(center.x+=(i-e)*(viewParam.xmax-viewParam.xmin),center.y-=(a-t)*(viewParam.ymax-viewParam.ymin))}function updateViewMatrix(){COBTarget(viewMat,rotMat),mat4.translate(viewMat,viewMat,[center.x,center.y,0]),mat3.fromMat4(viewMat3,viewMat),mat3.invert(normMat,viewMat3),mat4.multiply(projViewMat,projMat,viewMat)}function capzoom(){let e=Math.sqrt(Number.MAX_VALUE),t=1/e;Zoom<=t&&(Zoom=t),Zoom>=e&&(Zoom=e),(1.5*Zoom<lastZoom||Zoom>1.5*lastZoom)&&(remesh=!0,lastZoom=Zoom)}function zoomImage(e){let t=zoomStep*halfCanvasHeight*e;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(zoomFactor);Math.abs(t)<i&&(Zoom*=zoomFactor**t,capzoom())}function normMouse(e){let t=e[0],i=e[1],a=Math.hypot(t,i);return a>1&&(denom=1/a,t*=denom,i*=denom),[t,i,Math.sqrt(Math.max(1-i*i-t*t,0))]}function arcball(e,t){let i=normMouse(e),a=normMouse(t),n=dot(i,a);return[n>1?0:n<-1?pi:Math.acos(n),unit(cross(i,a))]}function zoomScene(e,t,i,a){zoomImage(t-a)}const DRAGMODE_ROTATE=1,DRAGMODE_SHIFT=2,DRAGMODE_ZOOM=3,DRAGMODE_PAN=4;function processDrag(e,t,i,a=1){let n;switch(i){case 1:n=rotateScene;break;case 2:n=shiftScene;break;case 3:n=zoomScene;break;case 4:n=panScene;break;default:n=(e,t,i,a)=>{}}n((lastMouseX-halfCanvasWidth)/halfCanvasWidth,(lastMouseY-halfCanvasHeight)/halfCanvasHeight,(e-halfCanvasWidth)/halfCanvasWidth,(t-halfCanvasHeight)/halfCanvasHeight,a),lastMouseX=e,lastMouseY=t,setProjection(),drawScene()}let zoomEnabled=0;function enableZoom(){zoomEnabled=1,canvas.addEventListener("wheel",handleMouseWheel,!1)}function disableZoom(){zoomEnabled=0,canvas.removeEventListener("wheel",handleMouseWheel,!1)}function Camera(){let e=Array(3),t=Array(3),i=Array(3),a=center.x,n=center.y,r=.5*(viewParam.zmin+viewParam.zmax);for(let s=0;s<3;++s){let o=0,l=0,h=0,c=4*s;for(let e=0;e<4;++e){let t=4*e,i=rotMat[t],s=rotMat[t+1],d=rotMat[t+2],m=rotMat[t+3],f=Transform[c+e];o+=f*(m-a*i-n*s-r*d),h+=f*s,l+=f*(m-a*i-n*s)}e[s]=o,t[s]=h,i[s]=l}return[e,t,i]}function projection(){if(null==Transform)return"";let e,t,i;[e,t,i]=Camera();let a=orthographic?" orthographic(":" perspective(",n="".padStart(a.length),r="currentprojection=\n"+a+"camera=("+e+"),\n"+n+"up=("+t+"),\n"+n+"target=("+i+"),\n"+n+"zoom="+Zoom*initialZoom/zoom0;return orthographic||(r+=",\n"+n+"angle="+2*Math.atan(Math.tan(.5*angleOfView)/Zoom)/radians),0==xshift&&0==yshift||(r+=",\n"+n+"viewportshift=("+xshift+","+yshift+")"),orthographic||(r+=",\n"+n+"autoadjust=false"),r+=");\n",window.parent.asyProjection=!0,r}function handleKey(e){if(zoomEnabled||enableZoom(),embedded&&zoomEnabled&&27==e.keyCode)return void disableZoom();let t=[];switch(e.key){case"x":t=[1,0,0];break;case"y":t=[0,1,0];break;case"z":t=[0,0,1];break;case"h":home();break;case"m":++wireframe,3==wireframe&&(wireframe=0),2!=wireframe&&(embedded||deleteShaders(),initShaders(ibl)),remesh=!0,drawScene();break;case"+":case"=":case">":expand();break;case"-":case"_":case"<":shrink();break;case"c":showCamera()}t.length>0&&(mat4.rotate(rotMat,rotMat,.1,t),updateViewMatrix(),drawScene())}function setZoom(){capzoom(),setProjection(),drawScene()}function handleMouseWheel(e){e.preventDefault(),e.deltaY<0?Zoom*=zoomFactor:Zoom/=zoomFactor,setZoom()}function handleMouseMove(e){if(!mouseDownOrTouchActive)return;let t,i=e.clientX,a=e.clientY;t=e.getModifierState("Control")?2:e.getModifierState("Shift")?3:e.getModifierState("Alt")?4:1,processDrag(i,a,t)}let zooming=!1,swipe=!1,rotate=!1;function handleTouchMove(e){if(e.preventDefault(),zooming)return;let t=e.targetTouches;if(!pinch&&1==t.length&&touchId==t[0].identifier){let e=t[0].pageX,i=t[0].pageY,a=e-lastMouseX,n=i-lastMouseY,r=a*a+n*n<=shiftHoldDistance*shiftHoldDistance;if(r&&!swipe&&!rotate&&(new Date).getTime()-touchStartTime>shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(vibrateTime),swipe=!0),swipe)processDrag(e,i,2);else if(!r){rotate=!0,processDrag(t[0].pageX,t[0].pageY,1,.5)}}if(pinch&&!swipe&&2==t.length&&touchId==t[0].identifier){let e=pinchDistance(t),i=e-pinchStart;zooming=!0,i*=zoomPinchFactor,i>zoomPinchCap&&(i=zoomPinchCap),i<-zoomPinchCap&&(i=-zoomPinchCap),zoomImage(i/size2),pinchStart=e,swipe=rotate=zooming=!1,setProjection(),drawScene()}}let pixelShader,materialShader,colorShader,transparentShader,zbuffer=[];function transformVertices(e){let t=viewMat[2],i=viewMat[6],a=viewMat[10];zbuffer.length=e.length;for(let n=0;n<e.length;++n){let r=6*n;zbuffer[n]=t*e[r]+i*e[r+1]+a*e[r+2]}}function drawMaterial0(){drawBuffer(material0Data,pixelShader),material0Data.clear()}function drawMaterial1(){drawBuffer(material1Data,materialShader),material1Data.clear()}function drawMaterial(){drawBuffer(materialData,materialShader),materialData.clear()}function drawColor(){drawBuffer(colorData,colorShader),colorData.clear()}function drawTriangle(){drawBuffer(triangleData,transparentShader),triangleData.rendered=!1,triangleData.clear()}function drawTransparent(){let e=transparentData.indices;if(wireframe>0)return drawBuffer(transparentData,transparentShader,e),void transparentData.clear();if(e.length>0){transformVertices(transparentData.vertices);let t=e.length/3,i=Array(t).fill().map((e,t)=>t);i.sort((function(t,i){let a=3*t;Ia=e[a],Ib=e[a+1],Ic=e[a+2];let n=3*i;return IA=e[n],IB=e[n+1],IC=e[n+2],zbuffer[Ia]+zbuffer[Ib]+zbuffer[Ic]<zbuffer[IA]+zbuffer[IB]+zbuffer[IC]?-1:1}));let a=Array(e.length);for(let n=0;n<t;++n){let t=3*i[n];a[3*n]=e[t],a[3*n+1]=e[t+1],a[3*n+2]=e[t+2]}gl.depthMask(!1),drawBuffer(transparentData,transparentShader,a),transparentData.rendered=!1,gl.depthMask(!0)}transparentData.clear()}function drawBuffers(){drawMaterial0(),drawMaterial1(),drawMaterial(),drawColor(),drawTriangle(),drawTransparent(),requestAnimationFrame(drawBuffers)}function drawScene(){embedded&&(offscreen.width=canvasWidth,offscreen.height=canvasHeight,setViewport()),gl.clearColor(Background[0],Background[1],Background[2],Background[3]),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);for(let e=0;e<P.length;++e)P[e].render();drawBuffers(),embedded&&(context.clearRect(0,0,canvasWidth,canvasHeight),context.drawImage(offscreen,0,0)),0==wireframe&&(remesh=!1)}function setDimensions(e,t,i,a){let n=e/t;xshift=(i/e+viewportShift[0])*Zoom,yshift=(a/t+viewportShift[1])*Zoom;let r=1/Zoom;if(orthographic){let e=maxBound[0]-minBound[0],t=maxBound[1]-minBound[1];if(e<t*n){let e=.5*t*n*r,i=2*e*xshift,a=t*r*yshift;viewParam.xmin=-e-i,viewParam.xmax=e-i,viewParam.ymin=minBound[1]*r-a,viewParam.ymax=maxBound[1]*r-a}else{let t=.5*e*r/n,i=e*r*xshift,a=2*t*yshift;viewParam.xmin=minBound[0]*r-i,viewParam.xmax=maxBound[0]*r-i,viewParam.ymin=-t-a,viewParam.ymax=t-a}}else{let e=H*r,t=e*n,i=2*t*xshift,a=2*e*yshift;viewParam.xmin=-t-i,viewParam.xmax=t-i,viewParam.ymin=-e-a,viewParam.ymax=e-a}}function setProjection(){setDimensions(canvasWidth,canvasHeight,shift.x,shift.y),(orthographic?mat4.ortho:mat4.frustum)(projMat,viewParam.xmin,viewParam.xmax,viewParam.ymin,viewParam.ymax,-viewParam.zmax,-viewParam.zmin),updateViewMatrix(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(projection())}function showCamera(){window.top.asyWebApplication||prompt("Ctrl+c Enter to copy currentprojection to clipboard; then append to asy file:",projection())}function initProjection(){H=-Math.tan(.5*angleOfView)*maxBound[2],center.x=center.y=0,center.z=.5*(minBound[2]+maxBound[2]),lastZoom=Zoom=zoom0,viewParam.zmin=minBound[2],viewParam.zmax=maxBound[2],shift.x=shift.y=0}function setViewport(){gl.viewportWidth=canvasWidth,gl.viewportHeight=canvasHeight,gl.viewport(.5*(canvas.width-canvasWidth),.5*(canvas.height-canvasHeight),canvasWidth,canvasHeight),gl.scissor(0,0,canvas.width,canvas.height)}function setCanvas(){embedded&&(canvas.width=offscreen.width=canvasWidth,canvas.height=offscreen.height=canvasHeight),size2=Math.hypot(canvasWidth,canvasHeight),halfCanvasWidth=.5*canvas.width,halfCanvasHeight=.5*canvas.height,ArcballFactor=1+8*Math.hypot(viewportMargin[0],viewportMargin[1])/size2}function setsize(e,t){e>maxViewportWidth&&(e=maxViewportWidth),t>maxViewportHeight&&(t=maxViewportHeight),shift.x*=e/canvasWidth,shift.y*=t/canvasHeight,canvasWidth=e,canvasHeight=t,setCanvas(),setViewport(),setProjection(),remesh=!0}function resize(){if(zoom0=initialZoom,window.top.asyWebApplication&&""==window.top.asyWebApplication.getProjection()&&(window.parent.asyProjection=!1),absolute&&!embedded)canvasWidth=canvasWidth0*window.devicePixelRatio,canvasHeight=canvasHeight0*window.devicePixelRatio;else{let e=canvasWidth0/canvasHeight0;canvasWidth=Math.max(window.innerWidth-10,10),canvasHeight=Math.max(window.innerHeight-10,10),!orthographic&&!window.parent.asyProjection&&canvasWidth<canvasHeight*e&&(zoom0*=canvasWidth/(canvasHeight*e))}canvas.width=canvasWidth,canvas.height=canvasHeight;window.innerWidth,window.innerHeight;let e=1/zoom0;viewportShift[0]*=e,viewportShift[1]*=e,setsize(canvasWidth,canvasHeight),redrawScene()}function expand(){Zoom*=zoomFactor,setZoom()}function shrink(){Zoom/=zoomFactor,setZoom()}class Align{constructor(e,t){if(this.center=e,t){let e=t[0],i=t[1];this.ct=Math.cos(e),this.st=Math.sin(e),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(e){return[e[0]+this.center[0],e[1]+this.center[1],e[2]+this.center[2]]}T(e){let t=e[0],i=e[1],a=e[2],n=t*this.ct+a*this.st;return[n*this.cp-i*this.sp+this.center[0],n*this.sp+i*this.cp+this.center[1],-t*this.st+a*this.ct+this.center[2]]}}function Tcorners(e,t,i){let a=[e(t),e([t[0],t[1],i[2]]),e([t[0],i[1],t[2]]),e([t[0],i[1],i[2]]),e([i[0],t[1],t[2]]),e([i[0],t[1],i[2]]),e([i[0],i[1],t[2]]),e(i)];return[minbound(a),maxbound(a)]}function material(e,t,i,a,n,r){Materials.push(new Material(e,t,i,a,n,r))}function patch(e,t,i,a,n,r){P.push(new BezierPatch(e,t,i,a,n,r))}function curve(e,t,i,a,n){P.push(new BezierCurve(e,t,i,a,n))}function pixel(e,t,i,a,n){P.push(new Pixel(e,t,i,a,n))}function triangles(e,t,i,a){P.push(new Triangles(e,t,i,a))}function sphere(e,t,i,n,r){let s,o,l,h,c,d,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,g=.996685028842544,v=.0549670512339254,x=.998880711874577,w=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,g],[1,a,0],[1,a,m],[f,a*f,u],[p,a*p,g],[a,1,0],[a,1,m],[a*f,f,u],[a*p,p,g],[0,1,0],[0,1,m],[0,f,u],[0,p,g]],[[p,0,g],[p,a*p,g],[v,0,x],[a*p,p,g],[w,w,1],[.05*a,0,1],[0,p,g],[0,v,x],[0,.05*a,1],[0,0,1]]],b=new Align(e,r);function T(e){let t=Array(e.length);for(let i=0;i<e.length;++i){let a=e[i];t[i]=c([s*a[0],o*a[1],l*a[2]])}return t}r?(h=1,d=0,c=b.T.bind(b)):(h=-1,d=-t,c=b.T0.bind(b));let S=Tcorners(c,[-t,-t,d],[t,t,t]),R=S[0],A=S[1];for(let e=-1;e<=1;e+=2){s=e*t;for(let e=-1;e<=1;e+=2){o=e*t;for(let e=h;e<=1;e+=2){l=e*t;for(let e=0;e<2;++e)P.push(new BezierPatch(T(M[e]),i,n,R,A))}}}}let a=4/3*(Math.sqrt(2)-1);function disk(e,t,i,n,r){let s=1-2*a/3,o=[[1,0,0],[1,-a,0],[a,-1,0],[0,-1,0],[1,a,0],[s,0,0],[0,-s,0],[-a,-1,0],[a,1,0],[0,s,0],[-s,0,0],[-1,-a,0],[0,1,0],[-a,1,0],[-1,a,0],[-1,0,0]],l=new Align(e,r);let h=Tcorners(l.T.bind(l),[-t,-t,0],[t,t,0]);P.push(new BezierPatch(function(e){let i=Array(e.length);for(let a=0;a<e.length;++a){let n=e[a];i[a]=l.T([t*n[0],t*n[1],0])}return i}(o),i,n,h[0],h[1]))}function cylinder(e,t,i,n,r,s,o){let l,h,c=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,a,0],[1,a,1/3],[1,a,2/3],[1,a,1],[a,1,0],[a,1,1/3],[a,1,2/3],[a,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],d=new Align(e,s);function m(e){let t=Array(e.length);for(let a=0;a<e.length;++a){let n=e[a];t[a]=d.T([l*n[0],h*n[1],i*n[2]])}return t}let f=Tcorners(d.T.bind(d),[-t,-t,0],[t,t,i]),u=f[0],p=f[1];for(let e=-1;e<=1;e+=2){l=e*t;for(let e=-1;e<=1;e+=2)h=e*t,P.push(new BezierPatch(m(c),n,r,u,p))}if(o){let t=d.T([0,0,i]);P.push(new BezierCurve([e,t],n,r,e,t))}}function rmf(e,t,i,a,n){class r{constructor(e,t,i){this.p=e,this.r=t,this.t=i,this.s=cross(i,t)}}let s=Number.EPSILON*Math.max(abs2(e),abs2(t),abs2(i),abs2(a));function o(n){if(1==n){let n=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return abs2(n)>s?unit(n):(n=[2*i[0]-t[0]-a[0],2*i[1]-t[1]-a[1],2*i[2]-t[2]-a[2]],abs2(n)>s?unit(n):[a[0]-e[0]+3*(t[0]-i[0]),a[1]-e[1]+3*(t[1]-i[1]),a[2]-e[2]+3*(t[2]-i[2])])}let r=[a[0]-e[0]+3*(t[0]-i[0]),a[1]-e[1]+3*(t[1]-i[1]),a[2]-e[2]+3*(t[2]-i[2])],o=[2*(e[0]+i[0])-4*t[0],2*(e[1]+i[1])-4*t[1],2*(e[2]+i[2])-4*t[2]],l=[t[0]-e[0],t[1]-e[1],t[2]-e[2]],h=n*n,c=[r[0]*h+o[0]*n+l[0],r[1]*h+o[1]*n+l[1],r[2]*h+o[2]*n+l[2]];return abs2(c)>s?unit(c):(h=2*n,c=[r[0]*h+o[0],r[1]*h+o[1],r[2]*h+o[2]],abs2(c)>s?unit(c):unit(r))}let l=Array(n.length),h=[t[0]-e[0],t[1]-e[1],t[2]-e[2]];abs2(h)<s&&(h=[e[0]-2*t[0]+i[0],e[1]-2*t[1]+i[1],e[2]-2*t[2]+i[2]],abs2(h)<s&&(h=[a[0]-e[0]+3*(t[0]-i[0]),a[1]-e[1]+3*(t[1]-i[1]),a[2]-e[2]+3*(t[2]-i[2])])),h=unit(h);let c=function(e){let t=cross(e,[0,1,0]),i=Number.EPSILON*abs2(e);return abs2(t)>i?unit(t):(t=cross(e,[0,0,1]),abs2(t)>i?unit(t):[1,0,0])}(h);l[0]=new r(e,c,h);for(let s=1;s<n.length;++s){let h=l[s-1],c=n[s],d=1-c,m=d*d,f=m*d,u=3*c;m*=u,d*=u*c;let p=c*c*c,g=[f*e[0]+m*t[0]+d*i[0]+p*a[0],f*e[1]+m*t[1]+d*i[1]+p*a[1],f*e[2]+m*t[2]+d*i[2]+p*a[2]],v=[g[0]-h.p[0],g[1]-h.p[1],g[2]-h.p[2]];if(0!=v[0]||0!=v[1]||0!=v[2]){let e=h.r,t=unit(v),i=h.t,a=dot(t,i),n=[i[0]-2*a*t[0],i[1]-2*a*t[1],i[2]-2*a*t[2]];i=o(c);let d=2*dot(t,e),m=[e[0]-d*t[0],e[1]-d*t[1],e[2]-d*t[2]],f=unit([i[0]-n[0],i[1]-n[1],i[2]-n[2]]),u=2*dot(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],l[s]=new r(g,unit(m),unit(i))}else l[s]=l[s-1]}return l}function tube(e,t,i,n,r,s,o){let l=rmf(e[0],e[1],e[2],e[3],[0,1/3,2/3,1]),h=a*t,c=[[t,0],[t,h],[h,t],[0,t]];function d(t,a,o,h){let d=Array(16);for(let i=0;i<4;++i){let n=l[i],r=n.r[0],s=n.s[0],m=r*t+s*a,f=r*o+s*h;r=n.r[1],s=n.s[1];let u=r*t+s*a,p=r*o+s*h;r=n.r[2],s=n.s[2];let g=r*t+s*a,v=r*o+s*h,x=e[i],w=x[0];w1=x[1],w2=x[2];for(let e=0;e<4;++e){let t=c[e],a=t[0],n=t[1];d[4*i+e]=[m*a+f*n+w,u*a+p*n+w1,g*a+v*n+w2]}}P.push(new BezierPatch(d,i,n,r,s))}d(1,0,0,1),d(0,-1,1,0),d(-1,0,0,-1),d(0,1,-1,0),o&&P.push(new BezierCurve(e,i,n,r,s))}async function getReq(e){return(await fetch(e)).arrayBuffer()}function rgb(e){return e.getBytes().filter((e,t)=>t%4!=3)}function createTexture(e,t,i=gl.RGB16F){let a=e.width(),n=e.height(),r=gl.createTexture();return gl.activeTexture(gl.TEXTURE0+t),gl.bindTexture(gl.TEXTURE_2D,r),gl.pixelStorei(gl.UNPACK_ALIGNMENT,1),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texImage2D(gl.TEXTURE_2D,0,i,a,n,0,gl.RGB,gl.FLOAT,rgb(e)),r}async function initIBL(){let e=imageURL+image+"/";function t(e){return new Promise(t=>setTimeout(t,e))}for(;!Module.EXRLoader;)await t(0);promises=[getReq(imageURL+"refl.exr").then(e=>{let t=new Module.EXRLoader(e);IBLbdrfMap=createTexture(t,0)}),getReq(e+"diffuse.exr").then(e=>{let t=new Module.EXRLoader(e);IBLDiffuseMap=createTexture(t,1)})],refl_promise=[],refl_promise.push(getReq(e+"refl0.exr"));for(let t=1;t<=roughnessStepCount;++t)refl_promise.push(getReq(e+"refl"+t+"w.exr"));finished_promise=Promise.all(refl_promise).then(e=>{let t=gl.createTexture();gl.activeTexture(gl.TEXTURE0+2),gl.pixelStorei(gl.UNPACK_ALIGNMENT,1),gl.bindTexture(gl.TEXTURE_2D,t),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAX_LEVEL,e.length-1),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR_MIPMAP_LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameterf(gl.TEXTURE_2D,gl.TEXTURE_MIN_LOD,0),gl.texParameterf(gl.TEXTURE_2D,gl.TEXTURE_MAX_LOD,roughnessStepCount);for(let t=0;t<e.length;++t){let i=new Module.EXRLoader(e[t]);gl.texImage2D(gl.TEXTURE_2D,t,gl.RGB16F,i.width(),i.height(),0,gl.RGB,gl.FLOAT,rgb(i))}IBLReflMap=t}),promises.push(finished_promise),await Promise.all(promises)}function webGLStart(){canvas=document.getElementById("Asymptote"),embedded=window.top.document!=document,initGL(),gl.enable(gl.BLEND),gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA),gl.enable(gl.DEPTH_TEST),gl.enable(gl.SCISSOR_TEST),canvas.onmousedown=handleMouseDown,document.onmouseup=handleMouseUpOrTouchEnd,document.onmousemove=handleMouseMove,canvas.onkeydown=handleKey,embedded||enableZoom(),canvas.addEventListener("touchstart",handleTouchStart,!1),canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchmove",handleTouchMove,!1),document.addEventListener("keydown",handleKey,!1),canvasWidth0=canvasWidth,canvasHeight0=canvasHeight,mat4.identity(rotMat),0!=window.innerWidth&&0!=window.innerHeight&&resize(),window.addEventListener("resize",resize,!1),ibl&&initIBL().then(SetIBL).then(redrawScene)}
+let vertex="\n#ifdef WEBGL2\n#define IN in\n#define OUT out\n#else\n#define IN attribute\n#define OUT varying\n#endif\n\nIN vec3 position;\n#ifdef WIDTH\nIN float width;\n#endif\n#ifdef NORMAL\nIN vec3 normal;\n#endif\n\nIN float materialIndex;\n\n#ifdef WEBGL2\nflat out int MaterialIndex;\n#ifdef COLOR\nOUT vec4 Color;\n#endif\n\n#else\nOUT vec4 diffuse;\nOUT vec3 specular;\nOUT float roughness,metallic,fresnel0;\nOUT vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n#endif\n\n#ifdef COLOR\nIN vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nOUT vec3 ViewPosition;\n#endif\nOUT vec3 Normal;\n#endif\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif\n Normal=normalize(normal*normMat);\n#endif\n\n#ifdef WEBGL2\n MaterialIndex=int(materialIndex);\n#ifdef COLOR\n Color=color;\n#endif\n#else\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0)\n diffuse=m.diffuse;\n else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef WEBGL2\n#define IN in\nout vec4 outValue;\n#define OUTVALUE outValue\n#else\n#define IN varying\n#define OUTVALUE gl_FragColor\n#endif\n\n#ifdef WEBGL2\nflat in int MaterialIndex;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvec4 diffuse;\nvec3 specular;\nfloat roughness,metallic,fresnel0;\nvec4 emissive;\n\n#ifdef COLOR\nin vec4 Color;\n#endif\n\n#else\nIN vec4 diffuse;\nIN vec3 specular;\nIN float roughness,metallic,fresnel0;\nIN vec4 emissive;\n#endif\n\n#ifdef NORMAL\n\n#ifndef ORTHOGRAPHIC\nIN vec3 ViewPosition;\n#endif\nIN vec3 Normal;\n\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\n#ifdef USE_IBL\nuniform sampler2D reflBRDFSampler;\nuniform sampler2D diffuseSampler;\nuniform sampler2D reflImgSampler;\n\nconst float pi=acos(-1.0);\nconst float piInv=1.0/pi;\nconst float twopi=2.0*pi;\nconst float twopiInv=1.0/twopi;\n\n// (x,y,z) -> (r,theta,phi);\n// theta -> [0,pi]: colatitude\n// phi -> [-pi,pi]: longitude\nvec3 cart2sphere(vec3 cart)\n{\n float x=cart.x;\n float y=cart.z;\n float z=cart.y;\n\n float r=length(cart);\n float theta=r > 0.0 ? acos(z/r) : 0.0;\n float phi=atan(y,x);\n\n return vec3(r,theta,phi);\n}\n\nvec2 normalizedAngle(vec3 cartVec)\n{\n vec3 sphericalVec=cart2sphere(cartVec);\n sphericalVec.y=sphericalVec.y*piInv;\n sphericalVec.z=0.75-sphericalVec.z*twopiInv;\n return sphericalVec.zy;\n}\n\nvec3 IBLColor(vec3 viewDir)\n{\n vec3 IBLDiffuse=diffuse.rgb*texture(diffuseSampler,normalizedAngle(normal)).rgb;\n vec3 reflectVec=normalize(reflect(-viewDir,normal));\n vec2 reflCoord=normalizedAngle(reflectVec);\n vec3 IBLRefl=textureLod(reflImgSampler,reflCoord,roughness*ROUGHNESS_STEP_COUNT).rgb;\n vec2 IBLbrdf=texture(reflBRDFSampler,vec2(dot(normal,viewDir),roughness)).rg;\n float specularMultiplier=fresnel0*IBLbrdf.x+IBLbrdf.y;\n vec3 dielectric=IBLDiffuse+specularMultiplier*IBLRefl;\n vec3 metal=diffuse.rgb*IBLRefl;\n return mix(dielectric,metal,metallic);\n}\n#else\nfloat Roughness2;\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 ? alpha2/(denom*denom) : 0.0;\n}\n\nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n\nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n\nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n\n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n\n float omegain=max(dot(viewDirection,normal),0.0);\n float omegaln=max(dot(lightDirection,normal),0.0);\n\n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n\n float denom=4.0*omegain*omegaln;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n\n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n\n return mix(dielectric,metal,metallic);\n}\n#endif\n\n#endif\n\nvoid main(void)\n{\n#ifdef WEBGL2\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[abs(MaterialIndex)-1];\n emissive=m.emissive;\n if(MaterialIndex >= 0)\n diffuse=m.diffuse;\n else {\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n }\n#else\n m=Materials[MaterialIndex];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[MaterialIndex].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n\nvec3 color;\n#ifdef USE_IBL\n color=IBLColor(viewDir);\n#else\n Roughness2=roughness*roughness;\n color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n#endif\n OUTVALUE=vec4(color,diffuse.a);\n#else\n OUTVALUE=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var n in i)("object"==typeof exports?exports:t)[n]=i[n]}}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=n*Math.max(1,Math.abs(t),Math.abs(e))};var n=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var n=s(i(2)),r=s(i(3));function s(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=n,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new n.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=c*a-o*l,m=-c*s+o*h,f=l*s-a*h,u=i*d+n*m+r*f;if(!u)return null;return u=1/u,t[0]=d*u,t[1]=(-c*n+r*l)*u,t[2]=(o*n-r*a)*u,t[3]=m*u,t[4]=(c*i-r*h)*u,t[5]=(-o*i+r*s)*u,t[6]=f*u,t[7]=(-l*i+n*h)*u,t[8]=(a*i-n*s)*u,t};var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new n.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],x=e[15],g=i*o-n*a,w=i*h-r*a,M=i*l-s*a,b=n*h-r*o,R=n*l-s*o,T=r*l-s*h,y=c*p-d*u,A=c*v-m*u,E=c*x-f*u,I=d*v-m*p,L=d*x-f*p,N=m*x-f*v,O=g*N-w*L+M*I+b*E-R*A+T*y;if(!O)return null;return O=1/O,t[0]=(o*N-h*L+l*I)*O,t[1]=(r*L-n*N-s*I)*O,t[2]=(p*T-v*R+x*b)*O,t[3]=(m*R-d*T-f*b)*O,t[4]=(h*E-a*N-l*A)*O,t[5]=(i*N-r*E+s*A)*O,t[6]=(v*M-u*T-x*w)*O,t[7]=(c*T-m*M+f*w)*O,t[8]=(a*L-o*E+l*y)*O,t[9]=(n*E-i*L-s*y)*O,t[10]=(u*R-p*M+x*g)*O,t[11]=(d*M-c*R-f*g)*O,t[12]=(o*A-a*I-h*y)*O,t[13]=(i*I-n*A+r*y)*O,t[14]=(p*w-u*b-v*g)*O,t[15]=(c*b-d*w+m*g)*O,t},e.multiply=r,e.translate=function(t,e,i){var n=i[0],r=i[1],s=i[2],a=void 0,o=void 0,h=void 0,l=void 0,c=void 0,d=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,x=void 0;e===t?(t[12]=e[0]*n+e[4]*r+e[8]*s+e[12],t[13]=e[1]*n+e[5]*r+e[9]*s+e[13],t[14]=e[2]*n+e[6]*r+e[10]*s+e[14],t[15]=e[3]*n+e[7]*r+e[11]*s+e[15]):(a=e[0],o=e[1],h=e[2],l=e[3],c=e[4],d=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],x=e[11],t[0]=a,t[1]=o,t[2]=h,t[3]=l,t[4]=c,t[5]=d,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=x,t[12]=a*n+c*r+u*s+e[12],t[13]=o*n+d*r+p*s+e[13],t[14]=h*n+m*r+v*s+e[14],t[15]=l*n+f*r+x*s+e[15]);return t},e.rotate=function(t,e,i,r){var s,a,o,h,l,c,d,m,f,u,p,v,x,g,w,M,b,R,T,y,A,E,I,L,N=r[0],O=r[1],_=r[2],P=Math.sqrt(N*N+O*O+_*_);if(Math.abs(P)<n.EPSILON)return null;N*=P=1/P,O*=P,_*=P,s=Math.sin(i),a=Math.cos(i),o=1-a,h=e[0],l=e[1],c=e[2],d=e[3],m=e[4],f=e[5],u=e[6],p=e[7],v=e[8],x=e[9],g=e[10],w=e[11],M=N*N*o+a,b=O*N*o+_*s,R=_*N*o-O*s,T=N*O*o-_*s,y=O*O*o+a,A=_*O*o+N*s,E=N*_*o+O*s,I=O*_*o-N*s,L=_*_*o+a,t[0]=h*M+m*b+v*R,t[1]=l*M+f*b+x*R,t[2]=c*M+u*b+g*R,t[3]=d*M+p*b+w*R,t[4]=h*T+m*y+v*A,t[5]=l*T+f*y+x*A,t[6]=c*T+u*y+g*A,t[7]=d*T+p*y+w*A,t[8]=h*E+m*I+v*L,t[9]=l*E+f*I+x*L,t[10]=c*E+u*I+g*L,t[11]=d*E+p*I+w*L,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r,s,a,o=i[0],h=i[1],l=i[2],c=Math.sqrt(o*o+h*h+l*l);if(Math.abs(c)<n.EPSILON)return null;return o*=c=1/c,h*=c,l*=c,r=Math.sin(e),s=Math.cos(e),a=1-s,t[0]=o*o*a+s,t[1]=h*o*a+l*r,t[2]=l*o*a-h*r,t[3]=0,t[4]=o*h*a-l*r,t[5]=h*h*a+s,t[6]=l*h*a+o*r,t[7]=0,t[8]=o*l*a+h*r,t[9]=h*l*a-o*r,t[10]=l*l*a+s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,n,r,s,a){var o=1/(i-e),h=1/(r-n),l=1/(s-a);return t[0]=2*s*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*s*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+n)*h,t[10]=(a+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=a*s*2*l,t[15]=0,t},e.ortho=function(t,e,i,n,r,s,a){var o=1/(e-i),h=1/(n-r),l=1/(s-a);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+n)*h,t[14]=(a+s)*l,t[15]=1,t};var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var n=e[0],r=e[1],s=e[2],a=e[3],o=e[4],h=e[5],l=e[6],c=e[7],d=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],x=e[14],g=e[15],w=i[0],M=i[1],b=i[2],R=i[3];return t[0]=w*n+M*o+b*d+R*p,t[1]=w*r+M*h+b*m+R*v,t[2]=w*s+M*l+b*f+R*x,t[3]=w*a+M*c+b*u+R*g,w=i[4],M=i[5],b=i[6],R=i[7],t[4]=w*n+M*o+b*d+R*p,t[5]=w*r+M*h+b*m+R*v,t[6]=w*s+M*l+b*f+R*x,t[7]=w*a+M*c+b*u+R*g,w=i[8],M=i[9],b=i[10],R=i[11],t[8]=w*n+M*o+b*d+R*p,t[9]=w*r+M*h+b*m+R*v,t[10]=w*s+M*l+b*f+R*x,t[11]=w*a+M*c+b*u+R*g,w=i[12],M=i[13],b=i[14],R=i[15],t[12]=w*n+M*o+b*d+R*p,t[13]=w*r+M*h+b*m+R*v,t[14]=w*s+M*l+b*f+R*x,t[15]=w*a+M*c+b*u+R*g,t}}])})),function(){document.asy={canvasWidth:0,canvasHeight:0,absolute:!1,minBound:[0,0,0],maxBound:[0,0,0],orthographic:!1,angleOfView:0,initialZoom:0,viewportShift:[0,0],viewportMargin:[0,0],background:[],zoomFactor:0,zoomPinchFactor:0,zoomPinchCap:0,zoomStep:0,shiftHoldDistance:0,shiftWaitTime:0,vibrateTime:0,ibl:!1,webgl2:!1,imageURL:"",image:"",Transform:[],Centers:[]};let t,e,i,n,r,s,a,o=document.asy,h=[],l=[],c=[],d=0,m=2;const f=Math.acos(-1),u=f/180,p=Math.ceil(1-Math.log2(Number.EPSILON));let v,x,g,w,M,b,R,T=mat4.create(),y=mat4.create(),A=mat4.create(),E=mat4.create(),I=mat3.create(),L=mat3.create(),N=mat4.create(),O=mat4.create(),_={x:0,y:0,z:0},P={x:0,y:0},S={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},U=!0,V=0,B=!1,D=null,C=null,F=[],z=[],H=[],X=[],G=null,W=null,j=null;function k(){o.embedded||st(),rt(o.ibl)}class Y{constructor(t,e,i,n,r,s){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=n,this.metallic=r,this.fresnel0=s}setUniform(e,i){let n=n=>t.getUniformLocation(e,"Materials["+i+"]."+n);t.uniform4fv(n("diffuse"),new Float32Array(this.diffuse)),t.uniform4fv(n("emissive"),new Float32Array(this.emissive)),t.uniform4fv(n("specular"),new Float32Array(this.specular)),t.uniform4f(n("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let $,q,K,Z,Q,J,tt,et,it;class nt{constructor(t,e){this.direction=t,this.color=e}setUniform(e,i){let n=n=>t.getUniformLocation(e,"Lights["+i+"]."+n);t.uniform3fv(n("direction"),new Float32Array(this.direction)),t.uniform3fv(n("color"),new Float32Array(this.color))}}function rt(e=!1){let i=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS);r=Math.floor((i-14)/4),m=Math.min(Math.max(m,c.length),r),pixelOpt=["WIDTH"],materialOpt=["NORMAL"],colorOpt=["NORMAL","COLOR"],transparentOpt=["NORMAL","COLOR","TRANSPARENT"],e&&(materialOpt.push("USE_IBL"),transparentOpt.push("USE_IBL")),xe=Lt(pixelOpt),ge=Lt(materialOpt),we=Lt(colorOpt),Me=Lt(transparentOpt)}function st(){t.deleteProgram(Me),t.deleteProgram(we),t.deleteProgram(ge),t.deleteProgram(xe)}function at(){let i=o.webgl2?window.top.document.asygl2[e]:window.top.document.asygl[e];i.gl=t,i.nlights=l.length,i.Nmaterials=m,i.maxMaterials=r,i.pixelShader=xe,i.materialShader=ge,i.colorShader=we,i.transparentShader=Me}function ot(t,e){let i;return o.webgl2&&(i=t.getContext("webgl2",{alpha:e}),o.embedded&&!i)?(o.webgl2=!1,o.ibl=!1,ht(!1),null):(i||(o.webgl2=!1,o.ibl=!1,i=t.getContext("webgl",{alpha:e})),i||alert("Could not initialize WebGL"),i)}function ht(s=!0){if(o.ibl&&(o.webgl2=!0),e=o.background[3]<1,o.embedded){let a=window.top.document;if(s&&(n=o.canvas.getContext("2d")),i=o.webgl2?a.offscreen2:a.offscreen,i||(i=a.createElement("canvas"),o.webgl2?a.offscreen2=i:a.offscreen=i),o.webgl2?a.asygl2||(a.asygl2=Array(2)):a.asygl||(a.asygl=Array(2)),asygl=o.webgl2?a.asygl2:a.asygl,asygl[e]&&asygl[e].gl)!function(){let i=o.webgl2?window.top.document.asygl2[e]:window.top.document.asygl[e];t=i.gl,d=i.nlights,m=i.Nmaterials,r=i.maxMaterials,xe=i.pixelShader,ge=i.materialShader,we=i.colorShader,Me=i.transparentShader}(),(l.length!=d||Math.min(c.length,r)>m)&&(rt(),at());else{if(rc=ot(i,e),!rc)return;t=rc,rt(),o.webgl2?a.asygl2[e]={}:a.asygl[e]={},at()}}else t=ot(o.canvas,e),rt();$=t.getExtension("OES_element_index_uint"),q=t.TRIANGLES,K=new mt(t.POINTS),Z=new mt(t.LINES),Q=new mt,J=new mt,tt=new mt,et=new mt}function lt(t,e,i,n=[]){let r=o.webgl2?"300 es":"100",s=Array(...n),a=[["nlights",0==V?l.length:0],["Nmaterials",m]],h=[["int","Nlights",Math.max(l.length,1)]];o.webgl2&&s.push("WEBGL2"),o.ibl&&a.push(["ROUGHNESS_STEP_COUNT",8..toFixed(2)]),o.orthographic&&s.push("ORTHOGRAPHIC"),macros_str=a.map(t=>`#define ${t[0]} ${t[1]}`).join("\n"),define_str=s.map(t=>"#define "+t).join("\n"),const_str=h.map(t=>`const ${t[0]} ${t[1]}=${t[2]};`).join("\n"),ext_str=[].map(t=>`#extension ${t}: enable`).join("\n"),shaderSrc=`#version ${r}\n${ext_str}\n${define_str}\n${const_str}\n${macros_str}\n\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n \n${e}\n `;let c=t.createShader(i);return t.shaderSource(c,shaderSrc),t.compileShader(c),t.getShaderParameter(c,t.COMPILE_STATUS)?c:(alert(t.getShaderInfoLog(c)),null)}function ct(e,i,n,r=t.ARRAY_BUFFER){return e.length>0&&(0==i&&(i=t.createBuffer(),n=!0),t.bindBuffer(r,i),n&&t.bufferData(r,e,t.STATIC_DRAW)),i}function dt(e,i,n=e.indices){if(0==e.indices.length)return;let r=i!=xe;!function(e,i){let n=i==xe;t.useProgram(i),t.enableVertexAttribArray(Tt),n&&t.enableVertexAttribArray(It);let r=!n&&l.length>0;r&&t.enableVertexAttribArray(yt);t.enableVertexAttribArray(At),i.projViewMatUniform=t.getUniformLocation(i,"projViewMat"),i.viewMatUniform=t.getUniformLocation(i,"viewMat"),i.normMatUniform=t.getUniformLocation(i,"normMat"),(i==we||i==Me)&&t.enableVertexAttribArray(Et);if(r)for(let t=0;t<l.length;++t)l[t].setUniform(i,t);for(let t=0;t<e.materials.length;++t)e.materials[t].setUniform(i,t);t.uniformMatrix4fv(i.projViewMatUniform,!1,E),t.uniformMatrix4fv(i.viewMatUniform,!1,A),t.uniformMatrix3fv(i.normMatUniform,!1,I)}(e,i),null!=W&&(t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,j),t.uniform1i(t.getUniformLocation(i,"reflBRDFSampler"),0),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,W),t.uniform1i(t.getUniformLocation(i,"diffuseSampler"),1),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,G),t.uniform1i(t.getUniformLocation(i,"reflImgSampler"),2));let s=U||e.partial||!e.rendered;e.verticesBuffer=ct(new Float32Array(e.vertices),e.verticesBuffer,s),t.vertexAttribPointer(Tt,3,t.FLOAT,!1,r?24:16,0),r?l.length>0&&t.vertexAttribPointer(yt,3,t.FLOAT,!1,24,12):t.vertexAttribPointer(It,1,t.FLOAT,!1,16,12),e.materialsBuffer=ct(new Int16Array(e.materialIndices),e.materialsBuffer,s),t.vertexAttribPointer(At,1,t.SHORT,!1,2,0),i!=we&&i!=Me||(e.colorsBuffer=ct(new Float32Array(e.colors),e.colorsBuffer,s),t.vertexAttribPointer(Et,4,t.FLOAT,!0,0,0)),e.indicesBuffer=ct($?new Uint32Array(n):new Uint16Array(n),e.indicesBuffer,s,t.ELEMENT_ARRAY_BUFFER),e.rendered=!0,t.drawElements(r?V?t.LINES:e.type:t.POINTS,n.length,$?t.UNSIGNED_INT:t.UNSIGNED_SHORT,0)}class mt{constructor(t){this.type=t||q,this.verticesBuffer=0,this.materialsBuffer=0,this.colorsBuffer=0,this.indicesBuffer=0,this.rendered=!1,this.partial=!1,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(it),this.nvertices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(it),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(it),this.nvertices++}iVertex(t,e,i,n=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=it;let s=4*t;this.colors[s]=n[0],this.colors[s+1]=n[1],this.colors[s+2]=n[2],this.colors[s+3]=n[3],this.indices.push(t)}append(t){ft(this.vertices,t.vertices),ft(this.materialIndices,t.materialIndices),ft(this.colors,t.colors),function(t,e,i){let n=t.length,r=e.length;t.length+=e.length;for(let s=0;s<r;++s)t[n+s]=e[s]+i}(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function ft(t,e){let i=t.length,n=e.length;t.length+=n;for(let r=0;r<n;++r)t[i+r]=e[r]}class ut{constructor(){this.data=new mt,this.Onscreen=!1,this.m=[]}offscreen(t){let e=E,i=t[0],n=i[0],r=i[1],s=i[2],a=1/(e[3]*n+e[7]*r+e[11]*s+e[15]);this.x=this.X=(e[0]*n+e[4]*r+e[8]*s+e[12])*a,this.y=this.Y=(e[1]*n+e[5]*r+e[9]*s+e[13])*a;for(let i=1,n=t.length;i<n;++i){let n=t[i],r=n[0],s=n[1],a=n[2],o=1/(e[3]*r+e[7]*s+e[11]*a+e[15]),h=(e[0]*r+e[4]*s+e[8]*a+e[12])*o,l=(e[1]*r+e[5]*s+e[9]*a+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],n=this.c[2],r=t[0]-e,s=t[1]-i,a=t[2]-n;return[r*I[0]+s*I[3]+a*I[6]+e,r*I[1]+s*I[4]+a*I[7]+i,r*I[2]+s*I[5]+a*I[8]+n]}Tcorners(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null==t.materialTable[this.MaterialIndex]&&(t.materials.length>=m&&(t.partial=!0,e()),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(c[this.MaterialIndex])),it=t.materialTable[this.MaterialIndex]}render(){let t;var e,i;if(this.setMaterialIndex(),0==this.CenterIndex?(e=this.Min,i=this.Max,t=[e,[e[0],e[1],i[2]],[e[0],i[1],e[2]],[e[0],i[1],i[2]],[i[0],e[1],e[2]],[i[0],e[1],i[2]],[i[0],i[1],e[2]],i]):(this.c=o.Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return this.data.clear(),void this.notRendered();let n,r=this.controlpoints;if(0==this.CenterIndex){if(!U&&this.Onscreen)return void this.append();n=r}else{let t=r.length;n=Array(t);for(let e=0;e<t;++e)n[e]=this.T(r[e])}let s=o.orthographic?1:this.Min[2]/o.maxBound[2],a=.75*Math.hypot(s*(S.xmax-S.xmin),s*(S.ymax-S.ymin))/b;this.res2=a*a,this.Epsilon=.1*a,this.data.clear(),this.notRendered(),this.Onscreen=!0,this.process(n)}}function pt(t,e){let i=t[0],n=t.length;for(let r=1;r<n;++r)i=e(i,t[r]);return i}class vt extends ut{constructor(t,e,i,n,r,s){super(),this.controlpoints=t,this.CenterIndex=e,this.MaterialIndex=i,this.color=n;let a=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==a||4==a?t+n[3][3]<1020:t<765}else this.transparent=c[i].diffuse[3]<1;this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data);let o=this.L2norm2(this.controlpoints),h=Math.sqrt(1e3*Number.EPSILON*o);this.epsilon=o*Number.EPSILON,this.Min=r||this.Bounds(this.controlpoints,Math.min,h),this.Max=s||this.Bounds(this.controlpoints,Math.max,h)}setMaterialIndex(){this.transparent?this.setMaterial(tt,Ie):this.color?this.setMaterial(J,Ae):this.setMaterial(Q,ye)}cornerbound(t,e){let i=e(t[0],t[3]);return i=e(i,t[12]),e(i,t[15])}controlbound(t,e){let i=e(t[1],t[2]);return i=e(i,t[4]),i=e(i,t[5]),i=e(i,t[6]),i=e(i,t[7]),i=e(i,t[8]),i=e(i,t[9]),i=e(i,t[10]),i=e(i,t[11]),i=e(i,t[13]),e(i,t[14])}bound(t,e,i,n,r){if(i=e(i,this.cornerbound(t,e)),e(-1,1)*(i-this.controlbound(t,e))>=-n||0==r)return i;--r,n*=2;let s=new Nt(t[0],t[1],t[2],t[3]),a=new Nt(t[4],t[5],t[6],t[7]),o=new Nt(t[8],t[9],t[10],t[11]),h=new Nt(t[12],t[13],t[14],t[15]),l=new Nt(t[0],t[4],t[8],t[12]),c=new Nt(s.m0,a.m0,o.m0,h.m0),d=new Nt(s.m3,a.m3,o.m3,h.m3),m=new Nt(s.m5,a.m5,o.m5,h.m5),f=new Nt(s.m4,a.m4,o.m4,h.m4),u=new Nt(s.m2,a.m2,o.m2,h.m2),p=new Nt(t[3],t[7],t[11],t[15]),v=[t[0],s.m0,s.m3,s.m5,l.m0,c.m0,d.m0,m.m0,l.m3,c.m3,d.m3,m.m3,l.m5,c.m5,d.m5,m.m5];i=this.bound(v,e,i,n,r);let x=[l.m5,c.m5,d.m5,m.m5,l.m4,c.m4,d.m4,m.m4,l.m2,c.m2,d.m2,m.m2,t[12],h.m0,h.m3,h.m5];i=this.bound(x,e,i,n,r);let g=[m.m5,f.m5,u.m5,p.m5,m.m4,f.m4,u.m4,p.m4,m.m2,f.m2,u.m2,p.m2,h.m5,h.m4,h.m2,t[15]];i=this.bound(g,e,i,n,r);let w=[s.m5,s.m4,s.m2,t[3],m.m0,f.m0,u.m0,p.m0,m.m3,f.m3,u.m3,p.m3,m.m5,f.m5,u.m5,p.m5];return this.bound(w,e,i,n,r)}cornerboundtri(t,e){let i=e(t[0],t[6]);return e(i,t[9])}controlboundtri(t,e){let i=e(t[1],t[2]);return i=e(i,t[3]),i=e(i,t[4]),i=e(i,t[5]),i=e(i,t[7]),e(i,t[8])}boundtri(t,e,i,n,r){if(i=e(i,this.cornerboundtri(t,e)),e(-1,1)*(i-this.controlboundtri(t,e))>=-n||0==r)return i;--r,n*=2;let s=new _t(t),a=[s.l003,s.l102,s.l012,s.l201,s.l111,s.l021,s.l300,s.l210,s.l120,s.l030];i=this.boundtri(a,e,i,n,r);let o=[s.l300,s.r102,s.r012,s.r201,s.r111,s.r021,s.r300,s.r210,s.r120,s.r030];i=this.boundtri(o,e,i,n,r);let h=[s.l030,s.u102,s.u012,s.u201,s.u111,s.u021,s.r030,s.u210,s.u120,s.u030];i=this.boundtri(h,e,i,n,r);let l=[s.r030,s.u201,s.r021,s.u102,s.c111,s.r012,s.l030,s.l120,s.l210,s.l300];return this.boundtri(l,e,i,n,r)}Bounds(t,e,i){let n=Array(3),r=t.length,s=Array(r);for(let a=0;a<3;++a){for(let e=0;e<r;++e)s[e]=t[e][a];n[a]=16==r?this.bound(s,e,s[0],i,p):10==r?this.boundtri(s,e,s[0],i,p):pt(s,e)}return[n[0],n[1],n[2]]}L2norm2(t){let e=t[0],i=0,n=t.length;for(let r=1;r<n;++r)i=Math.max(i,St([t[r][0]-e[0],t[r][1]-e[1],t[r][2]-e[2]]));return i}processTriangle(t){let e=t[0],i=t[1],n=t[2],r=Pt(Vt([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[n[0]-e[0],n[1]-e[1],n[2]-e[2]]));if(!this.offscreen([e,i,n])){let t,s,a;this.color?(t=this.data.Vertex(e,r,this.color[0]),s=this.data.Vertex(i,r,this.color[1]),a=this.data.Vertex(n,r,this.color[2])):(t=this.vertex(e,r),s=this.vertex(i,r),a=this.vertex(n,r)),0==V?(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(a)):(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],n=t[2],r=t[3],s=Vt([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[n[0]-i[0],n[1]-i[1],n[2]-i[2]]),a=Vt([n[0]-r[0],n[1]-r[1],n[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=Pt([s[0]+a[0],s[1]+a[1],s[2]+a[2]]);if(!this.offscreen([e,i,n,r])){let t,s,a,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),s=this.data.Vertex(i,o,this.color[1]),a=this.data.Vertex(n,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),s=this.vertex(i,o),a=this.vertex(n,o),h=this.vertex(r,o)),0==V?(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(t),this.data.indices.push(a),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,n,r){new wt([t[e],t[i],t[n],t[r]],0,it,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=V&&(it=this.color?-1-it:1+it),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==V)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],n=t[12],r=t[15],s=this.normal(i,t[2],t[1],e,t[4],t[8],n);St(s)<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r),St(s)<this.epsilon&&(s=this.normal(r,t[11],t[7],i,t[4],t[8],n)));let a=this.normal(e,t[4],t[8],n,t[13],t[14],r);St(a)<this.epsilon&&(a=this.normal(e,t[4],t[8],n,t[11],t[7],i),St(a)<this.epsilon&&(a=this.normal(i,t[2],t[1],e,t[13],t[14],r)));let o=this.normal(n,t[13],t[14],r,t[11],t[7],i);St(o)<this.epsilon&&(o=this.normal(n,t[13],t[14],r,t[2],t[1],e),St(o)<this.epsilon&&(o=this.normal(e,t[4],t[8],n,t[11],t[7],i)));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(St(h)<this.epsilon&&(h=this.normal(r,t[11],t[7],i,t[4],t[8],n),St(h)<this.epsilon&&(h=this.normal(n,t[13],t[14],r,t[2],t[1],e))),this.color){let l=this.color[0],c=this.color[1],d=this.color[2],m=this.color[3],f=this.data.Vertex(e,s,l),u=this.data.Vertex(n,a,c),p=this.data.Vertex(r,o,d),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,n,r,i,!1,!1,!1,!1,l,c,d,m)}else{let l=this.vertex(e,s),c=this.vertex(n,a),d=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,c,d,m,e,n,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?tt.append(this.data):this.color?J.append(this.data):Q.append(this.data)}notRendered(){this.transparent?tt.rendered=!1:this.color?J.rendered=!1:Q.rendered=!1}Render(t,e,i,n,r,s,a,o,h,l,c,d,m,f,u,p,v){let x=this.Distance(t);if(x[0]<this.res2&&x[1]<this.res2)this.offscreen([s,a,o])||(0==V?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(n)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(n))),this.offscreen([s,o,h])||(0==V?(this.data.indices.push(e),this.data.indices.push(n),this.data.indices.push(r)):(this.data.indices.push(n),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let g=t[0],w=t[3],M=t[12],b=t[15];if(x[0]<this.res2){let x=new Ot(g,t[1],t[2],w),R=new Ot(t[4],t[5],t[6],t[7]),T=new Ot(t[8],t[9],t[10],t[11]),y=new Ot(M,t[13],t[14],b),A=[g,x.m0,x.m3,x.m5,t[4],R.m0,R.m3,R.m5,t[8],T.m0,T.m3,T.m5,M,y.m0,y.m3,y.m5],E=[x.m5,x.m4,x.m2,w,R.m5,R.m4,R.m2,t[7],T.m5,T.m4,T.m2,t[11],y.m5,y.m4,y.m2,b],I=this.normal(A[12],A[13],A[14],A[15],A[11],A[7],A[3]);St(I)<=this.epsilon&&(I=this.normal(A[12],A[13],A[14],A[15],A[2],A[1],A[0]),St(I)<=this.epsilon&&(I=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3])));let L=this.normal(E[3],E[2],E[1],E[0],E[4],E[8],E[12]);St(L)<=this.epsilon&&(L=this.normal(E[3],E[2],E[1],E[0],E[13],E[14],E[15]),St(L)<=this.epsilon&&(L=this.normal(E[15],E[11],E[7],E[3],E[4],E[8],E[12])));let N=this.Epsilon,O=[.5*(a[0]+o[0]),.5*(a[1]+o[1]),.5*(a[2]+o[2])];if(!c)if(c=zt(M,t[13],t[14],b)<this.res2){let t=Pt(this.differential(E[12],E[8],E[4],E[0]));O=[O[0]-N*t[0],O[1]-N*t[1],O[2]-N*t[2]]}else O=A[15];let _=[.5*(h[0]+s[0]),.5*(h[1]+s[1]),.5*(h[2]+s[2])];if(!m)if(m=zt(g,t[1],t[2],w)<this.res2){let t=Pt(this.differential(A[3],A[7],A[11],A[15]));_=[_[0]-N*t[0],_[1]-N*t[1],_[2]-N*t[2]]}else _=E[0];if(f){let t=Array(4),x=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),x[e]=.5*(v[e]+f[e]);let g=this.data.Vertex(O,I,t),w=this.data.Vertex(_,L,x);this.Render(A,e,i,g,w,s,a,O,_,l,c,!1,m,f,u,t,x),this.Render(E,w,g,n,r,_,O,o,h,!1,c,d,m,x,t,p,v)}else{let t=this.vertex(O,I),f=this.vertex(_,L);this.Render(A,e,i,t,f,s,a,O,_,l,c,!1,m),this.Render(E,f,t,n,r,_,O,o,h,!1,c,d,m)}return}if(x[1]<this.res2){let x=new Ot(g,t[4],t[8],M),R=new Ot(t[1],t[5],t[9],t[13]),T=new Ot(t[2],t[6],t[10],t[14]),y=new Ot(w,t[7],t[11],b),A=[g,t[1],t[2],w,x.m0,R.m0,T.m0,y.m0,x.m3,R.m3,T.m3,y.m3,x.m5,R.m5,T.m5,y.m5],E=[x.m5,R.m5,T.m5,y.m5,x.m4,R.m4,T.m4,y.m4,x.m2,R.m2,T.m2,y.m2,M,t[13],t[14],b],I=this.normal(A[0],A[4],A[8],A[12],A[13],A[14],A[15]);St(I)<=this.epsilon&&(I=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3]),St(I)<=this.epsilon&&(I=this.normal(A[3],A[2],A[1],A[0],A[13],A[14],A[15])));let L=this.normal(E[15],E[11],E[7],E[3],E[2],E[1],E[0]);St(L)<=this.epsilon&&(L=this.normal(E[15],E[11],E[7],E[3],E[4],E[8],E[12]),St(L)<=this.epsilon&&(L=this.normal(E[12],E[13],E[14],E[15],E[2],E[1],E[0])));let N=this.Epsilon,O=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!l)if(l=zt(g,t[4],t[8],M)<this.res2){let t=Pt(this.differential(E[0],E[1],E[2],E[3]));O=[O[0]-N*t[0],O[1]-N*t[1],O[2]-N*t[2]]}else O=A[12];let _=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=zt(b,t[11],t[7],w)<this.res2){let t=Pt(this.differential(A[15],A[14],A[13],A[12]));_=[_[0]-N*t[0],_[1]-N*t[1],_[2]-N*t[2]]}else _=E[3];if(f){let t=Array(4),x=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),x[e]=.5*(p[e]+v[e]);let g=this.data.Vertex(O,I,t),w=this.data.Vertex(_,L,x);this.Render(A,e,g,w,r,s,O,_,h,l,!1,d,m,f,t,x,v),this.Render(E,g,i,n,w,O,a,o,_,l,c,d,!1,t,u,p,x)}else{let t=this.vertex(O,I),f=this.vertex(_,L);this.Render(A,e,t,f,r,s,O,_,h,l,!1,d,m),this.Render(E,t,i,n,f,O,a,o,_,l,c,d,!1)}return}let R=new Ot(g,t[1],t[2],w),T=new Ot(t[4],t[5],t[6],t[7]),y=new Ot(t[8],t[9],t[10],t[11]),A=new Ot(M,t[13],t[14],b),E=new Ot(g,t[4],t[8],M),I=new Ot(R.m0,T.m0,y.m0,A.m0),L=new Ot(R.m3,T.m3,y.m3,A.m3),N=new Ot(R.m5,T.m5,y.m5,A.m5),O=new Ot(R.m4,T.m4,y.m4,A.m4),_=new Ot(R.m2,T.m2,y.m2,A.m2),P=new Ot(w,t[7],t[11],b),S=[g,R.m0,R.m3,R.m5,E.m0,I.m0,L.m0,N.m0,E.m3,I.m3,L.m3,N.m3,E.m5,I.m5,L.m5,N.m5],U=[E.m5,I.m5,L.m5,N.m5,E.m4,I.m4,L.m4,N.m4,E.m2,I.m2,L.m2,N.m2,M,A.m0,A.m3,A.m5],V=[N.m5,O.m5,_.m5,P.m5,N.m4,O.m4,_.m4,P.m4,N.m2,O.m2,_.m2,P.m2,A.m5,A.m4,A.m2,b],B=[R.m5,R.m4,R.m2,w,N.m0,O.m0,_.m0,P.m0,N.m3,O.m3,_.m3,P.m3,N.m5,O.m5,_.m5,P.m5],D=S[15],C=this.normal(S[0],S[4],S[8],S[12],S[13],S[14],S[15]);St(C)<this.epsilon&&(C=this.normal(S[0],S[4],S[8],S[12],S[11],S[7],S[3]),St(C)<this.epsilon&&(C=this.normal(S[3],S[2],S[1],S[0],S[13],S[14],S[15])));let F=this.normal(U[12],U[13],U[14],U[15],U[11],U[7],U[3]);St(F)<this.epsilon&&(F=this.normal(U[12],U[13],U[14],U[15],U[2],U[1],U[0]),St(F)<this.epsilon&&(F=this.normal(U[0],U[4],U[8],U[12],U[11],U[7],U[3])));let z=this.normal(V[15],V[11],V[7],V[3],V[2],V[1],V[0]);St(z)<this.epsilon&&(z=this.normal(V[15],V[11],V[7],V[3],V[4],V[8],V[12]),St(z)<this.epsilon&&(z=this.normal(V[12],V[13],V[14],V[15],V[2],V[1],V[0])));let H=this.normal(B[3],B[2],B[1],B[0],B[4],B[8],B[12]);St(H)<this.epsilon&&(H=this.normal(B[3],B[2],B[1],B[0],B[13],B[14],B[15]),St(H)<this.epsilon&&(H=this.normal(B[15],B[11],B[7],B[3],B[4],B[8],B[12])));let X=this.normal(V[3],V[2],V[1],D,V[4],V[8],V[12]),G=this.Epsilon,W=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!l)if(l=zt(g,t[4],t[8],M)<this.res2){let t=Pt(this.differential(U[0],U[1],U[2],U[3]));W=[W[0]-G*t[0],W[1]-G*t[1],W[2]-G*t[2]]}else W=S[12];let j=[.5*(a[0]+o[0]),.5*(a[1]+o[1]),.5*(a[2]+o[2])];if(!c)if(c=zt(M,t[13],t[14],b)<this.res2){let t=Pt(this.differential(V[12],V[8],V[4],V[0]));j=[j[0]-G*t[0],j[1]-G*t[1],j[2]-G*t[2]]}else j=U[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=zt(b,t[11],t[7],w)<this.res2){let t=Pt(this.differential(B[15],B[14],B[13],B[12]));k=[k[0]-G*t[0],k[1]-G*t[1],k[2]-G*t[2]]}else k=V[3];let Y=[.5*(h[0]+s[0]),.5*(h[1]+s[1]),.5*(h[2]+s[2])];if(!m)if(m=zt(g,t[1],t[2],w)<this.res2){let t=Pt(this.differential(S[3],S[7],S[11],S[15]));Y=[Y[0]-G*t[0],Y[1]-G*t[1],Y[2]-G*t[2]]}else Y=B[0];if(f){let t=Array(4),x=Array(4),g=Array(4),w=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),x[e]=.5*(u[e]+p[e]),g[e]=.5*(p[e]+v[e]),w[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+g[e]);let b=this.data.Vertex(W,C,t),R=this.data.Vertex(j,F,x),T=this.data.Vertex(k,z,g),y=this.data.Vertex(Y,H,w),A=this.data.Vertex(D,X,M);this.Render(S,e,b,A,y,s,W,D,Y,l,!1,!1,m,f,t,M,w),this.Render(U,b,i,R,A,W,a,j,D,l,c,!1,!1,t,u,x,M),this.Render(V,A,R,n,T,D,j,o,k,!1,c,d,!1,M,x,p,g),this.Render(B,y,A,T,r,Y,D,k,h,!1,!1,d,m,w,M,g,v)}else{let t=this.vertex(W,C),f=this.vertex(j,F),u=this.vertex(k,z),p=this.vertex(Y,H),v=this.vertex(D,X);this.Render(S,e,t,v,p,s,W,D,Y,l,!1,!1,m),this.Render(U,t,i,f,v,W,a,j,D,l,c,!1,!1),this.Render(V,v,f,n,u,D,j,o,k,!1,c,d,!1),this.Render(B,p,v,u,r,Y,D,k,h,!1,!1,d,m)}}}process3(t){if(1==V)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],n=t[9],r=this.normal(n,t[5],t[2],e,t[1],t[3],i),s=this.normal(e,t[1],t[3],i,t[7],t[8],n),a=this.normal(i,t[7],t[8],n,t[5],t[2],e);if(this.color){let o=this.color[0],h=this.color[1],l=this.color[2],c=this.data.Vertex(e,r,o),d=this.data.Vertex(i,s,h),m=this.data.Vertex(n,a,l);this.Render3(t,c,d,m,e,i,n,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,s),l=this.vertex(n,a);this.Render3(t,o,h,l,e,i,n,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,n,r,s,a,o,h,l,c,d,m){if(this.Distance3(t)<this.res2)this.offscreen([r,s,a])||(0==V?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(n)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],x=t[4],g=t[5],w=t[6],M=t[7],b=t[8],R=t[9],T=[.5*(R[0]+g[0]),.5*(R[1]+g[1]),.5*(R[2]+g[2])],y=[.5*(R[0]+b[0]),.5*(R[1]+b[1]),.5*(R[2]+b[2])],A=[.5*(g[0]+p[0]),.5*(g[1]+p[1]),.5*(g[2]+p[2])],E=[.5*(b[0]+x[0]),.5*(b[1]+x[1]),.5*(b[2]+x[2])],I=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],L=[.5*(p[0]+x[0]),.5*(p[1]+x[1]),.5*(p[2]+x[2])],N=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],O=[.5*(x[0]+v[0]),.5*(x[1]+v[1]),.5*(x[2]+v[2])],_=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],P=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],S=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],U=[.5*(v[0]+w[0]),.5*(v[1]+w[1]),.5*(v[2]+w[2])],V=[.5*(T[0]+A[0]),.5*(T[1]+A[1]),.5*(T[2]+A[2])],B=[.5*(y[0]+I[0]),.5*(y[1]+I[1]),.5*(y[2]+I[2])],D=[.5*(A[0]+N[0]),.5*(A[1]+N[1]),.5*(A[2]+N[2])],C=[.5*E[0]+.25*(x[0]+u[0]),.5*E[1]+.25*(x[1]+u[1]),.5*E[2]+.25*(x[2]+u[2])],F=[.5*(I[0]+_[0]),.5*(I[1]+_[1]),.5*(I[2]+_[2])],z=[.5*L[0]+.25*(x[0]+M[0]),.5*L[1]+.25*(x[1]+M[1]),.5*L[2]+.25*(x[2]+M[2])],H=[.25*(g[0]+x[0])+.5*O[0],.25*(g[1]+x[1])+.5*O[1],.25*(g[2]+x[2])+.5*O[2]],X=[.5*(P[0]+S[0]),.5*(P[1]+S[1]),.5*(P[2]+S[2])],G=[.5*(S[0]+U[0]),.5*(S[1]+U[1]),.5*(S[2]+U[2])],W=[.5*(z[0]+X[0]),.5*(z[1]+X[1]),.5*(z[2]+X[2])],j=[.5*(z[0]+G[0]),.5*(z[1]+G[1]),.5*(z[2]+G[2])],k=[.5*(X[0]+G[0]),.5*(X[1]+G[1]),.5*(X[2]+G[2])],Y=[.5*(H[0]+F[0]),.5*(H[1]+F[1]),.5*(H[2]+F[2])],$=[.5*(B[0]+H[0]),.5*(B[1]+H[1]),.5*(B[2]+H[2])],q=[.5*(B[0]+F[0]),.5*(B[1]+F[1]),.5*(B[2]+F[2])],K=[.5*(V[0]+C[0]),.5*(V[1]+C[1]),.5*(V[2]+C[2])],Z=[.5*(D[0]+C[0]),.5*(D[1]+C[1]),.5*(D[2]+C[2])],Q=[.5*(V[0]+D[0]),.5*(V[1]+D[1]),.5*(V[2]+D[2])],J=[f,P,N,X,[.5*(L[0]+P[0]),.5*(L[1]+P[1]),.5*(L[2]+P[2])],D,k,W,Z,Q],tt=[k,G,j,U,[.5*(O[0]+_[0]),.5*(O[1]+_[1]),.5*(O[2]+_[2])],Y,w,_,F,q],et=[Q,K,V,$,[.5*(T[0]+E[0]),.5*(T[1]+E[1]),.5*(T[2]+E[2])],T,q,B,y,R],it=[q,$,Y,K,[.25*(A[0]+I[0]+S[0]+x[0]),.25*(A[1]+I[1]+S[1]+x[1]),.25*(A[2]+I[2]+S[2]+x[2])],j,Q,Z,W,k],nt=this.normal(k,j,Y,q,$,K,Q),rt=this.normal(q,$,K,Q,Z,W,k),st=this.normal(Q,Z,W,k,j,Y,q),at=this.Epsilon,ot=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!o)if(o=zt(w,M,b,R)<this.res2){let t=Pt(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-at*t[0],ot[1]-at*t[1],ot[2]-at*t[2]]}else ot=q;let ht=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])];if(!h)if(h=zt(f,p,g,R)<this.res2){let t=Pt(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-at*t[0],ht[1]-at*t[1],ht[2]-at*t[2]]}else ht=Q;let lt=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])];if(!l)if(l=zt(f,u,v,w)<this.res2){let t=Pt(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-at*t[0],lt[1]-at*t[1],lt[2]-at*t[2]]}else lt=k;if(c){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(d[e]+m[e]),f[e]=.5*(m[e]+c[e]),u[e]=.5*(c[e]+d[e]);let p=this.data.Vertex(ot,nt,t),v=this.data.Vertex(ht,rt,f),x=this.data.Vertex(lt,st,u);this.Render3(J,e,x,v,r,lt,ht,!1,h,l,c,u,f),this.Render3(tt,x,i,p,lt,s,ot,o,!1,l,u,d,t),this.Render3(et,v,p,n,ht,ot,a,o,h,!1,f,t,m),this.Render3(it,p,v,x,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,nt),c=this.vertex(ht,rt),d=this.vertex(lt,st);this.Render3(J,e,d,c,r,lt,ht,!1,h,l),this.Render3(tt,d,i,t,lt,s,ot,o,!1,l),this.Render3(et,c,t,n,ht,ot,a,o,h,!1),this.Render3(it,t,c,d,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],n=t[12],r=t[15],s=Ht(e,n,i,r);s=Math.max(zt(e,t[4],t[8],n)),s=Math.max(s,zt(t[1],t[5],t[9],t[13])),s=Math.max(s,zt(i,t[7],t[11],r)),s=Math.max(s,zt(t[2],t[6],t[10],t[14]));let a=Ht(e,i,n,r);return a=Math.max(a,zt(e,t[1],t[2],i)),a=Math.max(a,zt(t[4],t[5],t[6],t[7])),a=Math.max(a,zt(t[8],t[9],t[10],t[11])),a=Math.max(a,zt(n,t[13],t[14],r)),[s,a]}Distance3(t){let e=t[0],i=t[4],n=t[6],r=t[9],s=St([(e[0]+n[0]+r[0])*(1/3)-i[0],(e[1]+n[1]+r[1])*(1/3)-i[1],(e[2]+n[2]+r[2])*(1/3)-i[2]]);return s=Math.max(s,zt(e,t[1],t[3],n)),s=Math.max(s,zt(e,t[2],t[5],r)),Math.max(s,zt(n,t[7],t[8],r))}differential(t,e,i,n){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return St(r)>this.epsilon?r:(r=Ct(t,e,i),St(r)>this.epsilon?r:Ft(t,e,i,n))}sumdifferential(t,e,i,n,r,s,a){let o=this.differential(t,e,i,n),h=this.differential(t,r,s,a);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,n,r,s,a){let o=3*(r[0]-n[0]),h=3*(r[1]-n[1]),l=3*(r[2]-n[2]),c=3*(i[0]-n[0]),d=3*(i[1]-n[1]),m=3*(i[2]-n[2]),f=[h*m-l*d,l*c-o*m,o*d-h*c];if(St(f)>this.epsilon)return f;let u=[c,d,m],p=[o,h,l],v=Ct(n,i,e),x=Ct(n,r,s),g=Vt(x,u),w=Vt(p,v);if(f=[g[0]+w[0],g[1]+w[1],g[2]+w[2]],St(f)>this.epsilon)return f;let M=Ft(n,i,e,t),b=Ft(n,r,s,a);g=Vt(p,M),w=Vt(b,u);let R=Vt(x,v);return f=[g[0]+w[0]+R[0],g[1]+w[1]+R[1],g[2]+w[2]+R[2]],St(f)>this.epsilon?f:(g=Vt(b,v),w=Vt(x,M),f=[g[0]+w[0],g[1]+w[1],g[2]+w[2]],St(f)>this.epsilon?f:Vt(b,M))}}function xt(t){return 0<=t&&t<=1}class gt{constructor(t,e,i){const n=1e3*Number.EPSILON,r=n*n;if(Math.abs(t)<=n*Math.abs(e)+r*Math.abs(i))Math.abs(e)>n*Math.abs(i)?(this.roots=1,this.t1=-i/e):0==i?(this.roots=1,this.t1=0):this.roots=0;else{let r=.5*e/t,s=e*r;if(Math.abs(s)<=n*Math.abs(i)){let e=-i/t;e>=0?(this.roots=2,this.t2=Math.sqrt(e),this.t1=-this.t2):this.roots=0}else{let t=-2*i/s;if(t>-1){this.roots=2;let e=r*function(t){return t/(Math.sqrt(1+t)+1)}(t),i=-e-2*r;i<=e?(this.t1=i,this.t2=e):(this.t1=e,this.t2=i)}else-1==t?(this.roots=1,this.t1=this.t2=-r):this.roots=0}}}}class wt extends ut{constructor(t,e,i,n,r){if(super(),this.controlpoints=t,this.CenterIndex=e,this.MaterialIndex=i,n&&r)this.Min=n,this.Max=r;else{let t=this.Bounds(this.controlpoints);this.Min=t[0],this.Max=t[1]}}Bounds(t){let e=Array(3),i=Array(3),n=t.length,r=Array(n);for(let h=0;h<3;++h){for(let e=0;e<n;++e)r[e]=t[e][h];let l,c;if(l=c=r[0],4==n){l=Math.min(l,r[3]),c=Math.max(c,r[3]);let t=(s=r[0],a=r[1],o=r[2],[r[3]-s+3*(a-o),2*(s+o)-4*a,a-s]),e=new gt(t[0],t[1],t[2]);if(0!=e.roots&&xt(e.t1)){let t=Bt(r[0],r[1],r[2],r[3],e.t1);l=Math.min(l,t),c=Math.max(c,t)}if(2==e.roots&&xt(e.t2)){let t=Bt(r[0],r[1],r[2],r[3],e.t2);l=Math.min(l,t),c=Math.max(c,t)}}else{let t=r[1];l=Math.min(l,t),c=Math.max(c,t)}e[h]=l,i[h]=c}var s,a,o;return[[e[0],e[1],e[2]],[i[0],i[1],i[2]]]}setMaterialIndex(){this.setMaterial(Z,Te)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],n=t[2],r=t[3],s=this.normal(Dt(e,i),Ct(e,i,n)),a=this.normal(Dt(n,r),Ct(r,n,i)),o=this.data.vertex(e,s),h=this.data.vertex(r,a);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){Z.append(this.data)}notRendered(){Z.rendered=!1}Render(t,e,i){let n=t[0],r=t[1],s=t[2],a=t[3];if(zt(n,r,s,a)<this.res2)this.offscreen([n,a])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(n[0]+r[0]),.5*(n[1]+r[1]),.5*(n[2]+r[2])],h=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])],l=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])],c=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],d=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(c[0]+d[0]),.5*(c[1]+d[1]),.5*(c[2]+d[2])],f=[n,o,c,m],u=[m,d,l,a],p=this.normal(function(t,e,i,n){return[i[0]+n[0]-t[0]-e[0],i[1]+n[1]-t[1]-e[1],i[2]+n[2]-t[2]-e[2]]}(n,r,s,a),function(t,e,i,n){return[3*t[0]-5*e[0]+i[0]+n[0],3*t[1]-5*e[1]+i[1]+n[1],3*t[2]-5*e[2]+i[2]+n[2]]}(n,r,s,a)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=Ut(t,t),n=Ut(t,e);return[i*e[0]-n*t[0],i*e[1]-n*t[1],i*e[2]-n*t[2]]}}class Mt extends ut{constructor(t,e,i){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=t,this.Max=t}setMaterialIndex(){this.setMaterial(K,Re)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){K.append(this.data)}notRendered(){K.rendered=!1}}class bt extends ut{constructor(t,e){super(),this.CenterIndex=t,this.MaterialIndex=e,this.Min=this.Bounds(F,Math.min),this.Max=this.Bounds(F,Math.max),this.controlpoints=F,this.Normals=z,this.Colors=H,this.Indices=X,this.transparent=c[this.MaterialIndex].diffuse[3]<1}Bounds(t,e){let i=Array(3),n=t.length,r=Array(n);for(let s=0;s<3;++s){for(let e=0;e<n;++e)r[e]=t[e][s];i[s]=pt(r,e)}return[i[0],i[1],i[2]]}setMaterialIndex(){this.transparent?this.setMaterial(tt,Ie):this.setMaterial(et,Ee)}process(t){this.data.vertices=new Array(6*t.length),it=this.Colors.length>0?-1-it:1+it;for(let e=0,i=this.Indices.length;e<i;++e){let i=this.Indices[e],n=i[0],r=t[n[0]],s=t[n[1]],a=t[n[2]];if(!this.offscreen([r,s,a])){let t=i.length>1?i[1]:n;if(t&&0!=t.length||(t=n),this.Colors.length>0){let e=i.length>2?i[2]:n;e&&0!=e.length||(e=n);let o=this.Colors[e[0]],h=this.Colors[e[1]],l=this.Colors[e[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==V?(this.data.iVertex(n[0],r,this.Normals[t[0]],o),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[2],a,this.Normals[t[2]],l)):(this.data.iVertex(n[0],r,this.Normals[t[0]],o),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[2],a,this.Normals[t[2]],l),this.data.iVertex(n[2],a,this.Normals[t[2]],l),this.data.iVertex(n[0],r,this.Normals[t[0]],o))}else 0==V?(this.data.iVertex(n[0],r,this.Normals[t[0]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[2],a,this.Normals[t[2]])):(this.data.iVertex(n[0],r,this.Normals[t[0]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[2],a,this.Normals[t[2]]),this.data.iVertex(n[2],a,this.Normals[t[2]]),this.data.iVertex(n[0],r,this.Normals[t[0]]))}}this.data.nvertices=t.length,this.data.indices.length>0&&this.append()}append(){this.transparent?tt.append(this.data):et.append(this.data)}notRendered(){this.transparent?tt.rendered=!1:et.rendered=!1}}function Rt(){M=-Math.tan(.5*o.angleOfView)*o.maxBound[2],_.x=_.y=0,_.z=.5*(o.minBound[2]+o.maxBound[2]),x=v=o.zoom0,S.zmin=o.minBound[2],S.zmax=o.maxBound[2],P.x=P.y=0,Oe(),U=!0,Ne()}let Tt=0,yt=1,At=2,Et=3,It=4;function Lt(e=[]){let i=lt(t,vertex,t.VERTEX_SHADER,e),n=lt(t,fragment,t.FRAGMENT_SHADER,e),r=t.createProgram();return t.attachShader(r,i),t.attachShader(r,n),t.bindAttribLocation(r,Tt,"position"),t.bindAttribLocation(r,yt,"normal"),t.bindAttribLocation(r,At,"materialIndex"),t.bindAttribLocation(r,Et,"color"),t.bindAttribLocation(r,It,"width"),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialize shaders"),r}class Nt{constructor(t,e,i,n){this.m0=.5*(t+e);let r=.5*(e+i);this.m2=.5*(i+n),this.m3=.5*(this.m0+r),this.m4=.5*(r+this.m2),this.m5=.5*(this.m3+this.m4)}}class Ot{constructor(t,e,i,n){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),s=.5*(e[1]+i[1]),a=.5*(e[2]+i[2]);this.m2=[.5*(i[0]+n[0]),.5*(i[1]+n[1]),.5*(i[2]+n[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+s),.5*(this.m0[2]+a)],this.m4=[.5*(r+this.m2[0]),.5*(s+this.m2[1]),.5*(a+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}class _t{constructor(t){this.l003=t[0];let e=t[1],i=t[2],n=t[3],r=t[4],s=t[5];this.r300=t[6];let a=t[7],o=t[8];this.u030=t[9],this.u021=.5*(this.u030+s),this.u120=.5*(this.u030+o);let h=.5*(s+i),l=.5*(o+r),c=.5*(o+a),d=.5*(i+r);this.l012=.5*(i+this.l003);let m=.5*(r+n);this.r210=.5*(a+this.r300),this.l102=.5*(this.l003+e);let f=.5*(e+n);this.r201=.5*(n+this.r300),this.u012=.5*(this.u021+h),this.u210=.5*(this.u120+c),this.l021=.5*(h+this.l012);let u=.5*l+.25*(r+e);this.r120=.5*(c+this.r210);let p=.5*d+.25*(r+a),v=.25*(s+r)+.5*m;this.l201=.5*(this.l102+f),this.r102=.5*(f+this.r201),this.l210=.5*(p+this.l201),this.r012=.5*(p+this.r102),this.l300=.5*(this.l201+this.r102),this.r021=.5*(v+this.r120),this.u201=.5*(this.u210+v),this.r030=.5*(this.u210+this.r120),this.u102=.5*(this.u012+u),this.l120=.5*(this.l021+u),this.l030=.5*(this.u012+this.l021),this.l111=.5*(d+this.l102),this.r111=.5*(m+this.r210),this.u111=.5*(this.u021+l),this.c111=.25*(h+c+f+r)}}function Pt(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function St(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function Ut(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Vt(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Bt(t,e,i,n,r){let s=1-r,a=s*s;return a*s*t+r*(3*(a*e+r*s*i)+r*r*n)}function Dt(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function Ct(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function Ft(t,e,i,n){return[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])]}function zt(t,e,i,n){let r=[1/3*(n[0]-t[0]),1/3*(n[1]-t[1]),1/3*(n[2]-t[2])];return Math.max(St([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),St([n[0]-r[0]-i[0],n[1]-r[1]-i[1],n[2]-r[2]-i[2]]))}function Ht(t,e,i,n){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],s=[n[0]-i[0],n[1]-i[1],n[2]-i[2]];return Math.max(St(Vt(r,Pt(s))),St(Vt(s,Pt(r))))/9}function Xt(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function Gt(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function Wt(t){ae||oe(),B=!0,D=t.clientX,C=t.clientY}let jt,kt,Yt=!1;function $t(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function qt(t){t.preventDefault(),ae||oe();let e=t.targetTouches;ue=pe=Yt=!1,fe||(1!=e.length||B||(kt=(new Date).getTime(),touchId=e[0].identifier,D=e[0].pageX,C=e[0].pageY),2!=e.length||B||(touchId=e[0].identifier,jt=$t(e),Yt=!0))}function Kt(t){B=!1}function Zt(t,e,i,n,r){if(t==i&&e==n)return;let[s,a]=function(t,e){let i=ne(t),n=ne(e),r=Ut(i,n);return[r>1?0:r<-1?f:Math.acos(r),Pt(Vt(i,n))]}([t,-e],[i,-n]);mat4.fromRotation(O,2*r*R*s/v,a),mat4.multiply(T,O,T)}function Qt(t,e,i,n){let r=1/v;P.x+=(i-t)*r*s,P.y-=(n-e)*r*a}function Jt(t,e,i,n){o.orthographic?Qt(t,e,i,n):(_.x+=(i-t)*(S.xmax-S.xmin),_.y-=(n-e)*(S.ymax-S.ymin))}function te(){var t,e;t=A,e=T,mat4.fromTranslation(O,[_.x,_.y,_.z]),mat4.invert(N,O),mat4.multiply(t,e,N),mat4.multiply(t,O,t),mat4.translate(A,A,[_.x,_.y,0]),mat3.fromMat4(L,A),mat3.invert(I,L),mat4.multiply(E,y,A)}function ee(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;v<=e&&(v=e),v>=t&&(v=t),(1.5*v<x||v>1.5*x)&&(U=!0,x=v)}function ie(t){let e=o.zoomStep*a*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(o.zoomFactor);Math.abs(e)<i&&(v*=o.zoomFactor**e,ee())}function ne(t){let e=t[0],i=t[1],n=Math.hypot(e,i);return n>1&&(denom=1/n,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function re(t,e,i,n){ie(e-n)}function se(t,e,i,n=1){let r;switch(i){case 1:r=Zt;break;case 2:r=Qt;break;case 3:r=re;break;case 4:r=Jt;break;default:r=(t,e,i,n)=>{}}r((D-s)/s,(C-a)/a,(t-s)/s,(e-a)/a,n),D=t,C=e,Oe(),Ne()}let ae=0;function oe(){ae=1,o.canvas.addEventListener("wheel",de,!1)}function he(){let t,e,i;[t,e,i]=function(){let t=Array(3),e=Array(3),i=Array(3),n=_.x,r=_.y,s=.5*(S.zmin+S.zmax);for(let a=0;a<3;++a){let h=0,l=0,c=0,d=4*a;for(let t=0;t<4;++t){let e=4*t,i=T[e],a=T[e+1],m=T[e+2],f=T[e+3],u=o.Transform[d+t];h+=u*(f-n*i-r*a-s*m),c+=u*a,l+=u*(f-n*i-r*a)}t[a]=h,e[a]=c,i[a]=l}return[t,e,i]}();let n=o.orthographic?" orthographic(":" perspective(",r="".padStart(n.length),s="currentprojection=\n"+n+"camera=("+t+"),\n"+r+"up=("+e+"),\n"+r+"target=("+i+"),\n"+r+"zoom="+v*o.initialZoom/o.zoom0;return o.orthographic||(s+=",\n"+r+"angle="+2*Math.atan(Math.tan(.5*o.angleOfView)/v)/u),0==g&&0==w||(s+=",\n"+r+"viewportshift=("+g+","+w+")"),o.orthographic||(s+=",\n"+r+"autoadjust=false"),s+=");\n",window.parent.asyProjection=!0,s}function le(t){if(ae||oe(),o.embedded&&ae&&27==t.keyCode)return ae=0,void o.canvas.removeEventListener("wheel",de,!1);let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":mat4.identity(T),Rt(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(""),window.parent.asyProjection=!1;break;case"m":++V,3==V&&(V=0),2!=V&&(o.embedded||st(),rt(o.ibl)),U=!0,Ne();break;case"+":case"=":case">":v*=o.zoomFactor,ce();break;case"-":case"_":case"<":v/=o.zoomFactor,ce();break;case"c":window.top.asyWebApplication||prompt("Ctrl+c Enter to copy currentprojection to clipboard; then append to asy file:",he())}e.length>0&&(mat4.rotate(T,T,.1,e),te(),Ne())}function ce(){ee(),Oe(),Ne()}function de(t){t.preventDefault(),t.deltaY<0?v*=o.zoomFactor:v/=o.zoomFactor,ce()}function me(t){if(!B)return;let e,i=t.clientX,n=t.clientY;e=t.getModifierState("Control")?2:t.getModifierState("Shift")?3:t.getModifierState("Alt")?4:1,se(i,n,e)}let fe=!1,ue=!1,pe=!1;function ve(t){if(t.preventDefault(),fe)return;let e=t.targetTouches;if(!Yt&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,n=t-D,r=i-C,s=n*n+r*r<=o.shiftHoldDistance*o.shiftHoldDistance;if(s&&!ue&&!pe&&(new Date).getTime()-kt>o.shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(o.vibrateTime),ue=!0),ue)se(t,i,2);else if(!s){pe=!0,se(e[0].pageX,e[0].pageY,1,.5)}}if(Yt&&!ue&&2==e.length&&touchId==e[0].identifier){let t=$t(e),i=t-jt;fe=!0,i*=o.zoomPinchFactor,i>o.zoomPinchCap&&(i=o.zoomPinchCap),i<-o.zoomPinchCap&&(i=-o.zoomPinchCap),ie(i/b),jt=t,ue=pe=fe=!1,Oe(),Ne()}}let xe,ge,we,Me,be=[];function Re(){dt(K,xe),K.clear()}function Te(){dt(Z,ge),Z.clear()}function ye(){dt(Q,ge),Q.clear()}function Ae(){dt(J,we),J.clear()}function Ee(){dt(et,Me),et.rendered=!1,et.clear()}function Ie(){let e=tt.indices;if(V>0)return dt(tt,Me,e),void tt.clear();if(e.length>0){!function(t){let e=A[2],i=A[6],n=A[10];be.length=t.length;for(let r=0;r<t.length;++r){let s=6*r;be[r]=e*t[s]+i*t[s+1]+n*t[s+2]}}(tt.vertices);let i=e.length/3,n=Array(i).fill().map((t,e)=>e);n.sort((function(t,i){let n=3*t;Ia=e[n],Ib=e[n+1],Ic=e[n+2];let r=3*i;return IA=e[r],IB=e[r+1],IC=e[r+2],be[Ia]+be[Ib]+be[Ic]<be[IA]+be[IB]+be[IC]?-1:1}));let r=Array(e.length);for(let t=0;t<i;++t){let i=3*n[t];r[3*t]=e[i],r[3*t+1]=e[i+1],r[3*t+2]=e[i+2]}t.depthMask(!1),dt(tt,Me,r),tt.rendered=!1,t.depthMask(!0)}tt.clear()}function Le(){Re(),Te(),ye(),Ae(),Ee(),Ie(),requestAnimationFrame(Le)}function Ne(){o.embedded&&(i.width=o.canvasWidth,i.height=o.canvasHeight,_e()),t.clearColor(o.background[0],o.background[1],o.background[2],o.background[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT);for(const t of h)t.render();Le(),o.embedded&&(n.clearRect(0,0,o.canvasWidth,o.canvasHeight),n.drawImage(i,0,0)),0==V&&(U=!1)}function Oe(){!function(t,e,i,n){let r=t/e;g=(i/t+o.viewportShift[0])*v,w=(n/e+o.viewportShift[1])*v;let s=1/v;if(o.orthographic){let t=o.maxBound[0]-o.minBound[0],e=o.maxBound[1]-o.minBound[1];if(t<e*r){let t=.5*e*r*s,i=2*t*g,n=e*s*w;S.xmin=-t-i,S.xmax=t-i,S.ymin=o.minBound[1]*s-n,S.ymax=o.maxBound[1]*s-n}else{let e=.5*t*s/r,i=t*s*g,n=2*e*w;S.xmin=o.minBound[0]*s-i,S.xmax=o.maxBound[0]*s-i,S.ymin=-e-n,S.ymax=e-n}}else{let t=M*s,e=t*r,i=2*e*g,n=2*t*w;S.xmin=-e-i,S.xmax=e-i,S.ymin=-t-n,S.ymax=t-n}}(o.canvasWidth,o.canvasHeight,P.x,P.y),(o.orthographic?mat4.ortho:mat4.frustum)(y,S.xmin,S.xmax,S.ymin,S.ymax,-S.zmax,-S.zmin),te(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(he())}function _e(){t.viewportWidth=o.canvasWidth,t.viewportHeight=o.canvasHeight,t.viewport(.5*(o.canvas.width-o.canvasWidth),.5*(o.canvas.height-o.canvasHeight),o.canvasWidth,o.canvasHeight),t.scissor(0,0,o.canvas.width,o.canvas.height)}function Pe(t,e){t>void 0&&(t=void 0),e>void 0&&(e=void 0),P.x*=t/o.canvasWidth,P.y*=e/o.canvasHeight,o.canvasWidth=t,o.canvasHeight=e,o.embedded&&(o.canvas.width=i.width=o.canvasWidth,o.canvas.height=i.height=o.canvasHeight),b=Math.hypot(o.canvasWidth,o.canvasHeight),s=.5*o.canvas.width,a=.5*o.canvas.height,R=1+8*Math.hypot(o.viewportMargin[0],o.viewportMargin[1])/b,_e(),Oe(),U=!0}function Se(){if(o.zoom0=o.initialZoom,window.top.asyWebApplication&&""==window.top.asyWebApplication.getProjection()&&(window.parent.asyProjection=!1),o.absolute&&!o.embedded)o.canvasWidth=o.canvasWith0*window.devicePixelRatio,o.canvasHeight=o.canvasHeight0*window.devicePixelRatio;else{let t=o.canvasWith0/o.canvasHeight0;o.canvasWidth=Math.max(window.innerWidth-10,10),o.canvasHeight=Math.max(window.innerHeight-10,10),!o.orthographic&&!window.parent.asyProjection&&o.canvasWidth<o.canvasHeight*t&&(o.zoom0*=o.canvasWidth/(o.canvasHeight*t))}o.canvas.width=o.canvasWidth,o.canvas.height=o.canvasHeight;window.innerWidth,window.innerHeight;let t=1/o.zoom0;o.viewportShift[0]*=t,o.viewportShift[1]*=t,Pe(o.canvasWidth,o.canvasHeight),Rt()}class Ue{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],n=t[2],r=e*this.ct+n*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+n*this.ct+this.center[2]]}}function Ve(t,e,i){let n=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1],e[2]]),t(i)];return[Xt(n),Gt(n)]}let Be=4/3*(Math.sqrt(2)-1);async function De(t){return(await fetch(t)).arrayBuffer()}function Ce(t){return t.getBytes().filter((t,e)=>e%4!=3)}function Fe(e,i,n=t.RGB16F){let r=e.width(),s=e.height(),a=t.createTexture();return t.activeTexture(t.TEXTURE0+i),t.bindTexture(t.TEXTURE_2D,a),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texImage2D(t.TEXTURE_2D,0,n,r,s,0,t.RGB,t.FLOAT,Ce(e)),a}window.webGLStart=function(){o.canvas=document.getElementById("Asymptote"),o.embedded=window.top.document!=document,ht(),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.enable(t.DEPTH_TEST),t.enable(t.SCISSOR_TEST),o.canvas.onmousedown=Wt,document.onmouseup=Kt,document.onmousemove=me,o.canvas.onkeydown=le,o.embedded||oe(),o.canvas.addEventListener("touchstart",qt,!1),o.canvas.addEventListener("touchend",Kt,!1),o.canvas.addEventListener("touchcancel",Kt,!1),o.canvas.addEventListener("touchleave",Kt,!1),o.canvas.addEventListener("touchmove",ve,!1),document.addEventListener("keydown",le,!1),o.canvasWith0=o.canvasWidth,o.canvasHeight0=o.canvasHeight,mat4.identity(T),0!=window.innerWidth&&0!=window.innerHeight&&Se(),window.addEventListener("resize",Se,!1),o.ibl&&async function(){let e=o.imageURL+o.image+"/";function i(t){return new Promise(e=>setTimeout(e,t))}for(;!Module.EXRLoader;)await i(0);promises=[De(o.imageURL+"refl.exr").then(t=>{let e=new Module.EXRLoader(t);j=Fe(e,0)}),De(e+"diffuse.exr").then(t=>{let e=new Module.EXRLoader(t);W=Fe(e,1)})],refl_promise=[],refl_promise.push(De(e+"refl0.exr"));for(let t=1;t<=8;++t)refl_promise.push(De(e+"refl"+t+"w.exr"));finished_promise=Promise.all(refl_promise).then(e=>{let i=t.createTexture();t.activeTexture(t.TEXTURE0+2),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.bindTexture(t.TEXTURE_2D,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAX_LEVEL,e.length-1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameterf(t.TEXTURE_2D,t.TEXTURE_MIN_LOD,0),t.texParameterf(t.TEXTURE_2D,t.TEXTURE_MAX_LOD,8);for(let i=0;i<e.length;++i){let n=new Module.EXRLoader(e[i]);t.texImage2D(t.TEXTURE_2D,i,t.RGB16F,n.width(),n.height(),0,t.RGB,t.FLOAT,Ce(n))}G=i}),promises.push(finished_promise),await Promise.all(promises)}().then(k).then(Rt)},window.light=function(t,e){l.push(new nt(t,e))},window.material=function(t,e,i,n,r,s){c.push(new Y(t,e,i,n,r,s))},window.patch=function(t,e,i,n){h.push(new vt(t,e,i,n))},window.curve=function(t,e,i){h.push(new wt(t,e,i))},window.pixel=function(t,e,i){h.push(new Mt(t,e,i))},window.triangles=function(t,e){h.push(new bt(t,e)),window.Positions=F=[],window.Normals=z=[],window.Colors=H=[],window.Indices=X=[]},window.sphere=function(t,e,i,n,r){let s,a,o,l,c,d,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,x=.0549670512339254,g=.998880711874577,w=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,Be,0],[1,Be,m],[f,Be*f,u],[p,Be*p,v],[Be,1,0],[Be,1,m],[Be*f,f,u],[Be*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,Be*p,v],[x,0,g],[Be*p,p,v],[w,w,1],[.05*Be,0,1],[0,p,v],[0,x,g],[0,.05*Be,1],[0,0,1]]],b=new Ue(t,r);function R(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let n=t[i];e[i]=c([s*n[0],a*n[1],o*n[2]])}return e}r?(l=1,d=0,c=b.T.bind(b)):(l=-1,d=-e,c=b.T0.bind(b));let T=Ve(c,[-e,-e,d],[e,e,e]),y=T[0],A=T[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){a=t*e;for(let t=l;t<=1;t+=2){o=t*e;for(let t=0;t<2;++t)h.push(new vt(R(M[t]),i,n,null,y,A))}}}},window.disk=function(t,e,i,n,r){let s=1-2*Be/3,a=[[1,0,0],[1,-Be,0],[Be,-1,0],[0,-1,0],[1,Be,0],[s,0,0],[0,-s,0],[-Be,-1,0],[Be,1,0],[0,s,0],[-s,0,0],[-1,-Be,0],[0,1,0],[-Be,1,0],[-1,Be,0],[-1,0,0]],o=new Ue(t,r),l=Ve(o.T.bind(o),[-e,-e,0],[e,e,0]);h.push(new vt(function(t){let i=Array(t.length);for(let n=0;n<t.length;++n){let r=t[n];i[n]=o.T([e*r[0],e*r[1],0])}return i}(a),i,n,null,l[0],l[1]))},window.cylinder=function(t,e,i,n,r,s,a){let o,l,c=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,Be,0],[1,Be,1/3],[1,Be,2/3],[1,Be,1],[Be,1,0],[Be,1,1/3],[Be,1,2/3],[Be,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],d=new Ue(t,s);function m(t){let e=Array(t.length);for(let n=0;n<t.length;++n){let r=t[n];e[n]=d.T([o*r[0],l*r[1],i*r[2]])}return e}let f=Ve(d.T.bind(d),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){o=t*e;for(let t=-1;t<=1;t+=2)l=t*e,h.push(new vt(m(c),n,r,null,u,p))}if(a){let e=d.T([0,0,i]);h.push(new wt([t,e],n,r,t,e))}},window.tube=function(t,e,i,n,r){let s=function(t,e,i,n,r){class s{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=Vt(i,e)}}let a=Number.EPSILON*Math.max(St(t),St(e),St(i),St(n));function o(r){if(1==r){let r=[n[0]-i[0],n[1]-i[1],n[2]-i[2]];return St(r)>a?Pt(r):(r=[2*i[0]-e[0]-n[0],2*i[1]-e[1]-n[1],2*i[2]-e[2]-n[2]],St(r)>a?Pt(r):[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])])}let s=[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,c=[s[0]*l+o[0]*r+h[0],s[1]*l+o[1]*r+h[1],s[2]*l+o[2]*r+h[2]];return St(c)>a?Pt(c):(l=2*r,c=[s[0]*l+o[0],s[1]*l+o[1],s[2]*l+o[2]],St(c)>a?Pt(c):Pt(s))}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];St(l)<a&&(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]],St(l)<a&&(l=[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])])),l=Pt(l);let c=function(t){let e=Vt(t,[0,1,0]),i=Number.EPSILON*St(t);return St(e)>i?Pt(e):(e=Vt(t,[0,0,1]),St(e)>i?Pt(e):[1,0,0])}(l);h[0]=new s(t,c,l);for(let a=1;a<r.length;++a){let l=h[a-1],c=r[a],d=1-c,m=d*d,f=m*d,u=3*c;m*=u,d*=u*c;let p=c*c*c,v=[f*t[0]+m*e[0]+d*i[0]+p*n[0],f*t[1]+m*e[1]+d*i[1]+p*n[1],f*t[2]+m*e[2]+d*i[2]+p*n[2]],x=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=x[0]||0!=x[1]||0!=x[2]){let t=l.r,e=Pt(x),i=l.t,n=Ut(e,i),r=[i[0]-2*n*e[0],i[1]-2*n*e[1],i[2]-2*n*e[2]];i=o(c);let d=2*Ut(e,t),m=[t[0]-d*e[0],t[1]-d*e[1],t[2]-d*e[2]],f=Pt([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*Ut(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[a]=new s(v,Pt(m),Pt(i))}else h[a]=h[a-1]}return h}(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),a=Be*e,o=[[e,0],[e,a],[a,e],[0,e]];function l(e,r,a,l){let c=Array(16);for(let i=0;i<4;++i){let n=s[i],h=n.r[0],d=n.s[0],m=h*e+d*r,f=h*a+d*l;h=n.r[1],d=n.s[1];let u=h*e+d*r,p=h*a+d*l;h=n.r[2],d=n.s[2];let v=h*e+d*r,x=h*a+d*l,g=t[i],w=g[0];w1=g[1],w2=g[2];for(let t=0;t<4;++t){let e=o[t],n=e[0],r=e[1];c[4*i+t]=[m*n+f*r+w,u*n+p*r+w1,v*n+x*r+w2]}}h.push(new vt(c,i,n))}l(1,0,0,1),l(0,-1,1,0),l(-1,0,0,-1),l(0,1,-1,0),r&&h.push(new wt(t,i,n))},window.Positions=F,window.Normals=z,window.Colors=H,window.Indices=X}();
diff --git a/Build/source/utils/asymptote/bezierpatch.cc b/Build/source/utils/asymptote/bezierpatch.cc
index f210c538c21..775c282e0c0 100644
--- a/Build/source/utils/asymptote/bezierpatch.cc
+++ b/Build/source/utils/asymptote/bezierpatch.cc
@@ -23,12 +23,16 @@ const double FillFactor=0.1;
void BezierPatch::init(double res)
{
res2=res*res;
- Epsilon=FillFactor*res;
- MaterialIndex=transparent ?
- (color ? -1-materialIndex : 1+materialIndex) : materialIndex;
-
- pvertex=transparent ? &vertexBuffer::tvertex : &vertexBuffer::vertex;
+ if(transparent) {
+ Epsilon=0.0;
+ MaterialIndex=color ? -1-materialIndex : 1+materialIndex;
+ pvertex=&vertexBuffer::tvertex;
+ } else {
+ Epsilon=FillFactor*res;
+ MaterialIndex=materialIndex;
+ pvertex=&vertexBuffer::vertex;
+ }
}
void BezierPatch::render(const triple *p, bool straight, GLfloat *c0)
@@ -222,16 +226,18 @@ void BezierPatch::render(const triple *p,
triple m0=0.5*(P1+P2);
if(!flat1) {
- if((flat1=Straightness(p12,p[13],p[14],p15) < res2))
- m0 -= Epsilon*unit(differential(s1[12],s1[8],s1[4],s1[0]));
- else m0=s0[15];
+ if((flat1=Straightness(p12,p[13],p[14],p15) < res2)) {
+ if(Epsilon)
+ m0 -= Epsilon*unit(differential(s1[12],s1[8],s1[4],s1[0]));
+ } else m0=s0[15];
}
triple m1=0.5*(P3+P0);
if(!flat3) {
- if((flat3=Straightness(p0,p[1],p[2],p3) < res2))
- m1 -= Epsilon*unit(differential(s0[3],s0[7],s0[11],s0[15]));
- else m1=s1[0];
+ if((flat3=Straightness(p0,p[1],p[2],p3) < res2)) {
+ if(Epsilon)
+ m1 -= Epsilon*unit(differential(s0[3],s0[7],s0[11],s0[15]));
+ } else m1=s1[0];
}
if(color) {
@@ -312,16 +318,18 @@ void BezierPatch::render(const triple *p,
triple m0=0.5*(P0+P1);
if(!flat0) {
- if((flat0=Straightness(p0,p[4],p[8],p12) < res2))
- m0 -= Epsilon*unit(differential(s1[0],s1[1],s1[2],s1[3]));
- else m0=s0[12];
+ if((flat0=Straightness(p0,p[4],p[8],p12) < res2)) {
+ if(Epsilon)
+ m0 -= Epsilon*unit(differential(s1[0],s1[1],s1[2],s1[3]));
+ } else m0=s0[12];
}
triple m1=0.5*(P2+P3);
if(!flat2) {
- if((flat2=Straightness(p15,p[11],p[7],p3) < res2))
- m1 -= Epsilon*unit(differential(s0[15],s0[14],s0[13],s0[12]));
- else m1=s1[3];
+ if((flat2=Straightness(p15,p[11],p[7],p3) < res2)) {
+ if(Epsilon)
+ m1 -= Epsilon*unit(differential(s0[15],s0[14],s0[13],s0[12]));
+ } else m1=s1[3];
}
if(color) {
@@ -428,30 +436,34 @@ void BezierPatch::render(const triple *p,
triple m0=0.5*(P0+P1);
if(!flat0) {
- if((flat0=Straightness(p0,p[4],p[8],p12) < res2))
- m0 -= Epsilon*unit(differential(s1[0],s1[1],s1[2],s1[3]));
- else m0=s0[12];
+ if((flat0=Straightness(p0,p[4],p[8],p12) < res2)) {
+ if(Epsilon)
+ m0 -= Epsilon*unit(differential(s1[0],s1[1],s1[2],s1[3]));
+ } else m0=s0[12];
}
triple m1=0.5*(P1+P2);
if(!flat1) {
- if((flat1=Straightness(p12,p[13],p[14],p15) < res2))
- m1 -= Epsilon*unit(differential(s2[12],s2[8],s2[4],s2[0]));
- else m1=s1[15];
+ if((flat1=Straightness(p12,p[13],p[14],p15) < res2)) {
+ if(Epsilon)
+ m1 -= Epsilon*unit(differential(s2[12],s2[8],s2[4],s2[0]));
+ } else m1=s1[15];
}
triple m2=0.5*(P2+P3);
if(!flat2) {
- if((flat2=Straightness(p15,p[11],p[7],p3) < res2))
- m2 -= Epsilon*unit(differential(s3[15],s3[14],s3[13],s3[12]));
- else m2=s2[3];
+ if((flat2=Straightness(p15,p[11],p[7],p3) < res2)) {
+ if(Epsilon)
+ m2 -= Epsilon*unit(differential(s3[15],s3[14],s3[13],s3[12]));
+ } else m2=s2[3];
}
triple m3=0.5*(P3+P0);
if(!flat3) {
- if((flat3=Straightness(p0,p[1],p[2],p3) < res2))
- m3 -= Epsilon*unit(differential(s0[3],s0[7],s0[11],s0[15]));
- else m3=s3[0];
+ if((flat3=Straightness(p0,p[1],p[2],p3) < res2)) {
+ if(Epsilon)
+ m3 -= Epsilon*unit(differential(s0[3],s0[7],s0[11],s0[15]));
+ } else m3=s3[0];
}
if(color) {
@@ -681,26 +693,29 @@ void BezierTriangle::render(const triple *p,
triple m0=0.5*(P1+P2);
if(!flat0) {
- if((flat0=Straightness(r300,p210,p120,u030) < res2))
- m0 -= Epsilon*unit(differential(c[0],c[2],c[5],c[9])+
- differential(c[0],c[1],c[3],c[6]));
- else m0=r030;
+ if((flat0=Straightness(r300,p210,p120,u030) < res2)) {
+ if(Epsilon)
+ m0 -= Epsilon*unit(differential(c[0],c[2],c[5],c[9])+
+ differential(c[0],c[1],c[3],c[6]));
+ } else m0=r030;
}
triple m1=0.5*(P2+P0);
if(!flat1) {
- if((flat1=Straightness(l003,p012,p021,u030) < res2))
- m1 -= Epsilon*unit(differential(c[6],c[3],c[1],c[0])+
- differential(c[6],c[7],c[8],c[9]));
- else m1=l030;
+ if((flat1=Straightness(l003,p012,p021,u030) < res2)) {
+ if(Epsilon)
+ m1 -= Epsilon*unit(differential(c[6],c[3],c[1],c[0])+
+ differential(c[6],c[7],c[8],c[9]));
+ } else m1=l030;
}
triple m2=0.5*(P0+P1);
if(!flat2) {
- if((flat2=Straightness(l003,p102,p201,r300) < res2))
- m2 -= Epsilon*unit(differential(c[9],c[8],c[7],c[6])+
- differential(c[9],c[5],c[2],c[0]));
- else m2=l300;
+ if((flat2=Straightness(l003,p102,p201,r300) < res2)) {
+ if(Epsilon)
+ m2 -= Epsilon*unit(differential(c[9],c[8],c[7],c[6])+
+ differential(c[9],c[5],c[2],c[0]));
+ } else m2=l300;
}
if(color) {
diff --git a/Build/source/utils/asymptote/build-scripts/build-asygl b/Build/source/utils/asymptote/build-scripts/build-asygl
index 559b08c08b4..0c8eeb88f7c 100755
--- a/Build/source/utils/asymptote/build-scripts/build-asygl
+++ b/Build/source/utils/asymptote/build-scripts/build-asygl
@@ -9,7 +9,7 @@ UGLIFYOPT=""; \
else \
UGLIFY=terser; \
UGLIFYOPTIONS="-m -c --comments"; \
-fi
+fi
GL_MATRIX_VERSION=2.4.0
GL_MATRIX_DIR=gl-matrix-$GL_MATRIX_VERSION
@@ -34,7 +34,7 @@ echo "let vertex=\`" > $SHADERS
echo "\`;" | cat webgl/vertex.glsl - >> $SHADERS
echo "let fragment=\`" >> $SHADERS
echo "\`;" | cat webgl/fragment.glsl - >> $SHADERS
-cat webgl/license $GL_MATRIX_DIR_PRUNED/LICENSE.js \
- $SHADERS $GL_MATRIX_DIR_PRUNED/dist/gl-matrix.js webgl/gl.js | \
+echo | cat webgl/license $GL_MATRIX_DIR_PRUNED/LICENSE.js \
+ $SHADERS $GL_MATRIX_DIR_PRUNED/dist/gl-matrix.js - webgl/gl.js | \
$UGLIFY $UGLIFYOPTIONS > base/webgl/asygl.js
rm $SHADERS
diff --git a/Build/source/utils/asymptote/build-scripts/build-asymptote b/Build/source/utils/asymptote/build-scripts/build-asymptote
index 84dfcc91593..ad95a8e0d5a 100755
--- a/Build/source/utils/asymptote/build-scripts/build-asymptote
+++ b/Build/source/utils/asymptote/build-scripts/build-asymptote
@@ -36,8 +36,7 @@ cp /usr/local/src/$GC.tar.gz asymptote-$VERSION
cp /usr/local/src/libatomic_ops-$ATOMICVERSION.tar.gz asymptote-$VERSION
chown -R root.root asymptote-$VERSION
cd asymptote-$VERSION
-find . -type d -exec /bin/bash -c "cd '{}';rm -rf .git" \;
-rm -rf .gitignore .vscode
+find . -name ".[^.]*" -exec rm -rf {} \;
./autogen.sh
./configure
make $MAKEFLAGS check || exit
diff --git a/Build/source/utils/asymptote/build-scripts/build-asymptote.dos b/Build/source/utils/asymptote/build-scripts/build-asymptote.dos
index 23edfcf8358..59d4ca07b6a 100755
--- a/Build/source/utils/asymptote/build-scripts/build-asymptote.dos
+++ b/Build/source/utils/asymptote/build-scripts/build-asymptote.dos
@@ -22,12 +22,13 @@ echo Building asymptote-$VERSION
cd ~/
rm -rf asymptote-$VERSION
mkdir -p CTAN
-rm -rf CTAN/asymptote-$VERSION
+rm -rf CTAN/asymptote
cd CTAN
tar -vzxf $SHARED/asymptote-$VERSION.src.tgz | grep "/\." | xargs rm -rf
+mv asymptote-$VERSION asymptote
cd ..
tar -zxf $SHARED/asymptote-$VERSION.src.tgz
-mkdir -p CTAN/asymptote-$VERSION/binaries/$BINDIR/texlive
+mkdir -p CTAN/asymptote/binaries/$BINDIR/texlive
cd asymptote-$VERSION
fi
BUILD=build-$VERSION
@@ -39,7 +40,7 @@ mkdir -p $BUILD
cp -a $HOME/dll/cygwin/*.dll $BUILD
cp /etc/pki/tls/certs/ca-bundle.crt $BUILD
chmod 0644 $BUILD/*.dll
-cp -a $BUILD/*.dll ~/CTAN/asymptote-$VERSION/binaries/$BINDIR/
+cp -a $BUILD/*.dll ~/CTAN/asymptote/binaries/$BINDIR/
make MSDOS=1 DESTDIR="$BUILD/" docdir="$BUILD/"
test -f asy.list || make MSDOS=1 keywords DESTDIR="$BUILD/" docdir="$BUILD/"
make MSDOS=1 install-asy DESTDIR="$BUILD/" docdir="$BUILD/"
@@ -83,19 +84,19 @@ rm -f doc/*.aux doc/*.log doc/*.dvi
make MSDOS=1 DESTDIR="$BUILD/"
make MSDOS=1 install-asy DESTDIR="$BUILD/"
mv $BUILD/usr/local/bin/asy.exe $BUILD
-cp $BUILD/asy.exe ~/CTAN/asymptote-$VERSION/binaries/$BINDIR/texlive
-cp -a configure.ac ~/CTAN/asymptote-$VERSION/
-cp -a $SHARED/asydoc/* ~/CTAN/asymptote-$VERSION/doc
-cd ~/CTAN/asymptote-$VERSION/binaries/$BINDIR
+cp $BUILD/asy.exe ~/CTAN/asymptote/binaries/$BINDIR/texlive
+cp -a configure.ac ~/CTAN/asymptote/
+cp -a $SHARED/asydoc/* ~/CTAN/asymptote/doc
+cd ~/CTAN/asymptote/binaries/$BINDIR
cp -a ../../README .
cd ~/CTAN
-cp -a ~/asymptote/build-scripts/README-binaries asymptote-$VERSION/binaries/$BINDIR/texlive/README
-SHAREDBIN=$SHARED/CTAN/asymptote-$VERSION
+cp -a ~/asymptote/build-scripts/README-binaries asymptote/binaries/$BINDIR/texlive/README
+SHAREDBIN=$SHARED/CTAN/asymptote
if [ $MACHINE == i686 ]; then
mkdir -p $SHAREDBIN
-cp -a asymptote-$VERSION/binaries/$BINDIR $SHAREDBIN
+cp -a asymptote/binaries/$BINDIR $SHAREDBIN
else
-cp -a $SHAREDBIN/i386-windows ~/CTAN/asymptote-$VERSION/binaries
+cp -a $SHAREDBIN/i386-windows ~/CTAN/asymptote/binaries
fi
-tar cfz asymptote-$VERSION-CTAN.tgz asymptote-$VERSION
+tar cfz asymptote-$VERSION-CTAN.tgz asymptote
cp -a --no-preserve=mode asymptote-$VERSION-CTAN.tgz $SHARED
diff --git a/Build/source/utils/asymptote/camp.tab.cc b/Build/source/utils/asymptote/camp.tab.cc
index 3a61e702a0e..1b2eda1ff8a 100644
--- a/Build/source/utils/asymptote/camp.tab.cc
+++ b/Build/source/utils/asymptote/camp.tab.cc
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.7.6. */
+/* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison implementation for Yacc-like parsers in C
@@ -46,10 +46,10 @@
USER NAME SPACE" below. */
/* Identify Bison output, and Bison version. */
-#define YYBISON 30706
+#define YYBISON 30802
/* Bison version string. */
-#define YYBISON_VERSION "3.7.6"
+#define YYBISON_VERSION "3.8.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -437,12 +437,18 @@ typedef int yy_state_fast_t;
# define YY_USE(E) /* empty */
#endif
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
@@ -662,7 +668,7 @@ static const yytype_int8 yytranslate[] =
};
#if YYDEBUG
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
0, 191, 191, 195, 196, 201, 202, 207, 208, 209,
@@ -728,22 +734,6 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
- (internal) symbol number NUM (which must be that of a token). */
-static const yytype_int16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 43, 45, 42, 47, 37,
- 35, 94, 280, 281, 282, 63, 58, 283, 284, 285,
- 123, 125, 40, 41, 46, 44, 91, 93, 59, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312
-};
-#endif
-
#define YYPACT_NINF (-285)
#define yypact_value_is_default(Yyn) \
@@ -754,8 +744,8 @@ static const yytype_int16 yytoknum[] =
#define yytable_value_is_error(Yyn) \
0
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
static const yytype_int16 yypact[] =
{
-285, 41, 472, -285, -285, 873, 873, 873, 873, -285,
@@ -798,9 +788,9 @@ static const yytype_int16 yypact[] =
-285, -285, 614, -285, -285, -285
};
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
static const yytype_uint8 yydefact[] =
{
3, 0, 2, 1, 7, 0, 0, 0, 0, 9,
@@ -843,7 +833,7 @@ static const yytype_uint8 yydefact[] =
63, 185, 0, 165, 79, 184
};
- /* YYPGOTO[NTERM-NUM]. */
+/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-285, -285, 250, -285, 10, 263, -285, 285, 36, 170,
@@ -853,7 +843,7 @@ static const yytype_int16 yypgoto[] =
205, -285, -285, -19, -79, -138, -285, -285, -285, -8
};
- /* YYDEFGOTO[NTERM-NUM]. */
+/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
0, 1, 2, 57, 51, 36, 37, 38, 233, 234,
@@ -863,9 +853,9 @@ static const yytype_int16 yydefgoto[] =
135, 196, 197, 48, 49, 50, 169, 316, 364, 170
};
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
52, 53, 54, 55, 168, 56, 82, 60, 77, 258,
@@ -1270,8 +1260,8 @@ static const yytype_int16 yycheck[] =
31, 40, -1, -1, -1, -1, -1, -1, -1, 40
};
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+ state STATE-NUM. */
static const yytype_int8 yystos[] =
{
0, 77, 78, 0, 3, 7, 8, 25, 26, 29,
@@ -1314,7 +1304,7 @@ static const yytype_int8 yystos[] =
41, 119, 43, 41, 98, 119
};
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] =
{
0, 76, 77, 78, 78, 79, 79, 80, 80, 80,
@@ -1340,7 +1330,7 @@ static const yytype_int8 yyr1[] =
125
};
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] =
{
0, 2, 1, 0, 2, 0, 2, 1, 3, 1,
@@ -1375,6 +1365,7 @@ enum { YYENOMEM = -2 };
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
+#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus)
@@ -1415,10 +1406,7 @@ do { \
YYFPRINTF Args; \
} while (0)
-/* This macro is provided for backward compatibility. */
-# ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
@@ -1445,10 +1433,6 @@ yy_symbol_value_print (FILE *yyo,
YY_USE (yyoutput);
if (!yyvaluep)
return;
-# ifdef YYPRINT
- if (yykind < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
-# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
@@ -1633,6 +1617,7 @@ yyparse (void)
YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */
+
goto yysetstate;
@@ -1658,7 +1643,7 @@ yysetstate:
if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
+ YYNOMEM;
#else
{
/* Get the current used size of the three stacks, in elements. */
@@ -1686,7 +1671,7 @@ yysetstate:
# else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
+ YYNOMEM;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
@@ -1697,7 +1682,7 @@ yysetstate:
YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr)
- goto yyexhaustedlab;
+ YYNOMEM;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
@@ -1719,6 +1704,7 @@ yysetstate:
}
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+
if (yystate == YYFINAL)
YYACCEPT;
@@ -1833,555 +1819,555 @@ yyreduce:
case 2: /* file: fileblock */
#line 191 "camp.y"
{ absyntax::root = (yyvsp[0].b); }
-#line 1837 "camp.tab.c"
+#line 1823 "camp.tab.c"
break;
case 3: /* fileblock: %empty */
#line 195 "camp.y"
{ (yyval.b) = new file(lexerPos(), false); }
-#line 1843 "camp.tab.c"
+#line 1829 "camp.tab.c"
break;
case 4: /* fileblock: fileblock runnable */
#line 197 "camp.y"
{ (yyval.b) = (yyvsp[-1].b); (yyval.b)->add((yyvsp[0].run)); }
-#line 1849 "camp.tab.c"
+#line 1835 "camp.tab.c"
break;
case 5: /* bareblock: %empty */
#line 201 "camp.y"
{ (yyval.b) = new block(lexerPos(), true); }
-#line 1855 "camp.tab.c"
+#line 1841 "camp.tab.c"
break;
case 6: /* bareblock: bareblock runnable */
#line 203 "camp.y"
{ (yyval.b) = (yyvsp[-1].b); (yyval.b)->add((yyvsp[0].run)); }
-#line 1861 "camp.tab.c"
+#line 1847 "camp.tab.c"
break;
case 7: /* name: ID */
#line 207 "camp.y"
{ (yyval.n) = new simpleName((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 1867 "camp.tab.c"
+#line 1853 "camp.tab.c"
break;
case 8: /* name: name '.' ID */
#line 208 "camp.y"
{ (yyval.n) = new qualifiedName((yyvsp[-1].pos), (yyvsp[-2].n), (yyvsp[0].ps).sym); }
-#line 1873 "camp.tab.c"
+#line 1859 "camp.tab.c"
break;
case 9: /* name: '%' */
#line 209 "camp.y"
{ (yyval.n) = new simpleName((yyvsp[0].ps).pos,
symbol::trans("operator answer")); }
-#line 1880 "camp.tab.c"
+#line 1866 "camp.tab.c"
break;
case 10: /* runnable: dec */
#line 214 "camp.y"
{ (yyval.run) = (yyvsp[0].d); }
-#line 1886 "camp.tab.c"
+#line 1872 "camp.tab.c"
break;
case 11: /* runnable: stm */
#line 215 "camp.y"
{ (yyval.run) = (yyvsp[0].s); }
-#line 1892 "camp.tab.c"
+#line 1878 "camp.tab.c"
break;
case 12: /* runnable: modifiers dec */
#line 217 "camp.y"
{ (yyval.run) = new modifiedRunnable((yyvsp[-1].ml)->getPos(), (yyvsp[-1].ml), (yyvsp[0].d)); }
-#line 1898 "camp.tab.c"
+#line 1884 "camp.tab.c"
break;
case 13: /* runnable: modifiers stm */
#line 219 "camp.y"
{ (yyval.run) = new modifiedRunnable((yyvsp[-1].ml)->getPos(), (yyvsp[-1].ml), (yyvsp[0].s)); }
-#line 1904 "camp.tab.c"
+#line 1890 "camp.tab.c"
break;
case 14: /* modifiers: MODIFIER */
#line 223 "camp.y"
{ (yyval.ml) = new modifierList((yyvsp[0].mod).pos); (yyval.ml)->add((yyvsp[0].mod).val); }
-#line 1910 "camp.tab.c"
+#line 1896 "camp.tab.c"
break;
case 15: /* modifiers: PERM */
#line 224 "camp.y"
{ (yyval.ml) = new modifierList((yyvsp[0].perm).pos); (yyval.ml)->add((yyvsp[0].perm).val); }
-#line 1916 "camp.tab.c"
+#line 1902 "camp.tab.c"
break;
case 16: /* modifiers: modifiers MODIFIER */
#line 226 "camp.y"
{ (yyval.ml) = (yyvsp[-1].ml); (yyval.ml)->add((yyvsp[0].mod).val); }
-#line 1922 "camp.tab.c"
+#line 1908 "camp.tab.c"
break;
case 17: /* modifiers: modifiers PERM */
#line 228 "camp.y"
{ (yyval.ml) = (yyvsp[-1].ml); (yyval.ml)->add((yyvsp[0].perm).val); }
-#line 1928 "camp.tab.c"
+#line 1914 "camp.tab.c"
break;
case 18: /* dec: vardec */
#line 232 "camp.y"
{ (yyval.d) = (yyvsp[0].vd); }
-#line 1934 "camp.tab.c"
+#line 1920 "camp.tab.c"
break;
case 19: /* dec: fundec */
#line 233 "camp.y"
{ (yyval.d) = (yyvsp[0].d); }
-#line 1940 "camp.tab.c"
+#line 1926 "camp.tab.c"
break;
case 20: /* dec: typedec */
#line 234 "camp.y"
{ (yyval.d) = (yyvsp[0].d); }
-#line 1946 "camp.tab.c"
+#line 1932 "camp.tab.c"
break;
case 21: /* dec: ACCESS stridpairlist ';' */
#line 236 "camp.y"
{ (yyval.d) = new accessdec((yyvsp[-2].pos), (yyvsp[-1].ipl)); }
-#line 1952 "camp.tab.c"
+#line 1938 "camp.tab.c"
break;
case 22: /* dec: FROM name UNRAVEL idpairlist ';' */
#line 238 "camp.y"
{ (yyval.d) = new unraveldec((yyvsp[-4].pos), (yyvsp[-3].n), (yyvsp[-1].ipl)); }
-#line 1958 "camp.tab.c"
+#line 1944 "camp.tab.c"
break;
case 23: /* dec: FROM name UNRAVEL '*' ';' */
#line 240 "camp.y"
{ (yyval.d) = new unraveldec((yyvsp[-4].pos), (yyvsp[-3].n), WILDCARD); }
-#line 1964 "camp.tab.c"
+#line 1950 "camp.tab.c"
break;
case 24: /* dec: UNRAVEL name ';' */
#line 241 "camp.y"
{ (yyval.d) = new unraveldec((yyvsp[-2].pos), (yyvsp[-1].n), WILDCARD); }
-#line 1970 "camp.tab.c"
+#line 1956 "camp.tab.c"
break;
case 25: /* dec: FROM strid ACCESS idpairlist ';' */
#line 243 "camp.y"
{ (yyval.d) = new fromaccessdec((yyvsp[-4].pos), (yyvsp[-3].ps).sym, (yyvsp[-1].ipl)); }
-#line 1976 "camp.tab.c"
+#line 1962 "camp.tab.c"
break;
case 26: /* dec: FROM strid ACCESS '*' ';' */
#line 245 "camp.y"
{ (yyval.d) = new fromaccessdec((yyvsp[-4].pos), (yyvsp[-3].ps).sym, WILDCARD); }
-#line 1982 "camp.tab.c"
+#line 1968 "camp.tab.c"
break;
case 27: /* dec: IMPORT stridpair ';' */
#line 247 "camp.y"
{ (yyval.d) = new importdec((yyvsp[-2].pos), (yyvsp[-1].ip)); }
-#line 1988 "camp.tab.c"
+#line 1974 "camp.tab.c"
break;
case 28: /* dec: INCLUDE ID ';' */
#line 248 "camp.y"
{ (yyval.d) = new includedec((yyvsp[-2].pos), (yyvsp[-1].ps).sym); }
-#line 1994 "camp.tab.c"
+#line 1980 "camp.tab.c"
break;
case 29: /* dec: INCLUDE STRING ';' */
#line 250 "camp.y"
{ (yyval.d) = new includedec((yyvsp[-2].pos), (yyvsp[-1].stre)->getString()); }
-#line 2000 "camp.tab.c"
+#line 1986 "camp.tab.c"
break;
case 30: /* idpair: ID */
#line 254 "camp.y"
{ (yyval.ip) = new idpair((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2006 "camp.tab.c"
+#line 1992 "camp.tab.c"
break;
case 31: /* idpair: ID ID ID */
#line 256 "camp.y"
{ (yyval.ip) = new idpair((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].ps).sym , (yyvsp[0].ps).sym); }
-#line 2012 "camp.tab.c"
+#line 1998 "camp.tab.c"
break;
case 32: /* idpairlist: idpair */
#line 260 "camp.y"
{ (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2018 "camp.tab.c"
+#line 2004 "camp.tab.c"
break;
case 33: /* idpairlist: idpairlist ',' idpair */
#line 262 "camp.y"
{ (yyval.ipl) = (yyvsp[-2].ipl); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2024 "camp.tab.c"
+#line 2010 "camp.tab.c"
break;
case 34: /* strid: ID */
#line 266 "camp.y"
{ (yyval.ps) = (yyvsp[0].ps); }
-#line 2030 "camp.tab.c"
+#line 2016 "camp.tab.c"
break;
case 35: /* strid: STRING */
#line 267 "camp.y"
{ (yyval.ps).pos = (yyvsp[0].stre)->getPos();
(yyval.ps).sym = symbol::literalTrans((yyvsp[0].stre)->getString()); }
-#line 2037 "camp.tab.c"
+#line 2023 "camp.tab.c"
break;
case 36: /* stridpair: ID */
#line 272 "camp.y"
{ (yyval.ip) = new idpair((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2043 "camp.tab.c"
+#line 2029 "camp.tab.c"
break;
case 37: /* stridpair: strid ID ID */
#line 274 "camp.y"
{ (yyval.ip) = new idpair((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].ps).sym , (yyvsp[0].ps).sym); }
-#line 2049 "camp.tab.c"
+#line 2035 "camp.tab.c"
break;
case 38: /* stridpairlist: stridpair */
#line 278 "camp.y"
{ (yyval.ipl) = new idpairlist(); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2055 "camp.tab.c"
+#line 2041 "camp.tab.c"
break;
case 39: /* stridpairlist: stridpairlist ',' stridpair */
#line 280 "camp.y"
{ (yyval.ipl) = (yyvsp[-2].ipl); (yyval.ipl)->add((yyvsp[0].ip)); }
-#line 2061 "camp.tab.c"
+#line 2047 "camp.tab.c"
break;
case 40: /* vardec: barevardec ';' */
#line 284 "camp.y"
{ (yyval.vd) = (yyvsp[-1].vd); }
-#line 2067 "camp.tab.c"
+#line 2053 "camp.tab.c"
break;
case 41: /* barevardec: type decidlist */
#line 288 "camp.y"
{ (yyval.vd) = new vardec((yyvsp[-1].t)->getPos(), (yyvsp[-1].t), (yyvsp[0].dil)); }
-#line 2073 "camp.tab.c"
+#line 2059 "camp.tab.c"
break;
case 42: /* type: celltype */
#line 292 "camp.y"
{ (yyval.t) = (yyvsp[0].t); }
-#line 2079 "camp.tab.c"
+#line 2065 "camp.tab.c"
break;
case 43: /* type: name dims */
#line 293 "camp.y"
{ (yyval.t) = new arrayTy((yyvsp[-1].n), (yyvsp[0].dim)); }
-#line 2085 "camp.tab.c"
+#line 2071 "camp.tab.c"
break;
case 44: /* celltype: name */
#line 297 "camp.y"
{ (yyval.t) = new nameTy((yyvsp[0].n)); }
-#line 2091 "camp.tab.c"
+#line 2077 "camp.tab.c"
break;
case 45: /* dims: '[' ']' */
#line 301 "camp.y"
{ (yyval.dim) = new dimensions((yyvsp[-1].pos)); }
-#line 2097 "camp.tab.c"
+#line 2083 "camp.tab.c"
break;
case 46: /* dims: dims '[' ']' */
#line 302 "camp.y"
{ (yyval.dim) = (yyvsp[-2].dim); (yyval.dim)->increase(); }
-#line 2103 "camp.tab.c"
+#line 2089 "camp.tab.c"
break;
case 47: /* dimexps: '[' exp ']' */
#line 306 "camp.y"
{ (yyval.elist) = new explist((yyvsp[-2].pos)); (yyval.elist)->add((yyvsp[-1].e)); }
-#line 2109 "camp.tab.c"
+#line 2095 "camp.tab.c"
break;
case 48: /* dimexps: dimexps '[' exp ']' */
#line 308 "camp.y"
{ (yyval.elist) = (yyvsp[-3].elist); (yyval.elist)->add((yyvsp[-1].e)); }
-#line 2115 "camp.tab.c"
+#line 2101 "camp.tab.c"
break;
case 49: /* decidlist: decid */
#line 312 "camp.y"
{ (yyval.dil) = new decidlist((yyvsp[0].di)->getPos()); (yyval.dil)->add((yyvsp[0].di)); }
-#line 2121 "camp.tab.c"
+#line 2107 "camp.tab.c"
break;
case 50: /* decidlist: decidlist ',' decid */
#line 314 "camp.y"
{ (yyval.dil) = (yyvsp[-2].dil); (yyval.dil)->add((yyvsp[0].di)); }
-#line 2127 "camp.tab.c"
+#line 2113 "camp.tab.c"
break;
case 51: /* decid: decidstart */
#line 318 "camp.y"
{ (yyval.di) = new decid((yyvsp[0].dis)->getPos(), (yyvsp[0].dis)); }
-#line 2133 "camp.tab.c"
+#line 2119 "camp.tab.c"
break;
case 52: /* decid: decidstart ASSIGN varinit */
#line 320 "camp.y"
{ (yyval.di) = new decid((yyvsp[-2].dis)->getPos(), (yyvsp[-2].dis), (yyvsp[0].vi)); }
-#line 2139 "camp.tab.c"
+#line 2125 "camp.tab.c"
break;
case 53: /* decidstart: ID */
#line 324 "camp.y"
{ (yyval.dis) = new decidstart((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2145 "camp.tab.c"
+#line 2131 "camp.tab.c"
break;
case 54: /* decidstart: ID dims */
#line 325 "camp.y"
{ (yyval.dis) = new decidstart((yyvsp[-1].ps).pos, (yyvsp[-1].ps).sym, (yyvsp[0].dim)); }
-#line 2151 "camp.tab.c"
+#line 2137 "camp.tab.c"
break;
case 55: /* decidstart: ID '(' ')' */
#line 326 "camp.y"
{ (yyval.dis) = new fundecidstart((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, 0,
new formals((yyvsp[-1].pos))); }
-#line 2158 "camp.tab.c"
+#line 2144 "camp.tab.c"
break;
case 56: /* decidstart: ID '(' formals ')' */
#line 329 "camp.y"
{ (yyval.dis) = new fundecidstart((yyvsp[-3].ps).pos, (yyvsp[-3].ps).sym, 0, (yyvsp[-1].fls)); }
-#line 2164 "camp.tab.c"
+#line 2150 "camp.tab.c"
break;
case 57: /* varinit: exp */
#line 333 "camp.y"
{ (yyval.vi) = (yyvsp[0].e); }
-#line 2170 "camp.tab.c"
+#line 2156 "camp.tab.c"
break;
case 58: /* varinit: arrayinit */
#line 334 "camp.y"
{ (yyval.vi) = (yyvsp[0].ai); }
-#line 2176 "camp.tab.c"
+#line 2162 "camp.tab.c"
break;
case 59: /* block: '{' bareblock '}' */
#line 339 "camp.y"
{ (yyval.b) = (yyvsp[-1].b); }
-#line 2182 "camp.tab.c"
+#line 2168 "camp.tab.c"
break;
case 60: /* arrayinit: '{' '}' */
#line 343 "camp.y"
{ (yyval.ai) = new arrayinit((yyvsp[-1].pos)); }
-#line 2188 "camp.tab.c"
+#line 2174 "camp.tab.c"
break;
case 61: /* arrayinit: '{' ELLIPSIS varinit '}' */
#line 345 "camp.y"
{ (yyval.ai) = new arrayinit((yyvsp[-3].pos)); (yyval.ai)->addRest((yyvsp[-1].vi)); }
-#line 2194 "camp.tab.c"
+#line 2180 "camp.tab.c"
break;
case 62: /* arrayinit: '{' basearrayinit '}' */
#line 347 "camp.y"
{ (yyval.ai) = (yyvsp[-1].ai); }
-#line 2200 "camp.tab.c"
+#line 2186 "camp.tab.c"
break;
case 63: /* arrayinit: '{' basearrayinit ELLIPSIS varinit '}' */
#line 349 "camp.y"
{ (yyval.ai) = (yyvsp[-3].ai); (yyval.ai)->addRest((yyvsp[-1].vi)); }
-#line 2206 "camp.tab.c"
+#line 2192 "camp.tab.c"
break;
case 64: /* basearrayinit: ',' */
#line 353 "camp.y"
{ (yyval.ai) = new arrayinit((yyvsp[0].pos)); }
-#line 2212 "camp.tab.c"
+#line 2198 "camp.tab.c"
break;
case 65: /* basearrayinit: varinits */
#line 354 "camp.y"
{ (yyval.ai) = (yyvsp[0].ai); }
-#line 2218 "camp.tab.c"
+#line 2204 "camp.tab.c"
break;
case 66: /* basearrayinit: varinits ',' */
#line 355 "camp.y"
{ (yyval.ai) = (yyvsp[-1].ai); }
-#line 2224 "camp.tab.c"
+#line 2210 "camp.tab.c"
break;
case 67: /* varinits: varinit */
#line 359 "camp.y"
{ (yyval.ai) = new arrayinit((yyvsp[0].vi)->getPos());
(yyval.ai)->add((yyvsp[0].vi));}
-#line 2231 "camp.tab.c"
+#line 2217 "camp.tab.c"
break;
case 68: /* varinits: varinits ',' varinit */
#line 362 "camp.y"
{ (yyval.ai) = (yyvsp[-2].ai); (yyval.ai)->add((yyvsp[0].vi)); }
-#line 2237 "camp.tab.c"
+#line 2223 "camp.tab.c"
break;
case 69: /* formals: formal */
#line 366 "camp.y"
{ (yyval.fls) = new formals((yyvsp[0].fl)->getPos()); (yyval.fls)->add((yyvsp[0].fl)); }
-#line 2243 "camp.tab.c"
+#line 2229 "camp.tab.c"
break;
case 70: /* formals: ELLIPSIS formal */
#line 367 "camp.y"
{ (yyval.fls) = new formals((yyvsp[-1].pos)); (yyval.fls)->addRest((yyvsp[0].fl)); }
-#line 2249 "camp.tab.c"
+#line 2235 "camp.tab.c"
break;
case 71: /* formals: formals ',' formal */
#line 369 "camp.y"
{ (yyval.fls) = (yyvsp[-2].fls); (yyval.fls)->add((yyvsp[0].fl)); }
-#line 2255 "camp.tab.c"
+#line 2241 "camp.tab.c"
break;
case 72: /* formals: formals ELLIPSIS formal */
#line 371 "camp.y"
{ (yyval.fls) = (yyvsp[-2].fls); (yyval.fls)->addRest((yyvsp[0].fl)); }
-#line 2261 "camp.tab.c"
+#line 2247 "camp.tab.c"
break;
case 73: /* explicitornot: EXPLICIT */
#line 375 "camp.y"
{ (yyval.boo) = true; }
-#line 2267 "camp.tab.c"
+#line 2253 "camp.tab.c"
break;
case 74: /* explicitornot: %empty */
#line 376 "camp.y"
{ (yyval.boo) = false; }
-#line 2273 "camp.tab.c"
+#line 2259 "camp.tab.c"
break;
case 75: /* formal: explicitornot type */
#line 381 "camp.y"
{ (yyval.fl) = new formal((yyvsp[0].t)->getPos(), (yyvsp[0].t), 0, 0, (yyvsp[-1].boo), 0); }
-#line 2279 "camp.tab.c"
+#line 2265 "camp.tab.c"
break;
case 76: /* formal: explicitornot type decidstart */
#line 383 "camp.y"
{ (yyval.fl) = new formal((yyvsp[-1].t)->getPos(), (yyvsp[-1].t), (yyvsp[0].dis), 0, (yyvsp[-2].boo), 0); }
-#line 2285 "camp.tab.c"
+#line 2271 "camp.tab.c"
break;
case 77: /* formal: explicitornot type decidstart ASSIGN varinit */
#line 385 "camp.y"
{ (yyval.fl) = new formal((yyvsp[-3].t)->getPos(), (yyvsp[-3].t), (yyvsp[-2].dis), (yyvsp[0].vi), (yyvsp[-4].boo), 0); }
-#line 2291 "camp.tab.c"
+#line 2277 "camp.tab.c"
break;
case 78: /* formal: explicitornot type ID decidstart */
#line 388 "camp.y"
{ bool k = checkKeyword((yyvsp[-1].ps).pos, (yyvsp[-1].ps).sym);
(yyval.fl) = new formal((yyvsp[-2].t)->getPos(), (yyvsp[-2].t), (yyvsp[0].dis), 0, (yyvsp[-3].boo), k); }
-#line 2298 "camp.tab.c"
+#line 2284 "camp.tab.c"
break;
case 79: /* formal: explicitornot type ID decidstart ASSIGN varinit */
#line 391 "camp.y"
{ bool k = checkKeyword((yyvsp[-3].ps).pos, (yyvsp[-3].ps).sym);
(yyval.fl) = new formal((yyvsp[-4].t)->getPos(), (yyvsp[-4].t), (yyvsp[-2].dis), (yyvsp[0].vi), (yyvsp[-5].boo), k); }
-#line 2305 "camp.tab.c"
+#line 2291 "camp.tab.c"
break;
case 80: /* fundec: type ID '(' ')' blockstm */
#line 397 "camp.y"
{ (yyval.d) = new fundec((yyvsp[-2].pos), (yyvsp[-4].t), (yyvsp[-3].ps).sym, new formals((yyvsp[-2].pos)), (yyvsp[0].s)); }
-#line 2311 "camp.tab.c"
+#line 2297 "camp.tab.c"
break;
case 81: /* fundec: type ID '(' formals ')' blockstm */
#line 399 "camp.y"
{ (yyval.d) = new fundec((yyvsp[-3].pos), (yyvsp[-5].t), (yyvsp[-4].ps).sym, (yyvsp[-2].fls), (yyvsp[0].s)); }
-#line 2317 "camp.tab.c"
+#line 2303 "camp.tab.c"
break;
case 82: /* typedec: STRUCT ID block */
#line 403 "camp.y"
{ (yyval.d) = new recorddec((yyvsp[-2].pos), (yyvsp[-1].ps).sym, (yyvsp[0].b)); }
-#line 2323 "camp.tab.c"
+#line 2309 "camp.tab.c"
break;
case 83: /* typedec: TYPEDEF vardec */
#line 404 "camp.y"
{ (yyval.d) = new typedec((yyvsp[-1].pos), (yyvsp[0].vd)); }
-#line 2329 "camp.tab.c"
+#line 2315 "camp.tab.c"
break;
case 84: /* slice: ':' */
#line 408 "camp.y"
{ (yyval.slice) = new slice((yyvsp[0].pos), 0, 0); }
-#line 2335 "camp.tab.c"
+#line 2321 "camp.tab.c"
break;
case 85: /* slice: exp ':' */
#line 409 "camp.y"
{ (yyval.slice) = new slice((yyvsp[0].pos), (yyvsp[-1].e), 0); }
-#line 2341 "camp.tab.c"
+#line 2327 "camp.tab.c"
break;
case 86: /* slice: ':' exp */
#line 410 "camp.y"
{ (yyval.slice) = new slice((yyvsp[-1].pos), 0, (yyvsp[0].e)); }
-#line 2347 "camp.tab.c"
+#line 2333 "camp.tab.c"
break;
case 87: /* slice: exp ':' exp */
#line 411 "camp.y"
{ (yyval.slice) = new slice((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
-#line 2353 "camp.tab.c"
+#line 2339 "camp.tab.c"
break;
case 88: /* value: value '.' ID */
#line 415 "camp.y"
{ (yyval.e) = new fieldExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].ps).sym); }
-#line 2359 "camp.tab.c"
+#line 2345 "camp.tab.c"
break;
case 89: /* value: name '[' exp ']' */
#line 416 "camp.y"
{ (yyval.e) = new subscriptExp((yyvsp[-2].pos),
new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)), (yyvsp[-1].e)); }
-#line 2366 "camp.tab.c"
+#line 2352 "camp.tab.c"
break;
case 90: /* value: value '[' exp ']' */
#line 418 "camp.y"
{ (yyval.e) = new subscriptExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].e)); }
-#line 2372 "camp.tab.c"
+#line 2358 "camp.tab.c"
break;
case 91: /* value: name '[' slice ']' */
#line 419 "camp.y"
{ (yyval.e) = new sliceExp((yyvsp[-2].pos),
new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)), (yyvsp[-1].slice)); }
-#line 2379 "camp.tab.c"
+#line 2365 "camp.tab.c"
break;
case 92: /* value: value '[' slice ']' */
#line 421 "camp.y"
{ (yyval.e) = new sliceExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].slice)); }
-#line 2385 "camp.tab.c"
+#line 2371 "camp.tab.c"
break;
case 93: /* value: name '(' ')' */
@@ -2389,7 +2375,7 @@ yyreduce:
{ (yyval.e) = new callExp((yyvsp[-1].pos),
new nameExp((yyvsp[-2].n)->getPos(), (yyvsp[-2].n)),
new arglist()); }
-#line 2393 "camp.tab.c"
+#line 2379 "camp.tab.c"
break;
case 94: /* value: name '(' arglist ')' */
@@ -2397,301 +2383,301 @@ yyreduce:
{ (yyval.e) = new callExp((yyvsp[-2].pos),
new nameExp((yyvsp[-3].n)->getPos(), (yyvsp[-3].n)),
(yyvsp[-1].alist)); }
-#line 2401 "camp.tab.c"
+#line 2387 "camp.tab.c"
break;
case 95: /* value: value '(' ')' */
#line 429 "camp.y"
{ (yyval.e) = new callExp((yyvsp[-1].pos), (yyvsp[-2].e), new arglist()); }
-#line 2407 "camp.tab.c"
+#line 2393 "camp.tab.c"
break;
case 96: /* value: value '(' arglist ')' */
#line 431 "camp.y"
{ (yyval.e) = new callExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].alist)); }
-#line 2413 "camp.tab.c"
+#line 2399 "camp.tab.c"
break;
case 97: /* value: '(' exp ')' */
#line 433 "camp.y"
{ (yyval.e) = (yyvsp[-1].e); }
-#line 2419 "camp.tab.c"
+#line 2405 "camp.tab.c"
break;
case 98: /* value: '(' name ')' */
#line 435 "camp.y"
{ (yyval.e) = new nameExp((yyvsp[-1].n)->getPos(), (yyvsp[-1].n)); }
-#line 2425 "camp.tab.c"
+#line 2411 "camp.tab.c"
break;
case 99: /* value: THIS */
#line 436 "camp.y"
{ (yyval.e) = new thisExp((yyvsp[0].pos)); }
-#line 2431 "camp.tab.c"
+#line 2417 "camp.tab.c"
break;
case 100: /* argument: exp */
#line 440 "camp.y"
{ (yyval.arg).name = symbol::nullsym; (yyval.arg).val=(yyvsp[0].e); }
-#line 2437 "camp.tab.c"
+#line 2423 "camp.tab.c"
break;
case 101: /* argument: ID ASSIGN exp */
#line 441 "camp.y"
{ (yyval.arg).name = (yyvsp[-2].ps).sym; (yyval.arg).val=(yyvsp[0].e); }
-#line 2443 "camp.tab.c"
+#line 2429 "camp.tab.c"
break;
case 102: /* arglist: argument */
#line 445 "camp.y"
{ (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[0].arg)); }
-#line 2449 "camp.tab.c"
+#line 2435 "camp.tab.c"
break;
case 103: /* arglist: ELLIPSIS argument */
#line 447 "camp.y"
{ (yyval.alist) = new arglist(); (yyval.alist)->addRest((yyvsp[0].arg)); }
-#line 2455 "camp.tab.c"
+#line 2441 "camp.tab.c"
break;
case 104: /* arglist: arglist ',' argument */
#line 449 "camp.y"
{ (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->add((yyvsp[0].arg)); }
-#line 2461 "camp.tab.c"
+#line 2447 "camp.tab.c"
break;
case 105: /* arglist: arglist ELLIPSIS argument */
#line 451 "camp.y"
{ (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->addRest((yyvsp[0].arg)); }
-#line 2467 "camp.tab.c"
+#line 2453 "camp.tab.c"
break;
case 106: /* tuple: exp ',' exp */
#line 456 "camp.y"
{ (yyval.alist) = new arglist(); (yyval.alist)->add((yyvsp[-2].e)); (yyval.alist)->add((yyvsp[0].e)); }
-#line 2473 "camp.tab.c"
+#line 2459 "camp.tab.c"
break;
case 107: /* tuple: tuple ',' exp */
#line 457 "camp.y"
{ (yyval.alist) = (yyvsp[-2].alist); (yyval.alist)->add((yyvsp[0].e)); }
-#line 2479 "camp.tab.c"
+#line 2465 "camp.tab.c"
break;
case 108: /* exp: name */
#line 461 "camp.y"
{ (yyval.e) = new nameExp((yyvsp[0].n)->getPos(), (yyvsp[0].n)); }
-#line 2485 "camp.tab.c"
+#line 2471 "camp.tab.c"
break;
case 109: /* exp: value */
#line 462 "camp.y"
{ (yyval.e) = (yyvsp[0].e); }
-#line 2491 "camp.tab.c"
+#line 2477 "camp.tab.c"
break;
case 110: /* exp: LIT */
#line 463 "camp.y"
{ (yyval.e) = (yyvsp[0].e); }
-#line 2497 "camp.tab.c"
+#line 2483 "camp.tab.c"
break;
case 111: /* exp: STRING */
#line 464 "camp.y"
{ (yyval.e) = (yyvsp[0].stre); }
-#line 2503 "camp.tab.c"
+#line 2489 "camp.tab.c"
break;
case 112: /* exp: LIT exp */
#line 466 "camp.y"
{ (yyval.e) = new scaleExp((yyvsp[-1].e)->getPos(), (yyvsp[-1].e), (yyvsp[0].e)); }
-#line 2509 "camp.tab.c"
+#line 2495 "camp.tab.c"
break;
case 113: /* exp: '(' name ')' exp */
#line 468 "camp.y"
{ (yyval.e) = new castExp((yyvsp[-2].n)->getPos(), new nameTy((yyvsp[-2].n)), (yyvsp[0].e)); }
-#line 2515 "camp.tab.c"
+#line 2501 "camp.tab.c"
break;
case 114: /* exp: '(' name dims ')' exp */
#line 470 "camp.y"
{ (yyval.e) = new castExp((yyvsp[-3].n)->getPos(), new arrayTy((yyvsp[-3].n), (yyvsp[-2].dim)), (yyvsp[0].e)); }
-#line 2521 "camp.tab.c"
+#line 2507 "camp.tab.c"
break;
case 115: /* exp: '+' exp */
#line 472 "camp.y"
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2527 "camp.tab.c"
+#line 2513 "camp.tab.c"
break;
case 116: /* exp: '-' exp */
#line 474 "camp.y"
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2533 "camp.tab.c"
+#line 2519 "camp.tab.c"
break;
case 117: /* exp: OPERATOR exp */
#line 475 "camp.y"
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2539 "camp.tab.c"
+#line 2525 "camp.tab.c"
break;
case 118: /* exp: exp '+' exp */
#line 476 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2545 "camp.tab.c"
+#line 2531 "camp.tab.c"
break;
case 119: /* exp: exp '-' exp */
#line 477 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2551 "camp.tab.c"
+#line 2537 "camp.tab.c"
break;
case 120: /* exp: exp '*' exp */
#line 478 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2557 "camp.tab.c"
+#line 2543 "camp.tab.c"
break;
case 121: /* exp: exp '/' exp */
#line 479 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2563 "camp.tab.c"
+#line 2549 "camp.tab.c"
break;
case 122: /* exp: exp '%' exp */
#line 480 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2569 "camp.tab.c"
+#line 2555 "camp.tab.c"
break;
case 123: /* exp: exp '#' exp */
#line 481 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2575 "camp.tab.c"
+#line 2561 "camp.tab.c"
break;
case 124: /* exp: exp '^' exp */
#line 482 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2581 "camp.tab.c"
+#line 2567 "camp.tab.c"
break;
case 125: /* exp: exp LT exp */
#line 483 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2587 "camp.tab.c"
+#line 2573 "camp.tab.c"
break;
case 126: /* exp: exp LE exp */
#line 484 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2593 "camp.tab.c"
+#line 2579 "camp.tab.c"
break;
case 127: /* exp: exp GT exp */
#line 485 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2599 "camp.tab.c"
+#line 2585 "camp.tab.c"
break;
case 128: /* exp: exp GE exp */
#line 486 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2605 "camp.tab.c"
+#line 2591 "camp.tab.c"
break;
case 129: /* exp: exp EQ exp */
#line 487 "camp.y"
{ (yyval.e) = new equalityExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2611 "camp.tab.c"
+#line 2597 "camp.tab.c"
break;
case 130: /* exp: exp NEQ exp */
#line 488 "camp.y"
{ (yyval.e) = new equalityExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2617 "camp.tab.c"
+#line 2603 "camp.tab.c"
break;
case 131: /* exp: exp CAND exp */
#line 489 "camp.y"
{ (yyval.e) = new andExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2623 "camp.tab.c"
+#line 2609 "camp.tab.c"
break;
case 132: /* exp: exp COR exp */
#line 490 "camp.y"
{ (yyval.e) = new orExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2629 "camp.tab.c"
+#line 2615 "camp.tab.c"
break;
case 133: /* exp: exp CARETS exp */
#line 491 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2635 "camp.tab.c"
+#line 2621 "camp.tab.c"
break;
case 134: /* exp: exp AMPERSAND exp */
#line 492 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2641 "camp.tab.c"
+#line 2627 "camp.tab.c"
break;
case 135: /* exp: exp BAR exp */
#line 493 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2647 "camp.tab.c"
+#line 2633 "camp.tab.c"
break;
case 136: /* exp: exp OPERATOR exp */
#line 494 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2653 "camp.tab.c"
+#line 2639 "camp.tab.c"
break;
case 137: /* exp: exp INCR exp */
#line 495 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2659 "camp.tab.c"
+#line 2645 "camp.tab.c"
break;
case 138: /* exp: NEW celltype */
#line 497 "camp.y"
{ (yyval.e) = new newRecordExp((yyvsp[-1].pos), (yyvsp[0].t)); }
-#line 2665 "camp.tab.c"
+#line 2651 "camp.tab.c"
break;
case 139: /* exp: NEW celltype dimexps */
#line 499 "camp.y"
{ (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), (yyvsp[0].elist), 0, 0); }
-#line 2671 "camp.tab.c"
+#line 2657 "camp.tab.c"
break;
case 140: /* exp: NEW celltype dimexps dims */
#line 501 "camp.y"
{ (yyval.e) = new newArrayExp((yyvsp[-3].pos), (yyvsp[-2].t), (yyvsp[-1].elist), (yyvsp[0].dim), 0); }
-#line 2677 "camp.tab.c"
+#line 2663 "camp.tab.c"
break;
case 141: /* exp: NEW celltype dims */
#line 503 "camp.y"
{ (yyval.e) = new newArrayExp((yyvsp[-2].pos), (yyvsp[-1].t), 0, (yyvsp[0].dim), 0); }
-#line 2683 "camp.tab.c"
+#line 2669 "camp.tab.c"
break;
case 142: /* exp: NEW celltype dims arrayinit */
#line 505 "camp.y"
{ (yyval.e) = new newArrayExp((yyvsp[-3].pos), (yyvsp[-2].t), 0, (yyvsp[-1].dim), (yyvsp[0].ai)); }
-#line 2689 "camp.tab.c"
+#line 2675 "camp.tab.c"
break;
case 143: /* exp: NEW celltype '(' ')' blockstm */
#line 507 "camp.y"
{ (yyval.e) = new newFunctionExp((yyvsp[-4].pos), (yyvsp[-3].t), new formals((yyvsp[-2].pos)), (yyvsp[0].s)); }
-#line 2695 "camp.tab.c"
+#line 2681 "camp.tab.c"
break;
case 144: /* exp: NEW celltype dims '(' ')' blockstm */
@@ -2700,13 +2686,13 @@ yyreduce:
new arrayTy((yyvsp[-4].t)->getPos(), (yyvsp[-4].t), (yyvsp[-3].dim)),
new formals((yyvsp[-2].pos)),
(yyvsp[0].s)); }
-#line 2704 "camp.tab.c"
+#line 2690 "camp.tab.c"
break;
case 145: /* exp: NEW celltype '(' formals ')' blockstm */
#line 514 "camp.y"
{ (yyval.e) = new newFunctionExp((yyvsp[-5].pos), (yyvsp[-4].t), (yyvsp[-2].fls), (yyvsp[0].s)); }
-#line 2710 "camp.tab.c"
+#line 2696 "camp.tab.c"
break;
case 146: /* exp: NEW celltype dims '(' formals ')' blockstm */
@@ -2715,31 +2701,31 @@ yyreduce:
new arrayTy((yyvsp[-5].t)->getPos(), (yyvsp[-5].t), (yyvsp[-4].dim)),
(yyvsp[-2].fls),
(yyvsp[0].s)); }
-#line 2719 "camp.tab.c"
+#line 2705 "camp.tab.c"
break;
case 147: /* exp: exp '?' exp ':' exp */
#line 521 "camp.y"
{ (yyval.e) = new conditionalExp((yyvsp[-3].pos), (yyvsp[-4].e), (yyvsp[-2].e), (yyvsp[0].e)); }
-#line 2725 "camp.tab.c"
+#line 2711 "camp.tab.c"
break;
case 148: /* exp: exp ASSIGN exp */
#line 522 "camp.y"
{ (yyval.e) = new assignExp((yyvsp[-1].pos), (yyvsp[-2].e), (yyvsp[0].e)); }
-#line 2731 "camp.tab.c"
+#line 2717 "camp.tab.c"
break;
case 149: /* exp: '(' tuple ')' */
#line 523 "camp.y"
{ (yyval.e) = new callExp((yyvsp[-2].pos), new nameExp((yyvsp[-2].pos), SYM_TUPLE), (yyvsp[-1].alist)); }
-#line 2737 "camp.tab.c"
+#line 2723 "camp.tab.c"
break;
case 150: /* exp: exp join exp */
#line 525 "camp.y"
{ (yyvsp[-1].j)->pushFront((yyvsp[-2].e)); (yyvsp[-1].j)->pushBack((yyvsp[0].e)); (yyval.e) = (yyvsp[-1].j); }
-#line 2743 "camp.tab.c"
+#line 2729 "camp.tab.c"
break;
case 151: /* exp: exp dir */
@@ -2749,314 +2735,314 @@ yyreduce:
new joinExp((yyvsp[0].se)->getPos(), SYM_DOTS);
(yyval.e)=jexp;
jexp->pushBack((yyvsp[-1].e)); jexp->pushBack((yyvsp[0].se)); }
-#line 2753 "camp.tab.c"
+#line 2739 "camp.tab.c"
break;
case 152: /* exp: INCR exp */
#line 533 "camp.y"
{ (yyval.e) = new prefixExp((yyvsp[-1].ps).pos, (yyvsp[0].e), SYM_PLUS); }
-#line 2759 "camp.tab.c"
+#line 2745 "camp.tab.c"
break;
case 153: /* exp: DASHES exp */
#line 535 "camp.y"
{ (yyval.e) = new prefixExp((yyvsp[-1].ps).pos, (yyvsp[0].e), SYM_MINUS); }
-#line 2765 "camp.tab.c"
+#line 2751 "camp.tab.c"
break;
case 154: /* exp: exp INCR */
#line 538 "camp.y"
{ (yyval.e) = new postfixExp((yyvsp[0].ps).pos, (yyvsp[-1].e), SYM_PLUS); }
-#line 2771 "camp.tab.c"
+#line 2757 "camp.tab.c"
break;
case 155: /* exp: exp SELFOP exp */
#line 539 "camp.y"
{ (yyval.e) = new selfExp((yyvsp[-1].ps).pos, (yyvsp[-2].e), (yyvsp[-1].ps).sym, (yyvsp[0].e)); }
-#line 2777 "camp.tab.c"
+#line 2763 "camp.tab.c"
break;
case 156: /* exp: QUOTE '{' fileblock '}' */
#line 541 "camp.y"
{ (yyval.e) = new quoteExp((yyvsp[-3].pos), (yyvsp[-1].b)); }
-#line 2783 "camp.tab.c"
+#line 2769 "camp.tab.c"
break;
case 157: /* join: DASHES */
#line 547 "camp.y"
{ (yyval.j) = new joinExp((yyvsp[0].ps).pos,(yyvsp[0].ps).sym); }
-#line 2789 "camp.tab.c"
+#line 2775 "camp.tab.c"
break;
case 158: /* join: basicjoin */
#line 549 "camp.y"
{ (yyval.j) = (yyvsp[0].j); }
-#line 2795 "camp.tab.c"
+#line 2781 "camp.tab.c"
break;
case 159: /* join: dir basicjoin */
#line 551 "camp.y"
{ (yyvsp[-1].se)->setSide(camp::OUT);
(yyval.j) = (yyvsp[0].j); (yyval.j)->pushFront((yyvsp[-1].se)); }
-#line 2802 "camp.tab.c"
+#line 2788 "camp.tab.c"
break;
case 160: /* join: basicjoin dir */
#line 554 "camp.y"
{ (yyvsp[0].se)->setSide(camp::IN);
(yyval.j) = (yyvsp[-1].j); (yyval.j)->pushBack((yyvsp[0].se)); }
-#line 2809 "camp.tab.c"
+#line 2795 "camp.tab.c"
break;
case 161: /* join: dir basicjoin dir */
#line 557 "camp.y"
{ (yyvsp[-2].se)->setSide(camp::OUT); (yyvsp[0].se)->setSide(camp::IN);
(yyval.j) = (yyvsp[-1].j); (yyval.j)->pushFront((yyvsp[-2].se)); (yyval.j)->pushBack((yyvsp[0].se)); }
-#line 2816 "camp.tab.c"
+#line 2802 "camp.tab.c"
break;
case 162: /* dir: '{' CURL exp '}' */
#line 562 "camp.y"
{ (yyval.se) = new specExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym, (yyvsp[-1].e)); }
-#line 2822 "camp.tab.c"
+#line 2808 "camp.tab.c"
break;
case 163: /* dir: '{' exp '}' */
#line 563 "camp.y"
{ (yyval.se) = new specExp((yyvsp[-2].pos), symbol::opTrans("spec"), (yyvsp[-1].e)); }
-#line 2828 "camp.tab.c"
+#line 2814 "camp.tab.c"
break;
case 164: /* dir: '{' exp ',' exp '}' */
#line 565 "camp.y"
{ (yyval.se) = new specExp((yyvsp[-4].pos), symbol::opTrans("spec"),
new pairExp((yyvsp[-2].pos), (yyvsp[-3].e), (yyvsp[-1].e))); }
-#line 2835 "camp.tab.c"
+#line 2821 "camp.tab.c"
break;
case 165: /* dir: '{' exp ',' exp ',' exp '}' */
#line 568 "camp.y"
{ (yyval.se) = new specExp((yyvsp[-6].pos), symbol::opTrans("spec"),
new tripleExp((yyvsp[-4].pos), (yyvsp[-5].e), (yyvsp[-3].e), (yyvsp[-1].e))); }
-#line 2842 "camp.tab.c"
+#line 2828 "camp.tab.c"
break;
case 166: /* basicjoin: DOTS */
#line 573 "camp.y"
{ (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2848 "camp.tab.c"
+#line 2834 "camp.tab.c"
break;
case 167: /* basicjoin: DOTS tension DOTS */
#line 575 "camp.y"
{ (yyval.j) = new joinExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym); (yyval.j)->pushBack((yyvsp[-1].e)); }
-#line 2854 "camp.tab.c"
+#line 2840 "camp.tab.c"
break;
case 168: /* basicjoin: DOTS controls DOTS */
#line 577 "camp.y"
{ (yyval.j) = new joinExp((yyvsp[-2].ps).pos, (yyvsp[-2].ps).sym); (yyval.j)->pushBack((yyvsp[-1].e)); }
-#line 2860 "camp.tab.c"
+#line 2846 "camp.tab.c"
break;
case 169: /* basicjoin: COLONS */
#line 578 "camp.y"
{ (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2866 "camp.tab.c"
+#line 2852 "camp.tab.c"
break;
case 170: /* basicjoin: LONGDASH */
#line 579 "camp.y"
{ (yyval.j) = new joinExp((yyvsp[0].ps).pos, (yyvsp[0].ps).sym); }
-#line 2872 "camp.tab.c"
+#line 2858 "camp.tab.c"
break;
case 171: /* tension: TENSION exp */
#line 583 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym,
new booleanExp((yyvsp[-1].ps).pos, false)); }
-#line 2879 "camp.tab.c"
+#line 2865 "camp.tab.c"
break;
case 172: /* tension: TENSION exp AND exp */
#line 586 "camp.y"
{ (yyval.e) = new ternaryExp((yyvsp[-3].ps).pos, (yyvsp[-2].e), (yyvsp[-3].ps).sym, (yyvsp[0].e),
new booleanExp((yyvsp[-3].ps).pos, false)); }
-#line 2886 "camp.tab.c"
+#line 2872 "camp.tab.c"
break;
case 173: /* tension: TENSION ATLEAST exp */
#line 589 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-2].ps).pos, (yyvsp[0].e), (yyvsp[-2].ps).sym,
new booleanExp((yyvsp[-1].ps).pos, true)); }
-#line 2893 "camp.tab.c"
+#line 2879 "camp.tab.c"
break;
case 174: /* tension: TENSION ATLEAST exp AND exp */
#line 592 "camp.y"
{ (yyval.e) = new ternaryExp((yyvsp[-4].ps).pos, (yyvsp[-2].e), (yyvsp[-4].ps).sym, (yyvsp[0].e),
new booleanExp((yyvsp[-3].ps).pos, true)); }
-#line 2900 "camp.tab.c"
+#line 2886 "camp.tab.c"
break;
case 175: /* controls: CONTROLS exp */
#line 597 "camp.y"
{ (yyval.e) = new unaryExp((yyvsp[-1].ps).pos, (yyvsp[0].e), (yyvsp[-1].ps).sym); }
-#line 2906 "camp.tab.c"
+#line 2892 "camp.tab.c"
break;
case 176: /* controls: CONTROLS exp AND exp */
#line 599 "camp.y"
{ (yyval.e) = new binaryExp((yyvsp[-3].ps).pos, (yyvsp[-2].e), (yyvsp[-3].ps).sym, (yyvsp[0].e)); }
-#line 2912 "camp.tab.c"
+#line 2898 "camp.tab.c"
break;
case 177: /* stm: ';' */
#line 603 "camp.y"
{ (yyval.s) = new emptyStm((yyvsp[0].pos)); }
-#line 2918 "camp.tab.c"
+#line 2904 "camp.tab.c"
break;
case 178: /* stm: blockstm */
#line 604 "camp.y"
{ (yyval.s) = (yyvsp[0].s); }
-#line 2924 "camp.tab.c"
+#line 2910 "camp.tab.c"
break;
case 179: /* stm: stmexp ';' */
#line 605 "camp.y"
{ (yyval.s) = (yyvsp[-1].s); }
-#line 2930 "camp.tab.c"
+#line 2916 "camp.tab.c"
break;
case 180: /* stm: IF '(' exp ')' stm */
#line 607 "camp.y"
{ (yyval.s) = new ifStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
-#line 2936 "camp.tab.c"
+#line 2922 "camp.tab.c"
break;
case 181: /* stm: IF '(' exp ')' stm ELSE stm */
#line 609 "camp.y"
{ (yyval.s) = new ifStm((yyvsp[-6].pos), (yyvsp[-4].e), (yyvsp[-2].s), (yyvsp[0].s)); }
-#line 2942 "camp.tab.c"
+#line 2928 "camp.tab.c"
break;
case 182: /* stm: WHILE '(' exp ')' stm */
#line 611 "camp.y"
{ (yyval.s) = new whileStm((yyvsp[-4].pos), (yyvsp[-2].e), (yyvsp[0].s)); }
-#line 2948 "camp.tab.c"
+#line 2934 "camp.tab.c"
break;
case 183: /* stm: DO stm WHILE '(' exp ')' ';' */
#line 613 "camp.y"
{ (yyval.s) = new doStm((yyvsp[-6].pos), (yyvsp[-5].s), (yyvsp[-2].e)); }
-#line 2954 "camp.tab.c"
+#line 2940 "camp.tab.c"
break;
case 184: /* stm: FOR '(' forinit ';' fortest ';' forupdate ')' stm */
#line 615 "camp.y"
{ (yyval.s) = new forStm((yyvsp[-8].pos), (yyvsp[-6].run), (yyvsp[-4].e), (yyvsp[-2].sel), (yyvsp[0].s)); }
-#line 2960 "camp.tab.c"
+#line 2946 "camp.tab.c"
break;
case 185: /* stm: FOR '(' type ID ':' exp ')' stm */
#line 617 "camp.y"
{ (yyval.s) = new extendedForStm((yyvsp[-7].pos), (yyvsp[-5].t), (yyvsp[-4].ps).sym, (yyvsp[-2].e), (yyvsp[0].s)); }
-#line 2966 "camp.tab.c"
+#line 2952 "camp.tab.c"
break;
case 186: /* stm: BREAK ';' */
#line 618 "camp.y"
{ (yyval.s) = new breakStm((yyvsp[-1].pos)); }
-#line 2972 "camp.tab.c"
+#line 2958 "camp.tab.c"
break;
case 187: /* stm: CONTINUE ';' */
#line 619 "camp.y"
{ (yyval.s) = new continueStm((yyvsp[-1].pos)); }
-#line 2978 "camp.tab.c"
+#line 2964 "camp.tab.c"
break;
case 188: /* stm: RETURN_ ';' */
#line 620 "camp.y"
{ (yyval.s) = new returnStm((yyvsp[-1].pos)); }
-#line 2984 "camp.tab.c"
+#line 2970 "camp.tab.c"
break;
case 189: /* stm: RETURN_ exp ';' */
#line 621 "camp.y"
{ (yyval.s) = new returnStm((yyvsp[-2].pos), (yyvsp[-1].e)); }
-#line 2990 "camp.tab.c"
+#line 2976 "camp.tab.c"
break;
case 190: /* stmexp: exp */
#line 625 "camp.y"
{ (yyval.s) = new expStm((yyvsp[0].e)->getPos(), (yyvsp[0].e)); }
-#line 2996 "camp.tab.c"
+#line 2982 "camp.tab.c"
break;
case 191: /* blockstm: block */
#line 629 "camp.y"
{ (yyval.s) = new blockStm((yyvsp[0].b)->getPos(), (yyvsp[0].b)); }
-#line 3002 "camp.tab.c"
+#line 2988 "camp.tab.c"
break;
case 192: /* forinit: %empty */
#line 633 "camp.y"
{ (yyval.run) = 0; }
-#line 3008 "camp.tab.c"
+#line 2994 "camp.tab.c"
break;
case 193: /* forinit: stmexplist */
#line 634 "camp.y"
{ (yyval.run) = (yyvsp[0].sel); }
-#line 3014 "camp.tab.c"
+#line 3000 "camp.tab.c"
break;
case 194: /* forinit: barevardec */
#line 635 "camp.y"
{ (yyval.run) = (yyvsp[0].vd); }
-#line 3020 "camp.tab.c"
+#line 3006 "camp.tab.c"
break;
case 195: /* fortest: %empty */
#line 639 "camp.y"
{ (yyval.e) = 0; }
-#line 3026 "camp.tab.c"
+#line 3012 "camp.tab.c"
break;
case 196: /* fortest: exp */
#line 640 "camp.y"
{ (yyval.e) = (yyvsp[0].e); }
-#line 3032 "camp.tab.c"
+#line 3018 "camp.tab.c"
break;
case 197: /* forupdate: %empty */
#line 644 "camp.y"
{ (yyval.sel) = 0; }
-#line 3038 "camp.tab.c"
+#line 3024 "camp.tab.c"
break;
case 198: /* forupdate: stmexplist */
#line 645 "camp.y"
{ (yyval.sel) = (yyvsp[0].sel); }
-#line 3044 "camp.tab.c"
+#line 3030 "camp.tab.c"
break;
case 199: /* stmexplist: stmexp */
#line 649 "camp.y"
{ (yyval.sel) = new stmExpList((yyvsp[0].s)->getPos()); (yyval.sel)->add((yyvsp[0].s)); }
-#line 3050 "camp.tab.c"
+#line 3036 "camp.tab.c"
break;
case 200: /* stmexplist: stmexplist ',' stmexp */
#line 651 "camp.y"
{ (yyval.sel) = (yyvsp[-2].sel); (yyval.sel)->add((yyvsp[0].s)); }
-#line 3056 "camp.tab.c"
+#line 3042 "camp.tab.c"
break;
-#line 3060 "camp.tab.c"
+#line 3046 "camp.tab.c"
default: break;
}
@@ -3138,6 +3124,7 @@ yyerrorlab:
label yyerrorlab therefore never appears in user code. */
if (0)
YYERROR;
+ ++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
@@ -3198,7 +3185,7 @@ yyerrlab1:
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
- goto yyreturn;
+ goto yyreturnlab;
/*-----------------------------------.
@@ -3206,24 +3193,22 @@ yyacceptlab:
`-----------------------------------*/
yyabortlab:
yyresult = 1;
- goto yyreturn;
+ goto yyreturnlab;
-#if !defined yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
+`-----------------------------------------------------------*/
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
- goto yyreturn;
-#endif
+ goto yyreturnlab;
-/*-------------------------------------------------------.
-| yyreturn -- parsing is finished, clean up and return. |
-`-------------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return. |
+`----------------------------------------------------------*/
+yyreturnlab:
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
diff --git a/Build/source/utils/asymptote/camp.tab.h b/Build/source/utils/asymptote/camp.tab.h
index 6ba33e85fb7..48d41824e8b 100644
--- a/Build/source/utils/asymptote/camp.tab.h
+++ b/Build/source/utils/asymptote/camp.tab.h
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.7.6. */
+/* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison interface for Yacc-like parsers in C
@@ -175,6 +175,8 @@ typedef union YYSTYPE YYSTYPE;
extern YYSTYPE yylval;
+
int yyparse (void);
+
#endif /* !YY_YY_CAMP_TAB_H_INCLUDED */
diff --git a/Build/source/utils/asymptote/config.guess b/Build/source/utils/asymptote/config.guess
index 69188da73d7..5fbea7acedd 100755
--- a/Build/source/utils/asymptote/config.guess
+++ b/Build/source/utils/asymptote/config.guess
@@ -1,14 +1,12 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2023 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-# shellcheck disable=SC2006,SC2268 # see below for rationale
-
-timestamp='2023-01-01'
+timestamp='2018-03-08'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -29,19 +27,11 @@ timestamp='2023-01-01'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.
-# The "shellcheck disable" line above the timestamp inhibits complaints
-# about features and limitations of the classic Bourne shell that were
-# superseded or lifted in POSIX. However, this script identifies a wide
-# variety of pre-POSIX systems that do not have POSIX shells at all, and
-# even some reasonably current systems (Solaris 10 as case-in-point) still
-# have a pre-POSIX /bin/sh.
-
-
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -60,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -94,8 +84,7 @@ if test $# != 0; then
exit 1
fi
-# Just in case it came from the environment.
-GUESS=
+trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
@@ -107,90 +96,73 @@ GUESS=
# Portable tmp directory creation inspired by the Autoconf team.
-tmp=
-# shellcheck disable=SC2172
-trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
-
-set_cc_for_build() {
- # prevent multiple calls if $tmp is already set
- test "$tmp" && return 0
- : "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039,SC3028
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
- dummy=$tmp/dummy
- case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
- ,,) echo "int x;" > "$dummy.c"
- for driver in cc gcc c89 c99 ; do
- if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD=$driver
- break
- fi
- done
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
- esac
-}
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > "$dummy.c" ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if test -f /.attbin/uname ; then
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case $UNAME_SYSTEM in
+case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
- LIBC=unknown
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
- set_cc_for_build
+ eval "$set_cc_for_build"
cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #elif defined(__GLIBC__)
- LIBC=gnu
#else
- #include <stdarg.h>
- /* First heuristic to detect musl libc. */
- #ifdef __DEFINED_va_list
- LIBC=musl
- #endif
+ LIBC=gnu
#endif
EOF
- cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
- eval "$cc_set_libc"
-
- # Second heuristic to detect musl libc.
- if [ "$LIBC" = unknown ] &&
- command -v ldd >/dev/null &&
- ldd --version 2>&1 | grep -q ^musl; then
- LIBC=musl
- fi
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- if [ "$LIBC" = unknown ]; then
- LIBC=gnu
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -202,12 +174,12 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
- /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
echo unknown)`
- case $UNAME_MACHINE_ARCH in
- aarch64eb) machine=aarch64_be-unknown ;;
+ case "$UNAME_MACHINE_ARCH" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
@@ -216,18 +188,18 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
earmv*)
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine=${arch}${endian}-unknown
+ machine="${arch}${endian}"-unknown
;;
- *) machine=$UNAME_MACHINE_ARCH-unknown ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case $UNAME_MACHINE_ARCH in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- set_cc_for_build
+ eval "$set_cc_for_build"
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -243,7 +215,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
;;
esac
# Determine ABI tags.
- case $UNAME_MACHINE_ARCH in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -254,7 +226,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case $UNAME_VERSION in
+ case "$UNAME_VERSION" in
Debian*)
release='-gnu'
;;
@@ -265,57 +237,45 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- GUESS=$machine-${os}${release}${abi-}
- ;;
+ echo "$machine-${os}${release}${abi}"
+ exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
- ;;
- *:SecBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
- GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
+ exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+ exit ;;
*:MidnightBSD:*:*)
- GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
+ exit ;;
*:ekkoBSD:*:*)
- GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
+ exit ;;
*:SolidBSD:*:*)
- GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
- ;;
- *:OS108:*:*)
- GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
+ exit ;;
macppc:MirBSD:*:*)
- GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
- ;;
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
+ exit ;;
*:MirBSD:*:*)
- GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
+ exit ;;
*:Sortix:*:*)
- GUESS=$UNAME_MACHINE-unknown-sortix
- ;;
- *:Twizzler:*:*)
- GUESS=$UNAME_MACHINE-unknown-twizzler
- ;;
+ echo "$UNAME_MACHINE"-unknown-sortix
+ exit ;;
*:Redox:*:*)
- GUESS=$UNAME_MACHINE-unknown-redox
- ;;
+ echo "$UNAME_MACHINE"-unknown-redox
+ exit ;;
mips:OSF1:*.*)
- GUESS=mips-dec-osf1
- ;;
+ echo mips-dec-osf1
+ exit ;;
alpha:OSF1:*:*)
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -329,7 +289,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case $ALPHA_CPU_TYPE in
+ case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
@@ -366,121 +326,117 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
- GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
- ;;
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
Amiga*:UNIX_System_V:4.0:*)
- GUESS=m68k-unknown-sysv4
- ;;
+ echo m68k-unknown-sysv4
+ exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
- GUESS=$UNAME_MACHINE-unknown-amigaos
- ;;
+ echo "$UNAME_MACHINE"-unknown-amigaos
+ exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
- GUESS=$UNAME_MACHINE-unknown-morphos
- ;;
+ echo "$UNAME_MACHINE"-unknown-morphos
+ exit ;;
*:OS/390:*:*)
- GUESS=i370-ibm-openedition
- ;;
+ echo i370-ibm-openedition
+ exit ;;
*:z/VM:*:*)
- GUESS=s390-ibm-zvmoe
- ;;
+ echo s390-ibm-zvmoe
+ exit ;;
*:OS400:*:*)
- GUESS=powerpc-ibm-os400
- ;;
+ echo powerpc-ibm-os400
+ exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- GUESS=arm-acorn-riscix$UNAME_RELEASE
- ;;
+ echo arm-acorn-riscix"$UNAME_RELEASE"
+ exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- GUESS=arm-unknown-riscos
- ;;
+ echo arm-unknown-riscos
+ exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- GUESS=hppa1.1-hitachi-hiuxmpp
- ;;
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- case `(/bin/universe) 2>/dev/null` in
- att) GUESS=pyramid-pyramid-sysv3 ;;
- *) GUESS=pyramid-pyramid-bsd ;;
- esac
- ;;
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
NILE*:*:*:dcosx)
- GUESS=pyramid-pyramid-svr4
- ;;
+ echo pyramid-pyramid-svr4
+ exit ;;
DRS?6000:unix:4.0:6*)
- GUESS=sparc-icl-nx6
- ;;
+ echo sparc-icl-nx6
+ exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) GUESS=sparc-icl-nx7 ;;
- esac
- ;;
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
s390x:SunOS:*:*)
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
- GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
- ;;
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ exit ;;
sun4H:SunOS:5.*:*)
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
- GUESS=sparc-hal-solaris2$SUN_REL
- ;;
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
- GUESS=sparc-sun-solaris2$SUN_REL
- ;;
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- GUESS=i386-pc-auroraux$UNAME_RELEASE
- ;;
+ echo i386-pc-auroraux"$UNAME_RELEASE"
+ exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- set_cc_for_build
+ eval "$set_cc_for_build"
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
fi
fi
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
- GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
- ;;
+ echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
- GUESS=sparc-sun-solaris3$SUN_REL
- ;;
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
sun4*:SunOS:*:*)
- case `/usr/bin/arch -k` in
+ case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
- GUESS=sparc-sun-sunos$SUN_REL
- ;;
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
+ exit ;;
sun3*:SunOS:*:*)
- GUESS=m68k-sun-sunos$UNAME_RELEASE
- ;;
+ echo m68k-sun-sunos"$UNAME_RELEASE"
+ exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case `/bin/arch` in
+ case "`/bin/arch`" in
sun3)
- GUESS=m68k-sun-sunos$UNAME_RELEASE
+ echo m68k-sun-sunos"$UNAME_RELEASE"
;;
sun4)
- GUESS=sparc-sun-sunos$UNAME_RELEASE
+ echo sparc-sun-sunos"$UNAME_RELEASE"
;;
esac
- ;;
+ exit ;;
aushp:SunOS:*:*)
- GUESS=sparc-auspex-sunos$UNAME_RELEASE
- ;;
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
+ exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -490,43 +446,43 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- GUESS=m68k-atari-mint$UNAME_RELEASE
- ;;
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- GUESS=m68k-atari-mint$UNAME_RELEASE
- ;;
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- GUESS=m68k-atari-mint$UNAME_RELEASE
- ;;
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- GUESS=m68k-milan-mint$UNAME_RELEASE
- ;;
+ echo m68k-milan-mint"$UNAME_RELEASE"
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- GUESS=m68k-hades-mint$UNAME_RELEASE
- ;;
+ echo m68k-hades-mint"$UNAME_RELEASE"
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- GUESS=m68k-unknown-mint$UNAME_RELEASE
- ;;
+ echo m68k-unknown-mint"$UNAME_RELEASE"
+ exit ;;
m68k:machten:*:*)
- GUESS=m68k-apple-machten$UNAME_RELEASE
- ;;
+ echo m68k-apple-machten"$UNAME_RELEASE"
+ exit ;;
powerpc:machten:*:*)
- GUESS=powerpc-apple-machten$UNAME_RELEASE
- ;;
+ echo powerpc-apple-machten"$UNAME_RELEASE"
+ exit ;;
RISC*:Mach:*:*)
- GUESS=mips-dec-mach_bsd4.3
- ;;
+ echo mips-dec-mach_bsd4.3
+ exit ;;
RISC*:ULTRIX:*:*)
- GUESS=mips-dec-ultrix$UNAME_RELEASE
- ;;
+ echo mips-dec-ultrix"$UNAME_RELEASE"
+ exit ;;
VAX*:ULTRIX*:*:*)
- GUESS=vax-dec-ultrix$UNAME_RELEASE
- ;;
+ echo vax-dec-ultrix"$UNAME_RELEASE"
+ exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- GUESS=clipper-intergraph-clix$UNAME_RELEASE
- ;;
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
+ exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- set_cc_for_build
+ eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
@@ -552,79 +508,78 @@ EOF
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- GUESS=mips-mips-riscos$UNAME_RELEASE
- ;;
+ echo mips-mips-riscos"$UNAME_RELEASE"
+ exit ;;
Motorola:PowerMAX_OS:*:*)
- GUESS=powerpc-motorola-powermax
- ;;
+ echo powerpc-motorola-powermax
+ exit ;;
Motorola:*:4.3:PL8-*)
- GUESS=powerpc-harris-powermax
- ;;
+ echo powerpc-harris-powermax
+ exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- GUESS=powerpc-harris-powermax
- ;;
+ echo powerpc-harris-powermax
+ exit ;;
Night_Hawk:Power_UNIX:*:*)
- GUESS=powerpc-harris-powerunix
- ;;
+ echo powerpc-harris-powerunix
+ exit ;;
m88k:CX/UX:7*:*)
- GUESS=m88k-harris-cxux7
- ;;
+ echo m88k-harris-cxux7
+ exit ;;
m88k:*:4*:R4*)
- GUESS=m88k-motorola-sysv4
- ;;
+ echo m88k-motorola-sysv4
+ exit ;;
m88k:*:3*:R3*)
- GUESS=m88k-motorola-sysv3
- ;;
+ echo m88k-motorola-sysv3
+ exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
+ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
then
- if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
- test "$TARGET_BINARY_INTERFACE"x = x
+ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+ [ "$TARGET_BINARY_INTERFACE"x = x ]
then
- GUESS=m88k-dg-dgux$UNAME_RELEASE
+ echo m88k-dg-dgux"$UNAME_RELEASE"
else
- GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
+ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
fi
else
- GUESS=i586-dg-dgux$UNAME_RELEASE
+ echo i586-dg-dgux"$UNAME_RELEASE"
fi
- ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- GUESS=m88k-dolphin-sysv3
- ;;
+ echo m88k-dolphin-sysv3
+ exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- GUESS=m88k-motorola-sysv3
- ;;
+ echo m88k-motorola-sysv3
+ exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- GUESS=m88k-tektronix-sysv3
- ;;
+ echo m88k-tektronix-sysv3
+ exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- GUESS=m68k-tektronix-bsd
- ;;
+ echo m68k-tektronix-bsd
+ exit ;;
*:IRIX*:*:*)
- IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
- GUESS=mips-sgi-irix$IRIX_REL
- ;;
+ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
+ exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- GUESS=i386-ibm-aix
- ;;
+ echo i386-ibm-aix
+ exit ;;
ia64:AIX:*:*)
- if test -x /usr/bin/oslevel ; then
+ if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
- ;;
+ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
+ exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- set_cc_for_build
+ eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
@@ -638,16 +593,16 @@ EOF
EOF
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- GUESS=$SYSTEM_NAME
+ echo "$SYSTEM_NAME"
else
- GUESS=rs6000-ibm-aix3.2.5
+ echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- GUESS=rs6000-ibm-aix3.2.4
+ echo rs6000-ibm-aix3.2.4
else
- GUESS=rs6000-ibm-aix3.2
+ echo rs6000-ibm-aix3.2
fi
- ;;
+ exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -655,57 +610,57 @@ EOF
else
IBM_ARCH=powerpc
fi
- if test -x /usr/bin/lslpp ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
+ if [ -x /usr/bin/lslpp ] ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- GUESS=$IBM_ARCH-ibm-aix$IBM_REV
- ;;
+ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
+ exit ;;
*:AIX:*:*)
- GUESS=rs6000-ibm-aix
- ;;
+ echo rs6000-ibm-aix
+ exit ;;
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
- GUESS=romp-ibm-bsd4.4
- ;;
+ echo romp-ibm-bsd4.4
+ exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
- ;; # report: romp-ibm BSD 4.3
+ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- GUESS=rs6000-bull-bosx
- ;;
+ echo rs6000-bull-bosx
+ exit ;;
DPX/2?00:B.O.S.:*:*)
- GUESS=m68k-bull-sysv3
- ;;
+ echo m68k-bull-sysv3
+ exit ;;
9000/[34]??:4.3bsd:1.*:*)
- GUESS=m68k-hp-bsd
- ;;
+ echo m68k-hp-bsd
+ exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- GUESS=m68k-hp-bsd4.4
- ;;
+ echo m68k-hp-bsd4.4
+ exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
- case $UNAME_MACHINE in
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ case "$UNAME_MACHINE" in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if test -x /usr/bin/getconf; then
+ if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case $sc_cpu_version in
+ case "$sc_cpu_version" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case $sc_kernel_bits in
+ case "$sc_kernel_bits" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if test "$HP_ARCH" = ""; then
- set_cc_for_build
+ if [ "$HP_ARCH" = "" ]; then
+ eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
@@ -743,9 +698,9 @@ EOF
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if test "$HP_ARCH" = hppa2.0w
+ if [ "$HP_ARCH" = hppa2.0w ]
then
- set_cc_for_build
+ eval "$set_cc_for_build"
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -764,14 +719,14 @@ EOF
HP_ARCH=hppa64
fi
fi
- GUESS=$HP_ARCH-hp-hpux$HPUX_REV
- ;;
+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
+ exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
- GUESS=ia64-hp-hpux$HPUX_REV
- ;;
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux"$HPUX_REV"
+ exit ;;
3050*:HI-UX:*:*)
- set_cc_for_build
+ eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
@@ -799,36 +754,36 @@ EOF
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- GUESS=unknown-hitachi-hiuxwe2
- ;;
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
- GUESS=hppa1.1-hp-bsd
- ;;
+ echo hppa1.1-hp-bsd
+ exit ;;
9000/8??:4.3bsd:*:*)
- GUESS=hppa1.0-hp-bsd
- ;;
+ echo hppa1.0-hp-bsd
+ exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- GUESS=hppa1.0-hp-mpeix
- ;;
+ echo hppa1.0-hp-mpeix
+ exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
- GUESS=hppa1.1-hp-osf
- ;;
+ echo hppa1.1-hp-osf
+ exit ;;
hp8??:OSF1:*:*)
- GUESS=hppa1.0-hp-osf
- ;;
+ echo hppa1.0-hp-osf
+ exit ;;
i*86:OSF1:*:*)
- if test -x /usr/sbin/sysversion ; then
- GUESS=$UNAME_MACHINE-unknown-osf1mk
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo "$UNAME_MACHINE"-unknown-osf1mk
else
- GUESS=$UNAME_MACHINE-unknown-osf1
+ echo "$UNAME_MACHINE"-unknown-osf1
fi
- ;;
+ exit ;;
parisc*:Lites*:*:*)
- GUESS=hppa1.1-hp-lites
- ;;
+ echo hppa1.1-hp-lites
+ exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- GUESS=c1-convex-bsd
- ;;
+ echo c1-convex-bsd
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -836,18 +791,17 @@ EOF
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- GUESS=c34-convex-bsd
- ;;
+ echo c34-convex-bsd
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- GUESS=c38-convex-bsd
- ;;
+ echo c38-convex-bsd
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- GUESS=c4-convex-bsd
- ;;
+ echo c4-convex-bsd
+ exit ;;
CRAY*Y-MP:*:*:*)
- CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
- GUESS=ymp-cray-unicos$CRAY_REL
- ;;
+ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
CRAY*[A-Z]90:*:*:*)
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -855,135 +809,103 @@ EOF
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
- GUESS=t90-cray-unicos$CRAY_REL
- ;;
+ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
CRAY*T3E:*:*:*)
- CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
- GUESS=alphaev5-cray-unicosmk$CRAY_REL
- ;;
+ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
CRAY*SV1:*:*:*)
- CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
- GUESS=sv1-cray-unicos$CRAY_REL
- ;;
+ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
*:UNICOS/mp:*:*)
- CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
- GUESS=craynv-cray-unicosmp$CRAY_REL
- ;;
+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
- GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
- ;;
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
- GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
- ;;
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
+ exit ;;
sparc*:BSD/OS:*:*)
- GUESS=sparc-unknown-bsdi$UNAME_RELEASE
- ;;
+ echo sparc-unknown-bsdi"$UNAME_RELEASE"
+ exit ;;
*:BSD/OS:*:*)
- GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
- ;;
- arm:FreeBSD:*:*)
- UNAME_PROCESSOR=`uname -p`
- set_cc_for_build
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
- GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
- else
- FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
- GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
- fi
- ;;
+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
+ exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case $UNAME_PROCESSOR in
+ case "$UNAME_PROCESSOR" in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
- GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
- ;;
+ echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
+ exit ;;
i*:CYGWIN*:*)
- GUESS=$UNAME_MACHINE-pc-cygwin
- ;;
+ echo "$UNAME_MACHINE"-pc-cygwin
+ exit ;;
*:MINGW64*:*)
- GUESS=$UNAME_MACHINE-pc-mingw64
- ;;
+ echo "$UNAME_MACHINE"-pc-mingw64
+ exit ;;
*:MINGW*:*)
- GUESS=$UNAME_MACHINE-pc-mingw32
- ;;
+ echo "$UNAME_MACHINE"-pc-mingw32
+ exit ;;
*:MSYS*:*)
- GUESS=$UNAME_MACHINE-pc-msys
- ;;
+ echo "$UNAME_MACHINE"-pc-msys
+ exit ;;
i*:PW*:*)
- GUESS=$UNAME_MACHINE-pc-pw32
- ;;
- *:SerenityOS:*:*)
- GUESS=$UNAME_MACHINE-pc-serenity
- ;;
+ echo "$UNAME_MACHINE"-pc-pw32
+ exit ;;
*:Interix*:*)
- case $UNAME_MACHINE in
+ case "$UNAME_MACHINE" in
x86)
- GUESS=i586-pc-interix$UNAME_RELEASE
- ;;
+ echo i586-pc-interix"$UNAME_RELEASE"
+ exit ;;
authenticamd | genuineintel | EM64T)
- GUESS=x86_64-unknown-interix$UNAME_RELEASE
- ;;
+ echo x86_64-unknown-interix"$UNAME_RELEASE"
+ exit ;;
IA64)
- GUESS=ia64-unknown-interix$UNAME_RELEASE
- ;;
+ echo ia64-unknown-interix"$UNAME_RELEASE"
+ exit ;;
esac ;;
i*:UWIN*:*)
- GUESS=$UNAME_MACHINE-pc-uwin
- ;;
+ echo "$UNAME_MACHINE"-pc-uwin
+ exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- GUESS=x86_64-pc-cygwin
- ;;
+ echo x86_64-unknown-cygwin
+ exit ;;
prep*:SunOS:5.*:*)
- SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
- GUESS=powerpcle-unknown-solaris2$SUN_REL
- ;;
+ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
*:GNU:*:*)
# the GNU system
- GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
- GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
- GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
- ;;
+ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
+ exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
- GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
- GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
- ;;
- x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
- GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
- ;;
- *:[Mm]anagarm:*:*)
- GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
- ;;
- *:Minix:*:*)
- GUESS=$UNAME_MACHINE-unknown-minix
- ;;
+ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
+ exit ;;
+ i*86:Minix:*:*)
+ echo "$UNAME_MACHINE"-pc-minix
+ exit ;;
aarch64:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -994,236 +916,183 @@ EOF
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
- arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
arm*:Linux:*:*)
- set_cc_for_build
+ eval "$set_cc_for_build"
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
else
- GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
fi
fi
- ;;
+ exit ;;
avr32*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
cris:Linux:*:*)
- GUESS=$UNAME_MACHINE-axis-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+ exit ;;
crisv32:Linux:*:*)
- GUESS=$UNAME_MACHINE-axis-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+ exit ;;
e2k:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
frv:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
hexagon:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
i*86:Linux:*:*)
- GUESS=$UNAME_MACHINE-pc-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ exit ;;
ia64:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
k1om:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
- loongarch32:Linux:*:* | loongarch64:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
m32r*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
m68*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- set_cc_for_build
- IS_GLIBC=0
- test x"${LIBC}" = xgnu && IS_GLIBC=1
+ eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
- #undef mips
- #undef mipsel
- #undef mips64
- #undef mips64el
- #if ${IS_GLIBC} && defined(_ABI64)
- LIBCABI=gnuabi64
- #else
- #if ${IS_GLIBC} && defined(_ABIN32)
- LIBCABI=gnuabin32
- #else
- LIBCABI=${LIBC}
- #endif
- #endif
-
- #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
- CPU=mipsisa64r6
- #else
- #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
- CPU=mipsisa32r6
- #else
- #if defined(__mips64)
- CPU=mips64
- #else
- CPU=mips
- #endif
- #endif
- #endif
-
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- MIPS_ENDIAN=el
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- MIPS_ENDIAN=
+ CPU=${UNAME_MACHINE}
#else
- MIPS_ENDIAN=
+ CPU=
#endif
#endif
EOF
- cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
- eval "$cc_set_vars"
- test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+ test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
;;
mips64el:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
openrisc*:Linux:*:*)
- GUESS=or1k-unknown-linux-$LIBC
- ;;
+ echo or1k-unknown-linux-"$LIBC"
+ exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
padre:Linux:*:*)
- GUESS=sparc-unknown-linux-$LIBC
- ;;
+ echo sparc-unknown-linux-"$LIBC"
+ exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- GUESS=hppa64-unknown-linux-$LIBC
- ;;
+ echo hppa64-unknown-linux-"$LIBC"
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
- PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
- *) GUESS=hppa-unknown-linux-$LIBC ;;
+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+ *) echo hppa-unknown-linux-"$LIBC" ;;
esac
- ;;
+ exit ;;
ppc64:Linux:*:*)
- GUESS=powerpc64-unknown-linux-$LIBC
- ;;
+ echo powerpc64-unknown-linux-"$LIBC"
+ exit ;;
ppc:Linux:*:*)
- GUESS=powerpc-unknown-linux-$LIBC
- ;;
+ echo powerpc-unknown-linux-"$LIBC"
+ exit ;;
ppc64le:Linux:*:*)
- GUESS=powerpc64le-unknown-linux-$LIBC
- ;;
+ echo powerpc64le-unknown-linux-"$LIBC"
+ exit ;;
ppcle:Linux:*:*)
- GUESS=powerpcle-unknown-linux-$LIBC
- ;;
- riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo powerpcle-unknown-linux-"$LIBC"
+ exit ;;
+ riscv32:Linux:*:* | riscv64:Linux:*:*)
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
+ exit ;;
sh64*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
sh*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
tile*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
vax:Linux:*:*)
- GUESS=$UNAME_MACHINE-dec-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
+ exit ;;
x86_64:Linux:*:*)
- set_cc_for_build
- CPU=$UNAME_MACHINE
- LIBCABI=$LIBC
- if test "$CC_FOR_BUILD" != no_compiler_found; then
- ABI=64
- sed 's/^ //' << EOF > "$dummy.c"
- #ifdef __i386__
- ABI=x86
- #else
- #ifdef __ILP32__
- ABI=x32
- #endif
- #endif
-EOF
- cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
- eval "$cc_set_abi"
- case $ABI in
- x86) CPU=i686 ;;
- x32) LIBCABI=${LIBC}x32 ;;
- esac
- fi
- GUESS=$CPU-pc-linux-$LIBCABI
- ;;
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ exit ;;
xtensa*:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
- ;;
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- GUESS=i386-sequent-sysv4
- ;;
+ echo i386-sequent-sysv4
+ exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
- ;;
+ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
+ exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- GUESS=$UNAME_MACHINE-pc-os2-emx
- ;;
+ echo "$UNAME_MACHINE"-pc-os2-emx
+ exit ;;
i*86:XTS-300:*:STOP)
- GUESS=$UNAME_MACHINE-unknown-stop
- ;;
+ echo "$UNAME_MACHINE"-unknown-stop
+ exit ;;
i*86:atheos:*:*)
- GUESS=$UNAME_MACHINE-unknown-atheos
- ;;
+ echo "$UNAME_MACHINE"-unknown-atheos
+ exit ;;
i*86:syllable:*:*)
- GUESS=$UNAME_MACHINE-pc-syllable
- ;;
+ echo "$UNAME_MACHINE"-pc-syllable
+ exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- GUESS=i386-unknown-lynxos$UNAME_RELEASE
- ;;
+ echo i386-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
i*86:*DOS:*:*)
- GUESS=$UNAME_MACHINE-pc-msdosdjgpp
- ;;
+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
+ exit ;;
i*86:*:4.*:*)
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
else
- GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
fi
- ;;
+ exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1231,12 +1100,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- ;;
+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
+ exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1246,11 +1115,11 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
else
- GUESS=$UNAME_MACHINE-pc-sysv32
+ echo "$UNAME_MACHINE"-pc-sysv32
fi
- ;;
+ exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1258,31 +1127,31 @@ EOF
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- GUESS=i586-pc-msdosdjgpp
- ;;
+ echo i586-pc-msdosdjgpp
+ exit ;;
Intel:Mach:3*:*)
- GUESS=i386-pc-mach3
- ;;
+ echo i386-pc-mach3
+ exit ;;
paragon:*:*:*)
- GUESS=i860-intel-osf1
- ;;
+ echo i860-intel-osf1
+ exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
+ echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
+ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
fi
- ;;
+ exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- GUESS=m68010-convergent-sysv
- ;;
+ echo m68010-convergent-sysv
+ exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
- GUESS=m68k-convergent-sysv
- ;;
+ echo m68k-convergent-sysv
+ exit ;;
M680?0:D-NIX:5.3:*)
- GUESS=m68k-diab-dnix
- ;;
+ echo m68k-diab-dnix
+ exit ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1307,303 +1176,305 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- GUESS=m68k-unknown-lynxos$UNAME_RELEASE
- ;;
+ echo m68k-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
mc68030:UNIX_System_V:4.*:*)
- GUESS=m68k-atari-sysv4
- ;;
+ echo m68k-atari-sysv4
+ exit ;;
TSUNAMI:LynxOS:2.*:*)
- GUESS=sparc-unknown-lynxos$UNAME_RELEASE
- ;;
+ echo sparc-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
rs6000:LynxOS:2.*:*)
- GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
- ;;
+ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
- ;;
+ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
+ exit ;;
SM[BE]S:UNIX_SV:*:*)
- GUESS=mips-dde-sysv$UNAME_RELEASE
- ;;
+ echo mips-dde-sysv"$UNAME_RELEASE"
+ exit ;;
RM*:ReliantUNIX-*:*:*)
- GUESS=mips-sni-sysv4
- ;;
+ echo mips-sni-sysv4
+ exit ;;
RM*:SINIX-*:*:*)
- GUESS=mips-sni-sysv4
- ;;
+ echo mips-sni-sysv4
+ exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- GUESS=$UNAME_MACHINE-sni-sysv4
+ echo "$UNAME_MACHINE"-sni-sysv4
else
- GUESS=ns32k-sni-sysv
+ echo ns32k-sni-sysv
fi
- ;;
+ exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
- GUESS=i586-unisys-sysv4
- ;;
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
- GUESS=hppa1.1-stratus-sysv4
- ;;
+ echo hppa1.1-stratus-sysv4
+ exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- GUESS=i860-stratus-sysv4
- ;;
+ echo i860-stratus-sysv4
+ exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- GUESS=$UNAME_MACHINE-stratus-vos
- ;;
+ echo "$UNAME_MACHINE"-stratus-vos
+ exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- GUESS=hppa1.1-stratus-vos
- ;;
+ echo hppa1.1-stratus-vos
+ exit ;;
mc68*:A/UX:*:*)
- GUESS=m68k-apple-aux$UNAME_RELEASE
- ;;
+ echo m68k-apple-aux"$UNAME_RELEASE"
+ exit ;;
news*:NEWS-OS:6*:*)
- GUESS=mips-sony-newsos6
- ;;
+ echo mips-sony-newsos6
+ exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if test -d /usr/nec; then
- GUESS=mips-nec-sysv$UNAME_RELEASE
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv"$UNAME_RELEASE"
else
- GUESS=mips-unknown-sysv$UNAME_RELEASE
+ echo mips-unknown-sysv"$UNAME_RELEASE"
fi
- ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- GUESS=powerpc-be-beos
- ;;
+ echo powerpc-be-beos
+ exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- GUESS=powerpc-apple-beos
- ;;
+ echo powerpc-apple-beos
+ exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- GUESS=i586-pc-beos
- ;;
+ echo i586-pc-beos
+ exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- GUESS=i586-pc-haiku
- ;;
- ppc:Haiku:*:*) # Haiku running on Apple PowerPC
- GUESS=powerpc-apple-haiku
- ;;
- *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
- GUESS=$UNAME_MACHINE-unknown-haiku
- ;;
+ echo i586-pc-haiku
+ exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
- GUESS=sx4-nec-superux$UNAME_RELEASE
- ;;
+ echo sx4-nec-superux"$UNAME_RELEASE"
+ exit ;;
SX-5:SUPER-UX:*:*)
- GUESS=sx5-nec-superux$UNAME_RELEASE
- ;;
+ echo sx5-nec-superux"$UNAME_RELEASE"
+ exit ;;
SX-6:SUPER-UX:*:*)
- GUESS=sx6-nec-superux$UNAME_RELEASE
- ;;
+ echo sx6-nec-superux"$UNAME_RELEASE"
+ exit ;;
SX-7:SUPER-UX:*:*)
- GUESS=sx7-nec-superux$UNAME_RELEASE
- ;;
+ echo sx7-nec-superux"$UNAME_RELEASE"
+ exit ;;
SX-8:SUPER-UX:*:*)
- GUESS=sx8-nec-superux$UNAME_RELEASE
- ;;
+ echo sx8-nec-superux"$UNAME_RELEASE"
+ exit ;;
SX-8R:SUPER-UX:*:*)
- GUESS=sx8r-nec-superux$UNAME_RELEASE
- ;;
+ echo sx8r-nec-superux"$UNAME_RELEASE"
+ exit ;;
SX-ACE:SUPER-UX:*:*)
- GUESS=sxace-nec-superux$UNAME_RELEASE
- ;;
+ echo sxace-nec-superux"$UNAME_RELEASE"
+ exit ;;
Power*:Rhapsody:*:*)
- GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
- ;;
+ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
+ exit ;;
*:Rhapsody:*:*)
- GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
- ;;
- arm64:Darwin:*:*)
- GUESS=aarch64-apple-darwin$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
+ exit ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p`
- case $UNAME_PROCESSOR in
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- if command -v xcode-select > /dev/null 2> /dev/null && \
- ! xcode-select --print-path > /dev/null 2> /dev/null ; then
- # Avoid executing cc if there is no toolchain installed as
- # cc will be a stub that puts up a graphical alert
- # prompting the user to install developer tools.
- CC_FOR_BUILD=no_compiler_found
- else
- set_cc_for_build
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ eval "$set_cc_for_build"
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
fi
- if test "$CC_FOR_BUILD" != no_compiler_found; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
+ if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
+ fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # uname -m returns i386 or x86_64
- UNAME_PROCESSOR=$UNAME_MACHINE
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
fi
- GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
- ;;
+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
+ exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
- ;;
+ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
+ exit ;;
*:QNX:*:4*)
- GUESS=i386-pc-qnx
- ;;
+ echo i386-pc-qnx
+ exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
- GUESS=neo-tandem-nsk$UNAME_RELEASE
- ;;
+ echo neo-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
- GUESS=nse-tandem-nsk$UNAME_RELEASE
- ;;
+ echo nse-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
- GUESS=nsr-tandem-nsk$UNAME_RELEASE
- ;;
+ echo nsr-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
NSV-*:NONSTOP_KERNEL:*:*)
- GUESS=nsv-tandem-nsk$UNAME_RELEASE
- ;;
+ echo nsv-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
- GUESS=nsx-tandem-nsk$UNAME_RELEASE
- ;;
+ echo nsx-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
*:NonStop-UX:*:*)
- GUESS=mips-compaq-nonstopux
- ;;
+ echo mips-compaq-nonstopux
+ exit ;;
BS2000:POSIX*:*:*)
- GUESS=bs2000-siemens-sysv
- ;;
+ echo bs2000-siemens-sysv
+ exit ;;
DS/*:UNIX_System_V:*:*)
- GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
- ;;
+ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
+ exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- if test "${cputype-}" = 386; then
+ if test "$cputype" = 386; then
UNAME_MACHINE=i386
- elif test "x${cputype-}" != x; then
- UNAME_MACHINE=$cputype
+ else
+ UNAME_MACHINE="$cputype"
fi
- GUESS=$UNAME_MACHINE-unknown-plan9
- ;;
+ echo "$UNAME_MACHINE"-unknown-plan9
+ exit ;;
*:TOPS-10:*:*)
- GUESS=pdp10-unknown-tops10
- ;;
+ echo pdp10-unknown-tops10
+ exit ;;
*:TENEX:*:*)
- GUESS=pdp10-unknown-tenex
- ;;
+ echo pdp10-unknown-tenex
+ exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- GUESS=pdp10-dec-tops20
- ;;
+ echo pdp10-dec-tops20
+ exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- GUESS=pdp10-xkl-tops20
- ;;
+ echo pdp10-xkl-tops20
+ exit ;;
*:TOPS-20:*:*)
- GUESS=pdp10-unknown-tops20
- ;;
+ echo pdp10-unknown-tops20
+ exit ;;
*:ITS:*:*)
- GUESS=pdp10-unknown-its
- ;;
+ echo pdp10-unknown-its
+ exit ;;
SEI:*:*:SEIUX)
- GUESS=mips-sei-seiux$UNAME_RELEASE
- ;;
+ echo mips-sei-seiux"$UNAME_RELEASE"
+ exit ;;
*:DragonFly:*:*)
- DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
- GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
- ;;
+ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
+ exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case $UNAME_MACHINE in
- A*) GUESS=alpha-dec-vms ;;
- I*) GUESS=ia64-dec-vms ;;
- V*) GUESS=vax-dec-vms ;;
+ case "$UNAME_MACHINE" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
- GUESS=i386-pc-xenix
- ;;
+ echo i386-pc-xenix
+ exit ;;
i*86:skyos:*:*)
- SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
- GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
- ;;
+ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
+ exit ;;
i*86:rdos:*:*)
- GUESS=$UNAME_MACHINE-pc-rdos
- ;;
- i*86:Fiwix:*:*)
- GUESS=$UNAME_MACHINE-pc-fiwix
- ;;
- *:AROS:*:*)
- GUESS=$UNAME_MACHINE-unknown-aros
- ;;
+ echo "$UNAME_MACHINE"-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo "$UNAME_MACHINE"-pc-aros
+ exit ;;
x86_64:VMkernel:*:*)
- GUESS=$UNAME_MACHINE-unknown-esx
- ;;
+ echo "$UNAME_MACHINE"-unknown-esx
+ exit ;;
amd64:Isilon\ OneFS:*:*)
- GUESS=x86_64-unknown-onefs
- ;;
- *:Unleashed:*:*)
- GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ echo x86_64-unknown-onefs
+ exit ;;
+esac
+
+echo "$0: unable to guess system type" >&2
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
;;
esac
-# Do we have a guess based on uname results?
-if test "x$GUESS" != x; then
- echo "$GUESS"
- exit
-fi
+cat >&2 <<EOF
-# No uname command or uname output not recognized.
-set_cc_for_build
-cat > "$dummy.c" <<EOF
-#ifdef _SEQUENT_
-#include <sys/types.h>
-#include <sys/utsname.h>
-#endif
-#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
-#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#include <signal.h>
-#if defined(_SIZE_T_) || defined(SIGLOST)
-#include <sys/utsname.h>
-#endif
-#endif
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+and
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
+CTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
@@ -1699,7 +1570,7 @@ main ()
}
EOF
-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
@@ -1707,7 +1578,7 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
echo "$0: unable to guess system type" >&2
-case $UNAME_MACHINE:$UNAME_SYSTEM in
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <<EOF
@@ -1724,17 +1595,9 @@ This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:
- https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
- https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
-EOF
-
-our_year=`echo $timestamp | sed 's,-.*,,'`
-thisyear=`date +%Y`
-# shellcheck disable=SC2003
-script_age=`expr "$thisyear" - "$our_year"`
-if test "$script_age" -lt 3 ; then
- cat >&2 <<EOF
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
@@ -1762,7 +1625,6 @@ UNAME_RELEASE = "$UNAME_RELEASE"
UNAME_SYSTEM = "$UNAME_SYSTEM"
UNAME_VERSION = "$UNAME_VERSION"
EOF
-fi
exit 1
diff --git a/Build/source/utils/asymptote/config.h.in b/Build/source/utils/asymptote/config.h.in
index fd317eab6b6..aadf8dbe149 100644
--- a/Build/source/utils/asymptote/config.h.in
+++ b/Build/source/utils/asymptote/config.h.in
@@ -21,6 +21,9 @@
/* Define to 1 if you have the <editline/readline.h> header file. */
#undef HAVE_EDITLINE_READLINE_H
+/* Define to 1 if you have the <Eigen/Dense> header file. */
+#undef HAVE_EIGEN_DENSE
+
/* Define to 1 if you have the `feenableexcept' function. */
#undef HAVE_FEENABLEEXCEPT
@@ -111,9 +114,6 @@
/* Define to 1 if you have Language server protocol. */
#undef HAVE_LSP
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
/* Define to 1 if you have the `memrchr' function. */
#undef HAVE_MEMRCHR
@@ -150,6 +150,9 @@
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
@@ -226,7 +229,9 @@
your system. */
#undef PTHREAD_CREATE_JOINABLE
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
#undef STDC_HEADERS
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
@@ -257,7 +262,7 @@
#undef inline
#endif
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define as a signed integer type capable of holding a process identifier. */
#undef pid_t
/* Define to `unsigned int' if <sys/types.h> does not define. */
diff --git a/Build/source/utils/asymptote/config.sub b/Build/source/utils/asymptote/config.sub
index de4259e4047..f02d43ad500 100755
--- a/Build/source/utils/asymptote/config.sub
+++ b/Build/source/utils/asymptote/config.sub
@@ -1,14 +1,12 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2023 Free Software Foundation, Inc.
+# Copyright 1992-2020 Free Software Foundation, Inc.
-# shellcheck disable=SC2006,SC2268 # see below for rationale
-
-timestamp='2023-01-21'
+timestamp='2020-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -35,7 +33,7 @@ timestamp='2023-01-21'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -52,13 +50,6 @@ timestamp='2023-01-21'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
-# The "shellcheck disable" line above the timestamp inhibits complaints
-# about features and limitations of the classic Bourne shell that were
-# superseded or lifted in POSIX. However, this script identifies a wide
-# variety of pre-POSIX systems that do not have POSIX shells at all, and
-# even some reasonably current systems (Solaris 10 as case-in-point) still
-# have a pre-POSIX /bin/sh.
-
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -76,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -121,11 +112,9 @@ esac
# Split fields of configuration type
# shellcheck disable=SC2162
-saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
-IFS=$saved_IFS
# Separate into logical components for further validation
case $1 in
@@ -135,27 +124,28 @@ case $1 in
;;
*-*-*-*)
basic_machine=$field1-$field2
- basic_os=$field3-$field4
+ os=$field3-$field4
;;
*-*-*)
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
# parts
maybe_os=$field2-$field3
case $maybe_os in
- nto-qnx* | linux-* | uclinux-uclibc* \
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+ | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
- | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
+ | storm-chaos* | os2-emx* | rtmk-nova*)
basic_machine=$field1
- basic_os=$maybe_os
+ os=$maybe_os
;;
android-linux)
basic_machine=$field1-unknown
- basic_os=linux-android
+ os=linux-android
;;
*)
basic_machine=$field1-$field2
- basic_os=$field3
+ os=$field3
;;
esac
;;
@@ -164,7 +154,7 @@ case $1 in
case $field1-$field2 in
decstation-3100)
basic_machine=mips-dec
- basic_os=
+ os=
;;
*-*)
# Second component is usually, but not always the OS
@@ -172,11 +162,7 @@ case $1 in
# Prevent following clause from handling this valid os
sun*os*)
basic_machine=$field1
- basic_os=$field2
- ;;
- zephyr*)
- basic_machine=$field1-unknown
- basic_os=$field2
+ os=$field2
;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
@@ -189,11 +175,11 @@ case $1 in
| microblaze* | sim | cisco \
| oki | wec | wrs | winbond)
basic_machine=$field1-$field2
- basic_os=
+ os=
;;
*)
basic_machine=$field1
- basic_os=$field2
+ os=$field2
;;
esac
;;
@@ -205,451 +191,447 @@ case $1 in
case $field1 in
386bsd)
basic_machine=i386-pc
- basic_os=bsd
+ os=bsd
;;
a29khif)
basic_machine=a29k-amd
- basic_os=udi
+ os=udi
;;
adobe68k)
basic_machine=m68010-adobe
- basic_os=scout
+ os=scout
;;
alliant)
basic_machine=fx80-alliant
- basic_os=
+ os=
;;
altos | altos3068)
basic_machine=m68k-altos
- basic_os=
+ os=
;;
am29k)
basic_machine=a29k-none
- basic_os=bsd
+ os=bsd
;;
amdahl)
basic_machine=580-amdahl
- basic_os=sysv
+ os=sysv
;;
amiga)
basic_machine=m68k-unknown
- basic_os=
+ os=
;;
amigaos | amigados)
basic_machine=m68k-unknown
- basic_os=amigaos
+ os=amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
- basic_os=sysv4
+ os=sysv4
;;
apollo68)
basic_machine=m68k-apollo
- basic_os=sysv
+ os=sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
- basic_os=bsd
+ os=bsd
;;
aros)
basic_machine=i386-pc
- basic_os=aros
+ os=aros
;;
aux)
basic_machine=m68k-apple
- basic_os=aux
+ os=aux
;;
balance)
basic_machine=ns32k-sequent
- basic_os=dynix
+ os=dynix
;;
blackfin)
basic_machine=bfin-unknown
- basic_os=linux
+ os=linux
;;
cegcc)
basic_machine=arm-unknown
- basic_os=cegcc
+ os=cegcc
;;
convex-c1)
basic_machine=c1-convex
- basic_os=bsd
+ os=bsd
;;
convex-c2)
basic_machine=c2-convex
- basic_os=bsd
+ os=bsd
;;
convex-c32)
basic_machine=c32-convex
- basic_os=bsd
+ os=bsd
;;
convex-c34)
basic_machine=c34-convex
- basic_os=bsd
+ os=bsd
;;
convex-c38)
basic_machine=c38-convex
- basic_os=bsd
+ os=bsd
;;
cray)
basic_machine=j90-cray
- basic_os=unicos
+ os=unicos
;;
crds | unos)
basic_machine=m68k-crds
- basic_os=
+ os=
;;
da30)
basic_machine=m68k-da30
- basic_os=
+ os=
;;
decstation | pmax | pmin | dec3100 | decstatn)
basic_machine=mips-dec
- basic_os=
+ os=
;;
delta88)
basic_machine=m88k-motorola
- basic_os=sysv3
+ os=sysv3
;;
dicos)
basic_machine=i686-pc
- basic_os=dicos
+ os=dicos
;;
djgpp)
basic_machine=i586-pc
- basic_os=msdosdjgpp
+ os=msdosdjgpp
;;
ebmon29k)
basic_machine=a29k-amd
- basic_os=ebmon
+ os=ebmon
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
- basic_os=ose
+ os=ose
;;
gmicro)
basic_machine=tron-gmicro
- basic_os=sysv
+ os=sysv
;;
go32)
basic_machine=i386-pc
- basic_os=go32
+ os=go32
;;
h8300hms)
basic_machine=h8300-hitachi
- basic_os=hms
+ os=hms
;;
h8300xray)
basic_machine=h8300-hitachi
- basic_os=xray
+ os=xray
;;
h8500hms)
basic_machine=h8500-hitachi
- basic_os=hms
+ os=hms
;;
harris)
basic_machine=m88k-harris
- basic_os=sysv3
+ os=sysv3
;;
hp300 | hp300hpux)
basic_machine=m68k-hp
- basic_os=hpux
+ os=hpux
;;
hp300bsd)
basic_machine=m68k-hp
- basic_os=bsd
+ os=bsd
;;
hppaosf)
basic_machine=hppa1.1-hp
- basic_os=osf
+ os=osf
;;
hppro)
basic_machine=hppa1.1-hp
- basic_os=proelf
+ os=proelf
;;
i386mach)
basic_machine=i386-mach
- basic_os=mach
+ os=mach
;;
isi68 | isi)
basic_machine=m68k-isi
- basic_os=sysv
+ os=sysv
;;
m68knommu)
basic_machine=m68k-unknown
- basic_os=linux
+ os=linux
;;
magnum | m3230)
basic_machine=mips-mips
- basic_os=sysv
+ os=sysv
;;
merlin)
basic_machine=ns32k-utek
- basic_os=sysv
+ os=sysv
;;
mingw64)
basic_machine=x86_64-pc
- basic_os=mingw64
+ os=mingw64
;;
mingw32)
basic_machine=i686-pc
- basic_os=mingw32
+ os=mingw32
;;
mingw32ce)
basic_machine=arm-unknown
- basic_os=mingw32ce
+ os=mingw32ce
;;
monitor)
basic_machine=m68k-rom68k
- basic_os=coff
+ os=coff
;;
morphos)
basic_machine=powerpc-unknown
- basic_os=morphos
+ os=morphos
;;
moxiebox)
basic_machine=moxie-unknown
- basic_os=moxiebox
+ os=moxiebox
;;
msdos)
basic_machine=i386-pc
- basic_os=msdos
+ os=msdos
;;
msys)
basic_machine=i686-pc
- basic_os=msys
+ os=msys
;;
mvs)
basic_machine=i370-ibm
- basic_os=mvs
+ os=mvs
;;
nacl)
basic_machine=le32-unknown
- basic_os=nacl
+ os=nacl
;;
ncr3000)
basic_machine=i486-ncr
- basic_os=sysv4
+ os=sysv4
;;
netbsd386)
basic_machine=i386-pc
- basic_os=netbsd
+ os=netbsd
;;
netwinder)
basic_machine=armv4l-rebel
- basic_os=linux
+ os=linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
- basic_os=newsos
+ os=newsos
;;
news1000)
basic_machine=m68030-sony
- basic_os=newsos
+ os=newsos
;;
necv70)
basic_machine=v70-nec
- basic_os=sysv
+ os=sysv
;;
nh3000)
basic_machine=m68k-harris
- basic_os=cxux
+ os=cxux
;;
nh[45]000)
basic_machine=m88k-harris
- basic_os=cxux
+ os=cxux
;;
nindy960)
basic_machine=i960-intel
- basic_os=nindy
+ os=nindy
;;
mon960)
basic_machine=i960-intel
- basic_os=mon960
+ os=mon960
;;
nonstopux)
basic_machine=mips-compaq
- basic_os=nonstopux
+ os=nonstopux
;;
os400)
basic_machine=powerpc-ibm
- basic_os=os400
+ os=os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
- basic_os=ose
+ os=ose
;;
os68k)
basic_machine=m68k-none
- basic_os=os68k
+ os=os68k
;;
paragon)
basic_machine=i860-intel
- basic_os=osf
+ os=osf
;;
parisc)
basic_machine=hppa-unknown
- basic_os=linux
- ;;
- psp)
- basic_machine=mipsallegrexel-sony
- basic_os=psp
+ os=linux
;;
pw32)
basic_machine=i586-unknown
- basic_os=pw32
+ os=pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
- basic_os=rdos
+ os=rdos
;;
rdos32)
basic_machine=i386-pc
- basic_os=rdos
+ os=rdos
;;
rom68k)
basic_machine=m68k-rom68k
- basic_os=coff
+ os=coff
;;
sa29200)
basic_machine=a29k-amd
- basic_os=udi
+ os=udi
;;
sei)
basic_machine=mips-sei
- basic_os=seiux
+ os=seiux
;;
sequent)
basic_machine=i386-sequent
- basic_os=
+ os=
;;
sps7)
basic_machine=m68k-bull
- basic_os=sysv2
+ os=sysv2
;;
st2000)
basic_machine=m68k-tandem
- basic_os=
+ os=
;;
stratus)
basic_machine=i860-stratus
- basic_os=sysv4
+ os=sysv4
;;
sun2)
basic_machine=m68000-sun
- basic_os=
+ os=
;;
sun2os3)
basic_machine=m68000-sun
- basic_os=sunos3
+ os=sunos3
;;
sun2os4)
basic_machine=m68000-sun
- basic_os=sunos4
+ os=sunos4
;;
sun3)
basic_machine=m68k-sun
- basic_os=
+ os=
;;
sun3os3)
basic_machine=m68k-sun
- basic_os=sunos3
+ os=sunos3
;;
sun3os4)
basic_machine=m68k-sun
- basic_os=sunos4
+ os=sunos4
;;
sun4)
basic_machine=sparc-sun
- basic_os=
+ os=
;;
sun4os3)
basic_machine=sparc-sun
- basic_os=sunos3
+ os=sunos3
;;
sun4os4)
basic_machine=sparc-sun
- basic_os=sunos4
+ os=sunos4
;;
sun4sol2)
basic_machine=sparc-sun
- basic_os=solaris2
+ os=solaris2
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
- basic_os=
+ os=
;;
sv1)
basic_machine=sv1-cray
- basic_os=unicos
+ os=unicos
;;
symmetry)
basic_machine=i386-sequent
- basic_os=dynix
+ os=dynix
;;
t3e)
basic_machine=alphaev5-cray
- basic_os=unicos
+ os=unicos
;;
t90)
basic_machine=t90-cray
- basic_os=unicos
+ os=unicos
;;
toad1)
basic_machine=pdp10-xkl
- basic_os=tops20
+ os=tops20
;;
tpf)
basic_machine=s390x-ibm
- basic_os=tpf
+ os=tpf
;;
udi29k)
basic_machine=a29k-amd
- basic_os=udi
+ os=udi
;;
ultra3)
basic_machine=a29k-nyu
- basic_os=sym1
+ os=sym1
;;
v810 | necv810)
basic_machine=v810-nec
- basic_os=none
+ os=none
;;
vaxv)
basic_machine=vax-dec
- basic_os=sysv
+ os=sysv
;;
vms)
basic_machine=vax-dec
- basic_os=vms
+ os=vms
;;
vsta)
basic_machine=i386-pc
- basic_os=vsta
+ os=vsta
;;
vxworks960)
basic_machine=i960-wrs
- basic_os=vxworks
+ os=vxworks
;;
vxworks68)
basic_machine=m68k-wrs
- basic_os=vxworks
+ os=vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
- basic_os=vxworks
+ os=vxworks
;;
xbox)
basic_machine=i686-pc
- basic_os=mingw32
+ os=mingw32
;;
ymp)
basic_machine=ymp-cray
- basic_os=unicos
+ os=unicos
;;
*)
basic_machine=$1
- basic_os=
+ os=
;;
esac
;;
@@ -701,17 +683,17 @@ case $basic_machine in
bluegene*)
cpu=powerpc
vendor=ibm
- basic_os=cnk
+ os=cnk
;;
decsystem10* | dec10*)
cpu=pdp10
vendor=dec
- basic_os=tops10
+ os=tops10
;;
decsystem20* | dec20*)
cpu=pdp10
vendor=dec
- basic_os=tops20
+ os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
@@ -721,7 +703,7 @@ case $basic_machine in
dpx2*)
cpu=m68k
vendor=bull
- basic_os=sysv3
+ os=sysv3
;;
encore | umax | mmax)
cpu=ns32k
@@ -730,7 +712,7 @@ case $basic_machine in
elxsi)
cpu=elxsi
vendor=elxsi
- basic_os=${basic_os:-bsd}
+ os=${os:-bsd}
;;
fx2800)
cpu=i860
@@ -743,7 +725,7 @@ case $basic_machine in
h3050r* | hiux*)
cpu=hppa1.1
vendor=hitachi
- basic_os=hiuxwe2
+ os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
cpu=hppa1.0
@@ -786,36 +768,36 @@ case $basic_machine in
i*86v32)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- basic_os=sysv32
+ os=sysv32
;;
i*86v4*)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- basic_os=sysv4
+ os=sysv4
;;
i*86v)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- basic_os=sysv
+ os=sysv
;;
i*86sol2)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- basic_os=solaris2
+ os=solaris2
;;
j90 | j90-cray)
cpu=j90
vendor=cray
- basic_os=${basic_os:-unicos}
+ os=${os:-unicos}
;;
iris | iris4d)
cpu=mips
vendor=sgi
- case $basic_os in
+ case $os in
irix*)
;;
*)
- basic_os=irix4
+ os=irix4
;;
esac
;;
@@ -826,26 +808,26 @@ case $basic_machine in
*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
cpu=m68k
vendor=atari
- basic_os=mint
+ os=mint
;;
news-3600 | risc-news)
cpu=mips
vendor=sony
- basic_os=newsos
+ os=newsos
;;
next | m*-next)
cpu=m68k
vendor=next
- case $basic_os in
+ case $os in
openstep*)
;;
nextstep*)
;;
ns2*)
- basic_os=nextstep2
+ os=nextstep2
;;
*)
- basic_os=nextstep3
+ os=nextstep3
;;
esac
;;
@@ -856,12 +838,12 @@ case $basic_machine in
op50n-* | op60c-*)
cpu=hppa1.1
vendor=oki
- basic_os=proelf
+ os=proelf
;;
pa-hitachi)
cpu=hppa1.1
vendor=hitachi
- basic_os=hiuxwe2
+ os=hiuxwe2
;;
pbd)
cpu=sparc
@@ -898,12 +880,12 @@ case $basic_machine in
sde)
cpu=mipsisa32
vendor=sde
- basic_os=${basic_os:-elf}
+ os=${os:-elf}
;;
simso-wrs)
cpu=sparclite
vendor=wrs
- basic_os=vxworks
+ os=vxworks
;;
tower | tower-32)
cpu=m68k
@@ -920,7 +902,7 @@ case $basic_machine in
w89k-*)
cpu=hppa1.1
vendor=winbond
- basic_os=proelf
+ os=proelf
;;
none)
cpu=none
@@ -937,11 +919,9 @@ case $basic_machine in
*-*)
# shellcheck disable=SC2162
- saved_IFS=$IFS
IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
- IFS=$saved_IFS
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
@@ -975,11 +955,11 @@ case $cpu-$vendor in
# some cases the only manufacturer, in others, it is the most popular.
craynv-unknown)
vendor=cray
- basic_os=${basic_os:-unicosmp}
+ os=${os:-unicosmp}
;;
c90-unknown | c90-cray)
vendor=cray
- basic_os=${Basic_os:-unicos}
+ os=${os:-unicos}
;;
fx80-unknown)
vendor=alliant
@@ -1020,15 +1000,10 @@ case $cpu-$vendor in
;;
# Here we normalize CPU types with a missing or matching vendor
- armh-unknown | armh-alt)
- cpu=armv7l
- vendor=alt
- basic_os=${basic_os:-linux-gnueabihf}
- ;;
dpx20-unknown | dpx20-bull)
cpu=rs6000
vendor=bull
- basic_os=${basic_os:-bosx}
+ os=${os:-bosx}
;;
# Here we normalize CPU types irrespective of the vendor
@@ -1037,7 +1012,7 @@ case $cpu-$vendor in
;;
blackfin-*)
cpu=bfin
- basic_os=linux
+ os=linux
;;
c54x-*)
cpu=tic54x
@@ -1050,7 +1025,7 @@ case $cpu-$vendor in
;;
e500v[12]-*)
cpu=powerpc
- basic_os=${basic_os}"spe"
+ os=$os"spe"
;;
mips3*-*)
cpu=mips64
@@ -1060,7 +1035,7 @@ case $cpu-$vendor in
;;
m68knommu-*)
cpu=m68k
- basic_os=linux
+ os=linux
;;
m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
cpu=s12z
@@ -1070,12 +1045,12 @@ case $cpu-$vendor in
;;
parisc-*)
cpu=hppa
- basic_os=linux
+ os=linux
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586
;;
- pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
cpu=i686
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1126,14 +1101,11 @@ case $cpu-$vendor in
xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- arm64-* | aarch64le-*)
- cpu=aarch64
- ;;
# Recognize the canonical CPU Types that limit and/or modify the
# company names they are paired with.
cr16-*)
- basic_os=${basic_os:-elf}
+ os=${os:-elf}
;;
crisv32-* | etraxfs*-*)
cpu=crisv32
@@ -1144,7 +1116,7 @@ case $cpu-$vendor in
vendor=axis
;;
crx-*)
- basic_os=${basic_os:-elf}
+ os=${os:-elf}
;;
neo-tandem)
cpu=neo
@@ -1166,12 +1138,16 @@ case $cpu-$vendor in
cpu=nsx
vendor=tandem
;;
- mipsallegrexel-sony)
- cpu=mipsallegrexel
- vendor=sony
+ s390-*)
+ cpu=s390
+ vendor=ibm
+ ;;
+ s390x-*)
+ cpu=s390x
+ vendor=ibm
;;
tile*-*)
- basic_os=${basic_os:-linux-gnu}
+ os=${os:-linux-gnu}
;;
*)
@@ -1187,8 +1163,8 @@ case $cpu-$vendor in
| alphapca5[67] | alpha64pca5[67] \
| am33_2.0 \
| amdgcn \
- | arc | arceb | arc32 | arc64 \
- | arm | arm[lb]e | arme[lb] | armv* \
+ | arc | arceb \
+ | arm | arm[lb]e | arme[lb] | armv* \
| avr | avr32 \
| asmjs \
| ba \
@@ -1207,7 +1183,6 @@ case $cpu-$vendor in
| k1om \
| le32 | le64 \
| lm32 \
- | loongarch32 | loongarch64 \
| m32c | m32r | m32rle \
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
@@ -1226,13 +1201,9 @@ case $cpu-$vendor in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r3 | mipsisa32r3el \
- | mipsisa32r5 | mipsisa32r5el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r3 | mipsisa64r3el \
- | mipsisa64r5 | mipsisa64r5el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
@@ -1256,9 +1227,8 @@ case $cpu-$vendor in
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
| pru \
| pyramid \
- | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | riscv | riscv32 | riscv64 \
| rl78 | romp | rs6000 | rx \
- | s390 | s390x \
| score \
| sh | shl \
| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
@@ -1268,7 +1238,6 @@ case $cpu-$vendor in
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
| spu \
| tahoe \
- | thumbv7* \
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
| ubicom32 \
@@ -1306,53 +1275,8 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if test x$basic_os != x
+if [ x$os != x ]
then
-
-# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
-# set os.
-case $basic_os in
- gnu/linux*)
- kernel=linux
- os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
- ;;
- os2-emx)
- kernel=os2
- os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
- ;;
- nto-qnx*)
- kernel=nto
- os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
- ;;
- *-*)
- # shellcheck disable=SC2162
- saved_IFS=$IFS
- IFS="-" read kernel os <<EOF
-$basic_os
-EOF
- IFS=$saved_IFS
- ;;
- # Default OS when just kernel was specified
- nto*)
- kernel=nto
- os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
- ;;
- linux*)
- kernel=linux
- os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
- ;;
- managarm*)
- kernel=managarm
- os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
- ;;
- *)
- kernel=
- os=$basic_os
- ;;
-esac
-
-# Now, normalize the OS (knowing we just have one component, it's not a kernel,
-# etc.)
case $os in
# First match some system type aliases that might get confused
# with valid system types.
@@ -1364,7 +1288,7 @@ case $os in
os=cnk
;;
solaris1 | solaris1.*)
- os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
solaris)
os=solaris2
@@ -1372,6 +1296,9 @@ case $os in
unixware*)
os=sysv4.2uw
;;
+ gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
# es1800 is here to avoid being matched by es* (a different OS)
es1800*)
os=ose
@@ -1393,9 +1320,12 @@ case $os in
os=sco3.2v4
;;
sco3.2.[4-9]*)
- os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
;;
- sco*v* | scout)
+ scout)
# Don't match below
;;
sco*)
@@ -1404,25 +1334,78 @@ case $os in
psos*)
os=psos
;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | kopensolaris* | plan9* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | knetbsd* | mirbsd* | netbsd* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+ | linux-newlib* | linux-musl* | linux-uclibc* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* \
+ | morphos* | superux* | rtmk* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
qnx*)
- os=qnx
+ case $cpu in
+ x86 | i*86)
+ ;;
+ *)
+ os=nto-$os
+ ;;
+ esac
;;
hiux*)
os=hiuxwe2
;;
+ nto-qnx*)
+ ;;
+ nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ sim | xray | os68k* | v88r* \
+ | windows* | osx | abug | netware* | os9* \
+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+ ;;
+ linux-dietlibc)
+ os=linux-dietlibc
+ ;;
+ linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
lynx*178)
os=lynxos178
;;
lynx*5)
os=lynxos5
;;
- lynxos*)
- # don't get caught up in next wildcard
- ;;
lynx*)
os=lynxos
;;
- mac[0-9]*)
+ mac*)
os=`echo "$os" | sed -e 's|mac|macos|'`
;;
opened*)
@@ -1469,7 +1452,7 @@ case $os in
;;
# Preserve the version number of sinix5.
sinix5.*)
- os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ os=`echo $os | sed -e 's|sinix|sysv|'`
;;
sinix*)
os=sysv4
@@ -1492,12 +1475,18 @@ case $os in
sysvr4)
os=sysv4
;;
+ # This must come after sysvr4.
+ sysv*)
+ ;;
ose*)
os=ose
;;
*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
os=mint
;;
+ zvmoe)
+ os=zvmoe
+ ;;
dicos*)
os=dicos
;;
@@ -1514,11 +1503,19 @@ case $os in
;;
esac
;;
+ nacl*)
+ ;;
+ ios)
+ ;;
+ none)
+ ;;
+ *-eabi)
+ ;;
*)
- # No normalization, but not necessarily accepted, that comes below.
+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
+ exit 1
;;
esac
-
else
# Here we handle the default operating systems that come with various machines.
@@ -1531,7 +1528,6 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-kernel=
case $cpu-$vendor in
score-*)
os=elf
@@ -1543,8 +1539,7 @@ case $cpu-$vendor in
os=riscix1.2
;;
arm*-rebel)
- kernel=linux
- os=gnu
+ os=linux
;;
arm*-semi)
os=aout
@@ -1710,193 +1705,84 @@ case $cpu-$vendor in
os=none
;;
esac
-
fi
-# Now, validate our (potentially fixed-up) OS.
-case $os in
- # Sometimes we do "kernel-libc", so those need to count as OSes.
- musl* | newlib* | relibc* | uclibc*)
- ;;
- # Likewise for "kernel-abi"
- eabi* | gnueabi*)
- ;;
- # VxWorks passes extra cpu info in the 4th filed.
- simlinux | simwindows | spe)
- ;;
- # Now accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
- | hiux* | abug | nacl* | netware* | windows* \
- | os9* | macos* | osx* | ios* \
- | mpw* | magic* | mmixware* | mon960* | lnews* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* | twizzler* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | mirbsd* | netbsd* | dicos* | openedition* | ose* \
- | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
- | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
- | udi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* | serenity* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | mint* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | interix* | uwin* | mks* | rhapsody* | darwin* \
- | openstep* | oskit* | conix* | pw32* | nonstopux* \
- | storm-chaos* | tops10* | tenex* | tops20* | its* \
- | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
- | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
- | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
- | fiwix* | mlibc* )
- ;;
- # This one is extra strict with allowed versions
- sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- ;;
- none)
- ;;
- kernel* )
- # Restricted further below
- ;;
- *)
- echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# As a final step for OS-related things, validate the OS-kernel combination
-# (given a valid OS), if there is a kernel.
-case $kernel-$os in
- linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
- | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
- ;;
- uclinux-uclibc* )
- ;;
- managarm-mlibc* | managarm-kernel* )
- ;;
- -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
- # These are just libc implementations, not actual OSes, and thus
- # require a kernel.
- echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
- exit 1
- ;;
- -kernel* )
- echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
- exit 1
- ;;
- *-kernel* )
- echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
- exit 1
- ;;
- kfreebsd*-gnu* | kopensolaris*-gnu*)
- ;;
- vxworks-simlinux | vxworks-simwindows | vxworks-spe)
- ;;
- nto-qnx*)
- ;;
- os2-emx)
- ;;
- *-eabi* | *-gnueabi*)
- ;;
- -*)
- # Blank kernel with real OS is always fine.
- ;;
- *-*)
- echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
- exit 1
- ;;
-esac
-
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case $vendor in
unknown)
- case $cpu-$os in
- *-riscix*)
+ case $os in
+ riscix*)
vendor=acorn
;;
- *-sunos*)
+ sunos*)
vendor=sun
;;
- *-cnk* | *-aix*)
+ cnk*|-aix*)
vendor=ibm
;;
- *-beos*)
+ beos*)
vendor=be
;;
- *-hpux*)
+ hpux*)
vendor=hp
;;
- *-mpeix*)
+ mpeix*)
vendor=hp
;;
- *-hiux*)
+ hiux*)
vendor=hitachi
;;
- *-unos*)
+ unos*)
vendor=crds
;;
- *-dgux*)
+ dgux*)
vendor=dg
;;
- *-luna*)
+ luna*)
vendor=omron
;;
- *-genix*)
+ genix*)
vendor=ns
;;
- *-clix*)
+ clix*)
vendor=intergraph
;;
- *-mvs* | *-opened*)
- vendor=ibm
- ;;
- *-os400*)
+ mvs* | opened*)
vendor=ibm
;;
- s390-* | s390x-*)
+ os400*)
vendor=ibm
;;
- *-ptx*)
+ ptx*)
vendor=sequent
;;
- *-tpf*)
+ tpf*)
vendor=ibm
;;
- *-vxsim* | *-vxworks* | *-windiss*)
+ vxsim* | vxworks* | windiss*)
vendor=wrs
;;
- *-aux*)
+ aux*)
vendor=apple
;;
- *-hms*)
+ hms*)
vendor=hitachi
;;
- *-mpw* | *-macos*)
+ mpw* | macos*)
vendor=apple
;;
- *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
vendor=atari
;;
- *-vos*)
+ vos*)
vendor=stratus
;;
esac
;;
esac
-echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+echo "$cpu-$vendor-$os"
exit
# Local variables:
diff --git a/Build/source/utils/asymptote/configure b/Build/source/utils/asymptote/configure
index 35bc6177527..abfd8b5c01a 100755
--- a/Build/source/utils/asymptote/configure
+++ b/Build/source/utils/asymptote/configure
@@ -1,11 +1,12 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.79.
+# Generated by GNU Autoconf 2.71 for Asymptote 2.84.
#
# Report bugs to <https://github.com/vectorgraphics/asymptote/issues>.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -33,46 +36,46 @@ esac
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
fi
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -96,8 +92,12 @@ case $0 in #((
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -109,30 +109,10 @@ if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@ esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
-else
+else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
@@ -187,42 +169,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
-else
+else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null
+then :
as_have_required=yes
-else
+else $as_nop
as_have_required=no
fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
-else
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
+ as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
break 2
fi
fi
@@ -230,14 +222,21 @@ fi
esac
as_found=false
done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
- if test "x$CONFIG_SHELL" != x; then :
+ if test "x$CONFIG_SHELL" != x
+then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
@@ -255,18 +254,19 @@ esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ if test x$as_have_required = xno
+then :
+ printf "%s\n" "$0: This script requires a shell more modern than all"
+ printf "%s\n" "$0: the shells that I found on your system."
+ if test ${ZSH_VERSION+y} ; then
+ printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and
+ printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: https://github.com/vectorgraphics/asymptote/issues
$0: about your system, including any error possibly output
$0: before this message. Then install a modern shell, or
@@ -295,6 +295,7 @@ as_fn_unset ()
}
as_unset=as_fn_unset
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -312,6 +313,14 @@ as_fn_exit ()
as_fn_set_status $1
exit $1
} # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
@@ -326,7 +335,7 @@ as_fn_mkdir_p ()
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -335,7 +344,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -374,12 +383,13 @@ as_fn_executable_p ()
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -391,18 +401,27 @@ fi # as_fn_append
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
@@ -414,9 +433,9 @@ as_fn_error ()
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -443,7 +462,7 @@ as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -487,7 +506,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
@@ -501,6 +520,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
exit
}
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -514,6 +537,13 @@ case `echo -n x` in #(((((
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -581,48 +611,46 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Asymptote'
PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.79'
-PACKAGE_STRING='Asymptote 2.79'
+PACKAGE_VERSION='2.84'
+PACKAGE_STRING='Asymptote 2.84'
PACKAGE_BUGREPORT='https://github.com/vectorgraphics/asymptote/issues'
PACKAGE_URL=''
# Factoring default headers for most tests.
ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
#endif
-#ifdef STDC_HEADERS
+#ifdef HAVE_STDLIB_H
# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
#endif
#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
# include <string.h>
#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"
+ac_header_c_list=
ac_unique_file="absyn.cc"
+ac_header_cxx_list=
+ac_func_cxx_list=
ac_subst_vars='LTLIBOBJS
LIBOBJS
PTHREAD_CFLAGS
@@ -641,9 +669,8 @@ ATOMICVERSION
ASYGLVERSION
GCVERSION
getopt
-CXXCPP
-YFLAGS
-YACC
+FLEX
+BISON
SET_MAKE
INSTALL_DATA
INSTALL_SCRIPT
@@ -667,9 +694,6 @@ build_os
build_vendor
build_cpu
build
-EGREP
-GREP
-CPP
OBJEXT
EXEEXT
ac_ct_CC
@@ -734,6 +758,7 @@ enable_curl
enable_readline
enable_static
enable_fftw
+enable_eigen
enable_gsl
enable_gl
enable_offscreen
@@ -747,13 +772,11 @@ CFLAGS
LDFLAGS
LIBS
CPPFLAGS
-CPP
CXX
CXXFLAGS
CCC
-YACC
-YFLAGS
-CXXCPP'
+BISON
+FLEX'
# Initialize some variables set by options.
@@ -822,8 +845,6 @@ do
*) ac_optarg=yes ;;
esac
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
@@ -864,9 +885,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -890,9 +911,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1103,9 +1124,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1119,9 +1140,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1165,9 +1186,9 @@ Try \`$0 --help' for more information"
*)
# FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
@@ -1183,7 +1204,7 @@ if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1247,7 +1268,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -1304,7 +1325,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Asymptote 2.79 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.84 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1370,7 +1391,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Asymptote 2.79:";;
+ short | recursive ) echo "Configuration of Asymptote 2.84:";;
esac
cat <<\_ACEOF
@@ -1391,6 +1412,7 @@ Optional Features:
--enable-readline[=yes] enable GNU Readline Library
--enable-static[=no] link against static libraries
--enable-fftw[=yes] enable FFTW Library
+ --enable-eigen[=yes] enable Eigen Library
--enable-gsl[=yes] enable GNU Scientific Library
--enable-gl[=yes] enable OpenGL Library
--enable-offscreen[=no] use OSMesa library to implement offscreen rendering
@@ -1412,16 +1434,10 @@ Some influential environment variables:
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags
- YACC The `Yet Another Compiler Compiler' implementation to use.
- Defaults to the first program found out of: `bison -y', `byacc',
- `yacc'.
- YFLAGS The list of arguments that will be passed by default to $YACC.
- This script will default YFLAGS to the empty string to avoid a
- default value of `-d' given by some make applications.
- CXXCPP C++ preprocessor
+ BISON bison command
+ FLEX flex command
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1442,9 +1458,9 @@ if test "$ac_init_help" = "recursive"; then
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1472,7 +1488,8 @@ esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
+ # Check for configure.gnu first; this name is used for a wrapper for
+ # Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1480,7 +1497,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
@@ -1489,10 +1506,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Asymptote configure 2.79
-generated by GNU Autoconf 2.69
+Asymptote configure 2.84
+generated by GNU Autoconf 2.71
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1509,14 +1526,14 @@ fi
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
+ rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1524,14 +1541,15 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
+ } && test -s conftest.$ac_objext
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1543,8 +1561,8 @@ fi
# ac_fn_c_try_run LINENO
# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
@@ -1554,25 +1572,26 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
@@ -1583,43 +1602,6 @@ fi
} # ac_fn_c_try_run
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
@@ -1627,26 +1609,28 @@ fi
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
@@ -1657,14 +1641,14 @@ $as_echo "$ac_res" >&6; }
ac_fn_cxx_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
+ rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1672,14 +1656,15 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_cxx_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
+ } && test -s conftest.$ac_objext
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1695,14 +1680,14 @@ fi
ac_fn_cxx_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
+ rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1710,17 +1695,18 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_cxx_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
- }; then :
+ }
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1735,133 +1721,38 @@ fi
} # ac_fn_cxx_try_link
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
+# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES
# ---------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_cxx_check_header_mongrel ()
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_cxx_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+ eval "$3=yes"
+else $as_nop
+ eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ----------------------------------------------------------------- ##
-## Report this to https://github.com/vectorgraphics/asymptote/issues ##
-## ----------------------------------------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-} # ac_fn_cxx_check_header_mongrel
+} # ac_fn_cxx_check_header_compile
# ac_fn_cxx_check_func LINENO FUNC VAR
# ------------------------------------
@@ -1869,11 +1760,12 @@ fi
ac_fn_cxx_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
@@ -1881,16 +1773,9 @@ else
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+ which can conflict with char $2 (); below. */
+#include <limits.h>
#undef $2
/* Override any GCC internal prototype to avoid an error.
@@ -1908,24 +1793,25 @@ choke me
#endif
int
-main ()
+main (void)
{
return $2 ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_cxx_check_func
@@ -1936,14 +1822,14 @@ $as_echo "$ac_res" >&6; }
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
+ rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1951,17 +1837,18 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
- }; then :
+ }
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1983,17 +1870,18 @@ fi
ac_fn_cxx_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
if (sizeof ($2))
return 0;
@@ -2001,12 +1889,13 @@ if (sizeof ($2))
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
if (sizeof (($2)))
return 0;
@@ -2014,26 +1903,27 @@ if (sizeof (($2)))
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
-else
+else $as_nop
eval "$3=yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_cxx_check_type
# ac_fn_cxx_try_run LINENO
# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
ac_fn_cxx_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
@@ -2043,25 +1933,26 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
@@ -2071,14 +1962,34 @@ fi
as_fn_set_status $ac_retval
} # ac_fn_cxx_try_run
+ac_configure_args_raw=
+for ac_arg
+do
+ case $ac_arg in
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+ *$as_nl*)
+ ac_safe_unquote= ;;
+ *)
+ ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
+ ac_unsafe_a="$ac_unsafe_z#~"
+ ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+ ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Asymptote $as_me 2.79, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+It was created by Asymptote $as_me 2.84, which was
+generated by GNU Autoconf 2.71. Invocation command line was
- $ $0 $@
+ $ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
@@ -2111,8 +2022,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
@@ -2147,7 +2062,7 @@ do
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2182,11 +2097,13 @@ done
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
+ # Sanitize IFS.
+ IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
- $as_echo "## ---------------- ##
+ printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
@@ -2197,8 +2114,8 @@ trap 'exit_status=$?
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -2222,7 +2139,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- $as_echo "## ----------------- ##
+ printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
@@ -2230,14 +2147,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
+ printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
@@ -2245,15 +2162,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
- $as_echo "## ----------- ##
+ printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
@@ -2261,8 +2178,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
echo
fi
test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
+ printf "%s\n" "$as_me: caught signal $ac_signal"
+ printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2276,63 +2193,48 @@ ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
+ ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
+ ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
+ ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ case $ac_site_file in #(
+ */*) :
+ ;; #(
+ *) :
+ ac_site_file=./$ac_site_file ;;
+esac
+ if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
@@ -2342,19 +2244,653 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+ Do not test the value of __STDC__, because some compilers set it to 0
+ while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not \xHH hex character constants.
+ These do not provoke an error unfortunately, instead are silently treated
+ as an "x". The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously \x00 != x always comes out true, for an
+ array size at least. It is necessary to write \x00 == 0 to get something
+ that is true only with -std. */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+ int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+ #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str = "";
+ int number = 0;
+ float fnumber = 0;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case '\''s'\'': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case '\''d'\'': // int
+ number = va_arg (args_copy, int);
+ break;
+ case '\''f'\'': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+
+ return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+ // Check bool.
+ _Bool success = false;
+ success |= (argc != 0);
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[0] = argv[0][0];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+ || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+ int_alignment = _Alignof (int),
+ int_array_alignment = _Alignof (int[100]),
+ char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+ int x;
+ _Static_assert (sizeof (int) <= sizeof (long int),
+ "_Static_assert does not work in struct");
+ long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+ union {
+ struct { int i; int j; };
+ struct { int k; long int l; } w;
+ };
+ int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+ _Static_assert ((offsetof (struct anonymous, i)
+ == offsetof (struct anonymous, w.k)),
+ "Anonymous union alignment botch");
+ v1.i = 2;
+ v1.w.k = 5;
+ ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ ${ac_c_conftest_c11_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+# Test code for whether the C++ compiler supports C++98 (global declarations)
+ac_cxx_conftest_cxx98_globals='
+// Does the compiler advertise C++98 conformance?
+#if !defined __cplusplus || __cplusplus < 199711L
+# error "Compiler does not advertise C++98 conformance"
+#endif
+
+// These inclusions are to reject old compilers that
+// lack the unsuffixed header files.
+#include <cstdlib>
+#include <exception>
+
+// <cassert> and <cstring> are *not* freestanding headers in C++98.
+extern void assert (int);
+namespace std {
+ extern int strcmp (const char *, const char *);
+}
+
+// Namespaces, exceptions, and templates were all added after "C++ 2.0".
+using std::exception;
+using std::strcmp;
+
+namespace {
+
+void test_exception_syntax()
+{
+ try {
+ throw "test";
+ } catch (const char *s) {
+ // Extra parentheses suppress a warning when building autoconf itself,
+ // due to lint rules shared with more typical C programs.
+ assert (!(strcmp) (s, "test"));
+ }
+}
+
+template <typename T> struct test_template
+{
+ T const val;
+ explicit test_template(T t) : val(t) {}
+ template <typename U> T add(U u) { return static_cast<T>(u) + val; }
+};
+
+} // anonymous namespace
+'
+
+# Test code for whether the C++ compiler supports C++98 (body of main)
+ac_cxx_conftest_cxx98_main='
+ assert (argc);
+ assert (! argv[0]);
+{
+ test_exception_syntax ();
+ test_template<double> tt (2.0);
+ assert (tt.add (4) == 6.0);
+ assert (true && !false);
+}
+'
+
+# Test code for whether the C++ compiler supports C++11 (global declarations)
+ac_cxx_conftest_cxx11_globals='
+// Does the compiler advertise C++ 2011 conformance?
+#if !defined __cplusplus || __cplusplus < 201103L
+# error "Compiler does not advertise C++11 conformance"
+#endif
+
+namespace cxx11test
+{
+ constexpr int get_val() { return 20; }
+
+ struct testinit
+ {
+ int i;
+ double d;
+ };
+
+ class delegate
+ {
+ public:
+ delegate(int n) : n(n) {}
+ delegate(): delegate(2354) {}
+
+ virtual int getval() { return this->n; };
+ protected:
+ int n;
+ };
+
+ class overridden : public delegate
+ {
+ public:
+ overridden(int n): delegate(n) {}
+ virtual int getval() override final { return this->n * 2; }
+ };
+
+ class nocopy
+ {
+ public:
+ nocopy(int i): i(i) {}
+ nocopy() = default;
+ nocopy(const nocopy&) = delete;
+ nocopy & operator=(const nocopy&) = delete;
+ private:
+ int i;
+ };
+
+ // for testing lambda expressions
+ template <typename Ret, typename Fn> Ret eval(Fn f, Ret v)
+ {
+ return f(v);
+ }
+
+ // for testing variadic templates and trailing return types
+ template <typename V> auto sum(V first) -> V
+ {
+ return first;
+ }
+ template <typename V, typename... Args> auto sum(V first, Args... rest) -> V
+ {
+ return first + sum(rest...);
+ }
+}
+'
+
+# Test code for whether the C++ compiler supports C++11 (body of main)
+ac_cxx_conftest_cxx11_main='
+{
+ // Test auto and decltype
+ auto a1 = 6538;
+ auto a2 = 48573953.4;
+ auto a3 = "String literal";
+
+ int total = 0;
+ for (auto i = a3; *i; ++i) { total += *i; }
+
+ decltype(a2) a4 = 34895.034;
+}
+{
+ // Test constexpr
+ short sa[cxx11test::get_val()] = { 0 };
+}
+{
+ // Test initializer lists
+ cxx11test::testinit il = { 4323, 435234.23544 };
+}
+{
+ // Test range-based for
+ int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3,
+ 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
+ for (auto &x : array) { x += 23; }
+}
+{
+ // Test lambda expressions
+ using cxx11test::eval;
+ assert (eval ([](int x) { return x*2; }, 21) == 42);
+ double d = 2.0;
+ assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);
+ assert (d == 5.0);
+ assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);
+ assert (d == 5.0);
+}
+{
+ // Test use of variadic templates
+ using cxx11test::sum;
+ auto a = sum(1);
+ auto b = sum(1, 2);
+ auto c = sum(1.0, 2.0, 3.0);
+}
+{
+ // Test constructor delegation
+ cxx11test::delegate d1;
+ cxx11test::delegate d2();
+ cxx11test::delegate d3(45);
+}
+{
+ // Test override and final
+ cxx11test::overridden o1(55464);
+}
+{
+ // Test nullptr
+ char *c = nullptr;
+}
+{
+ // Test template brackets
+ test_template<::test_template<int>> v(test_template<int>(12));
+}
+{
+ // Unicode literals
+ char const *utf8 = u8"UTF-8 string \u2500";
+ char16_t const *utf16 = u"UTF-8 string \u2500";
+ char32_t const *utf32 = U"UTF-32 string \u2500";
+}
+'
+
+# Test code for whether the C compiler supports C++11 (complete).
+ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals}
+${ac_cxx_conftest_cxx11_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_cxx_conftest_cxx98_main}
+ ${ac_cxx_conftest_cxx11_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C++98 (complete).
+ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals}
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_cxx_conftest_cxx98_main}
+ return ok;
+}
+"
+
+as_fn_append ac_header_cxx_list " vfork.h vfork_h HAVE_VFORK_H"
+as_fn_append ac_func_cxx_list " fork HAVE_FORK"
+as_fn_append ac_func_cxx_list " vfork HAVE_VFORK"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="install-sh config.guess config.sub"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ as_found=:
+
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
+ ac_aux_dir_found=yes
+ ac_install_sh=
+ for ac_aux in $ac_aux_files
+ do
+ # As a special case, if "install-sh" is required, that requirement
+ # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+ # and $ac_install_sh is set appropriately for whichever one is found.
+ if test x"$ac_aux" = x"install-sh"
+ then
+ if test -f "${as_dir}install-sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
+ ac_install_sh="${as_dir}install-sh -c"
+ elif test -f "${as_dir}install.sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
+ ac_install_sh="${as_dir}install.sh -c"
+ elif test -f "${as_dir}shtool"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
+ ac_install_sh="${as_dir}shtool install -c"
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+ else
+ break
+ fi
+ fi
+ else
+ if test -f "${as_dir}${ac_aux}"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+ else
+ break
+ fi
+ fi
+ fi
+ done
+ if test "$ac_aux_dir_found" = yes; then
+ ac_aux_dir="$as_dir"
+ break
+ fi
+ ac_first_candidate=false
+
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+ ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+ ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+ ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -2365,12 +2901,12 @@ for ac_var in $ac_precious_vars; do
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
@@ -2379,24 +2915,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
@@ -2406,11 +2942,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi
done
if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+ and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2511,10 +3048,11 @@ VERSION=$PACKAGE_VERSION
#serial 18
-# This is what autoupdate's m4 run will expand. It fires
-# the warning (with _au_warn_XXX), outputs it into the
-# updated configure.ac (with AC_DIAGNOSE), and then outputs
-# the replacement expansion.
+# This is what autoupdate's m4 run will expand. It fires the warning
+# (with _au_warn_XXX), outputs it into the updated configure.ac (with
+# m4_warn), and then outputs the replacement expansion. We need extra
+# quotation around the m4_warn and dnl so they will be written
+# unexpanded into the updated configure.ac.
# This is an auxiliary macro that is also run when
@@ -2525,10 +3063,20 @@ VERSION=$PACKAGE_VERSION
# Finally, this is the expansion that is picked up by
-# autoconf. It tells the user to run autoupdate, and
-# then outputs the replacement expansion. We do not care
-# about autoupdate's warning because that contains
-# information on what to do *after* running autoupdate.
+# autoconf, causing NAME to expand to NEW-CODE, plus
+# (if SILENT is not "silent") a m4_warning telling the
+# maintainer to run autoupdate. We don't issue MESSAGE
+# from autoconf, because that's instructions for what
+# to do *after* running autoupdate.
+
+
+
+
+
+
+
+
+
@@ -2540,11 +3088,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2552,11 +3101,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2567,11 +3120,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2580,11 +3133,12 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -2592,11 +3146,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2607,11 +3165,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
@@ -2619,8 +3177,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -2633,11 +3191,12 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2645,11 +3204,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2660,11 +3223,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2673,11 +3236,12 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2686,15 +3250,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2710,18 +3278,18 @@ if test $ac_prog_rejected = yes; then
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2732,11 +3300,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2744,11 +3313,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2759,11 +3332,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2776,11 +3349,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -2788,11 +3362,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2803,11 +3381,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2819,8 +3397,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -2828,25 +3406,129 @@ esac
fi
fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2856,7 +3538,7 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
@@ -2864,7 +3546,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -2876,9 +3558,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -2899,11 +3581,12 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
@@ -2920,7 +3603,7 @@ do
# certainly right.
break;;
*.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
@@ -2936,44 +3619,46 @@ do
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
-else
+else $as_nop
ac_file=''
fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -2987,15 +3672,15 @@ for ac_file in conftest.exe conftest conftest.*; do
* ) break;;
esac
done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
@@ -3004,7 +3689,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
-main ()
+main (void)
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
@@ -3016,8 +3701,8 @@ _ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
@@ -3025,10 +3710,10 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
@@ -3036,39 +3721,40 @@ $as_echo "$ac_try_echo"; } >&5
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -3082,11 +3768,12 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
@@ -3095,31 +3782,32 @@ $as_echo "$ac_try_echo"; } >&5
break;;
esac
done
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -3129,29 +3817,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
@@ -3160,57 +3852,60 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
-else
+else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
@@ -3225,232 +3920,144 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
+$ac_c_conftest_c11_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
+$ac_c_conftest_c99_program
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <ac_nonexistent.h>
+$ac_c_conftest_c89_program
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c89=$ac_arg
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
fi
- done
- ac_cv_prog_CPP=$CPP
-
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -3460,270 +4067,41 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
+ if test $ac_cache; then
+ ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+ if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+ printf "%s\n" "#define $ac_item 1" >> confdefs.h
fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ ac_header= ac_cache=
+ elif test $ac_header; then
+ ac_cache=$ac_item
+ else
+ ac_header=$ac_item
fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-fi
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-fi
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+printf %s "checking whether byte ordering is bigendian... " >&6; }
+if test ${ac_cv_c_bigendian+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_bigendian=unknown
# See if we're dealing with a universal compiler.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3734,7 +4112,8 @@ else
typedef int dummy;
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
# Check for potential -arch flags. It is not universal unless
# there are at least two -arch flags with different values.
@@ -3758,7 +4137,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
fi
done
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test $ac_cv_c_bigendian = unknown; then
# See if sys/param.h defines the BYTE_ORDER macro.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3767,7 +4146,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
#include <sys/param.h>
int
-main ()
+main (void)
{
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
&& defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
@@ -3779,7 +4158,8 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
# It does; now see whether it defined to BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -3787,7 +4167,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
#include <sys/param.h>
int
-main ()
+main (void)
{
#if BYTE_ORDER != BIG_ENDIAN
not big endian
@@ -3797,14 +4177,15 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_bigendian=yes
-else
+else $as_nop
ac_cv_c_bigendian=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
@@ -3813,7 +4194,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
#include <limits.h>
int
-main ()
+main (void)
{
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
bogus endian macros
@@ -3823,14 +4204,15 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
# It does; now see whether it defined to _BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
int
-main ()
+main (void)
{
#ifndef _BIG_ENDIAN
not big endian
@@ -3840,31 +4222,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_bigendian=yes
-else
+else $as_nop
ac_cv_c_bigendian=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# Compile a test program.
- if test "$cross_compiling" = yes; then :
+ if test "$cross_compiling" = yes
+then :
# Try to guess by grepping values from an object file.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-short int ascii_mm[] =
+unsigned short int ascii_mm[] =
{ 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- short int ascii_ii[] =
+ unsigned short int ascii_ii[] =
{ 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
int use_ascii (int i) {
return ascii_mm[i] + ascii_ii[i];
}
- short int ebcdic_ii[] =
+ unsigned short int ebcdic_ii[] =
{ 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- short int ebcdic_mm[] =
+ unsigned short int ebcdic_mm[] =
{ 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
int use_ebcdic (int i) {
return ebcdic_mm[i] + ebcdic_ii[i];
@@ -3872,14 +4256,15 @@ short int ascii_mm[] =
extern int foo;
int
-main ()
+main (void)
{
return use_ascii (foo) == use_ebcdic (foo);
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
ac_cv_c_bigendian=yes
fi
@@ -3892,13 +4277,13 @@ if ac_fn_c_try_compile "$LINENO"; then :
fi
fi
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
-main ()
+main (void)
{
/* Are we little or big endian? From Harbison&Steele. */
@@ -3914,9 +4299,10 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
ac_cv_c_bigendian=no
-else
+else $as_nop
ac_cv_c_bigendian=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -3925,17 +4311,17 @@ fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+printf "%s\n" "$ac_cv_c_bigendian" >&6; }
case $ac_cv_c_bigendian in #(
yes)
- $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+ printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
;; #(
no)
;; #(
universal)
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
;; #(
*)
@@ -3943,55 +4329,30 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
esac
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -4010,21 +4371,22 @@ IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -4051,7 +4413,8 @@ test "$Datadir" = '${prefix}/share' && Datadir=$prefix/share
# Check whether --enable-lsp was given.
-if test "${enable_lsp+set}" = set; then :
+if test ${enable_lsp+y}
+then :
enableval=$enable_lsp;
fi
@@ -4059,8 +4422,8 @@ if test "x$enable_lsp" != "xno"; then
cxxstd="c++14"
else
cxxstd="c++11"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** Language Server Protocol disabled by configure flag ***" >&5
-$as_echo "$as_me: *** Language Server Protocol disabled by configure flag ***" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Language Server Protocol disabled by configure flag ***" >&5
+printf "%s\n" "$as_me: *** Language Server Protocol disabled by configure flag ***" >&6;}
fi
test "$CXXFLAGS" || CXXFLAGS="-std=$cxxstd"
@@ -4070,20 +4433,22 @@ test "$CFLAGS" || CFLAGS="-g -O3"
# Check whether --with-latex was given.
-if test "${with_latex+set}" = set; then :
+if test ${with_latex+y}
+then :
withval=$with_latex; if test "x$withval" != "x" ; then
latexdir=$withval
fi
-else
+else $as_nop
# Extract the first word of "kpsewhich", so it can be a program name with args.
set dummy kpsewhich; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_kpsewhich+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_kpsewhich+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$kpsewhich"; then
ac_cv_prog_kpsewhich="$kpsewhich" # Let the user override the test.
else
@@ -4091,11 +4456,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_kpsewhich="true"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4106,11 +4475,11 @@ fi
fi
kpsewhich=$ac_cv_prog_kpsewhich
if test -n "$kpsewhich"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpsewhich" >&5
-$as_echo "$kpsewhich" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $kpsewhich" >&5
+printf "%s\n" "$kpsewhich" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4118,12 +4487,13 @@ if test "x$kpsewhich" = "xtrue"; then
latexdir=`kpsewhich -expand-var='$TEXMFLOCAL'/tex/latex`
else
latexdir=$prefix/share/texmf/tex/latex
- as_ac_File=`$as_echo "ac_cv_file_$latexdir/base/latex.ltx" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $latexdir/base/latex.ltx" >&5
-$as_echo_n "checking for $latexdir/base/latex.ltx... " >&6; }
-if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ as_ac_File=`printf "%s\n" "ac_cv_file_$latexdir/base/latex.ltx" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $latexdir/base/latex.ltx" >&5
+printf %s "checking for $latexdir/base/latex.ltx... " >&6; }
+if eval test \${$as_ac_File+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$latexdir/base/latex.ltx"; then
@@ -4133,18 +4503,20 @@ else
fi
fi
eval ac_res=\$$as_ac_File
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"
+then :
-else
+else $as_nop
latexdir=/usr/share/texmf/tex/latex
- as_ac_File=`$as_echo "ac_cv_file_$latexdir/base/latex.ltx" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $latexdir/base/latex.ltx" >&5
-$as_echo_n "checking for $latexdir/base/latex.ltx... " >&6; }
-if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ as_ac_File=`printf "%s\n" "ac_cv_file_$latexdir/base/latex.ltx" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $latexdir/base/latex.ltx" >&5
+printf %s "checking for $latexdir/base/latex.ltx... " >&6; }
+if eval test \${$as_ac_File+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$latexdir/base/latex.ltx"; then
@@ -4154,9 +4526,10 @@ else
fi
fi
eval ac_res=\$$as_ac_File
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"
+then :
fi
@@ -4169,20 +4542,22 @@ fi
# Check whether --with-context was given.
-if test "${with_context+set}" = set; then :
+if test ${with_context+y}
+then :
withval=$with_context; if test "x$withval" != "x" ; then
contextdir=$withval
fi
-else
+else $as_nop
# Extract the first word of "kpsewhich", so it can be a program name with args.
set dummy kpsewhich; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_kpsewhich+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_kpsewhich+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$kpsewhich"; then
ac_cv_prog_kpsewhich="$kpsewhich" # Let the user override the test.
else
@@ -4190,11 +4565,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_kpsewhich="true"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4205,11 +4584,11 @@ fi
fi
kpsewhich=$ac_cv_prog_kpsewhich
if test -n "$kpsewhich"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpsewhich" >&5
-$as_echo "$kpsewhich" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $kpsewhich" >&5
+printf "%s\n" "$kpsewhich" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4226,11 +4605,12 @@ for ac_prog in texi2dvi
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_TEXI2DVI+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_TEXI2DVI+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$TEXI2DVI"; then
ac_cv_prog_TEXI2DVI="$TEXI2DVI" # Let the user override the test.
else
@@ -4238,11 +4618,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_TEXI2DVI="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4253,11 +4637,11 @@ fi
fi
TEXI2DVI=$ac_cv_prog_TEXI2DVI
if test -n "$TEXI2DVI"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEXI2DVI" >&5
-$as_echo "$TEXI2DVI" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TEXI2DVI" >&5
+printf "%s\n" "$TEXI2DVI" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4271,10 +4655,10 @@ test -n "$TEXI2DVI" || TEXI2DVI="@echo \*\*\*\*\*\*\*\*\*\* Please install texi2
latexdir=$latexdir/asymptote
contextdir=$contextdir/asymptote
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Using $latexdir for LaTeX style file" >&5
-$as_echo "$as_me: Using $latexdir for LaTeX style file" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Using $contextdir for ConTeXT style file" >&5
-$as_echo "$as_me: Using $contextdir for ConTeXT style file" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using $latexdir for LaTeX style file" >&5
+printf "%s\n" "$as_me: Using $latexdir for LaTeX style file" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using $contextdir for ConTeXT style file" >&5
+printf "%s\n" "$as_me: Using $contextdir for ConTeXT style file" >&6;}
@@ -4283,7 +4667,8 @@ docdir=$Datadir/doc/asymptote
# Check whether --with-docdir was given.
-if test "${with_docdir+set}" = set; then :
+if test ${with_docdir+y}
+then :
withval=$with_docdir; if test "x$withval" != "x" ; then
docdir=$withval
fi
@@ -4295,7 +4680,8 @@ fi
sysdir=$Datadir/asymptote
# Check whether --enable-texlive-build was given.
-if test "${enable_texlive_build+set}" = set; then :
+if test ${enable_texlive_build+y}
+then :
enableval=$enable_texlive_build; if test "x$enableval" = "xyes" ; then
sysdir=""
fi
@@ -4304,14 +4690,10 @@ fi
-cat >>confdefs.h <<_ACEOF
-#define ASYMPTOTE_SYSDIR "$sysdir"
-_ACEOF
+printf "%s\n" "#define ASYMPTOTE_SYSDIR \"$sysdir\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define ASYMPTOTE_DOCDIR "$docdir"
-_ACEOF
+printf "%s\n" "#define ASYMPTOTE_DOCDIR \"$docdir\"" >>confdefs.h
@@ -4324,6 +4706,12 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# Checks for programs.
+
+
+
+
+
+
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4334,15 +4722,16 @@ if test -z "$CXX"; then
CXX=$CCC
else
if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CXX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CXX"; then
ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
@@ -4350,11 +4739,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4365,11 +4758,11 @@ fi
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+printf "%s\n" "$CXX" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4378,15 +4771,16 @@ fi
fi
if test -z "$CXX"; then
ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CXX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CXX"; then
ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
else
@@ -4394,11 +4788,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4409,11 +4807,11 @@ fi
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+printf "%s\n" "$ac_ct_CXX" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4425,8 +4823,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
@@ -4436,7 +4834,7 @@ fi
fi
fi
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
@@ -4446,7 +4844,7 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -4456,20 +4854,21 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
+printf %s "checking whether the compiler supports GNU C++... " >&6; }
+if test ${ac_cv_cxx_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -4479,29 +4878,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GXX=yes
else
GXX=
fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_test_CXXFLAGS=${CXXFLAGS+y}
ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+printf %s "checking whether $CXX accepts -g... " >&6; }
+if test ${ac_cv_prog_cxx_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_cxx_werror_flag=$ac_cxx_werror_flag
ac_cxx_werror_flag=yes
ac_cv_prog_cxx_g=no
@@ -4510,57 +4913,60 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_prog_cxx_g=yes
-else
+else $as_nop
CXXFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
CXXFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_prog_cxx_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }
+if test $ac_test_CXXFLAGS; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
if test "$GXX" = yes; then
@@ -4575,6 +4981,100 @@ else
CXXFLAGS=
fi
fi
+ac_prog_cxx_stdcxx=no
+if test x$ac_prog_cxx_stdcxx = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
+printf %s "checking for $CXX option to enable C++11 features... " >&6; }
+if test ${ac_cv_prog_cxx_cxx11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cxx_cxx11=no
+ac_save_CXX=$CXX
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_cxx_conftest_cxx11_program
+_ACEOF
+for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA
+do
+ CXX="$ac_save_CXX $ac_arg"
+ if ac_fn_cxx_try_compile "$LINENO"
+then :
+ ac_cv_prog_cxx_cxx11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cxx_cxx11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX
+fi
+
+if test "x$ac_cv_prog_cxx_cxx11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cxx_cxx11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5
+printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }
+ CXX="$CXX $ac_cv_prog_cxx_cxx11"
+fi
+ ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
+ ac_prog_cxx_stdcxx=cxx11
+fi
+fi
+if test x$ac_prog_cxx_stdcxx = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
+printf %s "checking for $CXX option to enable C++98 features... " >&6; }
+if test ${ac_cv_prog_cxx_cxx98+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cxx_cxx98=no
+ac_save_CXX=$CXX
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_cxx_conftest_cxx98_program
+_ACEOF
+for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA
+do
+ CXX="$ac_save_CXX $ac_arg"
+ if ac_fn_cxx_try_compile "$LINENO"
+then :
+ ac_cv_prog_cxx_cxx98=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cxx_cxx98" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX
+fi
+
+if test "x$ac_cv_prog_cxx_cxx98" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cxx_cxx98" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5
+printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }
+ CXX="$CXX $ac_cv_prog_cxx_cxx98"
+fi
+ ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98
+ ac_prog_cxx_stdcxx=cxx98
+fi
+fi
+
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4586,11 +5086,12 @@ for ac_prog in flex lex
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LEX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LEX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$LEX"; then
ac_cv_prog_LEX="$LEX" # Let the user override the test.
else
@@ -4598,11 +5099,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LEX="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4613,11 +5118,11 @@ fi
fi
LEX=$ac_cv_prog_LEX
if test -n "$LEX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
-$as_echo "$LEX" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
+printf "%s\n" "$LEX" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4625,15 +5130,26 @@ fi
done
test -n "$LEX" || LEX=":"
-if test "x$LEX" != "x:"; then
- cat >conftest.l <<_ACEOF
+ if test "x$LEX" != "x:"; then
+ cat >conftest.l <<_ACEOF
+%{
+#ifdef __cplusplus
+extern "C"
+#endif
+int yywrap(void);
+%}
%%
a { ECHO; }
b { REJECT; }
c { yymore (); }
d { yyless (1); }
e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */
- yyless ((input () != 0)); }
+#ifdef __cplusplus
+ yyless ((yyinput () != 0));
+#else
+ yyless ((input () != 0));
+#endif
+ }
f { unput (yytext[0]); }
. { BEGIN INITIAL; }
%%
@@ -4641,101 +5157,144 @@ f { unput (yytext[0]); }
extern char *yytext;
#endif
int
+yywrap (void)
+{
+ return 1;
+}
+int
main (void)
{
- return ! yylex () + ! yywrap ();
+ return ! yylex ();
}
_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex output file root" >&5
+printf %s "checking for lex output file root... " >&6; }
+if test ${ac_cv_prog_lex_root+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+ac_cv_prog_lex_root=unknown
{ { ac_try="$LEX conftest.l"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$LEX conftest.l") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
-$as_echo_n "checking lex output file root... " >&6; }
-if ${ac_cv_prog_lex_root+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
if test -f lex.yy.c; then
ac_cv_prog_lex_root=lex.yy
elif test -f lexyy.c; then
ac_cv_prog_lex_root=lexyy
-else
- as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
-$as_echo "$ac_cv_prog_lex_root" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
+printf "%s\n" "$ac_cv_prog_lex_root" >&6; }
+if test "$ac_cv_prog_lex_root" = unknown
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find output from $LEX; giving up on $LEX" >&5
+printf "%s\n" "$as_me: WARNING: cannot find output from $LEX; giving up on $LEX" >&2;}
+ LEX=: LEXLIB=
+fi
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-if test -z "${LEXLIB+set}"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
-$as_echo_n "checking lex library... " >&6; }
-if ${ac_cv_lib_lex+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${LEXLIB+y}
+then :
+
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5
+printf %s "checking for lex library... " >&6; }
+if test ${ac_cv_lib_lex+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+ ac_save_LIBS="$LIBS"
+ ac_found=false
+ for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do
+ case $ac_cv_lib_lex in #(
+ 'none needed') :
+ ;; #(
+ 'not found') :
+ break ;; #(
+ *) :
+ LIBS="$ac_cv_lib_lex $ac_save_LIBS" ;; #(
+ *) :
+ ;;
+esac
- ac_save_LIBS=$LIBS
- ac_cv_lib_lex='none needed'
- for ac_lib in '' -lfl -ll; do
- LIBS="$ac_lib $ac_save_LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
`cat $LEX_OUTPUT_ROOT.c`
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- ac_cv_lib_lex=$ac_lib
+if ac_fn_cxx_try_link "$LINENO"
+then :
+ ac_found=:
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- test "$ac_cv_lib_lex" != 'none needed' && break
+ if $ac_found; then
+ break
+ fi
done
- LIBS=$ac_save_LIBS
+ LIBS="$ac_save_LIBS"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
-$as_echo "$ac_cv_lib_lex" >&6; }
- test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
+printf "%s\n" "$ac_cv_lib_lex" >&6; }
+ if test "$ac_cv_lib_lex" = 'not found'
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: required lex library not found; giving up on $LEX" >&5
+printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LEX" >&2;}
+ LEX=: LEXLIB=
+elif test "$ac_cv_lib_lex" = 'none needed'
+then :
+ LEXLIB=''
+else $as_nop
+ LEXLIB=$ac_cv_lib_lex
fi
+fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
-$as_echo_n "checking whether yytext is a pointer... " >&6; }
-if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+if test "$LEX" != :
+then :
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
+printf %s "checking whether yytext is a pointer... " >&6; }
+if test ${ac_cv_prog_lex_yytext_pointer+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# POSIX says lex can declare yytext either as a pointer or an array; the
# default is implementation-dependent. Figure out which it is, since
# not all implementations provide the %pointer and %array declarations.
ac_cv_prog_lex_yytext_pointer=no
-ac_save_LIBS=$LIBS
-LIBS="$LEXLIB $ac_save_LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define YYTEXT_POINTER 1
`cat $LEX_OUTPUT_ROOT.c`
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_prog_lex_yytext_pointer=yes
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
-$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
+printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; }
if test $ac_cv_prog_lex_yytext_pointer = yes; then
-$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
+printf "%s\n" "#define YYTEXT_POINTER 1" >>confdefs.h
+
+fi
fi
rm -f conftest.l $LEX_OUTPUT_ROOT.c
@@ -4751,15 +5310,16 @@ if test -z "$CXX"; then
CXX=$CCC
else
if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CXX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CXX"; then
ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
@@ -4767,11 +5327,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4782,11 +5346,11 @@ fi
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+printf "%s\n" "$CXX" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4795,15 +5359,16 @@ fi
fi
if test -z "$CXX"; then
ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CXX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CXX"; then
ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
else
@@ -4811,11 +5376,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4826,11 +5395,11 @@ fi
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+printf "%s\n" "$ac_ct_CXX" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4842,8 +5411,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
@@ -4853,7 +5422,7 @@ fi
fi
fi
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
@@ -4863,7 +5432,7 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -4873,20 +5442,21 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
+printf %s "checking whether the compiler supports GNU C++... " >&6; }
+if test ${ac_cv_cxx_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -4896,29 +5466,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GXX=yes
else
GXX=
fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_test_CXXFLAGS=${CXXFLAGS+y}
ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+printf %s "checking whether $CXX accepts -g... " >&6; }
+if test ${ac_cv_prog_cxx_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_cxx_werror_flag=$ac_cxx_werror_flag
ac_cxx_werror_flag=yes
ac_cv_prog_cxx_g=no
@@ -4927,57 +5501,60 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_prog_cxx_g=yes
-else
+else $as_nop
CXXFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
CXXFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_prog_cxx_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }
+if test $ac_test_CXXFLAGS; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
if test "$GXX" = yes; then
@@ -4992,13 +5569,108 @@ else
CXXFLAGS=
fi
fi
+ac_prog_cxx_stdcxx=no
+if test x$ac_prog_cxx_stdcxx = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
+printf %s "checking for $CXX option to enable C++11 features... " >&6; }
+if test ${ac_cv_prog_cxx_cxx11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cxx_cxx11=no
+ac_save_CXX=$CXX
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_cxx_conftest_cxx11_program
+_ACEOF
+for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA
+do
+ CXX="$ac_save_CXX $ac_arg"
+ if ac_fn_cxx_try_compile "$LINENO"
+then :
+ ac_cv_prog_cxx_cxx11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cxx_cxx11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX
+fi
+
+if test "x$ac_cv_prog_cxx_cxx11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cxx_cxx11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5
+printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }
+ CXX="$CXX $ac_cv_prog_cxx_cxx11"
+fi
+ ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
+ ac_prog_cxx_stdcxx=cxx11
+fi
+fi
+if test x$ac_prog_cxx_stdcxx = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
+printf %s "checking for $CXX option to enable C++98 features... " >&6; }
+if test ${ac_cv_prog_cxx_cxx98+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cxx_cxx98=no
+ac_save_CXX=$CXX
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_cxx_conftest_cxx98_program
+_ACEOF
+for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA
+do
+ CXX="$ac_save_CXX $ac_arg"
+ if ac_fn_cxx_try_compile "$LINENO"
+then :
+ ac_cv_prog_cxx_cxx98=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cxx_cxx98" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX
+fi
+
+if test "x$ac_cv_prog_cxx_cxx98" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cxx_cxx98" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5
+printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }
+ CXX="$CXX $ac_cv_prog_cxx_cxx98"
+fi
+ ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98
+ ac_prog_cxx_stdcxx=cxx98
+fi
+fi
+
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-# Find a good install program. We prefer a C program (faster),
+
+ # Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
@@ -5012,20 +5684,25 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${ac_cv_path_install+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+ ./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
@@ -5035,13 +5712,13 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
@@ -5049,12 +5726,12 @@ case $as_dir/ in #((
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
@@ -5070,7 +5747,7 @@ IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
- if test "${ac_cv_path_install+set}" = set; then
+ if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
@@ -5080,8 +5757,8 @@ fi
INSTALL=$ac_install_sh
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
@@ -5099,11 +5776,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -5111,11 +5789,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5126,11 +5808,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5139,11 +5821,12 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -5151,11 +5834,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5166,11 +5853,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
@@ -5178,8 +5865,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -5192,11 +5879,12 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -5204,11 +5892,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5219,11 +5911,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5232,11 +5924,12 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -5245,15 +5938,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5269,18 +5966,18 @@ if test $ac_prog_rejected = yes; then
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5291,11 +5988,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -5303,11 +6001,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5318,11 +6020,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5335,11 +6037,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -5347,11 +6050,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5362,11 +6069,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5378,8 +6085,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -5387,25 +6094,129 @@ esac
fi
fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -5415,20 +6226,21 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -5438,29 +6250,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
@@ -5469,57 +6285,60 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
-else
+else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
@@ -5534,94 +6353,144 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c89_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
+ if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_c89=$ac_arg
fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
+fi
fi
ac_ext=cpp
@@ -5630,13 +6499,14 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@@ -5652,59 +6522,114 @@ esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
SET_MAKE=
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
-for ac_prog in 'bison -y' byacc
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_YACC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
+
+
+# Extract the first word of "bison -y", so it can be a program name with args.
+set dummy bison -y; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_BISON+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$BISON"; then
+ ac_cv_prog_BISON="$BISON" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_YACC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_BISON="yes"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
+ test -z "$ac_cv_prog_BISON" && ac_cv_prog_BISON="no"
fi
fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-$as_echo "$YACC" >&6; }
+BISON=$ac_cv_prog_BISON
+if test -n "$BISON"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
+printf "%s\n" "$BISON" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+if test "x$BISON" = "xno"
+then :
+ as_fn_error $? "bison not found" "$LINENO" 5
fi
- test -n "$YACC" && break
+# Extract the first word of "flex -y", so it can be a program name with args.
+set dummy flex -y; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_FLEX+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$FLEX"; then
+ ac_cv_prog_FLEX="$FLEX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_FLEX="yes"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
done
-test -n "$YACC" || YACC="yacc"
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_prog_FLEX" && ac_cv_prog_FLEX="no"
+fi
+fi
+FLEX=$ac_cv_prog_FLEX
+if test -n "$FLEX"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FLEX" >&5
+printf "%s\n" "$FLEX" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+if test "x$FLEX" = "xno"
+then :
+ as_fn_error $? "flex not found" "$LINENO" 5
+fi
+
if test "$GXX" = yes ; then
ac_gcc_version=`echo __GNUC__ | $CC -E - | grep -v ^\#`
ac_clang=`echo __clang__ | $CC -E - | grep -v ^\#`
@@ -5721,145 +6646,11 @@ fi
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
- if ${ac_cv_prog_CXXCPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
+ac_fn_cxx_check_header_compile "$LINENO" "tr1/unordered_map" "ac_cv_header_tr1_unordered_map" "$ac_includes_default"
+if test "x$ac_cv_header_tr1_unordered_map" = xyes
+then :
fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-ac_fn_cxx_check_header_mongrel "$LINENO" "tr1/unordered_map" "ac_cv_header_tr1_unordered_map" "$ac_includes_default"
-if test "x$ac_cv_header_tr1_unordered_map" = xyes; then :
-
-fi
-
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5867,40 +6658,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
std::tr1::unordered_map<int,int> map;
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
-$as_echo "#define HAVE_TR1_UNORDERED_MAP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_TR1_UNORDERED_MAP 1" >>confdefs.h
-else
+else $as_nop
- ac_fn_cxx_check_header_mongrel "$LINENO" "unordered_map" "ac_cv_header_unordered_map" "$ac_includes_default"
-if test "x$ac_cv_header_unordered_map" = xyes; then :
+ ac_fn_cxx_check_header_compile "$LINENO" "unordered_map" "ac_cv_header_unordered_map" "$ac_includes_default"
+if test "x$ac_cv_header_unordered_map" = xyes
+then :
-$as_echo "#define HAVE_UNORDERED_MAP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_UNORDERED_MAP 1" >>confdefs.h
-else
- ac_fn_cxx_check_header_mongrel "$LINENO" "ext/hash_map" "ac_cv_header_ext_hash_map" "$ac_includes_default"
-if test "x$ac_cv_header_ext_hash_map" = xyes; then :
+else $as_nop
+ ac_fn_cxx_check_header_compile "$LINENO" "ext/hash_map" "ac_cv_header_ext_hash_map" "$ac_includes_default"
+if test "x$ac_cv_header_ext_hash_map" = xyes
+then :
-else
+else $as_nop
OPTIONS=$OPTIONS"-DNOHASH "
fi
-
fi
-
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-ASYGLVERSION=1.01
+ASYGLVERSION=1.02
GCVERSION=8.2.0
ATOMICVERSION=7.6.12
@@ -5908,12 +6700,13 @@ ATOMICVERSION=7.6.12
GCFILE=gc-$GCVERSION
ac_cv_use_gc="system"
-as_ac_File=`$as_echo "ac_cv_file_$GCFILE.tar.gz" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GCFILE.tar.gz" >&5
-$as_echo_n "checking for $GCFILE.tar.gz... " >&6; }
-if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+as_ac_File=`printf "%s\n" "ac_cv_file_$GCFILE.tar.gz" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $GCFILE.tar.gz" >&5
+printf %s "checking for $GCFILE.tar.gz... " >&6; }
+if eval test \${$as_ac_File+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$GCFILE.tar.gz"; then
@@ -5923,14 +6716,16 @@ else
fi
fi
eval ac_res=\$$as_ac_File
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"
+then :
ac_cv_use_gc=$GCVERSION
fi
# Check whether --enable-gc was given.
-if test "${enable_gc+set}" = set; then :
+if test ${enable_gc+y}
+then :
enableval=$enable_gc;
if test "x$enableval" != "xyes" ; then
ac_cv_use_gc=$enableval
@@ -5939,7 +6734,7 @@ if test "${enable_gc+set}" = set; then :
fi
-OPTIONS="-D_FILE_OFFSET_BITS=64 "
+OPTIONS="-D_FILE_OFFSET_BIS=64 "
GCLIB=
GCPPLIB=
INCL="-I."
@@ -5957,93 +6752,93 @@ if test "x$ac_cv_use_gc" != "xno" ; then
fi
CPPFLAGS_SAVE=$CPPFLAGS
CPPFLAGS=$CPPFLAGS" $INCL"
- ac_fn_cxx_check_header_mongrel "$LINENO" "gc.h" "ac_cv_header_gc_h" "$ac_includes_default"
-if test "x$ac_cv_header_gc_h" = xyes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_malloc in -lgc" >&5
-$as_echo_n "checking for GC_malloc in -lgc... " >&6; }
-if ${ac_cv_lib_gc_GC_malloc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ ac_fn_cxx_check_header_compile "$LINENO" "gc.h" "ac_cv_header_gc_h" "$ac_includes_default"
+if test "x$ac_cv_header_gc_h" = xyes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GC_malloc in -lgc" >&5
+printf %s "checking for GC_malloc in -lgc... " >&6; }
+if test ${ac_cv_lib_gc_GC_malloc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char GC_malloc ();
+namespace conftest {
+ extern "C" int GC_malloc ();
+}
int
-main ()
+main (void)
{
-return GC_malloc ();
+return conftest::GC_malloc ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_gc_GC_malloc=yes
-else
+else $as_nop
ac_cv_lib_gc_GC_malloc=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_malloc" >&5
-$as_echo "$ac_cv_lib_gc_GC_malloc" >&6; }
-if test "x$ac_cv_lib_gc_GC_malloc" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_malloc" >&5
+printf "%s\n" "$ac_cv_lib_gc_GC_malloc" >&6; }
+if test "x$ac_cv_lib_gc_GC_malloc" = xyes
+then :
LIBS=$LIBS"-lgc "
- { $as_echo "$as_me:${as_lineno-$LINENO}: enabling system $GCNAME" >&5
-$as_echo "$as_me: enabling system $GCNAME" >&6;}
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: enabling system $GCNAME" >&5
+printf "%s\n" "$as_me: enabling system $GCNAME" >&6;}
+else $as_nop
GCDIR=$GCFILE
INCL="-I. -I\$(GC)/include"
GCLIB="\$(GC)/.libs/libgc.a"
- { $as_echo "$as_me:${as_lineno-$LINENO}: $GCNAME library not found" >&5
-$as_echo "$as_me: $GCNAME library not found" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $GCNAME library not found" >&5
+printf "%s\n" "$as_me: $GCNAME library not found" >&6;}
fi
-else
+else $as_nop
GCDIR=$GCFILE
GCLIB="\$(GC)/.libs/libgc.a"
INCL="-I. -I\$(GC)/include"
- { $as_echo "$as_me:${as_lineno-$LINENO}: $GCNAME header file not found" >&5
-$as_echo "$as_me: $GCNAME header file not found" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $GCNAME header file not found" >&5
+printf "%s\n" "$as_me: $GCNAME header file not found" >&6;}
fi
-
CPPFLAGS=$CPPFLAGS_SAVE
;;
*)
GCVERSION=$ac_cv_use_gc
GCFILE=gc-$GCVERSION
GCDIR=$GCFILE
- { $as_echo "$as_me:${as_lineno-$LINENO}: enabling local $GCNAME $GCDIR" >&5
-$as_echo "$as_me: enabling local $GCNAME $GCDIR" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: enabling local $GCNAME $GCDIR" >&5
+printf "%s\n" "$as_me: enabling local $GCNAME $GCDIR" >&6;}
GCLIB="\$(GC)/.libs/libgc.a"
INCL="-I. -I\$(GC)/include"
;;
esac
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: disabling the $GCNAME" >&5
-$as_echo "$as_me: disabling the $GCNAME" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: disabling the $GCNAME" >&5
+printf "%s\n" "$as_me: disabling the $GCNAME" >&6;}
fi
# Check whether --enable-gc-debug was given.
-if test "${enable_gc_debug+set}" = set; then :
+if test ${enable_gc_debug+y}
+then :
enableval=$enable_gc_debug; if test "x$ac_cv_use_gc" != "xno" ; then
if test "x$enableval" = "xyes" ; then
OPTIONS=$OPTIONS"-DGC_DEBUG "
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Enabling GC debugging: remember to make clean ***" >&5
-$as_echo "$as_me: *** Enabling GC debugging: remember to make clean ***" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Set the environment variable GC_FIND_LEAK at runtime ***" >&5
-$as_echo "$as_me: *** Set the environment variable GC_FIND_LEAK at runtime ***" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Enabling GC debugging: remember to make clean ***" >&5
+printf "%s\n" "$as_me: *** Enabling GC debugging: remember to make clean ***" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Set the environment variable GC_FIND_LEAK at runtime ***" >&5
+printf "%s\n" "$as_me: *** Set the environment variable GC_FIND_LEAK at runtime ***" >&6;}
fi
fi
@@ -6051,21 +6846,20 @@ fi
# Check whether --enable-gc-full-debug was given.
-if test "${enable_gc_full_debug+set}" = set; then :
+if test ${enable_gc_full_debug+y}
+then :
enableval=$enable_gc_full_debug; if test "x$ac_cv_use_gc" != "xno" ; then
if test "x$enableval" = "xyes" ; then
OPTIONS=$OPTIONS"-DGC_DEBUG -DGC_BACKTRACE "
GCOPTIONS=$GCOPTIONS"--enable-gc-debug "
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Enabling GC backtrace debugging; remember to make gc-clean ***" >&5
-$as_echo "$as_me: *** Enabling GC backtrace debugging; remember to make gc-clean ***" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Enabling GC backtrace debugging; remember to make gc-clean ***" >&5
+printf "%s\n" "$as_me: *** Enabling GC backtrace debugging; remember to make gc-clean ***" >&6;}
fi
fi
fi
-INCL=$INCL" -I/usr/include/tirpc"
-
if test "$OSTYPE" = "msdos"; then
CPPFLAGS=$CPPFLAGS" -D__MSDOS__ -I/usr/include/w32api -I/usr/include -DCALLBACK=__stdcall $INCL"
else
@@ -6073,11 +6867,12 @@ CPPFLAGS=$CPPFLAGS" $INCL"
fi
ac_fn_cxx_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
-if test "x$ac_cv_func_getopt_long_only" = xyes; then :
+if test "x$ac_cv_func_getopt_long_only" = xyes
+then :
-$as_echo "#define HAVE_GNU_GETOPT_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GNU_GETOPT_H 1" >>confdefs.h
-else
+else $as_nop
getopt="getopt getopt1"
fi
@@ -6095,115 +6890,57 @@ fi
# Checks for libraries.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lgamma" >&5
-$as_echo_n "checking for library containing lgamma... " >&6; }
-if ${ac_cv_search_lgamma+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char lgamma ();
-int
-main ()
-{
-return lgamma ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' m c; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_cxx_try_link "$LINENO"; then :
- ac_cv_search_lgamma=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_lgamma+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_lgamma+:} false; then :
-
-else
- ac_cv_search_lgamma=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lgamma" >&5
-$as_echo "$ac_cv_search_lgamma" >&6; }
-ac_res=$ac_cv_search_lgamma
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else
- as_fn_error $? "*** Please install libm on your system ***" "$LINENO" 5
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5
-$as_echo_n "checking for deflate in -lz... " >&6; }
-if ${ac_cv_lib_z_deflate+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+#AC_SEARCH_LIBS([lgamma],[m c],,
+#AC_MSG_ERROR([*** Please install libm on your system ***]))
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5
+printf %s "checking for deflate in -lz... " >&6; }
+if test ${ac_cv_lib_z_deflate+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char deflate ();
+namespace conftest {
+ extern "C" int deflate ();
+}
int
-main ()
+main (void)
{
-return deflate ();
+return conftest::deflate ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_z_deflate=yes
-else
+else $as_nop
ac_cv_lib_z_deflate=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5
-$as_echo "$ac_cv_lib_z_deflate" >&6; }
-if test "x$ac_cv_lib_z_deflate" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZ 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5
+printf "%s\n" "$ac_cv_lib_z_deflate" >&6; }
+if test "x$ac_cv_lib_z_deflate" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBZ 1" >>confdefs.h
LIBS="-lz $LIBS"
-else
+else $as_nop
as_fn_error $? "*** Please install libz or zlib-devel on your system ***" "$LINENO" 5
fi
GCOPTIONS="--disable-shared "
# Check whether --enable-threads was given.
-if test "${enable_threads+set}" = set; then :
+if test ${enable_threads+y}
+then :
enableval=$enable_threads;
fi
@@ -6231,33 +6968,31 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
-$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
+printf %s "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char pthread_join ();
int
-main ()
+main (void)
{
return pthread_join ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ax_pthread_ok=yes
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-$as_echo "$ax_pthread_ok" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+printf "%s\n" "$ax_pthread_ok" >&6; }
if test x"$ax_pthread_ok" = xno; then
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
@@ -6322,24 +7057,25 @@ for flag in $ax_pthread_flags; do
case $flag in
none)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
-$as_echo_n "checking whether pthreads work without any flags... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
+printf %s "checking whether pthreads work without any flags... " >&6; }
;;
-*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
-$as_echo_n "checking whether pthreads work with $flag... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
+printf %s "checking whether pthreads work with $flag... " >&6; }
PTHREAD_CFLAGS="$flag"
;;
pthread-config)
# Extract the first word of "pthread-config", so it can be a program name with args.
set dummy pthread-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ax_pthread_config+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ax_pthread_config+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ax_pthread_config"; then
ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
else
@@ -6347,11 +7083,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ax_pthread_config="yes"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6363,11 +7103,11 @@ fi
fi
ax_pthread_config=$ac_cv_prog_ax_pthread_config
if test -n "$ax_pthread_config"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
-$as_echo "$ax_pthread_config" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
+printf "%s\n" "$ax_pthread_config" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6377,8 +7117,8 @@ fi
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
-$as_echo_n "checking for the pthreads library -l$flag... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
+printf %s "checking for the pthreads library -l$flag... " >&6; }
PTHREAD_LIBS="-l$flag"
;;
esac
@@ -6403,7 +7143,7 @@ $as_echo_n "checking for the pthreads library -l$flag... " >&6; }
static void routine(void *a) { a = 0; }
static void *start_routine(void *a) { return a; }
int
-main ()
+main (void)
{
pthread_t th; pthread_attr_t attr;
pthread_create(&th, 0, start_routine, 0);
@@ -6415,17 +7155,18 @@ pthread_t th; pthread_attr_t attr;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ax_pthread_ok=yes
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-$as_echo "$ax_pthread_ok" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+printf "%s\n" "$ax_pthread_ok" >&6; }
if test "x$ax_pthread_ok" = xyes; then
break;
fi
@@ -6443,39 +7184,38 @@ if test "x$ax_pthread_ok" = xyes; then
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
-$as_echo_n "checking for joinable pthread attribute... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
+printf %s "checking for joinable pthread attribute... " >&6; }
attr_name=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
int
-main ()
+main (void)
{
int attr = $attr; return attr /* ; */
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
attr_name=$attr; break
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
done
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
-$as_echo "$attr_name" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
+printf "%s\n" "$attr_name" >&6; }
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-cat >>confdefs.h <<_ACEOF
-#define PTHREAD_CREATE_JOINABLE $attr_name
-_ACEOF
+printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $attr_name" >>confdefs.h
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
-$as_echo_n "checking if more special flags are required for pthreads... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
+printf %s "checking if more special flags are required for pthreads... " >&6; }
flag=no
case ${host_os} in
aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
@@ -6488,44 +7228,47 @@ $as_echo_n "checking if more special flags are required for pthreads... " >&6; }
fi
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5
-$as_echo "${flag}" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5
+printf "%s\n" "${flag}" >&6; }
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
-$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; }
-if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
+printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; }
+if test ${ax_cv_PTHREAD_PRIO_INHERIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
int
-main ()
+main (void)
{
int i = PTHREAD_PRIO_INHERIT;
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ax_cv_PTHREAD_PRIO_INHERIT=yes
-else
+else $as_nop
ax_cv_PTHREAD_PRIO_INHERIT=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
-$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
- if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
+printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
+ if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"
+then :
-$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
fi
@@ -6538,11 +7281,12 @@ fi
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PTHREAD_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PTHREAD_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$PTHREAD_CC"; then
ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
else
@@ -6550,11 +7294,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_PTHREAD_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6565,11 +7313,11 @@ fi
fi
PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
if test -n "$PTHREAD_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
-$as_echo "$PTHREAD_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
+printf "%s\n" "$PTHREAD_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6591,7 +7339,7 @@ fi
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$ax_pthread_ok" = xyes; then
-$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PTHREAD 1" >>confdefs.h
:
else
@@ -6610,52 +7358,50 @@ else
fi
# Check whether --enable-sigsegv was given.
-if test "${enable_sigsegv+set}" = set; then :
+if test ${enable_sigsegv+y}
+then :
enableval=$enable_sigsegv;
fi
if test "x$enable_sigsegv" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stackoverflow_install_handler in -lsigsegv" >&5
-$as_echo_n "checking for stackoverflow_install_handler in -lsigsegv... " >&6; }
-if ${ac_cv_lib_sigsegv_stackoverflow_install_handler+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stackoverflow_install_handler in -lsigsegv" >&5
+printf %s "checking for stackoverflow_install_handler in -lsigsegv... " >&6; }
+if test ${ac_cv_lib_sigsegv_stackoverflow_install_handler+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsigsegv $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char stackoverflow_install_handler ();
+namespace conftest {
+ extern "C" int stackoverflow_install_handler ();
+}
int
-main ()
+main (void)
{
-return stackoverflow_install_handler ();
+return conftest::stackoverflow_install_handler ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_sigsegv_stackoverflow_install_handler=yes
-else
+else $as_nop
ac_cv_lib_sigsegv_stackoverflow_install_handler=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sigsegv_stackoverflow_install_handler" >&5
-$as_echo "$ac_cv_lib_sigsegv_stackoverflow_install_handler" >&6; }
-if test "x$ac_cv_lib_sigsegv_stackoverflow_install_handler" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSIGSEGV 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sigsegv_stackoverflow_install_handler" >&5
+printf "%s\n" "$ac_cv_lib_sigsegv_stackoverflow_install_handler" >&6; }
+if test "x$ac_cv_lib_sigsegv_stackoverflow_install_handler" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBSIGSEGV 1" >>confdefs.h
LIBS="-lsigsegv $LIBS"
@@ -6663,46 +7409,43 @@ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
-$as_echo_n "checking for sched_yield in -lrt... " >&6; }
-if ${ac_cv_lib_rt_sched_yield+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
+printf %s "checking for sched_yield in -lrt... " >&6; }
+if test ${ac_cv_lib_rt_sched_yield+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lrt $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sched_yield ();
+namespace conftest {
+ extern "C" int sched_yield ();
+}
int
-main ()
+main (void)
{
-return sched_yield ();
+return conftest::sched_yield ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_rt_sched_yield=yes
-else
+else $as_nop
ac_cv_lib_rt_sched_yield=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
-$as_echo "$ac_cv_lib_rt_sched_yield" >&6; }
-if test "x$ac_cv_lib_rt_sched_yield" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRT 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
+printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; }
+if test "x$ac_cv_lib_rt_sched_yield" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBRT 1" >>confdefs.h
LIBS="-lrt $LIBS"
@@ -6710,166 +7453,164 @@ fi
# Check whether --enable-curl was given.
-if test "${enable_curl+set}" = set; then :
+if test ${enable_curl+y}
+then :
enableval=$enable_curl;
fi
if test "x$enable_curl" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_easy_init in -lcurl" >&5
-$as_echo_n "checking for curl_easy_init in -lcurl... " >&6; }
-if ${ac_cv_lib_curl_curl_easy_init+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for curl_easy_init in -lcurl" >&5
+printf %s "checking for curl_easy_init in -lcurl... " >&6; }
+if test ${ac_cv_lib_curl_curl_easy_init+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char curl_easy_init ();
+namespace conftest {
+ extern "C" int curl_easy_init ();
+}
int
-main ()
+main (void)
{
-return curl_easy_init ();
+return conftest::curl_easy_init ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_curl_curl_easy_init=yes
-else
+else $as_nop
ac_cv_lib_curl_curl_easy_init=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_init" >&5
-$as_echo "$ac_cv_lib_curl_curl_easy_init" >&6; }
-if test "x$ac_cv_lib_curl_curl_easy_init" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCURL 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_init" >&5
+printf "%s\n" "$ac_cv_lib_curl_curl_easy_init" >&6; }
+if test "x$ac_cv_lib_curl_curl_easy_init" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBCURL 1" >>confdefs.h
LIBS="-lcurl $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libcurl: will compile without optional URL support. ***" >&5
-$as_echo "$as_me: *** Could not find libcurl: will compile without optional URL support. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libcurl: will compile without optional URL support. ***" >&5
+printf "%s\n" "$as_me: *** Could not find libcurl: will compile without optional URL support. ***" >&6;}
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** libcurl support disabled by configure flag: will compile without optional URL support. ***" >&5
-$as_echo "$as_me: *** libcurl support disabled by configure flag: will compile without optional URL support. ***" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** libcurl support disabled by configure flag: will compile without optional URL support. ***" >&5
+printf "%s\n" "$as_me: *** libcurl support disabled by configure flag: will compile without optional URL support. ***" >&6;}
fi
LSPLIBS=
LSPLIB=
if test "x$enable_lsp" != "xno" -a "x$enable_threads" != "xno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opendir in -lboost_filesystem" >&5
-$as_echo_n "checking for opendir in -lboost_filesystem... " >&6; }
-if ${ac_cv_lib_boost_filesystem_opendir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for opendir in -lboost_filesystem" >&5
+printf %s "checking for opendir in -lboost_filesystem... " >&6; }
+if test ${ac_cv_lib_boost_filesystem_opendir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lboost_filesystem $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
+namespace conftest {
+ extern "C" int opendir ();
+}
int
-main ()
+main (void)
{
-return opendir ();
+return conftest::opendir ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_boost_filesystem_opendir=yes
-else
+else $as_nop
ac_cv_lib_boost_filesystem_opendir=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_filesystem_opendir" >&5
-$as_echo "$ac_cv_lib_boost_filesystem_opendir" >&6; }
-if test "x$ac_cv_lib_boost_filesystem_opendir" = xyes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_attr_getdetachstate in -lboost_thread" >&5
-$as_echo_n "checking for pthread_attr_getdetachstate in -lboost_thread... " >&6; }
-if ${ac_cv_lib_boost_thread_pthread_attr_getdetachstate+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_filesystem_opendir" >&5
+printf "%s\n" "$ac_cv_lib_boost_filesystem_opendir" >&6; }
+if test "x$ac_cv_lib_boost_filesystem_opendir" = xyes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_attr_getdetachstate in -lboost_thread" >&5
+printf %s "checking for pthread_attr_getdetachstate in -lboost_thread... " >&6; }
+if test ${ac_cv_lib_boost_thread_pthread_attr_getdetachstate+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lboost_thread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_attr_getdetachstate ();
+namespace conftest {
+ extern "C" int pthread_attr_getdetachstate ();
+}
int
-main ()
+main (void)
{
-return pthread_attr_getdetachstate ();
+return conftest::pthread_attr_getdetachstate ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_boost_thread_pthread_attr_getdetachstate=yes
-else
+else $as_nop
ac_cv_lib_boost_thread_pthread_attr_getdetachstate=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_thread_pthread_attr_getdetachstate" >&5
-$as_echo "$ac_cv_lib_boost_thread_pthread_attr_getdetachstate" >&6; }
-if test "x$ac_cv_lib_boost_thread_pthread_attr_getdetachstate" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_boost_thread_pthread_attr_getdetachstate" >&5
+printf "%s\n" "$ac_cv_lib_boost_thread_pthread_attr_getdetachstate" >&6; }
+if test "x$ac_cv_lib_boost_thread_pthread_attr_getdetachstate" = xyes
+then :
-$as_echo "#define HAVE_LSP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LSP 1" >>confdefs.h
LSPLIBS="-llspcpp -lnetwork-uri -lboost_filesystem -lboost_thread "
LSPLIB=liblspcpp.a
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libboost_thread: will compile without optional Language Server Protocol. ***" >&5
-$as_echo "$as_me: *** Could not find libboost_thread: will compile without optional Language Server Protocol. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libboost_thread: will compile without optional Language Server Protocol. ***" >&5
+printf "%s\n" "$as_me: *** Could not find libboost_thread: will compile without optional Language Server Protocol. ***" >&6;}
fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libboost_filesystem: will compile without optional Language Server Protocol. ***" >&5
-$as_echo "$as_me: *** Could not find libboost_filesystem: will compile without optional Language Server Protocol. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libboost_filesystem: will compile without optional Language Server Protocol. ***" >&5
+printf "%s\n" "$as_me: *** Could not find libboost_filesystem: will compile without optional Language Server Protocol. ***" >&6;}
fi
fi
# Check whether --enable-readline was given.
-if test "${enable_readline+set}" = set; then :
+if test ${enable_readline+y}
+then :
enableval=$enable_readline;
fi
# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
+if test ${enable_static+y}
+then :
enableval=$enable_static;
fi
@@ -6890,6 +7631,8 @@ fi
if test "x$enable_readline" != "xno"; then
+CPPFLAGS="$CPPFLAGS "`pkg-config --cflags readline`
+LDFLAGS="$LDFLAGS "`pkg-config --libs readline`
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6899,7 +7642,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#include <readline/readline.h>
int
-main ()
+main (void)
{
#ifndef RL_READLINE_VERSION
@@ -6910,226 +7653,207 @@ abort
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
LDFLAGS0=$LDFLAGS
LDFLAGS=$LDFLAGS$LDSTATIC
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5
-$as_echo_n "checking for history_list in -lreadline... " >&6; }
-if ${ac_cv_lib_readline_history_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5
+printf %s "checking for history_list in -lreadline... " >&6; }
+if test ${ac_cv_lib_readline_history_list+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lreadline $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char history_list ();
+namespace conftest {
+ extern "C" int history_list ();
+}
int
-main ()
+main (void)
{
-return history_list ();
+return conftest::history_list ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_readline_history_list=yes
-else
+else $as_nop
ac_cv_lib_readline_history_list=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_history_list" >&5
-$as_echo "$ac_cv_lib_readline_history_list" >&6; }
-if test "x$ac_cv_lib_readline_history_list" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_history_list" >&5
+printf "%s\n" "$ac_cv_lib_readline_history_list" >&6; }
+if test "x$ac_cv_lib_readline_history_list" = xyes
+then :
-$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBREADLINE 1" >>confdefs.h
LIBS=$LIBS$STATIC"-lreadline "$DYNAMIC
-else
+else $as_nop
if test "x$enable_static" = "xyes"; then
{ ac_cv_lib_readline_history_list=; unset ac_cv_lib_readline_history_list;}
LDFLAGS=$LDFLAGS0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5
-$as_echo_n "checking for history_list in -lreadline... " >&6; }
-if ${ac_cv_lib_readline_history_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5
+printf %s "checking for history_list in -lreadline... " >&6; }
+if test ${ac_cv_lib_readline_history_list+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lreadline $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char history_list ();
+namespace conftest {
+ extern "C" int history_list ();
+}
int
-main ()
+main (void)
{
-return history_list ();
+return conftest::history_list ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_readline_history_list=yes
-else
+else $as_nop
ac_cv_lib_readline_history_list=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_history_list" >&5
-$as_echo "$ac_cv_lib_readline_history_list" >&6; }
-if test "x$ac_cv_lib_readline_history_list" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBREADLINE 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_history_list" >&5
+printf "%s\n" "$ac_cv_lib_readline_history_list" >&6; }
+if test "x$ac_cv_lib_readline_history_list" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBREADLINE 1" >>confdefs.h
LIBS="-lreadline $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&5
-$as_echo "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
-$as_echo_n "checking for readline in -ledit... " >&6; }
-if ${ac_cv_lib_edit_readline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&5
+printf "%s\n" "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
+printf %s "checking for readline in -ledit... " >&6; }
+if test ${ac_cv_lib_edit_readline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ledit $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char readline ();
+namespace conftest {
+ extern "C" int readline ();
+}
int
-main ()
+main (void)
{
-return readline ();
+return conftest::readline ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_edit_readline=yes
-else
+else $as_nop
ac_cv_lib_edit_readline=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
-$as_echo "$ac_cv_lib_edit_readline" >&6; }
-if test "x$ac_cv_lib_edit_readline" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBEDIT 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
+printf "%s\n" "$ac_cv_lib_edit_readline" >&6; }
+if test "x$ac_cv_lib_edit_readline" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBEDIT 1" >>confdefs.h
LIBS="-ledit $LIBS"
fi
-for ac_header in editline/readline.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default"
-if test "x$ac_cv_header_editline_readline_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_EDITLINE_READLINE_H 1
-_ACEOF
+ac_fn_cxx_check_header_compile "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_editline_readline_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_EDITLINE_READLINE_H 1" >>confdefs.h
fi
-done
-
fi
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&5
-$as_echo "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
-$as_echo_n "checking for readline in -ledit... " >&6; }
-if ${ac_cv_lib_edit_readline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&5
+printf "%s\n" "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
+printf %s "checking for readline in -ledit... " >&6; }
+if test ${ac_cv_lib_edit_readline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ledit $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char readline ();
+namespace conftest {
+ extern "C" int readline ();
+}
int
-main ()
+main (void)
{
-return readline ();
+return conftest::readline ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_edit_readline=yes
-else
+else $as_nop
ac_cv_lib_edit_readline=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
-$as_echo "$ac_cv_lib_edit_readline" >&6; }
-if test "x$ac_cv_lib_edit_readline" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBEDIT 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
+printf "%s\n" "$ac_cv_lib_edit_readline" >&6; }
+if test "x$ac_cv_lib_edit_readline" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBEDIT 1" >>confdefs.h
LIBS="-ledit $LIBS"
fi
-for ac_header in editline/readline.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default"
-if test "x$ac_cv_header_editline_readline_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_EDITLINE_READLINE_H 1
-_ACEOF
+ac_fn_cxx_check_header_compile "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_editline_readline_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_EDITLINE_READLINE_H 1" >>confdefs.h
fi
-done
-
fi
@@ -7137,174 +7861,162 @@ fi
LDFLAGS=$LDFLAGS0
-else
+else $as_nop
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&5
-$as_echo "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
-$as_echo_n "checking for readline in -ledit... " >&6; }
-if ${ac_cv_lib_edit_readline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&5
+printf "%s\n" "$as_me: *** Could not find GNU readline 4.3 or later: will compile without readline support ***" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
+printf %s "checking for readline in -ledit... " >&6; }
+if test ${ac_cv_lib_edit_readline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ledit $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char readline ();
+namespace conftest {
+ extern "C" int readline ();
+}
int
-main ()
+main (void)
{
-return readline ();
+return conftest::readline ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_edit_readline=yes
-else
+else $as_nop
ac_cv_lib_edit_readline=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
-$as_echo "$ac_cv_lib_edit_readline" >&6; }
-if test "x$ac_cv_lib_edit_readline" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBEDIT 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
+printf "%s\n" "$ac_cv_lib_edit_readline" >&6; }
+if test "x$ac_cv_lib_edit_readline" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBEDIT 1" >>confdefs.h
LIBS="-ledit $LIBS"
fi
-for ac_header in editline/readline.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default"
-if test "x$ac_cv_header_editline_readline_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_EDITLINE_READLINE_H 1
-_ACEOF
+ac_fn_cxx_check_header_compile "$LINENO" "editline/readline.h" "ac_cv_header_editline_readline_h" "$ac_includes_default"
+if test "x$ac_cv_header_editline_readline_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_EDITLINE_READLINE_H 1" >>confdefs.h
fi
-done
-
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
LDFLAGS0=$LDFLAGS
LDFLAGS=$LDFLAGS$LDSTATIC
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5
-$as_echo_n "checking for tgetent in -ltinfo... " >&6; }
-if ${ac_cv_lib_tinfo_tgetent+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5
+printf %s "checking for tgetent in -ltinfo... " >&6; }
+if test ${ac_cv_lib_tinfo_tgetent+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char tgetent ();
+namespace conftest {
+ extern "C" int tgetent ();
+}
int
-main ()
+main (void)
{
-return tgetent ();
+return conftest::tgetent ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_tinfo_tgetent=yes
-else
+else $as_nop
ac_cv_lib_tinfo_tgetent=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5
-$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; }
-if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5
+printf "%s\n" "$ac_cv_lib_tinfo_tgetent" >&6; }
+if test "x$ac_cv_lib_tinfo_tgetent" = xyes
+then :
-$as_echo "#define HAVE_LIBTINFO 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBTINFO 1" >>confdefs.h
LIBS=$LIBS$STATIC"-ltinfo "$DYNAMIC
-else
+else $as_nop
if test "x$enable_static" = "xyes"; then
{ ac_cv_lib_tinfo_tgetent=; unset ac_cv_lib_tinfo_tgetent;}
LDFLAGS=$LDFLAGS0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5
-$as_echo_n "checking for tgetent in -ltinfo... " >&6; }
-if ${ac_cv_lib_tinfo_tgetent+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5
+printf %s "checking for tgetent in -ltinfo... " >&6; }
+if test ${ac_cv_lib_tinfo_tgetent+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char tgetent ();
+namespace conftest {
+ extern "C" int tgetent ();
+}
int
-main ()
+main (void)
{
-return tgetent ();
+return conftest::tgetent ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_tinfo_tgetent=yes
-else
+else $as_nop
ac_cv_lib_tinfo_tgetent=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5
-$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; }
-if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBTINFO 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5
+printf "%s\n" "$ac_cv_lib_tinfo_tgetent" >&6; }
+if test "x$ac_cv_lib_tinfo_tgetent" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBTINFO 1" >>confdefs.h
LIBS="-ltinfo $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: perhaps tgetent is in -lncurses" >&5
-$as_echo "$as_me: perhaps tgetent is in -lncurses" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: perhaps tgetent is in -lncurses" >&5
+printf "%s\n" "$as_me: perhaps tgetent is in -lncurses" >&6;}
fi
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: perhaps tgetent is in -lncurses" >&5
-$as_echo "$as_me: perhaps tgetent is in -lncurses" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: perhaps tgetent is in -lncurses" >&5
+printf "%s\n" "$as_me: perhaps tgetent is in -lncurses" >&6;}
fi
fi
@@ -7312,154 +8024,147 @@ fi
LDFLAGS=$LDFLAGS0
-for ac_header in ncurses/curses.h ncurses.h curses.h
+ for ac_header in ncurses/curses.h ncurses.h curses.h
do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
break
fi
done
-
LDFLAGS0=$LDFLAGS
LDFLAGS=$LDFLAGS$LDSTATIC
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lncurses" >&5
-$as_echo_n "checking for setupterm in -lncurses... " >&6; }
-if ${ac_cv_lib_ncurses_setupterm+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lncurses" >&5
+printf %s "checking for setupterm in -lncurses... " >&6; }
+if test ${ac_cv_lib_ncurses_setupterm+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setupterm ();
+namespace conftest {
+ extern "C" int setupterm ();
+}
int
-main ()
+main (void)
{
-return setupterm ();
+return conftest::setupterm ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_ncurses_setupterm=yes
-else
+else $as_nop
ac_cv_lib_ncurses_setupterm=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_setupterm" >&5
-$as_echo "$ac_cv_lib_ncurses_setupterm" >&6; }
-if test "x$ac_cv_lib_ncurses_setupterm" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_setupterm" >&5
+printf "%s\n" "$ac_cv_lib_ncurses_setupterm" >&6; }
+if test "x$ac_cv_lib_ncurses_setupterm" = xyes
+then :
-$as_echo "#define HAVE_LIBCURSES 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBCURSES 1" >>confdefs.h
LIBS=$LIBS$STATIC"-lncurses "$DYNAMIC
-else
+else $as_nop
if test "x$enable_static" = "xyes"; then
{ ac_cv_lib_ncurses_setupterm=; unset ac_cv_lib_ncurses_setupterm;}
LDFLAGS=$LDFLAGS0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lncurses" >&5
-$as_echo_n "checking for setupterm in -lncurses... " >&6; }
-if ${ac_cv_lib_ncurses_setupterm+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lncurses" >&5
+printf %s "checking for setupterm in -lncurses... " >&6; }
+if test ${ac_cv_lib_ncurses_setupterm+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setupterm ();
+namespace conftest {
+ extern "C" int setupterm ();
+}
int
-main ()
+main (void)
{
-return setupterm ();
+return conftest::setupterm ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_ncurses_setupterm=yes
-else
+else $as_nop
ac_cv_lib_ncurses_setupterm=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_setupterm" >&5
-$as_echo "$ac_cv_lib_ncurses_setupterm" >&6; }
-if test "x$ac_cv_lib_ncurses_setupterm" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNCURSES 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_setupterm" >&5
+printf "%s\n" "$ac_cv_lib_ncurses_setupterm" >&6; }
+if test "x$ac_cv_lib_ncurses_setupterm" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBNCURSES 1" >>confdefs.h
LIBS="-lncurses $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lcurses" >&5
-$as_echo_n "checking for setupterm in -lcurses... " >&6; }
-if ${ac_cv_lib_curses_setupterm+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lcurses" >&5
+printf %s "checking for setupterm in -lcurses... " >&6; }
+if test ${ac_cv_lib_curses_setupterm+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setupterm ();
+namespace conftest {
+ extern "C" int setupterm ();
+}
int
-main ()
+main (void)
{
-return setupterm ();
+return conftest::setupterm ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_curses_setupterm=yes
-else
+else $as_nop
ac_cv_lib_curses_setupterm=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_setupterm" >&5
-$as_echo "$ac_cv_lib_curses_setupterm" >&6; }
-if test "x$ac_cv_lib_curses_setupterm" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCURSES 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_setupterm" >&5
+printf "%s\n" "$ac_cv_lib_curses_setupterm" >&6; }
+if test "x$ac_cv_lib_curses_setupterm" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBCURSES 1" >>confdefs.h
LIBS="-lcurses $LIBS"
@@ -7469,46 +8174,43 @@ fi
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lcurses" >&5
-$as_echo_n "checking for setupterm in -lcurses... " >&6; }
-if ${ac_cv_lib_curses_setupterm+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setupterm in -lcurses" >&5
+printf %s "checking for setupterm in -lcurses... " >&6; }
+if test ${ac_cv_lib_curses_setupterm+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setupterm ();
+namespace conftest {
+ extern "C" int setupterm ();
+}
int
-main ()
+main (void)
{
-return setupterm ();
+return conftest::setupterm ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_curses_setupterm=yes
-else
+else $as_nop
ac_cv_lib_curses_setupterm=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_setupterm" >&5
-$as_echo "$ac_cv_lib_curses_setupterm" >&6; }
-if test "x$ac_cv_lib_curses_setupterm" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCURSES 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_setupterm" >&5
+printf "%s\n" "$ac_cv_lib_curses_setupterm" >&6; }
+if test "x$ac_cv_lib_curses_setupterm" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBCURSES 1" >>confdefs.h
LIBS="-lcurses $LIBS"
@@ -7523,138 +8225,155 @@ LDFLAGS=$LDFLAGS0
fi
# Check whether --enable-fftw was given.
-if test "${enable_fftw+set}" = set; then :
+if test ${enable_fftw+y}
+then :
enableval=$enable_fftw;
fi
if test "x$enable_fftw" != "xno"; then
-
-ac_fn_cxx_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default"
-if test "x$ac_cv_header_fftw3_h" = xyes; then :
+CPPFLAGS="$CPPFLAGS "`pkg-config --cflags fftw3`
+LDFLAGS="$LDFLAGS "`pkg-config --libs fftw3`
+ac_fn_cxx_check_header_compile "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default"
+if test "x$ac_cv_header_fftw3_h" = xyes
+then :
LDFLAGS0=$LDFLAGS
LDFLAGS=$LDFLAGS$LDSTATIC
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5
-$as_echo_n "checking for fftw_execute in -lfftw3... " >&6; }
-if ${ac_cv_lib_fftw3_fftw_execute+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5
+printf %s "checking for fftw_execute in -lfftw3... " >&6; }
+if test ${ac_cv_lib_fftw3_fftw_execute+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lfftw3 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char fftw_execute ();
+namespace conftest {
+ extern "C" int fftw_execute ();
+}
int
-main ()
+main (void)
{
-return fftw_execute ();
+return conftest::fftw_execute ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_fftw3_fftw_execute=yes
-else
+else $as_nop
ac_cv_lib_fftw3_fftw_execute=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5
-$as_echo "$ac_cv_lib_fftw3_fftw_execute" >&6; }
-if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5
+printf "%s\n" "$ac_cv_lib_fftw3_fftw_execute" >&6; }
+if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes
+then :
-$as_echo "#define HAVE_LIBFFTW3 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBFFTW3 1" >>confdefs.h
LIBS=$LIBS$STATIC"-lfftw3 "$DYNAMIC
-else
+else $as_nop
if test "x$enable_static" = "xyes"; then
{ ac_cv_lib_fftw3_fftw_execute=; unset ac_cv_lib_fftw3_fftw_execute;}
LDFLAGS=$LDFLAGS0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5
-$as_echo_n "checking for fftw_execute in -lfftw3... " >&6; }
-if ${ac_cv_lib_fftw3_fftw_execute+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5
+printf %s "checking for fftw_execute in -lfftw3... " >&6; }
+if test ${ac_cv_lib_fftw3_fftw_execute+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lfftw3 $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char fftw_execute ();
+namespace conftest {
+ extern "C" int fftw_execute ();
+}
int
-main ()
+main (void)
{
-return fftw_execute ();
+return conftest::fftw_execute ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_fftw3_fftw_execute=yes
-else
+else $as_nop
ac_cv_lib_fftw3_fftw_execute=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5
-$as_echo "$ac_cv_lib_fftw3_fftw_execute" >&6; }
-if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBFFTW3 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5
+printf "%s\n" "$ac_cv_lib_fftw3_fftw_execute" >&6; }
+if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBFFTW3 1" >>confdefs.h
LIBS="-lfftw3 $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&5
-$as_echo "$as_me: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&5
+printf "%s\n" "$as_me: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&6;}
fi
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&5
-$as_echo "$as_me: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&5
+printf "%s\n" "$as_me: *** Could not find libfftw3: will compile without optional fast Fourier transforms. ***" >&6;}
fi
fi
LDFLAGS=$LDFLAGS0
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Header file fftw3.h not found: will compile without optional fast Fourier transforms. ***" >&5
-$as_echo "$as_me: *** Header file fftw3.h not found: will compile without optional fast Fourier transforms. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Header file fftw3.h not found: will compile without optional fast Fourier transforms. ***" >&5
+printf "%s\n" "$as_me: *** Header file fftw3.h not found: will compile without optional fast Fourier transforms. ***" >&6;}
+fi
+
fi
+# Check whether --enable-eigen was given.
+if test ${enable_eigen+y}
+then :
+ enableval=$enable_eigen;
+fi
+
+
+if test "x$enable_eigen" != "xno"; then
+CPPFLAGS="$CPPFLAGS "`pkg-config --cflags eigen3`
+ac_fn_cxx_check_header_compile "$LINENO" "Eigen/Dense" "ac_cv_header_Eigen_Dense" "$ac_includes_default"
+if test "x$ac_cv_header_Eigen_Dense" = xyes
+then :
+ printf "%s\n" "#define HAVE_EIGEN_DENSE 1" >>confdefs.h
+
+fi
fi
# Checks for header files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
-$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
-if ${ac_cv_header_sys_wait_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
+printf %s "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
+if test ${ac_cv_header_sys_wait_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -7667,7 +8386,7 @@ else
#endif
int
-main ()
+main (void)
{
int s;
wait (&s);
@@ -7676,200 +8395,212 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_header_sys_wait_h=yes
-else
+else $as_nop
ac_cv_header_sys_wait_h=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
-$as_echo "$ac_cv_header_sys_wait_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
+printf "%s\n" "$ac_cv_header_sys_wait_h" >&6; }
if test $ac_cv_header_sys_wait_h = yes; then
-$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
-for ac_header in fenv.h stddef.h libintl.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ac_fn_cxx_check_header_compile "$LINENO" "fenv.h" "ac_cv_header_fenv_h" "$ac_includes_default"
+if test "x$ac_cv_header_fenv_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_FENV_H 1" >>confdefs.h
fi
+ac_fn_cxx_check_header_compile "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default"
+if test "x$ac_cv_header_stddef_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDDEF_H 1" >>confdefs.h
-done
-
-for ac_header in fpu_control.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "fpu_control.h" "ac_cv_header_fpu_control_h" "$ac_includes_default"
-if test "x$ac_cv_header_fpu_control_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_FPU_CONTROL_H 1
-_ACEOF
+fi
+ac_fn_cxx_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h
fi
-done
+ac_fn_cxx_check_header_compile "$LINENO" "fpu_control.h" "ac_cv_header_fpu_control_h" "$ac_includes_default"
+if test "x$ac_cv_header_fpu_control_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_FPU_CONTROL_H 1" >>confdefs.h
-for ac_func in feenableexcept
-do :
- ac_fn_cxx_check_func "$LINENO" "feenableexcept" "ac_cv_func_feenableexcept"
-if test "x$ac_cv_func_feenableexcept" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_FEENABLEEXCEPT 1
-_ACEOF
+fi
+
+ac_fn_cxx_check_func "$LINENO" "feenableexcept" "ac_cv_func_feenableexcept"
+if test "x$ac_cv_func_feenableexcept" = xyes
+then :
+ printf "%s\n" "#define HAVE_FEENABLEEXCEPT 1" >>confdefs.h
fi
-done
+case "$OSTYPE" in
+ darwin*)
+ ;;
+ *)
+ CPPFLAGS="$CPPFLAGS "`pkg-config --cflags libtirpc`
+ LDFLAGS="$LDFLAGS "`pkg-config --libs libtirpc`
+ ;;
+esac
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "xstream.h"
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xdrstdio_create" >&5
-$as_echo_n "checking for library containing xdrstdio_create... " >&6; }
-if ${ac_cv_search_xdrstdio_create+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing xdrstdio_create" >&5
+printf %s "checking for library containing xdrstdio_create... " >&6; }
+if test ${ac_cv_search_xdrstdio_create+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdrstdio_create ();
+namespace conftest {
+ extern "C" int xdrstdio_create ();
+}
int
-main ()
+main (void)
{
-return xdrstdio_create ();
+return conftest::xdrstdio_create ();
;
return 0;
}
_ACEOF
-for ac_lib in '' nsl tirpc; do
+for ac_lib in '' nsl tirpc
+do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
- if ac_fn_cxx_try_link "$LINENO"; then :
+ if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_search_xdrstdio_create=$ac_res
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
- if ${ac_cv_search_xdrstdio_create+:} false; then :
+ if test ${ac_cv_search_xdrstdio_create+y}
+then :
break
fi
done
-if ${ac_cv_search_xdrstdio_create+:} false; then :
+if test ${ac_cv_search_xdrstdio_create+y}
+then :
-else
+else $as_nop
ac_cv_search_xdrstdio_create=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xdrstdio_create" >&5
-$as_echo "$ac_cv_search_xdrstdio_create" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xdrstdio_create" >&5
+printf "%s\n" "$ac_cv_search_xdrstdio_create" >&6; }
ac_res=$ac_cv_search_xdrstdio_create
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
-$as_echo "#define HAVE_RPC_RPC_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_RPC_RPC_H 1" >>confdefs.h
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Broken rpc headers; XDR/V3D support disabled ***" >&5
-$as_echo "$as_me: WARNING: *** Broken rpc headers; XDR/V3D support disabled ***" >&2;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** Broken rpc headers; XDR/V3D support disabled ***" >&5
+printf "%s\n" "$as_me: WARNING: *** Broken rpc headers; XDR/V3D support disabled ***" >&2;}
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Check whether --enable-gsl was given.
-if test "${enable_gsl+set}" = set; then :
+if test ${enable_gsl+y}
+then :
enableval=$enable_gsl;
fi
if test "x$enable_gsl" != "xno"; then
- ac_fn_cxx_check_header_mongrel "$LINENO" "gsl/gsl_sf.h" "ac_cv_header_gsl_gsl_sf_h" "$ac_includes_default"
-if test "x$ac_cv_header_gsl_gsl_sf_h" = xyes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gsl_sf_debye_6 in -lgsl" >&5
-$as_echo_n "checking for gsl_sf_debye_6 in -lgsl... " >&6; }
-if ${ac_cv_lib_gsl_gsl_sf_debye_6+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ CPPFLAGS="$CPPFLAGS "`pkg-config --cflags gsl`
+ LDFLAGS="$LDFLAGS "`pkg-config --libs gsl`
+ ac_fn_cxx_check_header_compile "$LINENO" "gsl/gsl_sf.h" "ac_cv_header_gsl_gsl_sf_h" "$ac_includes_default"
+if test "x$ac_cv_header_gsl_gsl_sf_h" = xyes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gsl_sf_debye_6 in -lgsl" >&5
+printf %s "checking for gsl_sf_debye_6 in -lgsl... " >&6; }
+if test ${ac_cv_lib_gsl_gsl_sf_debye_6+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgsl -lgslcblas $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gsl_sf_debye_6 ();
+namespace conftest {
+ extern "C" int gsl_sf_debye_6 ();
+}
int
-main ()
+main (void)
{
-return gsl_sf_debye_6 ();
+return conftest::gsl_sf_debye_6 ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_gsl_gsl_sf_debye_6=yes
-else
+else $as_nop
ac_cv_lib_gsl_gsl_sf_debye_6=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gsl_gsl_sf_debye_6" >&5
-$as_echo "$ac_cv_lib_gsl_gsl_sf_debye_6" >&6; }
-if test "x$ac_cv_lib_gsl_gsl_sf_debye_6" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gsl_gsl_sf_debye_6" >&5
+printf "%s\n" "$ac_cv_lib_gsl_gsl_sf_debye_6" >&6; }
+if test "x$ac_cv_lib_gsl_gsl_sf_debye_6" = xyes
+then :
-$as_echo "#define HAVE_LIBGSL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGSL 1" >>confdefs.h
LIBS=$LIBS"-lgsl -lgslcblas "
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libgsl: will compile without optional special functions. ***" >&5
-$as_echo "$as_me: *** Could not find libgsl: will compile without optional special functions. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libgsl: will compile without optional special functions. ***" >&5
+printf "%s\n" "$as_me: *** Could not find libgsl: will compile without optional special functions. ***" >&6;}
fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Header file gsl_sf.h not found: will compile without optional special functions. ***" >&5
-$as_echo "$as_me: *** Header file gsl_sf.h not found: will compile without optional special functions. ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Header file gsl_sf.h not found: will compile without optional special functions. ***" >&5
+printf "%s\n" "$as_me: *** Header file gsl_sf.h not found: will compile without optional special functions. ***" >&6;}
fi
-
fi
# Check whether --enable-gl was given.
-if test "${enable_gl+set}" = set; then :
+if test ${enable_gl+y}
+then :
enableval=$enable_gl;
fi
@@ -7882,19 +8613,20 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#endif
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
-$as_echo "#define HAVE_SSBO 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SSBO 1" >>confdefs.h
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -7904,103 +8636,105 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#endif
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
-$as_echo "#define HAVE_COMPUTE_SHADER 1" >>confdefs.h
+printf "%s\n" "#define HAVE_COMPUTE_SHADER 1" >>confdefs.h
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Check whether --enable-offscreen was given.
-if test "${enable_offscreen+set}" = set; then :
+if test ${enable_offscreen+y}
+then :
enableval=$enable_offscreen;
fi
# Check whether --enable-OpenImageIO was given.
-if test "${enable_OpenImageIO+set}" = set; then :
+if test ${enable_OpenImageIO+y}
+then :
enableval=$enable_OpenImageIO;
fi
- ac_fn_cxx_check_header_mongrel "$LINENO" "glm/glm.hpp" "ac_cv_header_glm_glm_hpp" "$ac_includes_default"
-if test "x$ac_cv_header_glm_glm_hpp" = xyes; then :
+ ac_fn_cxx_check_header_compile "$LINENO" "glm/glm.hpp" "ac_cv_header_glm_glm_hpp" "$ac_includes_default"
+if test "x$ac_cv_header_glm_glm_hpp" = xyes
+then :
-$as_echo "#define HAVE_LIBGLM 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGLM 1" >>confdefs.h
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find glm header files: will compile without WebGL or OpenGL support ***" >&5
-$as_echo "$as_me: *** Could not find glm header files: will compile without WebGL or OpenGL support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find glm header files: will compile without WebGL or OpenGL support ***" >&5
+printf "%s\n" "$as_me: *** Could not find glm header files: will compile without WebGL or OpenGL support ***" >&6;}
fi
-
if test "x$enable_gl" != "xno"; then
- for ac_header in ncurses/curses.h ncurses.h curses.h
+ for ac_header in ncurses/curses.h ncurses.h curses.h
do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"
+then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
break
fi
done
-
if test "x$enable_openimageio" = "xyes"; then
- ac_fn_cxx_check_header_mongrel "$LINENO" "OpenEXR/ImathVec.h" "ac_cv_header_OpenEXR_ImathVec_h" "$ac_includes_default"
-if test "x$ac_cv_header_OpenEXR_ImathVec_h" = xyes; then :
- ac_fn_cxx_check_header_mongrel "$LINENO" "OpenImageIO/imageio.h" "ac_cv_header_OpenImageIO_imageio_h" "$ac_includes_default"
-if test "x$ac_cv_header_OpenImageIO_imageio_h" = xyes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for open in -lOpenImageIO" >&5
-$as_echo_n "checking for open in -lOpenImageIO... " >&6; }
-if ${ac_cv_lib_OpenImageIO_open+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ ac_fn_cxx_check_header_compile "$LINENO" "OpenEXR/ImathVec.h" "ac_cv_header_OpenEXR_ImathVec_h" "$ac_includes_default"
+if test "x$ac_cv_header_OpenEXR_ImathVec_h" = xyes
+then :
+ ac_fn_cxx_check_header_compile "$LINENO" "OpenImageIO/imageio.h" "ac_cv_header_OpenImageIO_imageio_h" "$ac_includes_default"
+if test "x$ac_cv_header_OpenImageIO_imageio_h" = xyes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for open in -lOpenImageIO" >&5
+printf %s "checking for open in -lOpenImageIO... " >&6; }
+if test ${ac_cv_lib_OpenImageIO_open+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lOpenImageIO $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char open ();
+namespace conftest {
+ extern "C" int open ();
+}
int
-main ()
+main (void)
{
-return open ();
+return conftest::open ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_OpenImageIO_open=yes
-else
+else $as_nop
ac_cv_lib_OpenImageIO_open=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_OpenImageIO_open" >&5
-$as_echo "$ac_cv_lib_OpenImageIO_open" >&6; }
-if test "x$ac_cv_lib_OpenImageIO_open" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBOPENIMAGEIO 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_OpenImageIO_open" >&5
+printf "%s\n" "$ac_cv_lib_OpenImageIO_open" >&6; }
+if test "x$ac_cv_lib_OpenImageIO_open" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBOPENIMAGEIO 1" >>confdefs.h
LIBS="-lOpenImageIO $LIBS"
@@ -8008,450 +8742,454 @@ fi
fi
-
fi
-
fi
case "$OSTYPE" in
msdos)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_throw_bad_alloc in -lgccpp" >&5
-$as_echo_n "checking for GC_throw_bad_alloc in -lgccpp... " >&6; }
-if ${ac_cv_lib_gccpp_GC_throw_bad_alloc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GC_throw_bad_alloc in -lgccpp" >&5
+printf %s "checking for GC_throw_bad_alloc in -lgccpp... " >&6; }
+if test ${ac_cv_lib_gccpp_GC_throw_bad_alloc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgccpp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char GC_throw_bad_alloc ();
+namespace conftest {
+ extern "C" int GC_throw_bad_alloc ();
+}
int
-main ()
+main (void)
{
-return GC_throw_bad_alloc ();
+return conftest::GC_throw_bad_alloc ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_gccpp_GC_throw_bad_alloc=yes
-else
+else $as_nop
ac_cv_lib_gccpp_GC_throw_bad_alloc=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gccpp_GC_throw_bad_alloc" >&5
-$as_echo "$ac_cv_lib_gccpp_GC_throw_bad_alloc" >&6; }
-if test "x$ac_cv_lib_gccpp_GC_throw_bad_alloc" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGCCPP 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gccpp_GC_throw_bad_alloc" >&5
+printf "%s\n" "$ac_cv_lib_gccpp_GC_throw_bad_alloc" >&6; }
+if test "x$ac_cv_lib_gccpp_GC_throw_bad_alloc" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBGCCPP 1" >>confdefs.h
LIBS="-lgccpp $LIBS"
fi
- ac_fn_cxx_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = xyes; then :
+ ac_fn_cxx_check_header_compile "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
+if test "x$ac_cv_header_GL_glut_h" = xyes
+then :
-$as_echo "#define HAVE_LIBGLUT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGLUT 1" >>confdefs.h
LIBS=$LIBS"-lfreeglut "
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libfreeglut: will compile without OpenGL support ***" >&5
-$as_echo "$as_me: *** Could not find libfreeglut: will compile without OpenGL support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libfreeglut: will compile without OpenGL support ***" >&5
+printf "%s\n" "$as_me: *** Could not find libfreeglut: will compile without OpenGL support ***" >&6;}
fi
+ ac_fn_cxx_check_header_compile "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
+if test "x$ac_cv_header_GL_gl_h" = xyes
+then :
- ac_fn_cxx_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = xyes; then :
-
-$as_echo "#define HAVE_LIBGL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGL 1" >>confdefs.h
LIBS=$LIBS"-lopengl32 "
GLEW="glew.o "
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libopengl32: will compile without OpenGL support ***" >&5
-$as_echo "$as_me: *** Could not find libopengl32: will compile without OpenGL support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libopengl32: will compile without OpenGL support ***" >&5
+printf "%s\n" "$as_me: *** Could not find libopengl32: will compile without OpenGL support ***" >&6;}
fi
-
;;
darwin*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_throw_bad_alloc in -lgccpp" >&5
-$as_echo_n "checking for GC_throw_bad_alloc in -lgccpp... " >&6; }
-if ${ac_cv_lib_gccpp_GC_throw_bad_alloc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GC_throw_bad_alloc in -lgccpp" >&5
+printf %s "checking for GC_throw_bad_alloc in -lgccpp... " >&6; }
+if test ${ac_cv_lib_gccpp_GC_throw_bad_alloc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgccpp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char GC_throw_bad_alloc ();
+namespace conftest {
+ extern "C" int GC_throw_bad_alloc ();
+}
int
-main ()
+main (void)
{
-return GC_throw_bad_alloc ();
+return conftest::GC_throw_bad_alloc ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_gccpp_GC_throw_bad_alloc=yes
-else
+else $as_nop
ac_cv_lib_gccpp_GC_throw_bad_alloc=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gccpp_GC_throw_bad_alloc" >&5
-$as_echo "$ac_cv_lib_gccpp_GC_throw_bad_alloc" >&6; }
-if test "x$ac_cv_lib_gccpp_GC_throw_bad_alloc" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGCCPP 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gccpp_GC_throw_bad_alloc" >&5
+printf "%s\n" "$ac_cv_lib_gccpp_GC_throw_bad_alloc" >&6; }
+if test "x$ac_cv_lib_gccpp_GC_throw_bad_alloc" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBGCCPP 1" >>confdefs.h
LIBS="-lgccpp $LIBS"
fi
- ac_fn_cxx_check_header_mongrel "$LINENO" "OpenGL/gl.h" "ac_cv_header_OpenGL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_OpenGL_gl_h" = xyes; then :
+ ac_fn_cxx_check_header_compile "$LINENO" "OpenGL/gl.h" "ac_cv_header_OpenGL_gl_h" "$ac_includes_default"
+if test "x$ac_cv_header_OpenGL_gl_h" = xyes
+then :
-$as_echo "#define HAVE_LIBGL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGL 1" >>confdefs.h
fi
+ ac_fn_cxx_check_header_compile "$LINENO" "GLUT/glut.h" "ac_cv_header_GLUT_glut_h" "$ac_includes_default"
+if test "x$ac_cv_header_GLUT_glut_h" = xyes
+then :
- ac_fn_cxx_check_header_mongrel "$LINENO" "GLUT/glut.h" "ac_cv_header_GLUT_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GLUT_glut_h" = xyes; then :
-
-$as_echo "#define HAVE_LIBGLUT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGLUT 1" >>confdefs.h
LIBS=$LIBS"-framework GLUT -framework OpenGL -framework Cocoa "
GLEW="glew.o "
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find GLUT: will compile without OpenGLLUT support ***" >&5
-$as_echo "$as_me: *** Could not find GLUT: will compile without OpenGLLUT support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find GLUT: will compile without OpenGLLUT support ***" >&5
+printf "%s\n" "$as_me: *** Could not find GLUT: will compile without OpenGLLUT support ***" >&6;}
fi
-
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_throw_bad_alloc in -lgccpp" >&5
-$as_echo_n "checking for GC_throw_bad_alloc in -lgccpp... " >&6; }
-if ${ac_cv_lib_gccpp_GC_throw_bad_alloc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GC_throw_bad_alloc in -lgccpp" >&5
+printf %s "checking for GC_throw_bad_alloc in -lgccpp... " >&6; }
+if test ${ac_cv_lib_gccpp_GC_throw_bad_alloc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgccpp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char GC_throw_bad_alloc ();
+namespace conftest {
+ extern "C" int GC_throw_bad_alloc ();
+}
int
-main ()
+main (void)
{
-return GC_throw_bad_alloc ();
+return conftest::GC_throw_bad_alloc ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_gccpp_GC_throw_bad_alloc=yes
-else
+else $as_nop
ac_cv_lib_gccpp_GC_throw_bad_alloc=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gccpp_GC_throw_bad_alloc" >&5
-$as_echo "$ac_cv_lib_gccpp_GC_throw_bad_alloc" >&6; }
-if test "x$ac_cv_lib_gccpp_GC_throw_bad_alloc" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGCCPP 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gccpp_GC_throw_bad_alloc" >&5
+printf "%s\n" "$ac_cv_lib_gccpp_GC_throw_bad_alloc" >&6; }
+if test "x$ac_cv_lib_gccpp_GC_throw_bad_alloc" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBGCCPP 1" >>confdefs.h
LIBS="-lgccpp $LIBS"
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glutMainLoop in -lglut" >&5
-$as_echo_n "checking for glutMainLoop in -lglut... " >&6; }
-if ${ac_cv_lib_glut_glutMainLoop+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glutMainLoop in -lglut" >&5
+printf %s "checking for glutMainLoop in -lglut... " >&6; }
+if test ${ac_cv_lib_glut_glutMainLoop+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lglut $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char glutMainLoop ();
+namespace conftest {
+ extern "C" int glutMainLoop ();
+}
int
-main ()
+main (void)
{
-return glutMainLoop ();
+return conftest::glutMainLoop ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_glut_glutMainLoop=yes
-else
+else $as_nop
ac_cv_lib_glut_glutMainLoop=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_glut_glutMainLoop" >&5
-$as_echo "$ac_cv_lib_glut_glutMainLoop" >&6; }
-if test "x$ac_cv_lib_glut_glutMainLoop" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGLUT 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_glut_glutMainLoop" >&5
+printf "%s\n" "$ac_cv_lib_glut_glutMainLoop" >&6; }
+if test "x$ac_cv_lib_glut_glutMainLoop" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBGLUT 1" >>confdefs.h
LIBS="-lglut $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libglut: will compile without OpenGL support ***" >&5
-$as_echo "$as_me: *** Could not find libglut: will compile without OpenGL support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libglut: will compile without OpenGL support ***" >&5
+printf "%s\n" "$as_me: *** Could not find libglut: will compile without OpenGL support ***" >&6;}
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glDepthMask in -lGL" >&5
-$as_echo_n "checking for glDepthMask in -lGL... " >&6; }
-if ${ac_cv_lib_GL_glDepthMask+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glDepthMask in -lGL" >&5
+printf %s "checking for glDepthMask in -lGL... " >&6; }
+if test ${ac_cv_lib_GL_glDepthMask+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lGL $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char glDepthMask ();
+namespace conftest {
+ extern "C" int glDepthMask ();
+}
int
-main ()
+main (void)
{
-return glDepthMask ();
+return conftest::glDepthMask ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_GL_glDepthMask=yes
-else
+else $as_nop
ac_cv_lib_GL_glDepthMask=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GL_glDepthMask" >&5
-$as_echo "$ac_cv_lib_GL_glDepthMask" >&6; }
-if test "x$ac_cv_lib_GL_glDepthMask" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GL_glDepthMask" >&5
+printf "%s\n" "$ac_cv_lib_GL_glDepthMask" >&6; }
+if test "x$ac_cv_lib_GL_glDepthMask" = xyes
+then :
-$as_echo "#define HAVE_LIBGL 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBGL 1" >>confdefs.h
LIBS=$LIBS"-lGL "
GLEW="glew.o "
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glXGetProcAddressARB in -lGLX" >&5
-$as_echo_n "checking for glXGetProcAddressARB in -lGLX... " >&6; }
-if ${ac_cv_lib_GLX_glXGetProcAddressARB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glXGetProcAddressARB in -lGLX" >&5
+printf %s "checking for glXGetProcAddressARB in -lGLX... " >&6; }
+if test ${ac_cv_lib_GLX_glXGetProcAddressARB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lGLX $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char glXGetProcAddressARB ();
+namespace conftest {
+ extern "C" int glXGetProcAddressARB ();
+}
int
-main ()
+main (void)
{
-return glXGetProcAddressARB ();
+return conftest::glXGetProcAddressARB ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_GLX_glXGetProcAddressARB=yes
-else
+else $as_nop
ac_cv_lib_GLX_glXGetProcAddressARB=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GLX_glXGetProcAddressARB" >&5
-$as_echo "$ac_cv_lib_GLX_glXGetProcAddressARB" >&6; }
-if test "x$ac_cv_lib_GLX_glXGetProcAddressARB" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GLX_glXGetProcAddressARB" >&5
+printf "%s\n" "$ac_cv_lib_GLX_glXGetProcAddressARB" >&6; }
+if test "x$ac_cv_lib_GLX_glXGetProcAddressARB" = xyes
+then :
GLEW=$GLEW"-lGLX "
fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libGL: will compile without OpenGL support ***" >&5
-$as_echo "$as_me: *** Could not find libGL: will compile without OpenGL support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libGL: will compile without OpenGL support ***" >&5
+printf "%s\n" "$as_me: *** Could not find libGL: will compile without OpenGL support ***" >&6;}
fi
esac
if test "x$enable_offscreen" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OSMesaCreateContext in -lOSMesa" >&5
-$as_echo_n "checking for OSMesaCreateContext in -lOSMesa... " >&6; }
-if ${ac_cv_lib_OSMesa_OSMesaCreateContext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OSMesaCreateContext in -lOSMesa" >&5
+printf %s "checking for OSMesaCreateContext in -lOSMesa... " >&6; }
+if test ${ac_cv_lib_OSMesa_OSMesaCreateContext+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lOSMesa $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char OSMesaCreateContext ();
+namespace conftest {
+ extern "C" int OSMesaCreateContext ();
+}
int
-main ()
+main (void)
{
-return OSMesaCreateContext ();
+return conftest::OSMesaCreateContext ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_OSMesa_OSMesaCreateContext=yes
-else
+else $as_nop
ac_cv_lib_OSMesa_OSMesaCreateContext=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_OSMesa_OSMesaCreateContext" >&5
-$as_echo "$ac_cv_lib_OSMesa_OSMesaCreateContext" >&6; }
-if test "x$ac_cv_lib_OSMesa_OSMesaCreateContext" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBOSMESA 1
-_ACEOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_OSMesa_OSMesaCreateContext" >&5
+printf "%s\n" "$ac_cv_lib_OSMesa_OSMesaCreateContext" >&6; }
+if test "x$ac_cv_lib_OSMesa_OSMesaCreateContext" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBOSMESA 1" >>confdefs.h
LIBS="-lOSMesa $LIBS"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: *** Could not find libOSMesa: will compile without offscreen rendering support ***" >&5
-$as_echo "$as_me: *** Could not find libOSMesa: will compile without offscreen rendering support ***" >&6;}
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: *** Could not find libOSMesa: will compile without offscreen rendering support ***" >&5
+printf "%s\n" "$as_me: *** Could not find libOSMesa: will compile without offscreen rendering support ***" >&6;}
fi
fi
fi
# Checks for typedefs, structures, and compiler characteristics.
-ac_fn_cxx_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
-else
+ ac_fn_cxx_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
+"
+if test "x$ac_cv_type_pid_t" = xyes
+then :
+
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if defined _WIN64 && !defined __CYGWIN__
+ LLP64
+ #endif
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+ ac_pid_type='int'
+else $as_nop
+ ac_pid_type='__int64'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
+
fi
+
ac_fn_cxx_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
+if test "x$ac_cv_type_size_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
+printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
ac_fn_cxx_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+if test "x$ac_cv_type_ptrdiff_t" = xyes
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_PTRDIFF_T 1
-_ACEOF
+printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h
fi
ac_fn_cxx_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
-if test "x$ac_cv_type_long_long" = xyes; then :
+if test "x$ac_cv_type_long_long" = xyes
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LONG_LONG 1
-_ACEOF
+printf "%s\n" "#define HAVE_LONG_LONG 1" >>confdefs.h
fi
ac_fn_cxx_check_type "$LINENO" "long" "ac_cv_type_long" "$ac_includes_default"
-if test "x$ac_cv_type_long" = xyes; then :
+if test "x$ac_cv_type_long" = xyes
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LONG 1
-_ACEOF
+printf "%s\n" "#define HAVE_LONG 1" >>confdefs.h
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+printf %s "checking for an ANSI C-conforming const... " >&6; }
+if test ${ac_cv_c_const+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __cplusplus
@@ -8464,7 +9202,7 @@ main ()
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
+ /* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
@@ -8492,7 +9230,7 @@ main ()
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
@@ -8508,47 +9246,50 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_c_const=yes
-else
+else $as_nop
ac_cv_c_const=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
-$as_echo "#define const /**/" >>confdefs.h
+printf "%s\n" "#define const /**/" >>confdefs.h
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+printf %s "checking for inline... " >&6; }
+if test ${ac_cv_c_inline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
+static $ac_kw foo_t static_foo (void) {return 0; }
+$ac_kw foo_t foo (void) {return 0; }
#endif
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_compile "$LINENO"
+then :
ac_cv_c_inline=$ac_kw
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+printf "%s\n" "$ac_cv_c_inline" >&6; }
case $ac_cv_c_inline in
inline | yes) ;;
@@ -8567,44 +9308,53 @@ esac
# Checks for library functions.
-for ac_header in vfork.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
-if test "x$ac_cv_header_vfork_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_VFORK_H 1
-_ACEOF
-
-fi
-
+ac_header= ac_cache=
+for ac_item in $ac_header_cxx_list
+do
+ if test $ac_cache; then
+ ac_fn_cxx_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+ if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+ printf "%s\n" "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_header= ac_cache=
+ elif test $ac_header; then
+ ac_cache=$ac_item
+ else
+ ac_header=$ac_item
+ fi
+done
+ac_func=
+for ac_item in $ac_func_cxx_list
+do
+ if test $ac_func; then
+ ac_fn_cxx_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
+ if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
+ echo "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_func=
+ else
+ ac_func=$ac_item
+ fi
done
-for ac_func in fork vfork
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-fi
-done
if test "x$ac_cv_func_fork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-$as_echo_n "checking for working fork... " >&6; }
-if ${ac_cv_func_fork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
+printf %s "checking for working fork... " >&6; }
+if test ${ac_cv_func_fork_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
ac_cv_func_fork_works=cross
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
-main ()
+main (void)
{
/* By Ruediger Kuhlmann. */
@@ -8614,9 +9364,10 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
+if ac_fn_cxx_try_run "$LINENO"
+then :
ac_cv_func_fork_works=yes
-else
+else $as_nop
ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -8624,8 +9375,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-$as_echo "$ac_cv_func_fork_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
+printf "%s\n" "$ac_cv_func_fork_works" >&6; }
else
ac_cv_func_fork_works=$ac_cv_func_fork
@@ -8640,27 +9391,37 @@ if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_fork_works=yes
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
+printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-$as_echo_n "checking for working vfork... " >&6; }
-if ${ac_cv_func_vfork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
+printf %s "checking for working vfork... " >&6; }
+if test ${ac_cv_func_vfork_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
ac_cv_func_vfork_works=cross
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
+#include <signal.h>
#include <sys/wait.h>
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
+
+static void
+do_nothing (int sig)
+{
+ (void) sig;
+}
+
/* On some sparc systems, changes by the child to local and incoming
argument registers are propagated back to the parent. The compiler
is told about this with #include <vfork.h>, but some compilers
@@ -8668,11 +9429,7 @@ $ac_includes_default
static variable whose address is put into a register that is
clobbered by the vfork. */
static void
-#ifdef __cplusplus
sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
{
static pid_t child;
if (!child) {
@@ -8690,13 +9447,18 @@ sparc_address_test (arg) int arg;
}
int
-main ()
+main (void)
{
pid_t parent = getpid ();
pid_t child;
sparc_address_test (0);
+ /* On Solaris 2.4, changes by the child to the signal handler
+ also munge signal handlers in the parent. To detect this,
+ start by putting the parent's handler in a known state. */
+ signal (SIGTERM, SIG_DFL);
+
child = vfork ();
if (child == 0) {
@@ -8718,6 +9480,10 @@ main ()
|| p != p5 || p != p6 || p != p7)
_exit(1);
+ /* Alter the child's signal handler. */
+ if (signal (SIGTERM, do_nothing) != SIG_DFL)
+ _exit(1);
+
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
from child file descriptors. If the child closes a descriptor
before it execs or exits, this munges the parent's descriptor
@@ -8733,6 +9499,9 @@ main ()
/* Was there some problem with vforking? */
child < 0
+ /* Did the child munge the parent's signal handler? */
+ || signal (SIGTERM, SIG_DFL) != SIG_DFL
+
/* Did the child fail? (This shouldn't happen.) */
|| status
@@ -8745,9 +9514,10 @@ main ()
}
}
_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
+if ac_fn_cxx_try_run "$LINENO"
+then :
ac_cv_func_vfork_works=yes
-else
+else $as_nop
ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -8755,124 +9525,162 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-$as_echo "$ac_cv_func_vfork_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
+printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=$ac_cv_func_vfork
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
+printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
fi
if test "x$ac_cv_func_vfork_works" = xyes; then
-$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h
+printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
else
-$as_echo "#define vfork fork" >>confdefs.h
+printf "%s\n" "#define vfork fork" >>confdefs.h
fi
if test "x$ac_cv_func_fork_works" = xyes; then
-$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
+printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
-for ac_func in dup2 floor memset strchr tgamma lgamma memrchr popcount
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+ac_fn_cxx_check_func "$LINENO" "dup2" "ac_cv_func_dup2"
+if test "x$ac_cv_func_dup2" = xyes
+then :
+ printf "%s\n" "#define HAVE_DUP2 1" >>confdefs.h
fi
-done
+ac_fn_cxx_check_func "$LINENO" "floor" "ac_cv_func_floor"
+if test "x$ac_cv_func_floor" = xyes
+then :
+ printf "%s\n" "#define HAVE_FLOOR 1" >>confdefs.h
+
+fi
+ac_fn_cxx_check_func "$LINENO" "memset" "ac_cv_func_memset"
+if test "x$ac_cv_func_memset" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMSET 1" >>confdefs.h
+
+fi
+ac_fn_cxx_check_func "$LINENO" "strchr" "ac_cv_func_strchr"
+if test "x$ac_cv_func_strchr" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h
+
+fi
+ac_fn_cxx_check_func "$LINENO" "tgamma" "ac_cv_func_tgamma"
+if test "x$ac_cv_func_tgamma" = xyes
+then :
+ printf "%s\n" "#define HAVE_TGAMMA 1" >>confdefs.h
+
+fi
+ac_fn_cxx_check_func "$LINENO" "lgamma" "ac_cv_func_lgamma"
+if test "x$ac_cv_func_lgamma" = xyes
+then :
+ printf "%s\n" "#define HAVE_LGAMMA 1" >>confdefs.h
-for ac_func in strftime
+fi
+ac_fn_cxx_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
+if test "x$ac_cv_func_memrchr" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h
+
+fi
+ac_fn_cxx_check_func "$LINENO" "popcount" "ac_cv_func_popcount"
+if test "x$ac_cv_func_popcount" = xyes
+then :
+ printf "%s\n" "#define HAVE_POPCOUNT 1" >>confdefs.h
+
+fi
+
+
+ for ac_func in strftime
do :
ac_fn_cxx_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
-if test "x$ac_cv_func_strftime" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STRFTIME 1
-_ACEOF
+if test "x$ac_cv_func_strftime" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRFTIME 1" >>confdefs.h
-else
+else $as_nop
# strftime is in -lintl on SCO UNIX.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
-$as_echo_n "checking for strftime in -lintl... " >&6; }
-if ${ac_cv_lib_intl_strftime+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
+printf %s "checking for strftime in -lintl... " >&6; }
+if test ${ac_cv_lib_intl_strftime+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strftime ();
+namespace conftest {
+ extern "C" int strftime ();
+}
int
-main ()
+main (void)
{
-return strftime ();
+return conftest::strftime ();
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_intl_strftime=yes
-else
+else $as_nop
ac_cv_lib_intl_strftime=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
-$as_echo "$ac_cv_lib_intl_strftime" >&6; }
-if test "x$ac_cv_lib_intl_strftime" = xyes; then :
- $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
+printf "%s\n" "$ac_cv_lib_intl_strftime" >&6; }
+if test "x$ac_cv_lib_intl_strftime" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRFTIME 1" >>confdefs.h
LIBS="-lintl $LIBS"
fi
fi
-done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
-$as_echo_n "checking for error_at_line... " >&6; }
-if ${ac_cv_lib_error_at_line+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+done
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+printf %s "checking for error_at_line... " >&6; }
+if test ${ac_cv_lib_error_at_line+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <error.h>
int
-main ()
+main (void)
{
error_at_line (0, 0, "", 0, "an error occurred");
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_lib_error_at_line=yes
-else
+else $as_nop
ac_cv_lib_error_at_line=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
-$as_echo "$ac_cv_lib_error_at_line" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+printf "%s\n" "$ac_cv_lib_error_at_line" >&6; }
if test $ac_cv_lib_error_at_line = no; then
case " $LIBOBJS " in
*" error.$ac_objext "* ) ;;
@@ -8882,18 +9690,19 @@ esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_source+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_source+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h> /* for off_t */
#include <stdio.h>
int
-main ()
+main (void)
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
@@ -8901,10 +9710,11 @@ int (*fp) (FILE *, off_t, int) = fseeko;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_sys_largefile_source=no; break
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -8912,7 +9722,7 @@ rm -f core conftest.err conftest.$ac_objext \
#include <sys/types.h> /* for off_t */
#include <stdio.h>
int
-main ()
+main (void)
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
@@ -8920,23 +9730,22 @@ int (*fp) (FILE *, off_t, int) = fseeko;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"
+then :
ac_cv_sys_largefile_source=1; break
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_cv_sys_largefile_source=unknown
break
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
-$as_echo "$ac_cv_sys_largefile_source" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
+printf "%s\n" "$ac_cv_sys_largefile_source" >&6; }
case $ac_cv_sys_largefile_source in #(
no | unknown) ;;
*)
-cat >>confdefs.h <<_ACEOF
-#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
-_ACEOF
+printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h
;;
esac
rm -rf conftest*
@@ -8946,32 +9755,24 @@ rm -rf conftest*
# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
if test $ac_cv_sys_largefile_source != unknown; then
-$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
+printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
fi
-for ac_func in strptime
-do :
- ac_fn_cxx_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
-if test "x$ac_cv_func_strptime" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STRPTIME 1
-_ACEOF
+ac_fn_cxx_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
+if test "x$ac_cv_func_strptime" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRPTIME 1" >>confdefs.h
fi
-done
-for ac_func in strnlen
-do :
- ac_fn_cxx_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
-if test "x$ac_cv_func_strnlen" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STRNLEN 1
-_ACEOF
+ac_fn_cxx_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
+if test "x$ac_cv_func_strnlen" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h
fi
-done
ac_config_headers="$ac_config_headers config.h"
@@ -9006,8 +9807,8 @@ _ACEOF
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -9037,15 +9838,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
/^ac_cv_env_/b end
t clear
:clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
@@ -9059,8 +9860,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
fi
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
@@ -9077,7 +9878,7 @@ U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -9094,8 +9895,8 @@ LTLIBOBJS=$ac_ltlibobjs
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
@@ -9118,14 +9919,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -9135,46 +9938,46 @@ esac
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -9183,13 +9986,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
fi
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -9198,8 +9994,12 @@ case $0 in #((
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -9211,30 +10011,10 @@ if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -9247,13 +10027,14 @@ as_fn_error ()
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -9280,18 +10061,20 @@ as_fn_unset ()
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
+
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -9303,12 +10086,13 @@ fi # as_fn_append
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
@@ -9339,7 +10123,7 @@ as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -9361,6 +10145,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -9374,6 +10162,12 @@ case `echo -n x` in #(((((
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -9415,7 +10209,7 @@ as_fn_mkdir_p ()
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -9424,7 +10218,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -9486,8 +10280,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Asymptote $as_me 2.79, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+This file was extended by Asymptote $as_me 2.84, which was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -9545,14 +10339,16 @@ $config_headers
Report bugs to <https://github.com/vectorgraphics/asymptote/issues>."
_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-Asymptote config.status 2.79
-configured by $0, generated by GNU Autoconf 2.69,
+Asymptote config.status 2.84
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -9590,15 +10386,15 @@ do
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
+ printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
+ printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -9606,7 +10402,7 @@ do
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
@@ -9615,7 +10411,7 @@ do
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
+ printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
@@ -9643,7 +10439,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
@@ -9657,7 +10453,7 @@ exec 5>>config.log
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
- $as_echo "$ac_log"
+ printf "%s\n" "$ac_log"
} >&5
_ACEOF
@@ -9685,8 +10481,8 @@ done
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+ test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -10022,7 +10818,7 @@ do
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
@@ -10030,17 +10826,17 @@ do
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
+ ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
@@ -10057,7 +10853,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -10081,9 +10877,9 @@ $as_echo X"$ac_file" |
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -10140,8 +10936,8 @@ ac_sed_dataroot='
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
@@ -10184,9 +10980,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
@@ -10202,20 +10998,20 @@ which seems to be undefined. Please make sure it is defined" >&2;}
#
if test x"$ac_file" != x-; then
{
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
@@ -10256,18 +11052,19 @@ if test "$no_create" != yes; then
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
if test "x$GCDIR" != "x" ; then
- as_ac_File=`$as_echo "ac_cv_file_$GCDIR.tar.gz" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GCDIR.tar.gz" >&5
-$as_echo_n "checking for $GCDIR.tar.gz... " >&6; }
-if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ as_ac_File=`printf "%s\n" "ac_cv_file_$GCDIR.tar.gz" | $as_tr_sh`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $GCDIR.tar.gz" >&5
+printf %s "checking for $GCDIR.tar.gz... " >&6; }
+if eval test \${$as_ac_File+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$GCDIR.tar.gz"; then
@@ -10277,11 +11074,12 @@ else
fi
fi
eval ac_res=\$$as_ac_File
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"
+then :
-else
+else $as_nop
echo
echo Please put the Boehm garbage collector tar.gz files in the asymptote directory.
@@ -10296,3 +11094,4 @@ else
fi
fi
+
diff --git a/Build/source/utils/asymptote/configure.ac b/Build/source/utils/asymptote/configure.ac
index 3d46cb43db5..cdd5e26b481 100644
--- a/Build/source/utils/asymptote/configure.ac
+++ b/Build/source/utils/asymptote/configure.ac
@@ -3,7 +3,7 @@
# this file.
AC_PREREQ(2)
-AC_INIT([Asymptote],[2.79],[https://github.com/vectorgraphics/asymptote/issues])
+AC_INIT([Asymptote],[2.84],[https://github.com/vectorgraphics/asymptote/issues])
VERSION=$PACKAGE_VERSION
AC_SUBST(VERSION)
m4_include([ax_pthread.m4])
@@ -114,7 +114,14 @@ AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_CC
AC_PROG_MAKE_SET
-AC_PROG_YACC
+
+AC_ARG_VAR([BISON], [bison command])
+AC_CHECK_PROG([BISON], [bison -y], [yes], [no])
+AS_IF([test "x$BISON" = "xno"], [AC_MSG_ERROR([bison not found])])
+
+AC_ARG_VAR([FLEX], [flex command])
+AC_CHECK_PROG([FLEX], [flex -y], [yes], [no])
+AS_IF([test "x$FLEX" = "xno"], [AC_MSG_ERROR([flex not found])])
if test "$GXX" = yes ; then
ac_gcc_version=`echo __GNUC__ | $CC -E - | grep -v ^\#`
@@ -148,7 +155,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
DEFINE([<unordered_map>])),
[AC_CHECK_HEADER(ext/hash_map,,OPTIONS=$OPTIONS"-DNOHASH ")])])
-ASYGLVERSION=1.01
+ASYGLVERSION=1.02
GCVERSION=8.2.0
ATOMICVERSION=7.6.12
@@ -169,7 +176,7 @@ enable system Boehm garbage collector)]
fi
])
-OPTIONS="-D_FILE_OFFSET_BITS=64 "
+OPTIONS="-D_FILE_OFFSET_BIS=64 "
GCLIB=
GCPPLIB=
INCL="-I."
@@ -236,8 +243,6 @@ AC_ARG_ENABLE(gc-full-debug,
fi
])
-INCL=$INCL" -I/usr/include/tirpc"
-
if test "$OSTYPE" = "msdos"; then
CPPFLAGS=$CPPFLAGS" -D__MSDOS__ -I/usr/include/w32api -I/usr/include -DCALLBACK=__stdcall $INCL"
else
@@ -261,8 +266,8 @@ AC_SUBST(OPTIONS)
AC_SUBST(GLEW)
# Checks for libraries.
-AC_SEARCH_LIBS([lgamma],[m c],,
-AC_MSG_ERROR([*** Please install libm on your system ***]))
+#AC_SEARCH_LIBS([lgamma],[m c],,
+#AC_MSG_ERROR([*** Please install libm on your system ***]))
AC_CHECK_LIB([z], [deflate],,
AC_MSG_ERROR([*** Please install libz or zlib-devel on your system ***]))
@@ -350,6 +355,8 @@ LDFLAGS=$LDFLAGS0
])
if test "x$enable_readline" != "xno"; then
+CPPFLAGS="$CPPFLAGS "`pkg-config --cflags readline`
+LDFLAGS="$LDFLAGS "`pkg-config --libs readline`
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([
#include <stdio.h>
@@ -374,19 +381,36 @@ AC_ARG_ENABLE(fftw,
[AS_HELP_STRING(--enable-fftw[[[=yes]]],enable FFTW Library)])
if test "x$enable_fftw" != "xno"; then
-
+CPPFLAGS="$CPPFLAGS "`pkg-config --cflags fftw3`
+LDFLAGS="$LDFLAGS "`pkg-config --libs fftw3`
AC_CHECK_HEADER(fftw3.h,
AC_CHECK_LIB_STATIC([fftw3],[fftw_execute],HAVE_LIBFFTW3,
AC_MSG_NOTICE([*** Could not find libfftw3: will compile without optional fast Fourier transforms. ***])),
AC_MSG_NOTICE([*** Header file fftw3.h not found: will compile without optional fast Fourier transforms. ***]))
fi
+AC_ARG_ENABLE(eigen,
+[AS_HELP_STRING(--enable-eigen[[[=yes]]],enable Eigen Library)])
+
+if test "x$enable_eigen" != "xno"; then
+CPPFLAGS="$CPPFLAGS "`pkg-config --cflags eigen3`
+AC_CHECK_HEADERS(Eigen/Dense)
+fi
+
# Checks for header files.
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS([fenv.h stddef.h libintl.h])
AC_CHECK_HEADERS(fpu_control.h)
AC_CHECK_FUNCS([feenableexcept])
+case "$OSTYPE" in
+ darwin*)
+ ;;
+ *)
+ CPPFLAGS="$CPPFLAGS "`pkg-config --cflags libtirpc`
+ LDFLAGS="$LDFLAGS "`pkg-config --libs libtirpc`
+ ;;
+esac
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "xstream.h"])],
[AC_SEARCH_LIBS([xdrstdio_create],[nsl tirpc])
@@ -398,6 +422,8 @@ AC_ARG_ENABLE(gsl,
[AS_HELP_STRING(--enable-gsl[[[=yes]]],enable GNU Scientific Library)])
if test "x$enable_gsl" != "xno"; then
+ CPPFLAGS="$CPPFLAGS "`pkg-config --cflags gsl`
+ LDFLAGS="$LDFLAGS "`pkg-config --libs gsl`
AC_CHECK_HEADER(gsl/gsl_sf.h,
AC_CHECK_LIB([gsl], gsl_sf_debye_6, [AC_DEFINE(HAVE_LIBGSL,1,
DEFINE_LIB[gsl]) LIBS=$LIBS"-lgsl -lgslcblas "],
diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf
index 59b6de4844d..32bb40c75eb 100644
--- a/Build/source/utils/asymptote/doc/CAD.pdf
+++ b/Build/source/utils/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
index 87570ff8d93..3c9bc3f3a09 100644
--- a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
+++ b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 2022-03-07
+ 2023-01-23
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/Build/source/utils/asymptote/doc/Makefile.in b/Build/source/utils/asymptote/doc/Makefile.in
index f819f7dfbb1..1fd546778d0 100644
--- a/Build/source/utils/asymptote/doc/Makefile.in
+++ b/Build/source/utils/asymptote/doc/Makefile.in
@@ -78,7 +78,7 @@ asyRefCard.pdf: asyRefCard.tex
pdftex asyRefCard
clean: FORCE
- -rm -f asy-latex.{aux,idx,ins,log,toc}
+ -rm -f asy-latex.{aux,idx,ins,log,toc,out,hd,ins}
-rm -f $(ASYFILES:.asy=.pdf)
-rm -f *.eps latexusage.{dvi,eps,pdf,log,aux,out,*.eps} latexusage-* \
latexusage.pre
diff --git a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
index f16877d17a0..5f05570de90 100644
--- a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asy-latex.pdf b/Build/source/utils/asymptote/doc/asy-latex.pdf
index f321e985992..95a58022c3c 100644
--- a/Build/source/utils/asymptote/doc/asy-latex.pdf
+++ b/Build/source/utils/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asy.1 b/Build/source/utils/asymptote/doc/asy.1
index 067d01031c6..95ee563b6b7 100644
--- a/Build/source/utils/asymptote/doc/asy.1
+++ b/Build/source/utils/asymptote/doc/asy.1
@@ -31,6 +31,12 @@ in the user's home directory using the long form:
For a complete
description, see the Info files.
.TP
+.B \-GPUblockSize n
+Compute shader block size [8].
+.TP
+.B \-GPUcompress
+Compress GPU transparent fragment counts [false].
+.TP
.B \-GPUindexing
Compute indexing partial sums on GPU [true].
.TP
@@ -38,7 +44,7 @@ Compute indexing partial sums on GPU [true].
Use fragment shader interlock [true].
.TP
.B \-GPUlocalSize n
-Compute shader local size [16].
+Compute shader local size [256].
.TP
.B \-V,\-View
View output; command-line only.
@@ -51,6 +57,7 @@ Center, Bottom, Top, or Zero page alignment [C].
.TP
.B \-aligndir pair
Directional page alignment (overrides align) [(0,0)].
+-animating [false]
.TP
.B \-antialias n
Antialiasing width for rasterized output [2].
@@ -61,7 +68,7 @@ Automatically activate 3D scene [true].
.B \-autobillboard
3D labels always face viewer by default [true].
.TP
-.B \-autoimport string
+.B \-autoimport str
Module to automatically import.
.TP
.B \-autoplain
@@ -83,22 +90,23 @@ Mask fpu exceptions in batch mode [false].
View output in batch mode [false].
.TP
.B \-bw
-Convert all colors to black and white [false].
+Convert all colors to black and white false.
.TP
.B \-cd directory
Set current directory; command-line only.
.TP
.B \-cmyk
-Convert rgb colors to cmyk [false].
+Convert rgb colors to cmyk false.
.TP
-.B \-c,\-command string
+.B \-c,\-command str
Command to autoexecute.
.TP
.B \-compact
-Conserve memory at the expense of speed [false].
+Conserve memory at the expense of speed false.
.TP
.B \-compress
Compress images in PDF output [true].
+-convertOptions str []
.TP
.B \-d,\-debug
Enable debugging messages [false].
@@ -111,13 +119,18 @@ Default output file precision [7].
.TP
.B \-divisor n
Garbage collect using purge(divisor=n) [2].
+-dvipsOptions str []
.TP
.B \-dvisvgmMultipleFiles
-dvisvgm supports multiple files [false].
+dvisvgm supports multiple files [true].
+-dvisvgmOptions str []
.TP
.B \-embed
Embed rendered preview image [true].
.TP
+.B \-e,\-environment
+Show summary of environment settings; command-line only.
+.TP
.B \-exitonEOF
Exit interactive mode on EOF [true].
.TP
@@ -129,21 +142,25 @@ Additional frame delay [0].
.TP
.B \-framerate frames/s
Animation speed [30].
+-glOptions str []
.TP
.B \-globalread
-Allow read from other directory [true].
+Allow read from other directory true.
.TP
.B \-globalwrite
-Allow write to other directory [false].
+Allow write to other directory false.
.TP
.B \-gray
-Convert all colors to grayscale [false].
+Convert all colors to grayscale false.
+-gsOptions str []
.TP
.B \-h,\-help
Show summary of options; command-line only.
.TP
.B \-historylines n
Retain n lines of history [1000].
+-htmlviewerOptions str
+-hyperrefOptions str [setpagesize=false,unicode,pdfborder=0 0 0]
.TP
.B \-ibl
Enable environment map image-based lighting [false].
@@ -151,10 +168,10 @@ Enable environment map image-based lighting [false].
.B \-iconify
Iconify rendering window [false].
.TP
-.B \-image string
+.B \-image str
Environment image name [snowyField].
.TP
-.B \-imageDir string
+.B \-imageDir str
Environment image library directory [ibl].
.TP
.B \-inlineimage
@@ -163,6 +180,9 @@ Generate inline embedded image [false].
.B \-inlinetex
Generate inline TeX code [false].
.TP
+.B \-inpipe n
+Input pipe [-1].
+.TP
.B \-interactiveMask
Mask fpu exceptions in interactive mode [true].
.TP
@@ -171,6 +191,7 @@ View output in interactive mode [true].
.TP
.B \-interactiveWrite
Write expressions entered at the prompt to stdout [true].
+-interrupt [false]
.TP
.B \-k,\-keep
Keep intermediate files [false].
@@ -226,14 +247,25 @@ Convert each output file to specified format.
.B \-o,\-outname name
Alternative output directory/filename.
.TP
+.B \-outpipe n
+Output pipe [-1].
+.TP
+.B \-paperheight bp
+Default page height [0].
+.TP
+.B \-paperwidth bp
+Default page width [0].
+.TP
.B \-p,\-parseonly
Parse file [false].
.TP
.B \-pdfreload
Automatically reload document in pdfviewer [false].
+-pdfreloadOptions str []
.TP
.B \-pdfreloaddelay usec
Delay before attempting initial pdf reload [750000].
+-pdfviewerOptions str []
.TP
.B \-position pair
Initial 3D rendering screen position [(0,0)].
@@ -244,11 +276,12 @@ Embed 3D PRC graphics in PDF output [false].
.B \-prerender resolution
Prerender V3D objects (0 implies vector output) [0].
.TP
-.B \-prompt string
+.B \-prompt str
Prompt [> ].
.TP
-.B \-prompt2 string
+.B \-prompt2 str
Continuation prompt for multiline input [..].
+-psviewerOptions str []
.TP
.B \-q,\-quiet
Suppress welcome text and noninteractive stdout [false].
@@ -263,10 +296,10 @@ Resize step [1.2].
reverse 3D animations [false].
.TP
.B \-rgb
-Convert cmyk colors to rgb [false].
+Convert cmyk colors to rgb false.
.TP
.B \-safe
-Disable system call [true].
+Disable system call true.
.TP
.B \-scroll n
Scroll standard output n lines at a time [0].
@@ -310,11 +343,11 @@ Run LaTeX twice (to resolve references) [false].
.B \-twosided
Use two-sided 3D lighting model for rendering [true].
.TP
-.B \-u,\-user string
+.B \-u,\-user str
General purpose user string.
.TP
.B \-v,\-verbose
-Increase verbosity level (can specify multiple times) [0].
+Increase verbosity level (can specify multiple times) 0.
.TP
.B \-version
Show version; command-line only.
@@ -328,7 +361,7 @@ Horizontal and vertical 3D viewport margin [(0.5,0.5)].
.B \-wait
Wait for child processes to finish before exiting [false].
.TP
-.B \-warn string
+.B \-warn str
Enable warning; command-line only.
.TP
.B \-webgl2
diff --git a/Build/source/utils/asymptote/doc/asyRefCard.pdf b/Build/source/utils/asymptote/doc/asyRefCard.pdf
index 329c9f2cdac..133ebf7f053 100644
--- a/Build/source/utils/asymptote/doc/asyRefCard.pdf
+++ b/Build/source/utils/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.pdf b/Build/source/utils/asymptote/doc/asymptote.pdf
index 5b0956acb0d..ab45608c864 100644
--- a/Build/source/utils/asymptote/doc/asymptote.pdf
+++ b/Build/source/utils/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi
index ff7df7a7bb4..4bcff22cd65 100644
--- a/Build/source/utils/asymptote/doc/asymptote.texi
+++ b/Build/source/utils/asymptote/doc/asymptote.texi
@@ -415,21 +415,13 @@ subdirectory of the installation directory (by default,
@cindex @code{-V}
In interactive mode, or when given the @code{-V} option (the default
when running @code{Asymptote} on a single file under @code{MSDOS}),
-@code{Asymptote} will automatically invoke the @code{PostScript}
-viewer @code{gv} (under @code{UNIX}) or @code{gsview} (under
-@code{MSDOS}) to display graphical output.
+@code{Asymptote} will automatically invoke your @code{PostScript}
+viewer (@code{evince} under @code{UNIX}) to display graphical output.
The @code{PostScript} viewer should be capable of automatically
-redrawing whenever the output file is updated. The default @code{UNIX}
+redrawing whenever the output file is updated. The @code{UNIX}
@code{PostScript} viewer @code{gv} supports this (via a @code{SIGHUP}
-signal). Version @code{gv-3.6.3} or later (from
-@url{https://ftp.gnu.org/gnu/gv/}) is required for interactive mode to
-work properly.
-Users of @code{ggv} will need to enable @code{Watch file} under
+signal). Users of @code{ggv} will need to enable @code{Watch file} under
@code{Edit/PostScript Viewer Preferences}.
-Users of @code{gsview} will need to enable @code{Options/Auto Redisplay}
-(however, under @code{MSDOS} it is still necessary to click on the
-@code{gsview} window; under @code{UNIX} one must manually redisplay by
-pressing the @code{r} key).
@cindex @code{psviewer}
@cindex @code{pdfviewer}
@@ -451,7 +443,7 @@ important configuration variables under @code{UNIX}:
import settings;
pdfviewer="acroread";
htmlviewer="google-chrome";
-psviewer="gv";
+psviewer="evince";
display="display";
animate="animate";
gs="gs";
@@ -549,7 +541,7 @@ all disabled warnings.
Configuration variables may also be set or overwritten with a
command-line option:
@verbatim
-asy -psviewer=gsview -V venn
+asy -psviewer=evince -V venn
@end verbatim
@cindex environment variables
@@ -559,7 +551,7 @@ environment variable name is obtained by converting the configuration
variable name to upper case and prepending @code{ASYMPTOTE_}:
for example, to set the environment variable
@verbatim
-ASYMPTOTE_PSVIEWER="C:\Program Files\Ghostgum\gsview\gsview32.exe";
+ASYMPTOTE_PAPERTYPE="a4";
@end verbatim
@noindent
under @code{Microsoft Windows XP}:
@@ -769,7 +761,7 @@ setlocal errorformat=%f:\ %l.%c:\ %m
Syntax highlighting support for the @acronym{KDE} editor @code{Kate}
can be enabled by running @code{asy-kate.sh} in the
@code{@value{Datadir}/asymptote} directory and putting the generated
-@code{asymptote.xml} file in @code{~/.kde/share/apps/katepart/syntax/}.
+@code{asymptote.xml} file in @code{~/.local/share/org.kde.syntax-highlighting/syntax/}.
@node Git, Uninstall, Editing modes, Installation
@section Git
@@ -4048,6 +4040,7 @@ value, @code{settings.scroll=0}, specifies continuous scrolling.
The routines
@cindex @code{getstring}
+@cindex @code{getint}
@cindex @code{getreal}
@cindex @code{getpair}
@cindex @code{gettriple}
@@ -4286,7 +4279,7 @@ structure. Trying to use a field of a null reference will cause an error.
@cindex @code{!=}
The function @code{bool alias(T,T)} checks to see if two structure references
refer to the same instance of the structure (or both to @code{null}).
-In example at the beginning of this section, @code{alias(foo,bar)}
+In the example at the beginning of this section, @code{alias(foo,bar)}
would return true, but @code{alias(foo,new T)} would return false, as @code{new
T} creates a new instance of the structure @code{T}. The boolean operators
@code{==} and @code{!=} are by default equivalent to @code{alias} and
@@ -5570,6 +5563,19 @@ using the given @code{sign};
returns the unnormalized three-dimensional Fourier transform of
@code{a} using the given @code{sign};
+@cindex @code{realschur}
+@cindex @code{schur}
+@item realschur schur(real[][] a)
+returns a struct @code{realschur} containing a unitary matrix @code{U} and
+a quasitriangular matrix @code{T} such that
+@code{a=U*T*transpose(U)};
+
+@cindex @code{schur}
+@item schur schur(pair[][] a)
+returns a struct @code{schur} containing a unitary matrix @code{U} and
+a triangular matrix @code{T} such that
+@code{a=U*T*conj(transpose(U))};
+
@cindex @code{dot}
@item real dot(real[] a, real[] b)
returns the dot product of the vectors @code{a} and @code{b};
@@ -6336,7 +6342,7 @@ External @code{Asymptote} code can be included with
@end verbatim
@noindent
so that @code{latexmk} will recognize when the code is changed. Note that
-@code{latemk} requires @code{perl}, available from @url{https://www.perl.org/}.
+@code{latexmk} requires @code{perl}, available from @url{https://www.perl.org/}.
@cindex @code{width}
@cindex @code{height}
@@ -8081,7 +8087,7 @@ the indices of the elements in @code{v} that form the vertices of each
triangle. Similarly, the arguments @code{n} and @code{ni} contain
optional normal data and @code{p} and @code{pi} contain optional pen
vertex data. If more than one normal or pen is specified for a vertex, the
-last one specified is used.
+last one is used.
An example of this tessellation facility is given in @code{@uref{https://asymptote.sourceforge.io/gallery/3Dwebgl/triangles.html,,triangles}@uref{https://asymptote.sourceforge.io/gallery/3Dwebgl/triangles.asy,,.asy}}.
@cindex @code{thin}
@@ -8262,7 +8268,7 @@ The @acronym{PRC} specification is available from
external viewer or conversion to an alternate 3D format with the Python
@code{pyv3d} library. The @code{V3D} specification and the
@code{pyv3d} library are available at
-@url{https://gitlab.com/vectorgraphics/v3d}.
+@url{https://github.com/vectorgraphics/v3d}.
A @code{V3D} file @code{file.v3d} may be imported and viewed by
@code{Asymptote} either by specifying @code{file.v3d} on the command line
@verbatim
@@ -8578,7 +8584,7 @@ by @code{y} in the @math{y} direction, and by @code{z} in the @math{z}
direction;
@cindex @code{rotate}
@item rotate(real angle, triple v)
-rotates by @code{angle} in degrees about an axis @code{v} through the origin;
+rotates by @code{angle} in degrees about the axis @code{O--v};
@item rotate(real angle, triple u, triple v)
rotates by @code{angle} in degrees about the axis @code{u--v};
@item reflect(triple u, triple v, triple w)
@@ -8985,6 +8991,22 @@ An optional splinetype @code{Spline} may be specified.
The boolean array or function @code{cond} can be used to control which
surface mesh cells are actually drawn (by default all mesh cells over
@code{box(a,b)} are drawn).
+
+@cindex @code{surface}
+One can also construct the surface generated by rotating a path @code{g}
+between @code{angle1} to @code{angle2} (in degrees) sampled @code{n}
+times about the line @code{c--c+axis}:
+@verbatim
+surface surface(triple c, path3 g, triple axis, int n=nslice,
+ real angle1=0, real angle2=360, pen color(int i, real j)=null);
+@end verbatim
+@noindent
+@cindex @code{color}
+The optional argument @code{color(int i, real j)} can be used to override the
+surface color at the point obtained by rotating vertex @code{i} by
+angle @code{j} (in degrees).
+
+@noindent
Surface lighting is illustrated in the example files
@code{@uref{https://asymptote.sourceforge.io/gallery/3Dwebgl/parametricsurface.html,,parametricsurface}@uref{https://asymptote.sourceforge.io/gallery/3Dwebgl/parametricsurface.asy,,.asy}} and @code{@uref{https://asymptote.sourceforge.io/gallery/3D graphs/sinc.html,,sinc}@uref{https://asymptote.sourceforge.io/gallery/3D graphs/sinc.asy,,.asy}}.
Lighting can be disabled by setting @code{light=nolight}, as in this example
@@ -9487,6 +9509,7 @@ interactiveMask=true;
Command-line options override these defaults. Most configuration
variables may also be changed at runtime.
@cindex @code{dvipsOptions}
+@cindex @code{dvisvgmOptions}
@cindex @code{hyperrefOptions}
@cindex @code{convertOptions}
@cindex @code{gsOptions}
@@ -9495,7 +9518,6 @@ variables may also be changed at runtime.
@cindex @code{pdfviewerOptions}
@cindex @code{pdfreloadOptions}
@cindex @code{glOptions}
-@cindex @code{dvisvgmOptions}
The advanced configuration variables @code{dvipsOptions},
@code{hyperrefOptions}, @code{convertOptions}, @code{gsOptions},
@code{htmlviewerOptions}, @code{psviewerOptions},
@@ -9547,7 +9569,7 @@ To produce @acronym{SVG} output, you will need @code{dvisvgm} (version
You might need to adjust the configuration variable @code{libgs} to
point to the location of your @code{Ghostscript} library
@code{libgs.so} (or to an empty string, depending on how
-@code{dvisvgm} was configured). The 2.10 version (or later) of
+@code{dvisvgm} was configured). The 2.13.1 version (or later) of
@code{dvisvgm} can display @acronym{SVG} output (used by the
@code{xasy} editor) for embedded @acronym{EPS}, @acronym{PDF},
@acronym{PNG}, and @acronym{JPEG} images included with the
@@ -9788,10 +9810,11 @@ and the @code{librsvg} package on @code{MacOS X}; under
@url{https://sourceforge.net/projects/tumagcc/files/rsvg-convert-2.40.20.7z}
+@cindex @code{dvisvgmMultipleFiles}
Deconstruction of a picture into its components is fastest when using
-the @code{LaTeX} TeX engine. One can speed up deconstruction for
-other TeX engines using the 2.13.1 version or later of @code{dvisvgm}
-and setting @code{dvisvgmMultipleFiles=true;} in the @code{Asymptote} configuration file (@pxref{configuration file}).
+the @code{LaTeX} TeX engine. The default setting
+@code{dvisvgmMultipleFiles=true} speeds up deconstruction
+under @acronym{PDF} TeX engines.
@node GUI usage, , GUI installation, GUI
@section GUI usage
@@ -10158,7 +10181,7 @@ developed the @code{Asymptote Web Application} hosted at
@c LocalWords: lineargraph datagraph vertices parametricgraph uncomment ggv
@c LocalWords: loggraph generalaxis texhash arrowsize arrowangle arrowlength
@c LocalWords: SuppressQuiet MoveQuiet LIBREADLINE config MacOS prebuilt
-@c LocalWords: ghostview gsview SIGHUP PDF acroread xpdf cutbefore strptime
+@c LocalWords: ghostview SIGHUP PDF acroread xpdf cutbefore strptime
@c LocalWords: libsigsegv intersectionpoint dotfactor vv firstcut pq logticks
@c LocalWords: Unisys dvips vvv vvvv vvvvv traceback lastcut cutafter infodir
@c LocalWords: zxvf xargs cond polargraph xmin xmax plabel YZero labelling ln
@@ -10284,7 +10307,7 @@ developed the @code{Asymptote Web Application} hosted at
@c LocalWords: differentiable vectorization vectorized asydir normals quartic
@c LocalWords: wavepacket kerned parametrized specular hyperboloid Bourke's
@c LocalWords: Michail 0pt 1filll 's 3D labelpath3 2D graph3 0pt 3D
-@c LocalWords: grid3 contour3 x86_64 psv a4 gsview32 freeglut 'load '
+@c LocalWords: grid3 contour3 x86_64 psv a4 freeglut 'load '
@c LocalWords: 'asy 'lasy 'auto 5bp 1cm sqrtx01 4g extenda extendb
@c LocalWords: bb llx 2S 100pt 3t bezier2 bool3 x0 angle1 angle2 z1
@c LocalWords: z2 before' struct X11 x11colors type1cm 12pt OT1 5mm
diff --git a/Build/source/utils/asymptote/doc/histogram.asy b/Build/source/utils/asymptote/doc/histogram.asy
index ec00d6638d1..f41af601236 100644
--- a/Build/source/utils/asymptote/doc/histogram.asy
+++ b/Build/source/utils/asymptote/doc/histogram.asy
@@ -12,8 +12,7 @@ draw(graph(Gaussian,min(a),max(a)),blue);
// Optionally calculate "optimal" number of bins a la Shimazaki and Shinomoto.
int N=bins(a);
-histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=false);
+histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=true);
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$dP/dx$",LeftRight,RightTicks(trailingzero));
-
diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info
index 6975f386052..5c0a6ae178b 100644
--- a/Build/source/utils/asymptote/doc/png/asymptote.info
+++ b/Build/source/utils/asymptote/doc/png/asymptote.info
@@ -1,7 +1,7 @@
This is asymptote.info, produced by makeinfo version 6.8 from
asymptote.texi.
-This file documents 'Asymptote', version 2.79.
+This file documents 'Asymptote', version 2.84.
<https://asymptote.sourceforge.io>
@@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.79.
+This file documents 'Asymptote', version 2.84.
<https://asymptote.sourceforge.io>
@@ -371,17 +371,12 @@ File: asymptote.info, Node: Configuring, Next: Search paths, Prev: Microsoft
In interactive mode, or when given the '-V' option (the default when
running 'Asymptote' on a single file under 'MSDOS'), 'Asymptote' will
-automatically invoke the 'PostScript' viewer 'gv' (under 'UNIX') or
-'gsview' (under 'MSDOS') to display graphical output. The 'PostScript'
-viewer should be capable of automatically redrawing whenever the output
-file is updated. The default 'UNIX' 'PostScript' viewer 'gv' supports
-this (via a 'SIGHUP' signal). Version 'gv-3.6.3' or later (from
-<https://ftp.gnu.org/gnu/gv/>) is required for interactive mode to work
-properly. Users of 'ggv' will need to enable 'Watch file' under
-'Edit/PostScript Viewer Preferences'. Users of 'gsview' will need to
-enable 'Options/Auto Redisplay' (however, under 'MSDOS' it is still
-necessary to click on the 'gsview' window; under 'UNIX' one must
-manually redisplay by pressing the 'r' key).
+automatically invoke your 'PostScript' viewer ('evince' under 'UNIX') to
+display graphical output. The 'PostScript' viewer should be capable of
+automatically redrawing whenever the output file is updated. The 'UNIX'
+'PostScript' viewer 'gv' supports this (via a 'SIGHUP' signal). Users
+of 'ggv' will need to enable 'Watch file' under 'Edit/PostScript Viewer
+Preferences'.
Configuration variables are most easily set as 'Asymptote' variables
in an optional configuration file 'config.asy' (*note configuration
@@ -392,7 +387,7 @@ configuration variables under 'UNIX':
import settings;
pdfviewer="acroread";
htmlviewer="google-chrome";
-psviewer="gv";
+psviewer="evince";
display="display";
animate="animate";
gs="gs";
@@ -456,14 +451,14 @@ lists all disabled warnings.
Configuration variables may also be set or overwritten with a
command-line option:
-asy -psviewer=gsview -V venn
+asy -psviewer=evince -V venn
Alternatively, system environment versions of the above configuration
variables may be set in the conventional way. The corresponding
environment variable name is obtained by converting the configuration
variable name to upper case and prepending 'ASYMPTOTE_': for example, to
set the environment variable
-ASYMPTOTE_PSVIEWER="C:\Program Files\Ghostgum\gsview\gsview32.exe";
+ASYMPTOTE_PAPERTYPE="a4";
under 'Microsoft Windows XP':
1. Click on the 'Start' button;
2. Right-click on 'My Computer';
@@ -617,7 +612,7 @@ setlocal errorformat=%f:\ %l.%c:\ %m
Syntax highlighting support for the KDE editor 'Kate' can be enabled
by running 'asy-kate.sh' in the '/usr/local/share/asymptote' directory
and putting the generated 'asymptote.xml' file in
-'~/.kde/share/apps/katepart/syntax/'.
+'~/.local/share/org.kde.syntax-highlighting/syntax/'.

File: asymptote.info, Node: Git, Next: Uninstall, Prev: Editing modes, Up: Installation
@@ -3330,12 +3325,12 @@ an error.
The function 'bool alias(T,T)' checks to see if two structure
references refer to the same instance of the structure (or both to
-'null'). In example at the beginning of this section, 'alias(foo,bar)'
-would return true, but 'alias(foo,new T)' would return false, as 'new T'
-creates a new instance of the structure 'T'. The boolean operators '=='
-and '!=' are by default equivalent to 'alias' and '!alias' respectively,
-but may be overwritten for a particular type (for example, to do a deep
-comparison).
+'null'). In the example at the beginning of this section,
+'alias(foo,bar)' would return true, but 'alias(foo,new T)' would return
+false, as 'new T' creates a new instance of the structure 'T'. The
+boolean operators '==' and '!=' are by default equivalent to 'alias' and
+'!alias' respectively, but may be overwritten for a particular type (for
+example, to do a deep comparison).
Here is a simple example that illustrates the use of structures:
struct S {
@@ -4297,6 +4292,14 @@ of type 'T[]'.
returns the unnormalized three-dimensional Fourier transform of 'a'
using the given 'sign';
+'realschur schur(real[][] a)'
+ returns a struct 'realschur' containing a unitary matrix 'U' and a
+ quasitriangular matrix 'T' such that 'a=U*T*transpose(U)';
+
+'schur schur(pair[][] a)'
+ returns a struct 'schur' containing a unitary matrix 'U' and a
+ triangular matrix 'T' such that 'a=U*T*conj(transpose(U))';
+
'real dot(real[] a, real[] b)'
returns the dot product of the vectors 'a' and 'b';
@@ -4892,7 +4895,7 @@ in a file 'latexmkrc' in the same directory. External 'Asymptote' code
can be included with
\asyinclude[<options>]{<filename.asy>}
so that 'latexmk' will recognize when the code is changed. Note that
-'latemk' requires 'perl', available from <https://www.perl.org/>.
+'latexmk' requires 'perl', available from <https://www.perl.org/>.
One can specify 'width', 'height', 'keepAspect', 'viewportwidth',
'viewportheight', 'attach', and 'inline'. 'keyval'-style options to the
@@ -6462,11 +6465,10 @@ following routines:
// Optionally calculate "optimal" number of bins a la Shimazaki and Shinomoto.
int N=bins(a);
- histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=false);
+ histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=true);
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$dP/dx$",LeftRight,RightTicks(trailingzero));
-
[./histogram]
@@ -6598,7 +6600,7 @@ following routines:
pair a=(0,0);
pair b=(2pi,2pi);
- path vector(pair z) {return (0,0)--(sin(z.x),cos(z.y));}
+ path vector(pair z) {return (sin(z.x),cos(z.y));}
add(vectorfield(vector,a,b));
@@ -6990,8 +6992,8 @@ while the array 'vi' contains integer arrays of length 3 containing the
indices of the elements in 'v' that form the vertices of each triangle.
Similarly, the arguments 'n' and 'ni' contain optional normal data and
'p' and 'pi' contain optional pen vertex data. If more than one normal
-or pen is specified for a vertex, the last one specified is used. An
-example of this tessellation facility is given in 'triangles.asy'.
+or pen is specified for a vertex, the last one is used. An example of
+this tessellation facility is given in 'triangles.asy'.
Arbitrary thick three-dimensional curves and line caps (which the
'OpenGL' standard does not require implementations to provide) are
@@ -7130,7 +7132,7 @@ There are six choices for viewing 3D 'Asymptote' output:
5. Output a 'V3D' portable compressed binary file for viewing with an
external viewer or conversion to an alternate 3D format with the
Python 'pyv3d' library. The 'V3D' specification and the 'pyv3d'
- library are available at <https://gitlab.com/vectorgraphics/v3d>.
+ library are available at <https://github.com/vectorgraphics/v3d>.
A 'V3D' file 'file.v3d' may be imported and viewed by 'Asymptote'
either by specifying 'file.v3d' on the command line
asy -V file.v3d
@@ -7339,7 +7341,7 @@ following built-in transform3 types (the identity transformation is
scales by 'x' in the x direction, by 'y' in the y direction, and by
'z' in the z direction;
'rotate(real angle, triple v)'
- rotates by 'angle' in degrees about an axis 'v' through the origin;
+ rotates by 'angle' in degrees about the axis 'O--v';
'rotate(real angle, triple u, triple v)'
rotates by 'angle' in degrees about the axis 'u--v';
'reflect(triple u, triple v, triple w)'
@@ -7662,10 +7664,20 @@ over the parameter space 'box(a,b)', as illustrated in the example
'parametricsurface.asy'. An optional splinetype 'Spline' may be
specified. The boolean array or function 'cond' can be used to control
which surface mesh cells are actually drawn (by default all mesh cells
-over 'box(a,b)' are drawn). Surface lighting is illustrated in the
-example files 'parametricsurface.asy' and 'sinc.asy'. Lighting can be
-disabled by setting 'light=nolight', as in this example of a Gaussian
-surface:
+over 'box(a,b)' are drawn).
+
+ One can also construct the surface generated by rotating a path 'g'
+between 'angle1' to 'angle2' (in degrees) sampled 'n' times about the
+line 'c--c+axis':
+surface surface(triple c, path3 g, triple axis, int n=nslice,
+ real angle1=0, real angle2=360, pen color(int i, real j)=null);
+The optional argument 'color(int i, real j)' can be used to override the
+surface color at the point obtained by rotating vertex 'i' by angle 'j'
+(in degrees).
+
+Surface lighting is illustrated in the example files
+'parametricsurface.asy' and 'sinc.asy'. Lighting can be disabled by
+setting 'light=nolight', as in this example of a Gaussian surface:
import graph3;
size(200,0);
@@ -8237,11 +8249,9 @@ import slopefield;
size(200);
real func(real x) {return 2x;}
-add(slopefield(func,(-3,-3),(3,3),20,Arrow));
+add(slopefield(func,(-3,-3),(3,3),20));
draw(curve((0,0),func,(-3,-3),(3,3)),red);
-
-
[./slopefield1]

@@ -8264,55 +8274,69 @@ Type 'asy -h' to see the full list of command-line options supported by
'Asymptote':
Usage: ../asy [options] [file ...]
-Options (negate by replacing - with -no):
+Options (negate boolean options by replacing - with -no):
+-GPUblockSize n Compute shader block size [8]
+-GPUcompress Compress GPU transparent fragment counts [false]
-GPUindexing Compute indexing partial sums on GPU [true]
-GPUinterlock Use fragment shader interlock [true]
--GPUlocalSize n Compute shader local size [16]
+-GPUlocalSize n Compute shader local size [256]
-V,-View View output; command-line only
-absolute Use absolute WebGL dimensions [false]
-a,-align C|B|T|Z Center, Bottom, Top, or Zero page alignment [C]
-aligndir pair Directional page alignment (overrides align) [(0,0)]
+-animating [false]
-antialias n Antialiasing width for rasterized output [2]
-auto3D Automatically activate 3D scene [true]
-autobillboard 3D labels always face viewer by default [true]
--autoimport string Module to automatically import
+-autoimport str Module to automatically import
-autoplain Enable automatic importing of plain [true]
-autoplay Autoplay 3D animations [false]
-autorotate Enable automatic PDF page rotation [false]
-axes3 Show 3D axes in PDF output [true]
-batchMask Mask fpu exceptions in batch mode [false]
-batchView View output in batch mode [false]
--bw Convert all colors to black and white [false]
+-bw Convert all colors to black and white false
-cd directory Set current directory; command-line only
--cmyk Convert rgb colors to cmyk [false]
--c,-command string Command to autoexecute
--compact Conserve memory at the expense of speed [false]
+-cmyk Convert rgb colors to cmyk false
+-c,-command str Command to autoexecute
+-compact Conserve memory at the expense of speed false
-compress Compress images in PDF output [true]
+-convertOptions str []
-d,-debug Enable debugging messages [false]
-devicepixelratio n Ratio of physical to logical pixels [1]
-digits n Default output file precision [7]
-divisor n Garbage collect using purge(divisor=n) [2]
--dvisvgmMultipleFiles dvisvgm supports multiple files [false]
+-dvipsOptions str []
+-dvisvgmMultipleFiles dvisvgm supports multiple files [true]
+-dvisvgmOptions str []
-embed Embed rendered preview image [true]
+-e,-environment Show summary of environment settings; command-line only
-exitonEOF Exit interactive mode on EOF [true]
-fitscreen Fit rendered image to screen [true]
-framedelay ms Additional frame delay [0]
-framerate frames/s Animation speed [30]
--globalread Allow read from other directory [true]
--globalwrite Allow write to other directory [false]
--gray Convert all colors to grayscale [false]
+-glOptions str []
+-globalread Allow read from other directory true
+-globalwrite Allow write to other directory false
+-gray Convert all colors to grayscale false
+-gsOptions str []
-h,-help Show summary of options; command-line only
-historylines n Retain n lines of history [1000]
+-htmlviewerOptions str
+ []
+-hyperrefOptions str [setpagesize=false,unicode,pdfborder=0 0 0]
-ibl Enable environment map image-based lighting [false]
-iconify Iconify rendering window [false]
--image string Environment image name [snowyField]
--imageDir string Environment image library directory [ibl]
+-image str Environment image name [snowyField]
+-imageDir str Environment image library directory [ibl]
-inlineimage Generate inline embedded image [false]
-inlinetex Generate inline TeX code [false]
+-inpipe n Input pipe [-1]
-interactiveMask Mask fpu exceptions in interactive mode [true]
-interactiveView View output in interactive mode [true]
-interactiveWrite Write expressions entered at the prompt to stdout [true]
+-interrupt [false]
-k,-keep Keep intermediate files [false]
-keepaux Keep intermediate LaTeX .aux files [false]
-level n Postscript level [3]
@@ -8331,20 +8355,26 @@ Options (negate by replacing - with -no):
-O,-offset pair PostScript offset [(0,0)]
-f,-outformat format Convert each output file to specified format
-o,-outname name Alternative output directory/filename
+-outpipe n Output pipe [-1]
+-paperheight bp Default page height [0]
+-paperwidth bp Default page width [0]
-p,-parseonly Parse file [false]
-pdfreload Automatically reload document in pdfviewer [false]
+-pdfreloadOptions str []
-pdfreloaddelay usec Delay before attempting initial pdf reload [750000]
+-pdfviewerOptions str []
-position pair Initial 3D rendering screen position [(0,0)]
-prc Embed 3D PRC graphics in PDF output [false]
-prerender resolution Prerender V3D objects (0 implies vector output) [0]
--prompt string Prompt [> ]
--prompt2 string Continuation prompt for multiline input [..]
+-prompt str Prompt [> ]
+-prompt2 str Continuation prompt for multiline input [..]
+-psviewerOptions str []
-q,-quiet Suppress welcome text and noninteractive stdout [false]
-render n Render 3D graphics using n pixels per bp (-1=auto) [-1]
-resizestep step Resize step [1.2]
-reverse reverse 3D animations [false]
--rgb Convert cmyk colors to rgb [false]
--safe Disable system call [true]
+-rgb Convert cmyk colors to rgb false
+-safe Disable system call true
-scroll n Scroll standard output n lines at a time [0]
-shiftHoldDistance n WebGL touch screen distance limit for shift mode [20]
-shiftWaitTime ms WebGL touch screen shift mode delay [200]
@@ -8359,13 +8389,13 @@ Options (negate by replacing - with -no):
-s,-translate Show translated virtual machine code [false]
-twice Run LaTeX twice (to resolve references) [false]
-twosided Use two-sided 3D lighting model for rendering [true]
--u,-user string General purpose user string
--v,-verbose Increase verbosity level (can specify multiple times) [0]
+-u,-user str General purpose user string
+-v,-verbose Increase verbosity level (can specify multiple times) 0
-version Show version; command-line only
-vibrateTime ms WebGL shift mode vibrate duration [25]
-viewportmargin pair Horizontal and vertical 3D viewport margin [(0.5,0.5)]
-wait Wait for child processes to finish before exiting [false]
--warn string Enable warning; command-line only
+-warn str Enable warning; command-line only
-webgl2 Use webgl2 if available [false]
-where Show where listed variables are declared [false]
-wsl Run asy under the Windows Subsystem for Linux. [false]
@@ -8431,9 +8461,10 @@ using the '-f' option (or 'outformat' setting).
later) from <https://dvisvgm.de>. You might need to adjust the
configuration variable 'libgs' to point to the location of your
'Ghostscript' library 'libgs.so' (or to an empty string, depending on
-how 'dvisvgm' was configured). The 2.10 version (or later) of 'dvisvgm'
-can display SVG output (used by the 'xasy' editor) for embedded EPS,
-PDF, PNG, and JPEG images included with the 'graphic()' function.
+how 'dvisvgm' was configured). The 2.13.1 version (or later) of
+'dvisvgm' can display SVG output (used by the 'xasy' editor) for
+embedded EPS, PDF, PNG, and JPEG images included with the 'graphic()'
+function.
'Asymptote' can also produce any output format supported by the
'ImageMagick' 'convert' program (version 6.3.5 or later recommended; an
@@ -8619,10 +8650,8 @@ available as
<https://sourceforge.net/projects/tumagcc/files/rsvg-convert-2.40.20.7z>
Deconstruction of a picture into its components is fastest when using
-the 'LaTeX' TeX engine. One can speed up deconstruction for other TeX
-engines using the 2.13.1 version or later of 'dvisvgm' and setting
-'dvisvgmMultipleFiles=true;' in the 'Asymptote' configuration file
-(*note configuration file::).
+the 'LaTeX' TeX engine. The default setting 'dvisvgmMultipleFiles=true'
+speeds up deconstruction under PDF TeX engines.

File: asymptote.info, Node: GUI usage, Prev: GUI installation, Up: GUI
@@ -8932,9 +8961,9 @@ Index
* ---: Bezier curves. (line 84)
* -=: Self & prefix operators.
(line 6)
-* -c: Options. (line 206)
-* -l: Options. (line 225)
-* -u: Options. (line 216)
+* -c: Options. (line 227)
+* -l: Options. (line 246)
+* -u: Options. (line 237)
* -V: Configuring. (line 6)
* -V <1>: Drawing in batch mode.
(line 16)
@@ -8975,7 +9004,7 @@ Index
(line 53)
* ||: Arithmetic & logical.
(line 51)
-* a4: Configuring. (line 68)
+* a4: Configuring. (line 63)
* abort: Data types. (line 364)
* abs: Data types. (line 65)
* abs <1>: Data types. (line 144)
@@ -8983,7 +9012,7 @@ Index
(line 35)
* abs2: Data types. (line 65)
* abs2 <1>: Data types. (line 144)
-* absolute: Configuring. (line 43)
+* absolute: Configuring. (line 38)
* absolute <1>: three. (line 241)
* accel: Paths and guides. (line 126)
* accel <1>: Paths and guides. (line 132)
@@ -9013,21 +9042,21 @@ Index
* alias: Structures. (line 62)
* alias <1>: Arrays. (line 183)
* Align: label. (line 12)
-* aligndir: Options. (line 198)
-* all: Arrays. (line 342)
+* aligndir: Options. (line 219)
+* all: Arrays. (line 350)
* Allow: Pens. (line 363)
* and: Bezier curves. (line 56)
* AND: Arithmetic & logical.
(line 68)
* angle: Data types. (line 73)
-* animate: Configuring. (line 20)
+* animate: Configuring. (line 15)
* animate <1>: Files. (line 159)
* animate <2>: animation. (line 12)
* animation: animation. (line 6)
* animation <1>: animation. (line 6)
* annotate: annotate. (line 6)
* antialias: three. (line 261)
-* antialias <1>: Options. (line 168)
+* antialias <1>: Options. (line 188)
* append: Files. (line 38)
* append <1>: Arrays. (line 39)
* arc: Paths and guides. (line 24)
@@ -9076,12 +9105,12 @@ Index
* asy <1>: Import. (line 106)
* asy-mode: Editing modes. (line 6)
* asy.vim: Editing modes. (line 32)
-* asygl: Configuring. (line 74)
+* asygl: Configuring. (line 69)
* asyinclude: LaTeX usage. (line 45)
* Asymptote Web Application: Description. (line 6)
* asymptote.sty: LaTeX usage. (line 6)
* asymptote.xml: Editing modes. (line 48)
-* ASYMPTOTE_CONFIG: Options. (line 139)
+* ASYMPTOTE_CONFIG: Options. (line 159)
* atan: Mathematical functions.
(line 6)
* aTan: Mathematical functions.
@@ -9096,12 +9125,12 @@ Index
* attach <1>: LaTeX usage. (line 50)
* attach <2>: graph. (line 406)
* autoadjust: three. (line 418)
-* autoimport: Options. (line 135)
+* autoimport: Options. (line 155)
* automatic scaling: graph. (line 710)
* automatic scaling <1>: graph. (line 710)
* axialshade: fill. (line 43)
* axis: graph. (line 924)
-* axis <1>: graph. (line 1007)
+* axis <1>: graph. (line 1006)
* axis <2>: graph3. (line 66)
* axis <3>: graph3. (line 82)
* azimuth: Data types. (line 154)
@@ -9231,20 +9260,21 @@ Index
* CLZ: Arithmetic & logical.
(line 68)
* cm: Figure size. (line 18)
-* cmd: Configuring. (line 35)
+* cmd: Configuring. (line 30)
* cmyk: Pens. (line 38)
* colatitude: Data types. (line 159)
* color: Pens. (line 23)
+* color <1>: graph3. (line 133)
* coloredNodes: tube. (line 25)
* coloredpath: tube. (line 18)
* coloredSegments: tube. (line 25)
* colorless: Pens. (line 57)
* colors: Pens. (line 54)
* comma: Files. (line 65)
-* comma-separated-value mode: Arrays. (line 374)
+* comma-separated-value mode: Arrays. (line 382)
* command-line interface: Command-Line Interface.
(line 6)
-* command-line options: Configuring. (line 91)
+* command-line options: Configuring. (line 86)
* command-line options <1>: Options. (line 6)
* comment character: Files. (line 16)
* compass directions: Labels. (line 18)
@@ -9255,14 +9285,14 @@ Index
* conditional: Programming. (line 26)
* conditional <1>: Arithmetic & logical.
(line 61)
-* config: Configuring. (line 74)
-* config <1>: Options. (line 139)
-* configuration file: Configuring. (line 20)
-* configuration file <1>: Options. (line 139)
+* config: Configuring. (line 69)
+* config <1>: Options. (line 159)
+* configuration file: Configuring. (line 15)
+* configuration file <1>: Options. (line 159)
* configuring: Configuring. (line 6)
* conj: Data types. (line 62)
* constructors: Structures. (line 91)
-* context: Options. (line 168)
+* context: Options. (line 188)
* continue: Programming. (line 48)
* continue <1>: Debugger. (line 31)
* contour: contour. (line 6)
@@ -9270,11 +9300,11 @@ Index
* controls: Bezier curves. (line 45)
* controls <1>: three. (line 6)
* controlSpecifier: Paths and guides. (line 396)
-* convert: Configuring. (line 74)
+* convert: Configuring. (line 69)
* convert <1>: Files. (line 159)
* convert <2>: animation. (line 6)
-* convert <3>: Options. (line 168)
-* convertOptions: Options. (line 154)
+* convert <3>: Options. (line 188)
+* convertOptions: Options. (line 174)
* Coons shading: fill. (line 78)
* copy: Arrays. (line 176)
* cos: Mathematical functions.
@@ -9291,10 +9321,10 @@ Index
* cross <2>: graph. (line 480)
* crossframe: markers. (line 22)
* crosshatch: Pens. (line 302)
-* csv: Arrays. (line 374)
+* csv: Arrays. (line 382)
* CTZ: Arithmetic & logical.
(line 68)
-* cubicroots: Arrays. (line 331)
+* cubicroots: Arrays. (line 339)
* curl: Bezier curves. (line 66)
* curl <1>: three. (line 6)
* curlSpecifier: Paths and guides. (line 408)
@@ -9345,11 +9375,11 @@ Index
* delete <1>: Arrays. (line 39)
* description: Description. (line 6)
* devicepixelratio: three. (line 184)
-* diagonal: Arrays. (line 316)
+* diagonal: Arrays. (line 324)
* diamond: flowchart. (line 54)
* diffuse: three. (line 76)
* diffusepen: three. (line 66)
-* dimension: Arrays. (line 379)
+* dimension: Arrays. (line 387)
* dir: Search paths. (line 9)
* dir <1>: Data types. (line 90)
* dir <2>: Data types. (line 181)
@@ -9359,15 +9389,15 @@ Index
* directory: Files. (line 26)
* dirSpecifier: Paths and guides. (line 390)
* dirtime: Paths and guides. (line 166)
-* display: Configuring. (line 20)
+* display: Configuring. (line 15)
* do: Programming. (line 48)
* DOSendl: Files. (line 65)
* DOSnewl: Files. (line 65)
* dot: draw. (line 83)
* dot <1>: Data types. (line 103)
* dot <2>: Data types. (line 194)
-* dot <3>: Arrays. (line 271)
-* dot <4>: Arrays. (line 274)
+* dot <3>: Arrays. (line 279)
+* dot <4>: Arrays. (line 282)
* DotMargin: draw. (line 42)
* DotMargin3: three. (line 638)
* DotMargins: draw. (line 42)
@@ -9385,11 +9415,12 @@ Index
* drawing commands: Drawing commands. (line 6)
* drawline: math. (line 9)
* drawtree: drawtree. (line 6)
-* dvips: Configuring. (line 74)
-* dvipsOptions: Options. (line 154)
-* dvisvgm: Configuring. (line 74)
-* dvisvgm <1>: Options. (line 173)
-* dvisvgmOptions: Options. (line 154)
+* dvips: Configuring. (line 69)
+* dvipsOptions: Options. (line 174)
+* dvisvgm: Configuring. (line 69)
+* dvisvgm <1>: Options. (line 193)
+* dvisvgmMultipleFiles: GUI installation. (line 20)
+* dvisvgmOptions: Options. (line 174)
* E: Labels. (line 18)
* E <1>: Mathematical functions.
(line 48)
@@ -9425,13 +9456,13 @@ Index
* EndPoint: label. (line 55)
* envelope: Frames and pictures.
(line 25)
-* environment variables: Configuring. (line 95)
+* environment variables: Configuring. (line 90)
* eof: Files. (line 97)
-* eof <1>: Arrays. (line 356)
+* eof <1>: Arrays. (line 364)
* eol: Files. (line 97)
-* eol <1>: Arrays. (line 356)
+* eol <1>: Arrays. (line 364)
* EPS: label. (line 78)
-* EPS <1>: Options. (line 168)
+* EPS <1>: Options. (line 188)
* erase: Drawing in interactive mode.
(line 11)
* erase <1>: Data types. (line 257)
@@ -9522,7 +9553,7 @@ Index
* fontsize: Pens. (line 192)
* for: Programming. (line 26)
* format: Data types. (line 290)
-* format <1>: Options. (line 168)
+* format <1>: Options. (line 188)
* forum: Help. (line 6)
* frame: Frames and pictures.
(line 7)
@@ -9542,6 +9573,7 @@ Index
(line 39)
* geometry: geometry. (line 6)
* getc: Files. (line 32)
+* getint: Files. (line 122)
* getpair: Files. (line 122)
* getreal: Files. (line 122)
* getstring: Files. (line 122)
@@ -9550,7 +9582,7 @@ Index
* globalwrite: Files. (line 40)
* globalwrite <1>: Files. (line 154)
* glOptions: three. (line 261)
-* glOptions <1>: Options. (line 154)
+* glOptions <1>: Options. (line 174)
* GNU Scientific Library: Mathematical functions.
(line 48)
* gouraudshade: fill. (line 63)
@@ -9559,7 +9591,7 @@ Index
* graph: graph. (line 6)
* graph3: graph3. (line 6)
* graphic: label. (line 78)
-* graphic <1>: Options. (line 173)
+* graphic <1>: Options. (line 193)
* graphical user interface: GUI. (line 6)
* graphwithderiv: graph. (line 670)
* gray: Pens. (line 25)
@@ -9568,12 +9600,12 @@ Index
* grid: Pens. (line 285)
* grid <1>: graph. (line 766)
* grid3: grid3. (line 6)
-* gs: Configuring. (line 20)
+* gs: Configuring. (line 15)
* GSL: Compiling from UNIX source.
(line 62)
* gsl: Mathematical functions.
(line 48)
-* gsOptions: Options. (line 154)
+* gsOptions: Options. (line 174)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
* GUI usage: GUI usage. (line 6)
@@ -9601,10 +9633,10 @@ Index
* HookHead3: three. (line 622)
* Horizontal: flowchart. (line 77)
* HTML5: three. (line 233)
-* htmlviewer: Configuring. (line 20)
-* htmlviewer <1>: Configuring. (line 43)
-* htmlviewerOptions: Options. (line 154)
-* hyperrefOptions: Options. (line 154)
+* htmlviewer: Configuring. (line 15)
+* htmlviewer <1>: Configuring. (line 38)
+* htmlviewerOptions: Options. (line 174)
+* hyperrefOptions: Options. (line 174)
* hypot: Mathematical functions.
(line 6)
* I: Mathematical functions.
@@ -9614,7 +9646,7 @@ Index
* identity: Transforms. (line 24)
* identity <1>: Mathematical functions.
(line 6)
-* identity <2>: Arrays. (line 313)
+* identity <2>: Arrays. (line 321)
* identity4: three. (line 494)
* if: Programming. (line 26)
* IgnoreAspect: Frames and pictures.
@@ -9622,9 +9654,9 @@ Index
* image: palette. (line 33)
* image <1>: palette. (line 61)
* image-based lighting: three. (line 104)
-* ImageMagick: Configuring. (line 74)
+* ImageMagick: Configuring. (line 69)
* ImageMagick <1>: animation. (line 6)
-* ImageMagick <2>: Options. (line 168)
+* ImageMagick <2>: Options. (line 188)
* images: palette. (line 6)
* implicit casts: Casts. (line 6)
* implicit linear solver: MetaPost. (line 10)
@@ -9688,7 +9720,7 @@ Index
* intMax: Data types. (line 30)
* intMin: Data types. (line 30)
* inverse: Transforms. (line 16)
-* inverse <1>: Arrays. (line 319)
+* inverse <1>: Arrays. (line 327)
* invert: three. (line 484)
* invisible: Pens. (line 43)
* isnan: Data types. (line 35)
@@ -9733,7 +9765,7 @@ Index
(line 6)
* lastcut: Paths and guides. (line 266)
* lasy-mode: Editing modes. (line 6)
-* latex: Options. (line 168)
+* latex: Options. (line 188)
* LaTeX NFSS fonts: Pens. (line 206)
* LaTeX usage: LaTeX usage. (line 6)
* latexmk: LaTeX usage. (line 30)
@@ -9741,7 +9773,7 @@ Index
* latticeshade: fill. (line 32)
* layer: Drawing commands. (line 16)
* leastsquares: stats. (line 6)
-* leastsquares <1>: graph. (line 948)
+* leastsquares <1>: graph. (line 947)
* Left: graph. (line 269)
* LeftRight: graph. (line 275)
* LeftSide: label. (line 60)
@@ -9760,20 +9792,20 @@ Index
* length <4>: Paths and guides. (line 373)
* length <5>: Arrays. (line 39)
* length <6>: three. (line 556)
-* letter: Configuring. (line 68)
+* letter: Configuring. (line 63)
* lexorder: math. (line 63)
* lexorder <1>: math. (line 66)
* libcurl: Import. (line 94)
-* libgs: Options. (line 173)
+* libgs: Options. (line 193)
* libm routines: Mathematical functions.
(line 6)
* libsigsegv: Functions. (line 100)
* libsigsegv <1>: Help. (line 27)
* light: three. (line 76)
* limits: graph. (line 639)
-* line: Arrays. (line 356)
-* line <1>: Arrays. (line 360)
-* line mode: Arrays. (line 356)
+* line: Arrays. (line 364)
+* line <1>: Arrays. (line 368)
+* line mode: Arrays. (line 364)
* Linear: graph. (line 710)
* linecap: Pens. (line 139)
* linejoin: Pens. (line 149)
@@ -9799,8 +9831,8 @@ Index
* loop: Programming. (line 26)
* LSP: Language server protocol.
(line 6)
-* lualatex: Options. (line 168)
-* luatex: Options. (line 168)
+* lualatex: Options. (line 188)
+* luatex: Options. (line 188)
* MacOS X binary distributions: MacOS X binary distributions.
(line 6)
* MacOS X configuration: Compiling from UNIX source.
@@ -9906,7 +9938,7 @@ Index
* None <1>: draw. (line 26)
* none: Files. (line 65)
* normal: three. (line 542)
-* nosafe: Options. (line 193)
+* nosafe: Options. (line 214)
* NOT: Arithmetic & logical.
(line 68)
* notaknot: graph. (line 36)
@@ -9927,7 +9959,7 @@ Index
* obliqueZ: three. (line 378)
* ode: ode. (line 6)
* offset: Pens. (line 123)
-* offset <1>: Options. (line 198)
+* offset <1>: Options. (line 219)
* OmitTick: graph. (line 223)
* OmitTickInterval: graph. (line 223)
* OmitTickIntervals: graph. (line 223)
@@ -9959,7 +9991,7 @@ Index
* outprefix: Frames and pictures.
(line 91)
* output: Files. (line 38)
-* output <1>: Options. (line 168)
+* output <1>: Options. (line 188)
* OutTicks: graph3. (line 35)
* overloading functions: Functions. (line 55)
* overwrite: Pens. (line 360)
@@ -9972,9 +10004,9 @@ Index
* pair: Figure size. (line 6)
* pair <1>: Data types. (line 46)
* pairs: Arrays. (line 245)
-* paperheight: Configuring. (line 68)
-* papertype: Configuring. (line 68)
-* paperwidth: Configuring. (line 68)
+* paperheight: Configuring. (line 63)
+* papertype: Configuring. (line 63)
+* paperwidth: Configuring. (line 63)
* parallelogram: flowchart. (line 47)
* parametric surface: graph3. (line 99)
* parametrized curve: graph. (line 639)
@@ -9992,11 +10024,11 @@ Index
* patterns: Pens. (line 271)
* patterns <1>: patterns. (line 6)
* PBR: three. (line 74)
-* PDF: Options. (line 168)
-* pdflatex: Options. (line 168)
-* pdfreloadOptions: Options. (line 154)
-* pdfviewer: Configuring. (line 20)
-* pdfviewerOptions: Options. (line 154)
+* PDF: Options. (line 188)
+* pdflatex: Options. (line 188)
+* pdfreloadOptions: Options. (line 174)
+* pdfviewer: Configuring. (line 15)
+* pdfviewerOptions: Options. (line 174)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
* PenMargin2: three. (line 638)
@@ -10052,14 +10084,14 @@ Index
* programming: Programming. (line 6)
* pstoedit: PostScript to Asymptote.
(line 6)
-* psviewer: Configuring. (line 20)
-* psviewerOptions: Options. (line 154)
+* psviewer: Configuring. (line 15)
+* psviewerOptions: Options. (line 174)
* pt: Figure size. (line 18)
* public: Structures. (line 6)
* push: Arrays. (line 39)
* Python usage: Interactive mode. (line 72)
-* quadraticroots: Arrays. (line 322)
-* quadraticroots <1>: Arrays. (line 327)
+* quadraticroots: Arrays. (line 330)
+* quadraticroots <1>: Arrays. (line 335)
* quarticroots: math. (line 22)
* quick reference: Description. (line 92)
* quit: Drawing in interactive mode.
@@ -10083,9 +10115,9 @@ Index
(line 39)
* randMax: Mathematical functions.
(line 39)
-* read: Arrays. (line 396)
+* read: Arrays. (line 404)
* reading: Files. (line 12)
-* reading string arrays: Arrays. (line 366)
+* reading string arrays: Arrays. (line 374)
* readline: Files. (line 139)
* real: Data types. (line 35)
* realDigits: Data types. (line 35)
@@ -10093,6 +10125,7 @@ Index
* realMax: Data types. (line 35)
* realMin: Data types. (line 35)
* realmult: Data types. (line 100)
+* realschur: Arrays. (line 271)
* rectangle: flowchart. (line 34)
* recursion: Functions. (line 100)
* reference: Description. (line 92)
@@ -10106,7 +10139,7 @@ Index
* rename: Files. (line 156)
* render: three. (line 46)
* render <1>: three. (line 184)
-* render <2>: Options. (line 168)
+* render <2>: Options. (line 188)
* replace: Data types. (line 270)
* resetdefaultpen: Pens. (line 387)
* rest arguments: Rest arguments. (line 6)
@@ -10145,7 +10178,7 @@ Index
* runtime imports: Import. (line 102)
* Russian: Pens. (line 238)
* S: Labels. (line 18)
-* safe: Options. (line 193)
+* safe: Options. (line 214)
* save: Frames and pictures.
(line 288)
* saveline: Files. (line 139)
@@ -10158,6 +10191,8 @@ Index
* scale <4>: three. (line 509)
* scale3: three. (line 507)
* scaled graph: graph. (line 690)
+* schur: Arrays. (line 271)
+* schur <1>: Arrays. (line 275)
* scientific graph: graph. (line 387)
* scroll: Files. (line 113)
* search: Arrays. (line 166)
@@ -10176,8 +10211,8 @@ Index
* self operators: Self & prefix operators.
(line 6)
* sequence: Arrays. (line 118)
-* settings: Configuring. (line 20)
-* settings <1>: Options. (line 139)
+* settings: Configuring. (line 15)
+* settings <1>: Options. (line 159)
* sgn: Mathematical functions.
(line 26)
* shading: fill. (line 32)
@@ -10221,7 +10256,7 @@ Index
* size <4>: Frames and pictures.
(line 74)
* size <5>: three. (line 556)
-* size <6>: Options. (line 168)
+* size <6>: Options. (line 188)
* size3: three. (line 320)
* Slant: label. (line 42)
* slant: Transforms. (line 38)
@@ -10238,8 +10273,8 @@ Index
(line 48)
* solid: Pens. (line 102)
* solids: solids. (line 6)
-* solve: Arrays. (line 291)
-* solve <1>: Arrays. (line 307)
+* solve: Arrays. (line 299)
+* solve <1>: Arrays. (line 315)
* sort: Arrays. (line 186)
* sort <1>: Arrays. (line 190)
* sort <2>: Arrays. (line 205)
@@ -10291,9 +10326,10 @@ Index
* surface <2>: three. (line 128)
* surface <3>: three. (line 142)
* surface <4>: graph3. (line 99)
-* SVG: Options. (line 173)
+* surface <5>: graph3. (line 128)
+* SVG: Options. (line 193)
* system: Data types. (line 354)
-* system <1>: Options. (line 193)
+* system <1>: Options. (line 214)
* syzygy: syzygy. (line 6)
* tab: Files. (line 65)
* tab completion: Drawing in interactive mode.
@@ -10314,13 +10350,13 @@ Index
* tessellation: three. (line 154)
* tex: Frames and pictures.
(line 305)
-* tex <1>: Options. (line 168)
+* tex <1>: Options. (line 188)
* TeX fonts: Pens. (line 213)
* TeX string: Data types. (line 208)
-* texcommand: Configuring. (line 74)
+* texcommand: Configuring. (line 69)
* TeXHead: draw. (line 26)
* TeXHead3: three. (line 622)
-* texpath: Configuring. (line 74)
+* texpath: Configuring. (line 69)
* texpath <1>: label. (line 113)
* texpreamble: Frames and pictures.
(line 314)
@@ -10365,7 +10401,7 @@ Index
* triangle: geometry. (line 6)
* triangles: three. (line 154)
* triangulate: contour. (line 192)
-* tridiagonal: Arrays. (line 278)
+* tridiagonal: Arrays. (line 286)
* trigonometric integrals: Mathematical functions.
(line 48)
* triple: Data types. (line 137)
@@ -10424,10 +10460,10 @@ Index
(line 55)
* variable initializers: Variable initializers.
(line 6)
-* vectorfield: graph. (line 1023)
-* vectorfield <1>: graph. (line 1062)
-* vectorfield3: graph3. (line 157)
-* vectorization: Arrays. (line 335)
+* vectorfield: graph. (line 1022)
+* vectorfield <1>: graph. (line 1061)
+* vectorfield3: graph3. (line 167)
+* vectorization: Arrays. (line 343)
* verbatim: Frames and pictures.
(line 297)
* vertex-dependent colors: three. (line 119)
@@ -10448,17 +10484,17 @@ Index
* wheel mouse: GUI. (line 6)
* while: Programming. (line 48)
* White: three. (line 76)
-* white-space string delimiter mode: Arrays. (line 366)
+* white-space string delimiter mode: Arrays. (line 374)
* width: LaTeX usage. (line 50)
* windingnumber: Paths and guides. (line 283)
-* word: Arrays. (line 366)
+* word: Arrays. (line 374)
* write: Files. (line 57)
-* write <1>: Arrays. (line 405)
+* write <1>: Arrays. (line 413)
* X: three. (line 335)
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
* xdr: Files. (line 80)
-* xelatex: Options. (line 168)
+* xelatex: Options. (line 188)
* XEquals: graph. (line 265)
* xequals: graph. (line 278)
* xlimits: graph. (line 639)
@@ -10527,146 +10563,146 @@ Node: UNIX binary distributions12610
Node: MacOS X binary distributions13733
Node: Microsoft Windows14321
Node: Configuring15529
-Node: Search paths20144
-Node: Compiling from UNIX source21152
-Node: Editing modes24303
-Node: Git26725
-Node: Uninstall27232
-Node: Tutorial27578
-Node: Drawing in batch mode28425
-Node: Drawing in interactive mode29301
-Node: Figure size30333
-Node: Labels31928
-Node: Paths32756
-Ref: unitcircle33372
-Node: Drawing commands35313
-Node: draw37121
-Ref: arrows38303
-Node: fill43818
-Ref: gradient shading44864
-Node: clip49478
-Node: label50227
-Ref: Label50827
-Node: Bezier curves56684
-Node: Programming60584
-Ref: array iteration62337
-Node: Data types62504
-Ref: format73272
-Node: Paths and guides77718
-Ref: circle77972
-Ref: extension87672
-Node: Pens94482
-Ref: fillrule102173
-Ref: basealign103077
-Ref: transparency106759
-Ref: makepen110353
-Ref: overwrite111237
-Node: Transforms112451
-Node: Frames and pictures114390
-Ref: envelope115548
-Ref: size116641
-Ref: unitsize117628
-Ref: shipout118701
-Ref: filltype121052
-Ref: add124465
-Ref: add about125407
-Ref: tex128437
-Node: Files129332
-Ref: cd130389
-Ref: scroll135291
-Node: Variable initializers138209
-Node: Structures140926
-Node: Operators148499
-Node: Arithmetic & logical148813
-Node: Self & prefix operators151183
-Node: User-defined operators151977
-Node: Implicit scaling152890
-Node: Functions153453
-Ref: stack overflow156570
-Node: Default arguments156852
-Node: Named arguments157608
-Node: Rest arguments160178
-Node: Mathematical functions163299
-Node: Arrays167956
-Ref: sort175395
-Ref: tridiagonal178306
-Ref: solve179537
-Node: Slices183677
-Node: Casts187585
-Node: Import189855
-Node: Static195425
-Node: LaTeX usage198311
-Node: Base modules204826
-Node: plain207303
-Node: simplex207977
-Node: math208250
-Node: interpolate210917
-Node: geometry211196
-Node: trembling211876
-Node: stats212145
-Node: patterns212404
-Node: markers212639
-Node: map214497
-Node: tree214921
-Node: binarytree215101
-Node: drawtree215768
-Node: syzygy215969
-Node: feynman216243
-Node: roundedpath216517
-Node: animation216799
-Ref: animate217220
-Node: embed218332
-Node: slide219286
-Node: MetaPost219617
-Node: babel220333
-Node: labelpath220565
-Node: labelpath3221385
-Node: annotate221696
-Node: CAD222166
-Node: graph222476
-Ref: ticks229635
-Ref: pathmarkers243357
-Ref: marker243827
-Ref: markuniform244181
-Ref: errorbars246040
-Ref: automatic scaling251169
-Node: palette262879
-Ref: images262997
-Ref: image267293
-Ref: logimage267814
-Ref: penimage268920
-Ref: penfunctionimage269183
-Node: three269955
-Ref: PostScript3D300255
-Node: obj301993
-Node: graph3302242
-Ref: GaussianSurface307524
-Node: grid3308674
-Node: solids309502
-Node: tube310494
-Node: flowchart312766
-Node: contour317409
-Node: contour3323917
-Node: smoothcontour3324229
-Node: slopefield325948
-Node: ode327437
-Node: Options327694
-Ref: configuration file335303
-Ref: settings335303
-Ref: texengines336567
-Ref: convert336567
-Node: Interactive mode340010
-Ref: history342159
-Node: GUI343462
-Node: GUI installation344012
-Node: GUI usage345054
-Node: Command-Line Interface346117
-Node: Language server protocol347559
-Node: PostScript to Asymptote348984
-Node: Help349762
-Node: Debugger351436
-Node: Credits353192
-Node: Index354417
+Node: Search paths19748
+Node: Compiling from UNIX source20756
+Node: Editing modes23907
+Node: Git26345
+Node: Uninstall26852
+Node: Tutorial27198
+Node: Drawing in batch mode28045
+Node: Drawing in interactive mode28921
+Node: Figure size29953
+Node: Labels31548
+Node: Paths32376
+Ref: unitcircle32992
+Node: Drawing commands34933
+Node: draw36741
+Ref: arrows37923
+Node: fill43438
+Ref: gradient shading44484
+Node: clip49098
+Node: label49847
+Ref: Label50447
+Node: Bezier curves56304
+Node: Programming60204
+Ref: array iteration61957
+Node: Data types62124
+Ref: format72892
+Node: Paths and guides77338
+Ref: circle77592
+Ref: extension87292
+Node: Pens94102
+Ref: fillrule101793
+Ref: basealign102697
+Ref: transparency106379
+Ref: makepen109973
+Ref: overwrite110857
+Node: Transforms112071
+Node: Frames and pictures114010
+Ref: envelope115168
+Ref: size116261
+Ref: unitsize117248
+Ref: shipout118321
+Ref: filltype120672
+Ref: add124085
+Ref: add about125027
+Ref: tex128057
+Node: Files128952
+Ref: cd130009
+Ref: scroll134911
+Node: Variable initializers137829
+Node: Structures140546
+Node: Operators148123
+Node: Arithmetic & logical148437
+Node: Self & prefix operators150807
+Node: User-defined operators151601
+Node: Implicit scaling152514
+Node: Functions153077
+Ref: stack overflow156194
+Node: Default arguments156476
+Node: Named arguments157232
+Node: Rest arguments159802
+Node: Mathematical functions162923
+Node: Arrays167580
+Ref: sort175019
+Ref: tridiagonal178257
+Ref: solve179488
+Node: Slices183628
+Node: Casts187536
+Node: Import189806
+Node: Static195376
+Node: LaTeX usage198262
+Node: Base modules204778
+Node: plain207255
+Node: simplex207929
+Node: math208202
+Node: interpolate210869
+Node: geometry211148
+Node: trembling211828
+Node: stats212097
+Node: patterns212356
+Node: markers212591
+Node: map214449
+Node: tree214873
+Node: binarytree215053
+Node: drawtree215720
+Node: syzygy215921
+Node: feynman216195
+Node: roundedpath216469
+Node: animation216751
+Ref: animate217172
+Node: embed218284
+Node: slide219238
+Node: MetaPost219569
+Node: babel220285
+Node: labelpath220517
+Node: labelpath3221337
+Node: annotate221648
+Node: CAD222118
+Node: graph222428
+Ref: ticks229587
+Ref: pathmarkers243309
+Ref: marker243779
+Ref: markuniform244133
+Ref: errorbars245992
+Ref: automatic scaling251121
+Node: palette262817
+Ref: images262935
+Ref: image267231
+Ref: logimage267752
+Ref: penimage268858
+Ref: penfunctionimage269121
+Node: three269893
+Ref: PostScript3D300168
+Node: obj301906
+Node: graph3302155
+Ref: GaussianSurface307898
+Node: grid3309048
+Node: solids309876
+Node: tube310868
+Node: flowchart313140
+Node: contour317783
+Node: contour3324291
+Node: smoothcontour3324603
+Node: slopefield326322
+Node: ode327803
+Node: Options328060
+Ref: configuration file336429
+Ref: settings336429
+Ref: texengines337693
+Ref: convert337693
+Node: Interactive mode341138
+Ref: history343287
+Node: GUI344590
+Node: GUI installation345140
+Node: GUI usage346068
+Node: Command-Line Interface347131
+Node: Language server protocol348573
+Node: PostScript to Asymptote349998
+Node: Help350776
+Node: Debugger352450
+Node: Credits354206
+Node: Index355431

End Tag Table
diff --git a/Build/source/utils/asymptote/doc/slopefield1.asy b/Build/source/utils/asymptote/doc/slopefield1.asy
index fd60de4f632..82de9176462 100644
--- a/Build/source/utils/asymptote/doc/slopefield1.asy
+++ b/Build/source/utils/asymptote/doc/slopefield1.asy
@@ -3,7 +3,5 @@ import slopefield;
size(200);
real func(real x) {return 2x;}
-add(slopefield(func,(-3,-3),(3,3),20,Arrow));
+add(slopefield(func,(-3,-3),(3,3),20));
draw(curve((0,0),func,(-3,-3),(3,3)),red);
-
-
diff --git a/Build/source/utils/asymptote/doc/vectorfield.asy b/Build/source/utils/asymptote/doc/vectorfield.asy
index 12de66e49c5..bc319e56892 100644
--- a/Build/source/utils/asymptote/doc/vectorfield.asy
+++ b/Build/source/utils/asymptote/doc/vectorfield.asy
@@ -4,6 +4,6 @@ size(100);
pair a=(0,0);
pair b=(2pi,2pi);
-path vector(pair z) {return (0,0)--(sin(z.x),cos(z.y));}
+path vector(pair z) {return (sin(z.x),cos(z.y));}
add(vectorfield(vector,a,b));
diff --git a/Build/source/utils/asymptote/drawpath3.cc b/Build/source/utils/asymptote/drawpath3.cc
index 20543e2eda1..d512c62a7c1 100644
--- a/Build/source/utils/asymptote/drawpath3.cc
+++ b/Build/source/utils/asymptote/drawpath3.cc
@@ -50,10 +50,10 @@ bool drawPath3::write(abs3Doutfile *out)
setcolors(diffuse,emissive,specular,shininess,metallic,fresnel0,out);
if(straight)
- out->addCurve(g.point((Int) 0),g.point((Int) 1),Min,Max);
+ out->addCurve(g.point((Int) 0),g.point((Int) 1));
else
out->addCurve(g.point((Int) 0),g.postcontrol((Int) 0),
- g.precontrol((Int) 1),g.point((Int) 1),Min,Max);
+ g.precontrol((Int) 1),g.point((Int) 1));
#endif
return true;
}
@@ -231,7 +231,7 @@ bool drawPixel::write(abs3Doutfile *out)
RGBAColour Black(0.0,0.0,0.0,color.A);
setcolors(color,color,Black,1.0,0.0,0.04,out);
- out->addPixel(v,width,Min,Max);
+ out->addPixel(v,width);
#endif
return true;
}
diff --git a/Build/source/utils/asymptote/drawsurface.cc b/Build/source/utils/asymptote/drawsurface.cc
index ac87bdb586f..104b5456687 100644
--- a/Build/source/utils/asymptote/drawsurface.cc
+++ b/Build/source/utils/asymptote/drawsurface.cc
@@ -118,18 +118,18 @@ void drawBezierPatch::bounds(const double* t, bbox3& b)
double c0=cx[0];
double fuzz=Fuzz*run::norm(cx,16);
- x=bound(cx,min,b.empty ? c0 : min(c0,b.left),fuzz,maxdepth);
- X=bound(cx,max,b.empty ? c0 : max(c0,b.right),fuzz,maxdepth);
+ x=bound(cx,min,c0,fuzz,maxdepth);
+ X=bound(cx,max,c0,fuzz,maxdepth);
c0=cy[0];
fuzz=Fuzz*run::norm(cy,16);
- y=bound(cy,min,b.empty ? c0 : min(c0,b.bottom),fuzz,maxdepth);
- Y=bound(cy,max,b.empty ? c0 : max(c0,b.top),fuzz,maxdepth);
+ y=bound(cy,min,c0,fuzz,maxdepth);
+ Y=bound(cy,max,c0,fuzz,maxdepth);
c0=cz[0];
fuzz=Fuzz*run::norm(cz,16);
- z=bound(cz,min,b.empty ? c0 : min(c0,b.near),fuzz,maxdepth);
- Z=bound(cz,max,b.empty ? c0 : max(c0,b.far),fuzz,maxdepth);
+ z=bound(cz,min,c0,fuzz,maxdepth);
+ Z=bound(cz,max,c0,fuzz,maxdepth);
}
b.add(x,y,z);
@@ -232,7 +232,7 @@ bool drawBezierPatch::write(abs3Doutfile *out)
out->precision(digits);
if(straight) {
triple Controls[]={controls[0],controls[12],controls[15],controls[3]};
- out->addStraightPatch(Controls,Min,Max,colors);
+ out->addStraightPatch(Controls,colors);
} else {
double prerender=renderResolution();
if(prerender) {
@@ -247,7 +247,7 @@ bool drawBezierPatch::write(abs3Doutfile *out)
Min,Max);
dt.write(out);
} else
- out->addPatch(controls,Min,Max,colors);
+ out->addPatch(controls,colors);
}
out->precision(getSetting<Int>("digits"));
@@ -378,18 +378,18 @@ void drawBezierTriangle::bounds(const double* t, bbox3& b)
double c0=cx[0];
double fuzz=Fuzz*run::norm(cx,10);
- x=boundtri(cx,min,b.empty ? c0 : min(c0,b.left),fuzz,maxdepth);
- X=boundtri(cx,max,b.empty ? c0 : max(c0,b.right),fuzz,maxdepth);
+ x=boundtri(cx,min,c0,fuzz,maxdepth);
+ X=boundtri(cx,max,c0,fuzz,maxdepth);
c0=cy[0];
fuzz=Fuzz*run::norm(cy,10);
- y=boundtri(cy,min,b.empty ? c0 : min(c0,b.bottom),fuzz,maxdepth);
- Y=boundtri(cy,max,b.empty ? c0 : max(c0,b.top),fuzz,maxdepth);
+ y=boundtri(cy,min,c0,fuzz,maxdepth);
+ Y=boundtri(cy,max,c0,fuzz,maxdepth);
c0=cz[0];
fuzz=Fuzz*run::norm(cz,10);
- z=boundtri(cz,min,b.empty ? c0 : min(c0,b.near),fuzz,maxdepth);
- Z=boundtri(cz,max,b.empty ? c0 : max(c0,b.far),fuzz,maxdepth);
+ z=boundtri(cz,min,c0,fuzz,maxdepth);
+ Z=boundtri(cz,max,c0,fuzz,maxdepth);
}
b.add(x,y,z);
@@ -493,7 +493,7 @@ bool drawBezierTriangle::write(abs3Doutfile *out)
out->precision(digits);
if(straight) {
triple Controls[]={controls[0],controls[6],controls[9]};
- out->addStraightBezierTriangle(Controls,Min,Max,colors);
+ out->addStraightBezierTriangle(Controls,colors);
} else {
double prerender=renderResolution();
if(prerender) {
@@ -508,7 +508,7 @@ bool drawBezierTriangle::write(abs3Doutfile *out)
Min,Max);
dt.write(out);
} else
- out->addBezierTriangle(controls,Min,Max,colors);
+ out->addBezierTriangle(controls,colors);
}
out->precision(getSetting<Int>("digits"));
@@ -911,7 +911,7 @@ bool drawTube::write(abs3Doutfile *out)
b.add(T*triple(M.getx(),M.gety(),m.getz()));
b.add(T*M);
- out->addTube(g,width,b.Min(),b.Max(),core);
+ out->addTube(g,width,core);
#endif
return true;
@@ -995,7 +995,7 @@ bool drawTriangles::write(abs3Doutfile *out)
} else drawElement::centerIndex=0;
setcolors(diffuse,emissive,specular,shininess,metallic,fresnel0,out);
- out->addTriangles(nP,P,nN,N,nC,C,nI,PI,NI,CI,Min,Max);
+ out->addTriangles(nP,P,nN,N,nC,C,nI,PI,NI,CI);
#endif
return true;
}
diff --git a/Build/source/utils/asymptote/examples/AiryDisk.asy b/Build/source/utils/asymptote/examples/AiryDisk.asy
new file mode 100644
index 00000000000..855abfaa95d
--- /dev/null
+++ b/Build/source/utils/asymptote/examples/AiryDisk.asy
@@ -0,0 +1,16 @@
+import graph3;
+import gsl;
+
+size(10cm,15cm,IgnoreAspect);
+currentprojection=orthographic(150,50,1);
+
+real f(pair z) {real r=abs(z); return r == 0 ? 1 : (2.0*J(1,r)/r)^2;}
+
+real R=15;
+surface s=surface(f,(-R,-R),(R,R),100,Spline);
+
+draw(s,green);
+
+xaxis3("$x$",Bounds,InTicks);
+yaxis3("$y$",Bounds,InTicks);
+zaxis3(rotate(90)*"$I(\sqrt{x^2+y^2})$",Bounds,InTicks("$%#.1f$"));
diff --git a/Build/source/utils/asymptote/examples/filesurface.dat b/Build/source/utils/asymptote/examples/filesurface.dat
index 16d5966f6be..13026850321 100644
--- a/Build/source/utils/asymptote/examples/filesurface.dat
+++ b/Build/source/utils/asymptote/examples/filesurface.dat
@@ -1,12 +1,12 @@
-1 12 24 36 60 84 120 180 240 360
-2005 2005.083333 2005.166667 2005.25 2005.333333 2005.416667 2005.5 2005.583333 2005.666667 2005.75 2005.833333 2005.916667 2006 2006.083333 2006.166667 2006.25 2006.333333 2006.416667 2006.5 2006.583333 2006.666667 2006.75 2006.833333 2006.916667 2007 2007.083333 2007.166667 2007.25 2007.333333 2007.416667 2007.5 2007.583333 2007.666667 2007.75 2007.833333 2007.916667 2008 2008.083333 2008.166667 2008.25 2008.333333 2008.416667 2008.5 2008.583333 2008.666667 2008.75 2008.833333 2008.916667
-2.111 2.1039 2.103 2.1047 2.1041 2.1039 2.1064 2.1126 2.1152 2.1209 2.2225 2.4112 2.3885 2.4586 2.6333 2.6489 2.6926 2.8691 2.9389 3.0941 3.1572 3.3501 3.4214 3.64 3.6159 3.6511 3.8439 3.859 3.9194 4.0982 4.105 4.3081 4.4339 4.2355 4.216 4.7114 4.1973 4.1821 4.3046 4.3691 4.3874 4.4724 4.4716 4.4875 4.6599 4.8313 3.8433 2.9929
-2.223809524 2.228 2.246190476 2.165238095 2.092727273 1.997272727 2.07185 2.14 2.128636364 2.327619048 2.577272727 2.67 2.717727273 2.793 2.978695652 3.094210526 3.175 3.271363636 3.415238095 3.489565217 3.573333333 3.664090909 3.723636364 3.773157895 3.914090909 3.9605 3.982727273 4.132105263 4.254545455 4.398095238 4.44 4.228695652 4.088 4.09 4.044090909 4.0855 3.870909091 3.631904762 3.711052632 3.955909091 4.141428571 4.562380952 4.575217391 4.36952381 4.210909091 2.93173913 2.3795 2.007727273
-2.431904762 2.4595 2.517142857 2.367619048 2.237272727 2.077727273 2.18235 2.253913043 2.222727273 2.484761905 2.743636364 2.804285714 2.862272727 2.968 3.192173913 3.343157895 3.381818182 3.462727273 3.574285714 3.575652174 3.602380952 3.657272727 3.677727273 3.744210526 3.926818182 3.954 3.922272727 4.105263158 4.255454545 4.464285714 4.475 4.183478261 4.0595 4.090434783 3.898636364 3.9975 3.68 3.334761905 3.402105263 3.781818182 4.07047619 4.624761905 4.542608696 4.178095238 4.008636364 3.151304348 2.641 2.375
-2.638095238 2.6685 2.735714286 2.562380952 2.416818182 2.241363636 2.33035 2.400869565 2.340454545 2.60952381 2.865454545 2.895238095 2.949545455 3.0775 3.297826087 3.477368421 3.521363636 3.589545455 3.685714286 3.640434783 3.614761905 3.674545455 3.668636364 3.742631579 3.938636364 3.9625 3.91 4.106842105 4.258636364 4.496666667 4.496818182 4.210869565 4.0975 4.138695652 3.933181818 4.027 3.719090909 3.413809524 3.434210526 3.818636364 4.071428571 4.622380952 4.56826087 4.157619048 3.993181818 3.358695652 2.8285 2.594090909
-2.996190476 3.015 3.124761905 2.920952381 2.753181818 2.581818182 2.6606 2.710869565 2.595 2.829047619 3.082272727 3.056190476 3.080909091 3.2445 3.45173913 3.664736842 3.703181818 3.74 3.82047619 3.726956522 3.655714286 3.712727273 3.669090909 3.753157895 3.970454545 4.0055 3.914090909 4.126315789 4.273181818 4.538095238 4.537727273 4.25826087 4.1655 4.210869565 3.982727273 4.1085 3.829545455 3.600952381 3.591578947 3.941363636 4.137619048 4.65952381 4.622173913 4.201428571 4.126363636 3.774782609 3.2075 2.983181818
-3.265714286 3.2665 3.405238095 3.21 3.04 2.87 2.9277 2.959565217 2.819545455 3.021428571 3.238636364 3.144761905 3.143636364 3.3225 3.536086957 3.798421053 3.85 3.867727273 3.91047619 3.803043478 3.706666667 3.757727273 3.700454545 3.775263158 4.003181818 4.037368421 3.938181818 4.156315789 4.288636364 4.566190476 4.546363636 4.31173913 4.23 4.27 4.076818182 4.185 3.949545455 3.793333333 3.730526316 4.043636364 4.219047619 4.636190476 4.62173913 4.258095238 4.190454545 3.967826087 3.53 3.192272727
-3.593809524 3.5845 3.745238095 3.543333333 3.381363636 3.209545455 3.249 3.282173913 3.122272727 3.285714286 3.488181818 3.380952381 3.344545455 3.497 3.674347826 3.935789474 4.004090909 4.004545455 4.029047619 3.906956522 3.778095238 3.817272727 3.75 3.811052632 4.055909091 4.091 3.99 4.203157895 4.330454545 4.614285714 4.590454545 4.393913043 4.344 4.397391304 4.234545455 4.346 4.165 4.105238095 4.044210526 4.252727273 4.398571429 4.718571429 4.705217391 4.407142857 4.379090909 4.255652174 3.998 3.514545455
-3.78952381 3.7435 3.9255 3.75 3.582272727 3.451363636 3.50775 3.513913043 3.359545455 3.494761905 3.665909091 3.551428571 3.504545455 3.6535 3.812608696 4.098421053 4.167272727 4.175909091 4.186666667 4.056086957 3.908571429 3.916363636 3.824545455 3.882105263 4.12 4.162 4.089090909 4.306315789 4.423181818 4.699047619 4.661818182 4.504782609 4.4985 4.519565217 4.402272727 4.5115 4.382727273 4.366666667 4.336842105 4.509545455 4.613809524 4.861428571 4.877391304 4.636666667 4.659545455 4.482173913 4.2535 3.744545455
-3.99 3.9085 4.098571429 3.944285714 3.771363636 3.609090909 3.6536 3.640869565 3.488181818 3.604761905 3.755454545 3.634285714 3.565909091 3.7165 3.866521739 4.151052632 4.235454545 4.235909091 4.249047619 4.116086957 3.961904762 3.953333333 3.855714286 3.92 4.153636364 4.1985 4.139090909 4.365789474 4.471818182 4.747142857 4.695454545 4.55 4.572 4.590434783 4.500909091 4.602 4.504090909 4.513809524 4.521052632 4.656818182 4.733809524 4.899047619 4.935652174 4.746190476 4.776818182 4.598695652 4.4835 3.900454545
-4.137142857 4.0305 4.213333333 4.08 3.902727273 3.739090909 3.774285714 3.757391304 3.598181818 3.706190476 3.842272727 3.712 3.629545455 3.771 3.919565217 4.231111111 4.295909091 4.306818182 4.31 4.170434783 4.000952381 3.99 3.881818182 3.943684211 4.176818182 4.2195 4.163636364 4.387368421 4.480454545 4.758095238 4.710454545 4.559565217 4.595 4.612173913 4.544090909 4.64 4.57 4.58 4.614736842 4.702727273 4.768571429 4.884761905 4.905652174 4.741904762 4.775454545 4.496521739 4.3585 3.738636364
+1 12 24 36 60 84 120 180 240 360
+2005 2005.083333 2005.166667 2005.25 2005.333333 2005.416667 2005.5 2005.583333 2005.666667 2005.75 2005.833333 2005.916667 2006 2006.083333 2006.166667 2006.25 2006.333333 2006.416667 2006.5 2006.583333 2006.666667 2006.75 2006.833333 2006.916667 2007 2007.083333 2007.166667 2007.25 2007.333333 2007.416667 2007.5 2007.583333 2007.666667 2007.75 2007.833333 2007.916667 2008 2008.083333 2008.166667 2008.25 2008.333333 2008.416667 2008.5 2008.583333 2008.666667 2008.75 2008.833333 2008.916667
+2.111 2.1039 2.103 2.1047 2.1041 2.1039 2.1064 2.1126 2.1152 2.1209 2.2225 2.4112 2.3885 2.4586 2.6333 2.6489 2.6926 2.8691 2.9389 3.0941 3.1572 3.3501 3.4214 3.64 3.6159 3.6511 3.8439 3.859 3.9194 4.0982 4.105 4.3081 4.4339 4.2355 4.216 4.7114 4.1973 4.1821 4.3046 4.3691 4.3874 4.4724 4.4716 4.4875 4.6599 4.8313 3.8433 2.9929
+2.223809524 2.228 2.246190476 2.165238095 2.092727273 1.997272727 2.07185 2.14 2.128636364 2.327619048 2.577272727 2.67 2.717727273 2.793 2.978695652 3.094210526 3.175 3.271363636 3.415238095 3.489565217 3.573333333 3.664090909 3.723636364 3.773157895 3.914090909 3.9605 3.982727273 4.132105263 4.254545455 4.398095238 4.44 4.228695652 4.088 4.09 4.044090909 4.0855 3.870909091 3.631904762 3.711052632 3.955909091 4.141428571 4.562380952 4.575217391 4.36952381 4.210909091 2.93173913 2.3795 2.007727273
+2.431904762 2.4595 2.517142857 2.367619048 2.237272727 2.077727273 2.18235 2.253913043 2.222727273 2.484761905 2.743636364 2.804285714 2.862272727 2.968 3.192173913 3.343157895 3.381818182 3.462727273 3.574285714 3.575652174 3.602380952 3.657272727 3.677727273 3.744210526 3.926818182 3.954 3.922272727 4.105263158 4.255454545 4.464285714 4.475 4.183478261 4.0595 4.090434783 3.898636364 3.9975 3.68 3.334761905 3.402105263 3.781818182 4.07047619 4.624761905 4.542608696 4.178095238 4.008636364 3.151304348 2.641 2.375
+2.638095238 2.6685 2.735714286 2.562380952 2.416818182 2.241363636 2.33035 2.400869565 2.340454545 2.60952381 2.865454545 2.895238095 2.949545455 3.0775 3.297826087 3.477368421 3.521363636 3.589545455 3.685714286 3.640434783 3.614761905 3.674545455 3.668636364 3.742631579 3.938636364 3.9625 3.91 4.106842105 4.258636364 4.496666667 4.496818182 4.210869565 4.0975 4.138695652 3.933181818 4.027 3.719090909 3.413809524 3.434210526 3.818636364 4.071428571 4.622380952 4.56826087 4.157619048 3.993181818 3.358695652 2.8285 2.594090909
+2.996190476 3.015 3.124761905 2.920952381 2.753181818 2.581818182 2.6606 2.710869565 2.595 2.829047619 3.082272727 3.056190476 3.080909091 3.2445 3.45173913 3.664736842 3.703181818 3.74 3.82047619 3.726956522 3.655714286 3.712727273 3.669090909 3.753157895 3.970454545 4.0055 3.914090909 4.126315789 4.273181818 4.538095238 4.537727273 4.25826087 4.1655 4.210869565 3.982727273 4.1085 3.829545455 3.600952381 3.591578947 3.941363636 4.137619048 4.65952381 4.622173913 4.201428571 4.126363636 3.774782609 3.2075 2.983181818
+3.265714286 3.2665 3.405238095 3.21 3.04 2.87 2.9277 2.959565217 2.819545455 3.021428571 3.238636364 3.144761905 3.143636364 3.3225 3.536086957 3.798421053 3.85 3.867727273 3.91047619 3.803043478 3.706666667 3.757727273 3.700454545 3.775263158 4.003181818 4.037368421 3.938181818 4.156315789 4.288636364 4.566190476 4.546363636 4.31173913 4.23 4.27 4.076818182 4.185 3.949545455 3.793333333 3.730526316 4.043636364 4.219047619 4.636190476 4.62173913 4.258095238 4.190454545 3.967826087 3.53 3.192272727
+3.593809524 3.5845 3.745238095 3.543333333 3.381363636 3.209545455 3.249 3.282173913 3.122272727 3.285714286 3.488181818 3.380952381 3.344545455 3.497 3.674347826 3.935789474 4.004090909 4.004545455 4.029047619 3.906956522 3.778095238 3.817272727 3.75 3.811052632 4.055909091 4.091 3.99 4.203157895 4.330454545 4.614285714 4.590454545 4.393913043 4.344 4.397391304 4.234545455 4.346 4.165 4.105238095 4.044210526 4.252727273 4.398571429 4.718571429 4.705217391 4.407142857 4.379090909 4.255652174 3.998 3.514545455
+3.78952381 3.7435 3.9255 3.75 3.582272727 3.451363636 3.50775 3.513913043 3.359545455 3.494761905 3.665909091 3.551428571 3.504545455 3.6535 3.812608696 4.098421053 4.167272727 4.175909091 4.186666667 4.056086957 3.908571429 3.916363636 3.824545455 3.882105263 4.12 4.162 4.089090909 4.306315789 4.423181818 4.699047619 4.661818182 4.504782609 4.4985 4.519565217 4.402272727 4.5115 4.382727273 4.366666667 4.336842105 4.509545455 4.613809524 4.861428571 4.877391304 4.636666667 4.659545455 4.482173913 4.2535 3.744545455
+3.99 3.9085 4.098571429 3.944285714 3.771363636 3.609090909 3.6536 3.640869565 3.488181818 3.604761905 3.755454545 3.634285714 3.565909091 3.7165 3.866521739 4.151052632 4.235454545 4.235909091 4.249047619 4.116086957 3.961904762 3.953333333 3.855714286 3.92 4.153636364 4.1985 4.139090909 4.365789474 4.471818182 4.747142857 4.695454545 4.55 4.572 4.590434783 4.500909091 4.602 4.504090909 4.513809524 4.521052632 4.656818182 4.733809524 4.899047619 4.935652174 4.746190476 4.776818182 4.598695652 4.4835 3.900454545
+4.137142857 4.0305 4.213333333 4.08 3.902727273 3.739090909 3.774285714 3.757391304 3.598181818 3.706190476 3.842272727 3.712 3.629545455 3.771 3.919565217 4.231111111 4.295909091 4.306818182 4.31 4.170434783 4.000952381 3.99 3.881818182 3.943684211 4.176818182 4.2195 4.163636364 4.387368421 4.480454545 4.758095238 4.710454545 4.559565217 4.595 4.612173913 4.544090909 4.64 4.57 4.58 4.614736842 4.702727273 4.768571429 4.884761905 4.905652174 4.741904762 4.775454545 4.496521739 4.3585 3.738636364
diff --git a/Build/source/utils/asymptote/examples/triads.asy b/Build/source/utils/asymptote/examples/triads.asy
index 6cecc55fa46..d1923d3241f 100644
--- a/Build/source/utils/asymptote/examples/triads.asy
+++ b/Build/source/utils/asymptote/examples/triads.asy
@@ -51,4 +51,4 @@ spectrum(m,s,l);
shipout("triadkpq");
-erase();
+currentpicture.erase();
diff --git a/Build/source/utils/asymptote/examples/uhrturm.obj b/Build/source/utils/asymptote/examples/uhrturm.obj
index eb336a9b061..973a4574037 100644
--- a/Build/source/utils/asymptote/examples/uhrturm.obj
+++ b/Build/source/utils/asymptote/examples/uhrturm.obj
@@ -1,1172 +1,1172 @@
-This file may be used freely for non commercial purposes.
-# Generated by CtrlView V3.00
-# D:\saltel\3DS_FILES\uhrturm.obj
-
-g
-v 1.13195 1.87823 1.13195
-v 1.13195 -1.87823 1.13195
-v 1.13195 -1.87823 -1.13195
-v 1.13195 1.87823 -1.13195
-v -1.13195 1.87823 -1.13195
-v -1.13195 1.87823 1.13195
-v -1.13195 -1.87823 1.13195
-v -1.13195 -1.87823 -1.13195
-v -1.48021 1.33917 1.47956
-v 1.47912 1.33917 1.48065
-v 1.12573 1.33917 1.12694
-v -1.1266 1.33917 1.12606
-v -1.48021 0.589166 1.47956
-v 1.47912 0.589166 1.48065
-v -1.1266 0.589166 1.12606
-v 1.12573 0.589166 1.12694
-v 1.48108 1.33917 -1.47868
-v 1.12727 1.33917 -1.12539
-v 1.48108 0.589166 -1.47868
-v 1.12727 0.589166 -1.12539
-v -1.47824 0.589166 -1.48152
-v -1.47824 1.33917 -1.48152
-v -1.12505 0.589166 -1.1276
-v -1.12505 1.33917 -1.1276
-v -1.26581 1.48992 1.82059
-v -1.26581 0.588913 1.82059
-v -0.530699 0.588913 1.08569
-v -0.530699 1.48992 1.08569
-v -1.15829 1.48992 0.457918
-v -1.15829 0.588913 0.457918
-v -1.8934 0.588913 1.19281
-v -1.8934 1.48992 1.19281
-v 1.16926 1.87107 1.244
-v 1.16932 1.87107 -1.24394
-v 0.585613 4.34992 1.5e-005
-v -0.593474 4.34992 -1.6e-005
-v -1.16176 1.87107 -1.244
-v -1.16183 1.87107 1.24394
-v 0.20932 2.114 1.12512
-v 0.20932 2.239 1.12512
-v 0.209038 2.614 1.62512
-v 0.208967 2.614 1.75012
-v 0.208967 2.864 1.75012
-v 0.209534 2.864 0.750118
-v 0.289322 2.239 1.12516
-v 0.289322 2.114 1.12516
-v 0.289534 2.864 0.750164
-v 0.289038 2.614 1.62516
-v 0.288967 2.864 1.75016
-v 0.288967 2.614 1.75016
-v -0.29068 2.114 1.12484
-v -0.29068 2.239 1.12484
-v -0.290962 2.614 1.62484
-v -0.291033 2.614 1.74984
-v -0.291033 2.864 1.74984
-v -0.290466 2.864 0.749836
-v -0.210678 2.239 1.12488
-v -0.210678 2.114 1.12488
-v -0.210466 2.864 0.749881
-v -0.210962 2.614 1.62488
-v -0.211033 2.864 1.74988
-v -0.211033 2.614 1.74988
-v 0.398979 2.814 1.80184
-v -0.00102 3.214 1.80168
-v -0.00102 3.114 1.80168
-v 0.34898 2.764 1.80182
-v -0.40102 2.814 1.80153
-v -0.351021 2.764 1.80155
-v -0.000319 3.114 0.563502
-v -0.000319 3.214 0.563502
-v 0.399681 2.814 0.563655
-v 0.349682 2.764 0.563636
-v -0.350319 2.764 0.563368
-v -0.400318 2.814 0.563349
-v -1.36571 1.76335 1.30816
-v -1.99019 1.4739 1.20524
-v -1.26193 1.4739 1.93265
-v -0.194054 1.4739 0.862978
-v -0.922319 1.4739 0.135567
-v -0.825571 1.76335 0.767107
-v -1.52113 1.31426 1.52054
-v 1.52009 1.31426 1.52158
-v 1.10309 1.63426 1.10421
-v -1.10388 1.63426 1.10341
-v 1.52204 1.31426 -1.51964
-v 1.10453 1.63426 -1.10276
-v -1.51919 1.31426 -1.52249
-v -1.10243 1.63426 -1.10486
-v 1.1845 2.68385 0.281632
-v 1.18441 2.88385 0.481632
-v 1.18441 2.83385 0.481632
-v 1.18449 2.65885 0.306632
-v 1.18433 2.68385 0.681632
-v 1.18434 2.65885 0.656632
-v 0.565324 2.83385 0.481265
-v 0.565324 2.88385 0.481265
-v 0.565406 2.68385 0.281265
-v 0.565396 2.65885 0.306265
-v 0.565253 2.65885 0.656265
-v 0.565242 2.68385 0.681265
-v -1.80243 1.37433 1.2849
-v -1.79277 0.840846 1.29455
-v -1.38452 0.855616 1.70279
-v -1.39417 1.38909 1.69314
-v -1.17726 1.37433 1.73387
-v -1.17335 0.840846 1.72996
-v -1.00819 0.855616 1.56482
-v -1.0121 1.38909 1.56872
-v -1.63705 1.37433 0.935206
-v -1.64095 0.840846 0.93911
-v -1.80612 0.855616 1.10425
-v -1.80222 1.38909 1.10035
-v 1.88055 1.48992 1.20586
-v 1.88055 0.588913 1.20586
-v 1.14568 0.588913 0.470727
-v 1.14568 1.48992 0.470727
-v 0.517887 1.48992 1.0983
-v 0.517887 0.588913 1.0983
-v 1.25277 0.588913 1.83343
-v 1.25277 1.48992 1.83343
-v 1.36813 1.76335 1.30575
-v 1.26519 1.4739 1.93023
-v 1.99262 1.4739 1.20198
-v 0.922974 1.4739 0.134077
-v 0.195543 1.4739 0.862323
-v 0.827085 1.76335 0.765592
-v 1.34486 1.37433 1.74246
-v 1.35451 0.840846 1.73281
-v 1.76276 0.855616 1.32457
-v 1.75311 1.38909 1.33422
-v 1.79384 1.37433 1.1173
-v 1.78993 0.840846 1.1134
-v 1.62479 0.855616 0.948235
-v 1.6287 1.38909 0.952139
-v 0.995163 1.37433 1.57707
-v 0.999067 0.840846 1.58098
-v 1.1642 0.855616 1.74615
-v 1.1603 1.38909 1.74225
-v 1.26594 1.48992 -1.82051
-v 1.26594 0.588913 -1.82051
-v 0.530787 0.588913 -1.08565
-v 0.530787 1.48992 -1.08565
-v 1.15834 1.48992 -0.457845
-v 1.15834 0.588913 -0.457845
-v 1.89349 0.588913 -1.1927
-v 1.89349 1.48992 -1.1927
-v 1.36581 1.76335 -1.30808
-v 1.99029 1.4739 -1.20512
-v 1.26206 1.4739 -1.93257
-v 0.194132 1.4739 -0.862956
-v 0.922358 1.4739 -0.135507
-v 0.825644 1.76335 -0.767052
-v 1.80253 1.37433 -1.2848
-v 1.79287 0.840846 -1.29445
-v 1.38464 0.855616 -1.70271
-v 1.39429 1.38909 -1.69306
-v 1.17738 1.37433 -1.7338
-v 1.17348 0.840846 -1.72989
-v 1.00831 0.855616 -1.56475
-v 1.01221 1.38909 -1.56865
-v 1.63713 1.37433 -0.935107
-v 1.64103 0.840846 -0.939011
-v 1.80621 0.855616 -1.10414
-v 1.80231 1.38909 -1.10024
-v -1.10388 1.63426 1.10341
-v 1.10309 1.63426 1.10421
-v 1.52009 1.31426 1.52158
-v -1.52113 1.31426 1.52054
-v 1.10453 1.63426 -1.10276
-v 1.52204 1.31426 -1.51964
-v -1.10243 1.63426 -1.10486
-v -1.51919 1.31426 -1.52249
-v 1.13198 1.87823 -1.13191
-v 1.13198 -1.87823 -1.13191
-v -1.13191 -1.87823 -1.13198
-v -1.13191 1.87823 -1.13198
-v -1.13189 1.87823 -1.132
-v -1.13189 -1.87823 -1.132
-v -1.132 -1.87823 1.13189
-v -1.132 1.87823 1.13189
-v -1.13203 1.87823 1.13186
-v -1.13203 -1.87823 1.13186
-v 1.13186 -1.87823 1.13204
-v 1.13186 1.87823 1.13204
-v 0 0.425 1.134
-v -0.122418 0.41429 1.134
-v -0.241117 0.382486 1.134
-v -0.352491 0.330553 1.134
-v -0.453154 0.260071 1.134
-v -0.54005 0.173179 1.134
-v -0.610537 0.072519 1.134
-v -0.662475 -0.038852 1.134
-v -0.694284 -0.157549 1.134
-v -0.705 -0.279967 1.134
-v -0.694296 -0.402386 1.134
-v -0.662497 -0.521087 1.134
-v -0.61057 -0.632462 1.134
-v -0.540092 -0.733129 1.134
-v -0.453204 -0.820029 1.134
-v -0.352547 -0.890521 1.134
-v -0.241179 -0.942463 1.134
-v -0.122483 -0.974279 1.134
-v -6.5e-005 -0.985 1.134
-v 0.122354 -0.974301 1.134
-v 0.241056 -0.942508 1.134
-v 0.352434 -0.890586 1.134
-v 0.453104 -0.820113 1.134
-v 0.540008 -0.733229 1.134
-v 0.610504 -0.632575 1.134
-v 0.662452 -0.521209 1.134
-v 0.694273 -0.402515 1.134
-v 0.705 -0.280098 1.134
-v 0.694307 -0.157678 1.134
-v 0.662519 -0.038975 1.134
-v 0.610602 0.072406 1.134
-v 0.540134 0.173079 1.134
-v 0.453254 0.259987 1.134
-v 0.352604 0.330488 1.134
-v 0.24124 0.382441 1.134
-v 0.122547 0.414267 1.134
-v -0.022031 0.3569 1.144
-v -0.022031 0.1031 1.144
-v 0.022031 0.1031 1.144
-v 0.022031 0.3569 1.144
-v -0.337525 0.260559 1.144
-v -0.210627 0.040761 1.144
-v -0.172467 0.062792 1.144
-v -0.299365 0.28259 1.144
-v -0.562582 0.01938 1.144
-v -0.342787 -0.107524 1.144
-v -0.320755 -0.069365 1.144
-v -0.54055 0.057539 1.144
-v -0.636901 -0.302014 1.144
-v -0.383101 -0.302021 1.144
-v -0.383099 -0.257959 1.144
-v -0.636899 -0.257952 1.144
-v -0.540568 -0.617511 1.144
-v -0.320766 -0.490618 1.144
-v -0.342796 -0.452458 1.144
-v -0.562598 -0.579351 1.144
-v -0.299395 -0.842574 1.144
-v -0.172485 -0.622782 1.144
-v -0.210644 -0.60075 1.144
-v -0.337553 -0.820541 1.144
-v 0.021998 -0.916901 1.144
-v 0.022011 -0.663101 1.144
-v -0.022051 -0.663099 1.144
-v -0.022065 -0.916899 1.144
-v 0.337496 -0.820577 1.144
-v 0.21061 -0.600772 1.144
-v 0.172449 -0.622801 1.144
-v 0.299336 -0.842606 1.144
-v 0.562566 -0.57941 1.144
-v 0.342778 -0.452494 1.144
-v 0.320744 -0.490652 1.144
-v 0.540532 -0.617567 1.144
-v 0.636902 -0.258019 1.144
-v 0.383102 -0.257999 1.144
-v 0.383098 -0.302062 1.144
-v 0.636898 -0.302082 1.144
-v 0.540586 0.057482 1.144
-v 0.320777 -0.069399 1.144
-v 0.342805 -0.10756 1.144
-v 0.562614 0.019321 1.144
-v 0.299425 0.282558 1.144
-v 0.172503 0.062773 1.144
-v 0.210661 0.040738 1.144
-v 0.337582 0.260523 1.144
-v 0.569006 -0.128884 1.135
-v -0.021876 -0.253928 1.135
-v -0.013192 -0.313016 1.135
-v 0.57769 -0.187972 1.135
-v -0.343714 -0.249302 1.13464
-v 0.036147 -0.31015 1.13464
-v 0.042763 -0.250677 1.13464
-v -0.337099 -0.18983 1.13464
-v 1.134 0.425 0
-v 1.134 0.41429 0.122418
-v 1.134 0.382486 0.241117
-v 1.134 0.330553 0.352491
-v 1.134 0.260071 0.453154
-v 1.134 0.173179 0.54005
-v 1.134 0.072519 0.610537
-v 1.134 -0.038852 0.662475
-v 1.134 -0.157549 0.694284
-v 1.134 -0.279967 0.705
-v 1.134 -0.402386 0.694296
-v 1.134 -0.521087 0.662497
-v 1.134 -0.632462 0.61057
-v 1.134 -0.733129 0.540092
-v 1.134 -0.820029 0.453204
-v 1.134 -0.890521 0.352547
-v 1.134 -0.942463 0.241179
-v 1.134 -0.974279 0.122483
-v 1.134 -0.985 6.5e-005
-v 1.134 -0.974301 -0.122354
-v 1.134 -0.942508 -0.241056
-v 1.134 -0.890586 -0.352434
-v 1.134 -0.820113 -0.453104
-v 1.134 -0.733229 -0.540008
-v 1.134 -0.632575 -0.610504
-v 1.134 -0.521209 -0.662452
-v 1.134 -0.402515 -0.694273
-v 1.134 -0.280098 -0.705
-v 1.134 -0.157678 -0.694307
-v 1.134 -0.038975 -0.662519
-v 1.134 0.072406 -0.610602
-v 1.134 0.173079 -0.540134
-v 1.134 0.259987 -0.453254
-v 1.134 0.330488 -0.352604
-v 1.134 0.382441 -0.24124
-v 1.134 0.414267 -0.122547
-v 1.144 0.3569 0.022031
-v 1.144 0.1031 0.022031
-v 1.144 0.1031 -0.022031
-v 1.144 0.3569 -0.022031
-v 1.144 0.260559 0.337525
-v 1.144 0.040761 0.210627
-v 1.144 0.062792 0.172467
-v 1.144 0.28259 0.299365
-v 1.144 0.01938 0.562582
-v 1.144 -0.107524 0.342787
-v 1.144 -0.069365 0.320755
-v 1.144 0.057539 0.54055
-v 1.144 -0.302014 0.636901
-v 1.144 -0.302021 0.383101
-v 1.144 -0.257959 0.383099
-v 1.144 -0.257952 0.636899
-v 1.144 -0.617511 0.540568
-v 1.144 -0.490618 0.320766
-v 1.144 -0.452458 0.342796
-v 1.144 -0.579351 0.562598
-v 1.144 -0.842574 0.299395
-v 1.144 -0.622782 0.172485
-v 1.144 -0.60075 0.210644
-v 1.144 -0.820541 0.337553
-v 1.144 -0.916901 -0.021998
-v 1.144 -0.663101 -0.022011
-v 1.144 -0.663099 0.022051
-v 1.144 -0.916899 0.022065
-v 1.144 -0.820577 -0.337496
-v 1.144 -0.600772 -0.21061
-v 1.144 -0.622801 -0.172449
-v 1.144 -0.842606 -0.299336
-v 1.144 -0.57941 -0.562566
-v 1.144 -0.452494 -0.342778
-v 1.144 -0.490652 -0.320744
-v 1.144 -0.617567 -0.540532
-v 1.144 -0.258019 -0.636902
-v 1.144 -0.257999 -0.383102
-v 1.144 -0.302062 -0.383098
-v 1.144 -0.302082 -0.636898
-v 1.144 0.057482 -0.540586
-v 1.144 -0.069399 -0.320777
-v 1.144 -0.10756 -0.342805
-v 1.144 0.019321 -0.562614
-v 1.144 0.282558 -0.299425
-v 1.144 0.062773 -0.172503
-v 1.144 0.040738 -0.210661
-v 1.144 0.260523 -0.337582
-v 1.135 -0.128884 -0.569006
-v 1.135 -0.253928 0.021876
-v 1.135 -0.313016 0.013192
-v 1.135 -0.187972 -0.57769
-v 1.13464 -0.249302 0.343714
-v 1.13464 -0.31015 -0.036147
-v 1.13464 -0.250677 -0.042763
-v 1.13464 -0.18983 0.337099
-v 0 0.425 -1.134
-v 0.122418 0.41429 -1.134
-v 0.241117 0.382486 -1.134
-v 0.352491 0.330553 -1.134
-v 0.453154 0.260071 -1.134
-v 0.54005 0.173179 -1.134
-v 0.610537 0.072519 -1.134
-v 0.662475 -0.038852 -1.134
-v 0.694284 -0.157549 -1.134
-v 0.705 -0.279967 -1.134
-v 0.694296 -0.402386 -1.134
-v 0.662497 -0.521087 -1.134
-v 0.61057 -0.632462 -1.134
-v 0.540092 -0.733129 -1.134
-v 0.453204 -0.820029 -1.134
-v 0.352547 -0.890521 -1.134
-v 0.241179 -0.942463 -1.134
-v 0.122483 -0.974279 -1.134
-v 6.5e-005 -0.985 -1.134
-v -0.122354 -0.974301 -1.134
-v -0.241056 -0.942508 -1.134
-v -0.352434 -0.890586 -1.134
-v -0.453104 -0.820113 -1.134
-v -0.540008 -0.733229 -1.134
-v -0.610504 -0.632575 -1.134
-v -0.662452 -0.521209 -1.134
-v -0.694273 -0.402515 -1.134
-v -0.705 -0.280098 -1.134
-v -0.694307 -0.157678 -1.134
-v -0.662519 -0.038975 -1.134
-v -0.610602 0.072406 -1.134
-v -0.540134 0.173079 -1.134
-v -0.453254 0.259987 -1.134
-v -0.352604 0.330488 -1.134
-v -0.24124 0.382441 -1.134
-v -0.122547 0.414267 -1.134
-v 0.022031 0.3569 -1.144
-v 0.022031 0.1031 -1.144
-v -0.022031 0.1031 -1.144
-v -0.022031 0.3569 -1.144
-v 0.337525 0.260559 -1.144
-v 0.210627 0.040761 -1.144
-v 0.172467 0.062792 -1.144
-v 0.299365 0.28259 -1.144
-v 0.562582 0.01938 -1.144
-v 0.342787 -0.107524 -1.144
-v 0.320755 -0.069365 -1.144
-v 0.54055 0.057539 -1.144
-v 0.636901 -0.302014 -1.144
-v 0.383101 -0.302021 -1.144
-v 0.383099 -0.257959 -1.144
-v 0.636899 -0.257952 -1.144
-v 0.540568 -0.617511 -1.144
-v 0.320766 -0.490618 -1.144
-v 0.342796 -0.452458 -1.144
-v 0.562598 -0.579351 -1.144
-v 0.299395 -0.842574 -1.144
-v 0.172485 -0.622782 -1.144
-v 0.210644 -0.60075 -1.144
-v 0.337553 -0.820541 -1.144
-v -0.021998 -0.916901 -1.144
-v -0.022011 -0.663101 -1.144
-v 0.022051 -0.663099 -1.144
-v 0.022065 -0.916899 -1.144
-v -0.337496 -0.820577 -1.144
-v -0.21061 -0.600772 -1.144
-v -0.172449 -0.622801 -1.144
-v -0.299336 -0.842606 -1.144
-v -0.562566 -0.57941 -1.144
-v -0.342778 -0.452494 -1.144
-v -0.320744 -0.490652 -1.144
-v -0.540532 -0.617567 -1.144
-v -0.636902 -0.258019 -1.144
-v -0.383102 -0.257999 -1.144
-v -0.383098 -0.302062 -1.144
-v -0.636898 -0.302082 -1.144
-v -0.540586 0.057482 -1.144
-v -0.320777 -0.069399 -1.144
-v -0.342805 -0.10756 -1.144
-v -0.562614 0.019321 -1.144
-v -0.299425 0.282558 -1.144
-v -0.172503 0.062773 -1.144
-v -0.210661 0.040738 -1.144
-v -0.337582 0.260523 -1.144
-v -0.569006 -0.128884 -1.135
-v 0.021876 -0.253928 -1.135
-v 0.013192 -0.313016 -1.135
-v -0.57769 -0.187972 -1.135
-v 0.343714 -0.249302 -1.13464
-v -0.036147 -0.31015 -1.13464
-v -0.042763 -0.250677 -1.13464
-v 0.337099 -0.18983 -1.13464
-v -1.134 0.425 0
-v -1.134 0.41429 -0.122418
-v -1.134 0.382486 -0.241117
-v -1.134 0.330553 -0.352491
-v -1.134 0.260071 -0.453154
-v -1.134 0.173179 -0.54005
-v -1.134 0.072519 -0.610537
-v -1.134 -0.038852 -0.662475
-v -1.134 -0.157549 -0.694284
-v -1.134 -0.279967 -0.705
-v -1.134 -0.402386 -0.694296
-v -1.134 -0.521087 -0.662497
-v -1.134 -0.632462 -0.61057
-v -1.134 -0.733129 -0.540092
-v -1.134 -0.820029 -0.453204
-v -1.134 -0.890521 -0.352547
-v -1.134 -0.942463 -0.241179
-v -1.134 -0.974279 -0.122483
-v -1.134 -0.985 -6.5e-005
-v -1.134 -0.974301 0.122354
-v -1.134 -0.942508 0.241056
-v -1.134 -0.890586 0.352434
-v -1.134 -0.820113 0.453104
-v -1.134 -0.733229 0.540008
-v -1.134 -0.632575 0.610504
-v -1.134 -0.521209 0.662452
-v -1.134 -0.402515 0.694273
-v -1.134 -0.280098 0.705
-v -1.134 -0.157678 0.694307
-v -1.134 -0.038975 0.662519
-v -1.134 0.072406 0.610602
-v -1.134 0.173079 0.540134
-v -1.134 0.259987 0.453254
-v -1.134 0.330488 0.352604
-v -1.134 0.382441 0.24124
-v -1.134 0.414267 0.122547
-v -1.144 0.3569 -0.022031
-v -1.144 0.1031 -0.022031
-v -1.144 0.1031 0.022031
-v -1.144 0.3569 0.022031
-v -1.144 0.260559 -0.337525
-v -1.144 0.040761 -0.210627
-v -1.144 0.062792 -0.172467
-v -1.144 0.28259 -0.299365
-v -1.144 0.01938 -0.562582
-v -1.144 -0.107524 -0.342787
-v -1.144 -0.069365 -0.320755
-v -1.144 0.057539 -0.54055
-v -1.144 -0.302014 -0.636901
-v -1.144 -0.302021 -0.383101
-v -1.144 -0.257959 -0.383099
-v -1.144 -0.257952 -0.636899
-v -1.144 -0.617511 -0.540568
-v -1.144 -0.490618 -0.320766
-v -1.144 -0.452458 -0.342796
-v -1.144 -0.579351 -0.562598
-v -1.144 -0.842574 -0.299395
-v -1.144 -0.622782 -0.172485
-v -1.144 -0.60075 -0.210644
-v -1.144 -0.820541 -0.337553
-v -1.144 -0.916901 0.021998
-v -1.144 -0.663101 0.022011
-v -1.144 -0.663099 -0.022051
-v -1.144 -0.916899 -0.022065
-v -1.144 -0.820577 0.337496
-v -1.144 -0.600772 0.21061
-v -1.144 -0.622801 0.172449
-v -1.144 -0.842606 0.299336
-v -1.144 -0.57941 0.562566
-v -1.144 -0.452494 0.342778
-v -1.144 -0.490652 0.320744
-v -1.144 -0.617567 0.540532
-v -1.144 -0.258019 0.636902
-v -1.144 -0.257999 0.383102
-v -1.144 -0.302062 0.383098
-v -1.144 -0.302082 0.636898
-v -1.144 0.057482 0.540586
-v -1.144 -0.069399 0.320777
-v -1.144 -0.10756 0.342805
-v -1.144 0.019321 0.562614
-v -1.144 0.282558 0.299425
-v -1.144 0.062773 0.172503
-v -1.144 0.040738 0.210661
-v -1.144 0.260523 0.337582
-v -1.135 -0.128884 0.569006
-v -1.135 -0.253928 -0.021876
-v -1.135 -0.313016 -0.013192
-v -1.135 -0.187972 0.57769
-v -1.13464 -0.249302 -0.343714
-v -1.13464 -0.31015 0.036147
-v -1.13464 -0.250677 0.042763
-v -1.13464 -0.18983 -0.337099
-vn 1 0 0.000569096
-vn -1 0 -0.000569096
-vn -1 0 -0.000570691
-vn 1 0 0.000565259
-vn 0.000509719 -0.44721 -0.894429
-vn -0.000499176 0 1
-vn -0.000481064 0.266932 0.963715
-vn -0.000488087 0.514492 0.857495
-vn 0.00042804 -0.514498 -0.857492
-vn -0.000299513 -0.8 0.6
-vn -0.000138291 0.961524 0.274721
-vn 0.000137137 -0.961524 -0.27472
-vn 0 -1 0
-vn 0 1 0
-vn -0.000387739 0 1
-vn 0.000382513 0 -1
-vn 0.707107 0.707106 0.000400743
-vn -1 0 -0.000566154
-vn -0.600001 -0.799999 -0.00033981
-vn -0.707107 -0.707107 -0.000400468
-vn -0.707107 -0.707107 -0.000400332
-vn 0.707113 -0.7071 0.000400901
-vn 0.6 0.8 0.000340172
-vn 1 0 0.000566154
-vn -0.707107 0.707106 -0.000400744
-vn 0.707107 -0.707107 0.000400469
-vn -0.436532 0.786406 0.437042
-vn 0.429319 0.794316 -0.429823
-vn -0.346918 0.871609 -0.346332
-vn 0 -1 0
-vn 0.346918 0.871608 0.346334
-vn -0.000209213 0.793494 0.608578
-vn 0.608566 0.793503 0.000390815
-vn 0.000571085 0.793502 -0.608568
-vn -0.608802 0.793322 -0.000389153
-vn 1 0 0.00042435
-vn 0.000419184 0.707107 -0.707107
-vn -0.000355678 -0.8 0.599999
-vn -0.00041917 -0.707107 0.707107
-vn 0.000419193 -0.707106 -0.707108
-vn 0.000355696 0.8 -0.599999
-vn -0.000419162 0.707107 0.707107
-vn -0.000419164 -0.707105 0.707108
-vn 0.000419163 -0.707107 -0.707107
-vn -0.707094 -6.49068e-006 0.70712
-vn -0.707098 0 0.707115
-vn 0.707069 2.89744e-006 0.707144
-vn 0.707064 0 0.70715
-vn -0.707045 -4.84174e-006 -0.707169
-vn 0.707098 0 0.707115
-vn 0.707157 -1.26403e-005 -0.707056
-vn -0.70719 4.67573e-006 0.707024
-vn -0.707199 -1.1863e-006 0.707015
-
-g
-f 4 1 2
-f 4 2 3
-f 4 5 6
-f 4 6 1
-f 2 7 8
-f 2 8 3
-
-g
-f 9 10 11
-f 9 11 12
-f 9 13 14
-f 9 14 10
-f 16 14 13
-f 16 13 15
-f 15 12 11
-f 15 11 16
-f 10 17 18
-f 10 18 11
-f 10 14 19
-f 10 19 17
-f 20 19 14
-f 20 14 16
-f 17 19 21
-f 17 21 22
-f 23 21 19
-f 23 19 20
-f 20 18 24
-f 20 24 23
-f 22 9 12
-f 22 12 24
-f 22 21 13
-f 22 13 9
-f 15 13 21
-f 15 21 23
-f 23 24 12
-f 23 12 15
-f 28 25 26
-f 28 26 27
-f 32 29 30
-f 32 30 31
-f 29 28 27
-f 29 27 30
-f 32 25 28
-f 32 28 29
-f 25 32 31
-f 25 31 26
-f 27 26 31
-f 27 31 30
-
-g
-f 33 34 35
-f 36 37 38
-f 35 34 37
-f 35 37 36
-f 33 38 37
-f 33 37 34
-f 38 33 35
-f 38 35 36
-
-g
-f 44//2 39//3 40//2
-f 43//2 44//2 40//2
-f 43//2 40//2 41//3
-f 43//2 41//3 42//3
-f 44//1 39//1 40//1
-f 44//1 40//1 41//4
-f 43//1 44//1 41//4
-f 43//1 41//4 42//1
-f 45//1 46//1 47//1
-f 46//5 39//5 44//5
-f 46//5 44//5 47//5
-f 40//7 39//6 46//6
-f 40//7 46//6 45//7
-f 44//8 40//7 45//7
-f 44//8 45//7 47//8
-f 48//4 45//4 47//4
-f 45//9 40//9 44//9
-f 45//9 44//9 47//9
-f 40//10 45//10 48//10
-f 40//10 48//10 41//10
-f 44//11 41//11 48//11
-f 44//11 48//11 47//11
-f 48//4 47//4 49//4
-f 48//4 49//4 50//1
-f 48//12 41//12 44//12
-f 48//12 44//12 47//12
-f 50//13 42//13 41//13
-f 50//13 41//13 48//13
-f 43//6 42//6 50//6
-f 43//6 50//6 49//6
-f 44//14 43//14 49//14
-f 44//14 49//14 47//14
-f 56//2 51//3 52//2
-f 55//2 56//2 52//2
-f 55//2 52//2 53//3
-f 55//2 53//3 54//3
-f 56//1 51//1 52//1
-f 56//1 52//1 53//4
-f 55//1 56//1 53//4
-f 55//1 53//4 54//1
-f 57//1 58//1 59//1
-f 58//5 51//5 56//5
-f 58//5 56//5 59//5
-f 52//7 51//6 58//6
-f 52//7 58//6 57//7
-f 56//8 52//7 57//7
-f 56//8 57//7 59//8
-f 60//4 57//4 59//4
-f 57//9 52//9 56//9
-f 57//9 56//9 59//9
-f 52//10 57//10 60//10
-f 52//10 60//10 53//10
-f 56//11 53//11 60//11
-f 56//11 60//11 59//11
-f 60//4 59//4 61//4
-f 60//4 61//4 62//1
-f 60//12 53//12 56//12
-f 60//12 56//12 59//12
-f 53//13 60//13 62//13
-f 53//13 62//13 54//13
-f 55//6 54//6 62//6
-f 55//6 62//6 61//6
-f 56//14 55//14 61//14
-f 56//14 61//14 59//14
-
-g
-f 63//15 64//15 65//15
-f 65//15 66//15 63//15
-f 65//15 64//15 67//15
-f 65//15 67//15 68//15
-f 69//16 70//16 71//16
-f 63//17 71//17 70//17
-f 63//17 70//17 64//17
-f 65//18 64//18 70//18
-f 65//18 70//18 69//18
-f 69//19 71//19 63//19
-f 69//19 63//19 65//19
-f 71//16 72//16 69//16
-f 69//20 72//20 66//20
-f 69//20 66//20 65//21
-f 72//22 71//22 63//22
-f 72//22 63//22 66//22
-f 63//23 71//23 69//23
-f 63//23 69//23 65//23
-f 74//16 70//16 69//16
-f 74//16 69//16 73//16
-f 64//24 65//24 69//24
-f 64//24 69//24 70//24
-f 74//25 67//25 64//25
-f 74//25 64//25 70//25
-f 74//21 73//21 68//21
-f 74//21 68//21 67//21
-f 65//26 68//26 73//26
-f 65//26 73//26 69//22
-f 75//27 76//27 77//27
-f 78//28 79//28 80//28
-f 80//29 79//29 76//29
-f 80//29 76//29 75//29
-f 76//30 79//30 78//30
-f 76//30 78//30 77//30
-f 77//31 78//31 80//31
-f 77//31 80//31 75//31
-f 81//32 82//32 83//32
-f 81//32 83//32 84//32
-f 82//33 85//33 86//33
-f 82//33 86//33 83//33
-f 85//34 87//34 88//34
-f 85//34 88//34 86//34
-f 87//35 81//35 84//35
-f 87//35 84//35 88//35
-f 89//36 90//24 91//36
-f 91//36 92//36 89//36
-f 91//36 90//24 93//36
-f 91//36 93//36 94//36
-f 95//18 96//18 97//18
-f 89//37 97//37 96//37
-f 89//37 96//37 90//37
-f 91//15 90//15 96//15
-f 91//15 96//15 95//15
-f 95//38 97//38 89//38
-f 95//38 89//38 91//38
-f 97//18 98//18 95//18
-f 95//39 98//39 92//39
-f 95//39 92//39 91//39
-f 89//40 92//40 98//40
-f 89//40 98//40 97//40
-f 89//41 97//41 95//41
-f 89//41 95//41 91//41
-f 100//18 96//18 95//18
-f 100//18 95//18 99//18
-f 90//16 91//16 95//16
-f 90//16 95//16 96//16
-f 100//42 93//42 90//42
-f 100//42 90//42 96//42
-f 94//43 93//43 100//43
-f 94//43 100//43 99//43
-f 91//44 94//44 99//44
-f 91//44 99//44 95//44
-
-g
-f 104//45 101//45 102//45
-f 104//45 102//45 103//46
-f 105//47 106//48 107//47
-f 105//47 107//47 108//47
-f 109//49 110//49 111//49
-f 109//49 111//49 112//49
-
-g
-f 116 113 114
-f 116 114 115
-f 120 117 118
-f 120 118 119
-f 117 116 115
-f 117 115 118
-f 116 117 120
-f 116 120 113
-f 113 120 119
-f 113 119 114
-f 119 118 115
-f 119 115 114
-
-g
-f 121 122 123
-f 124 125 126
-f 126 125 122
-f 126 122 121
-f 122 125 124
-f 122 124 123
-f 123 124 126
-f 123 126 121
-
-g
-f 130//50 127//50 128//50
-f 130//50 128//50 129//50
-f 131//51 132//51 133//51
-f 131//51 133//51 134//51
-f 135//52 136//52 137//52
-f 135//52 137//52 138//53
-
-g
-f 142 139 140
-f 142 140 141
-f 146 143 144
-f 146 144 145
-f 143 142 141
-f 143 141 144
-f 146 139 142
-f 146 142 143
-f 139 146 145
-f 139 145 140
-f 141 140 145
-f 141 145 144
-
-g
-f 147 148 149
-f 150 151 152
-f 152 151 148
-f 152 148 147
-f 150 149 148
-f 150 148 151
-f 149 150 152
-f 149 152 147
-
-g
-f 156 153 154
-f 156 154 155
-f 157 158 159
-f 157 159 160
-f 161 162 163
-f 161 163 164
-
-g
-f 166 167 168
-f 166 168 165
-f 169 170 167
-f 169 167 166
-f 171 172 170
-f 171 170 169
-f 165 168 172
-f 165 172 171
-
-g
-f 176 173 174
-f 176 174 175
-f 180 177 178
-f 180 178 179
-f 184 181 182
-f 184 182 183
-
-g
-f 220 185 186
-f 220 186 187
-f 220 187 188
-f 220 188 189
-f 220 189 190
-f 220 190 191
-f 220 191 192
-f 220 192 193
-f 220 193 194
-f 220 194 195
-f 220 195 196
-f 220 196 197
-f 220 197 198
-f 220 198 199
-f 220 199 200
-f 220 200 201
-f 219 220 201
-f 218 219 201
-f 217 218 201
-f 216 217 201
-f 215 216 201
-f 214 215 201
-f 213 214 201
-f 212 213 201
-f 211 212 201
-f 210 211 201
-f 209 210 201
-f 209 201 202
-f 209 202 203
-f 209 203 204
-f 209 204 205
-f 209 205 206
-f 209 206 207
-f 209 207 208
-
-g
-f 224 221 222
-f 224 222 223
-f 226 227 228
-f 226 228 225
-f 229 230 231
-f 229 231 232
-f 236 233 234
-f 236 234 235
-f 238 239 240
-f 238 240 237
-f 241 242 243
-f 241 243 244
-f 247 248 245
-f 247 245 246
-f 251 252 249
-f 251 249 250
-f 256 253 254
-f 256 254 255
-f 260 257 258
-f 260 258 259
-f 263 264 261
-f 263 261 262
-f 265 266 267
-f 265 267 268
-
-g
-f 272 269 270
-f 272 270 271
-f 275 276 273
-f 275 273 274
-
-g
-f 312 277 278
-f 312 278 279
-f 312 279 280
-f 312 280 281
-f 312 281 282
-f 312 282 283
-f 312 283 284
-f 312 284 285
-f 312 285 286
-f 312 286 287
-f 312 287 288
-f 312 288 289
-f 312 289 290
-f 312 290 291
-f 312 291 292
-f 312 292 293
-f 311 312 293
-f 310 311 293
-f 309 310 293
-f 308 309 293
-f 307 308 293
-f 306 307 293
-f 305 306 293
-f 304 305 293
-f 303 304 293
-f 302 303 293
-f 301 302 293
-f 301 293 294
-f 301 294 295
-f 301 295 296
-f 301 296 297
-f 301 297 298
-f 301 298 299
-f 301 299 300
-
-g
-f 316 313 314
-f 316 314 315
-f 318 319 320
-f 318 320 317
-f 321 322 323
-f 321 323 324
-f 328 325 326
-f 328 326 327
-f 330 331 332
-f 330 332 329
-f 333 334 335
-f 333 335 336
-f 339 340 337
-f 339 337 338
-f 343 344 341
-f 343 341 342
-f 348 345 346
-f 348 346 347
-f 352 349 350
-f 352 350 351
-f 355 356 353
-f 355 353 354
-f 357 358 359
-f 357 359 360
-
-g
-f 364 361 362
-f 364 362 363
-f 367 368 365
-f 367 365 366
-
-g
-f 404 369 370
-f 404 370 371
-f 404 371 372
-f 404 372 373
-f 404 373 374
-f 404 374 375
-f 404 375 376
-f 404 376 377
-f 404 377 378
-f 404 378 379
-f 404 379 380
-f 404 380 381
-f 404 381 382
-f 404 382 383
-f 404 383 384
-f 404 384 385
-f 403 404 385
-f 402 403 385
-f 401 402 385
-f 400 401 385
-f 399 400 385
-f 398 399 385
-f 397 398 385
-f 396 397 385
-f 395 396 385
-f 394 395 385
-f 393 394 385
-f 393 385 386
-f 393 386 387
-f 393 387 388
-f 393 388 389
-f 393 389 390
-f 393 390 391
-f 393 391 392
-
-g
-f 408 405 406
-f 408 406 407
-f 410 411 412
-f 410 412 409
-f 413 414 415
-f 413 415 416
-f 420 417 418
-f 420 418 419
-f 422 423 424
-f 422 424 421
-f 425 426 427
-f 425 427 428
-f 431 432 429
-f 431 429 430
-f 435 436 433
-f 435 433 434
-f 440 437 438
-f 440 438 439
-f 444 441 442
-f 444 442 443
-f 447 448 445
-f 447 445 446
-f 449 450 451
-f 449 451 452
-
-g
-f 456 453 454
-f 456 454 455
-f 459 460 457
-f 459 457 458
-
-g
-f 496 461 462
-f 496 462 463
-f 496 463 464
-f 496 464 465
-f 496 465 466
-f 496 466 467
-f 496 467 468
-f 496 468 469
-f 496 469 470
-f 496 470 471
-f 496 471 472
-f 496 472 473
-f 496 473 474
-f 496 474 475
-f 496 475 476
-f 496 476 477
-f 495 496 477
-f 494 495 477
-f 493 494 477
-f 492 493 477
-f 491 492 477
-f 490 491 477
-f 489 490 477
-f 488 489 477
-f 487 488 477
-f 486 487 477
-f 485 486 477
-f 485 477 478
-f 485 478 479
-f 485 479 480
-f 485 480 481
-f 485 481 482
-f 485 482 483
-f 485 483 484
-
-g
-f 500 497 498
-f 500 498 499
-f 502 503 504
-f 502 504 501
-f 505 506 507
-f 505 507 508
-f 512 509 510
-f 512 510 511
-f 514 515 516
-f 514 516 513
-f 517 518 519
-f 517 519 520
-f 523 524 521
-f 523 521 522
-f 527 528 525
-f 527 525 526
-f 532 529 530
-f 532 530 531
-f 536 533 534
-f 536 534 535
-f 539 540 537
-f 539 537 538
-f 541 542 543
-f 541 543 544
-
-g
-f 548 545 546
-f 548 546 547
-f 551 552 549
-f 551 549 550
+This file may be used freely for non commercial purposes.
+# Generated by CtrlView V3.00
+# D:\saltel\3DS_FILES\uhrturm.obj
+
+g
+v 1.13195 1.87823 1.13195
+v 1.13195 -1.87823 1.13195
+v 1.13195 -1.87823 -1.13195
+v 1.13195 1.87823 -1.13195
+v -1.13195 1.87823 -1.13195
+v -1.13195 1.87823 1.13195
+v -1.13195 -1.87823 1.13195
+v -1.13195 -1.87823 -1.13195
+v -1.48021 1.33917 1.47956
+v 1.47912 1.33917 1.48065
+v 1.12573 1.33917 1.12694
+v -1.1266 1.33917 1.12606
+v -1.48021 0.589166 1.47956
+v 1.47912 0.589166 1.48065
+v -1.1266 0.589166 1.12606
+v 1.12573 0.589166 1.12694
+v 1.48108 1.33917 -1.47868
+v 1.12727 1.33917 -1.12539
+v 1.48108 0.589166 -1.47868
+v 1.12727 0.589166 -1.12539
+v -1.47824 0.589166 -1.48152
+v -1.47824 1.33917 -1.48152
+v -1.12505 0.589166 -1.1276
+v -1.12505 1.33917 -1.1276
+v -1.26581 1.48992 1.82059
+v -1.26581 0.588913 1.82059
+v -0.530699 0.588913 1.08569
+v -0.530699 1.48992 1.08569
+v -1.15829 1.48992 0.457918
+v -1.15829 0.588913 0.457918
+v -1.8934 0.588913 1.19281
+v -1.8934 1.48992 1.19281
+v 1.16926 1.87107 1.244
+v 1.16932 1.87107 -1.24394
+v 0.585613 4.34992 1.5e-005
+v -0.593474 4.34992 -1.6e-005
+v -1.16176 1.87107 -1.244
+v -1.16183 1.87107 1.24394
+v 0.20932 2.114 1.12512
+v 0.20932 2.239 1.12512
+v 0.209038 2.614 1.62512
+v 0.208967 2.614 1.75012
+v 0.208967 2.864 1.75012
+v 0.209534 2.864 0.750118
+v 0.289322 2.239 1.12516
+v 0.289322 2.114 1.12516
+v 0.289534 2.864 0.750164
+v 0.289038 2.614 1.62516
+v 0.288967 2.864 1.75016
+v 0.288967 2.614 1.75016
+v -0.29068 2.114 1.12484
+v -0.29068 2.239 1.12484
+v -0.290962 2.614 1.62484
+v -0.291033 2.614 1.74984
+v -0.291033 2.864 1.74984
+v -0.290466 2.864 0.749836
+v -0.210678 2.239 1.12488
+v -0.210678 2.114 1.12488
+v -0.210466 2.864 0.749881
+v -0.210962 2.614 1.62488
+v -0.211033 2.864 1.74988
+v -0.211033 2.614 1.74988
+v 0.398979 2.814 1.80184
+v -0.00102 3.214 1.80168
+v -0.00102 3.114 1.80168
+v 0.34898 2.764 1.80182
+v -0.40102 2.814 1.80153
+v -0.351021 2.764 1.80155
+v -0.000319 3.114 0.563502
+v -0.000319 3.214 0.563502
+v 0.399681 2.814 0.563655
+v 0.349682 2.764 0.563636
+v -0.350319 2.764 0.563368
+v -0.400318 2.814 0.563349
+v -1.36571 1.76335 1.30816
+v -1.99019 1.4739 1.20524
+v -1.26193 1.4739 1.93265
+v -0.194054 1.4739 0.862978
+v -0.922319 1.4739 0.135567
+v -0.825571 1.76335 0.767107
+v -1.52113 1.31426 1.52054
+v 1.52009 1.31426 1.52158
+v 1.10309 1.63426 1.10421
+v -1.10388 1.63426 1.10341
+v 1.52204 1.31426 -1.51964
+v 1.10453 1.63426 -1.10276
+v -1.51919 1.31426 -1.52249
+v -1.10243 1.63426 -1.10486
+v 1.1845 2.68385 0.281632
+v 1.18441 2.88385 0.481632
+v 1.18441 2.83385 0.481632
+v 1.18449 2.65885 0.306632
+v 1.18433 2.68385 0.681632
+v 1.18434 2.65885 0.656632
+v 0.565324 2.83385 0.481265
+v 0.565324 2.88385 0.481265
+v 0.565406 2.68385 0.281265
+v 0.565396 2.65885 0.306265
+v 0.565253 2.65885 0.656265
+v 0.565242 2.68385 0.681265
+v -1.80243 1.37433 1.2849
+v -1.79277 0.840846 1.29455
+v -1.38452 0.855616 1.70279
+v -1.39417 1.38909 1.69314
+v -1.17726 1.37433 1.73387
+v -1.17335 0.840846 1.72996
+v -1.00819 0.855616 1.56482
+v -1.0121 1.38909 1.56872
+v -1.63705 1.37433 0.935206
+v -1.64095 0.840846 0.93911
+v -1.80612 0.855616 1.10425
+v -1.80222 1.38909 1.10035
+v 1.88055 1.48992 1.20586
+v 1.88055 0.588913 1.20586
+v 1.14568 0.588913 0.470727
+v 1.14568 1.48992 0.470727
+v 0.517887 1.48992 1.0983
+v 0.517887 0.588913 1.0983
+v 1.25277 0.588913 1.83343
+v 1.25277 1.48992 1.83343
+v 1.36813 1.76335 1.30575
+v 1.26519 1.4739 1.93023
+v 1.99262 1.4739 1.20198
+v 0.922974 1.4739 0.134077
+v 0.195543 1.4739 0.862323
+v 0.827085 1.76335 0.765592
+v 1.34486 1.37433 1.74246
+v 1.35451 0.840846 1.73281
+v 1.76276 0.855616 1.32457
+v 1.75311 1.38909 1.33422
+v 1.79384 1.37433 1.1173
+v 1.78993 0.840846 1.1134
+v 1.62479 0.855616 0.948235
+v 1.6287 1.38909 0.952139
+v 0.995163 1.37433 1.57707
+v 0.999067 0.840846 1.58098
+v 1.1642 0.855616 1.74615
+v 1.1603 1.38909 1.74225
+v 1.26594 1.48992 -1.82051
+v 1.26594 0.588913 -1.82051
+v 0.530787 0.588913 -1.08565
+v 0.530787 1.48992 -1.08565
+v 1.15834 1.48992 -0.457845
+v 1.15834 0.588913 -0.457845
+v 1.89349 0.588913 -1.1927
+v 1.89349 1.48992 -1.1927
+v 1.36581 1.76335 -1.30808
+v 1.99029 1.4739 -1.20512
+v 1.26206 1.4739 -1.93257
+v 0.194132 1.4739 -0.862956
+v 0.922358 1.4739 -0.135507
+v 0.825644 1.76335 -0.767052
+v 1.80253 1.37433 -1.2848
+v 1.79287 0.840846 -1.29445
+v 1.38464 0.855616 -1.70271
+v 1.39429 1.38909 -1.69306
+v 1.17738 1.37433 -1.7338
+v 1.17348 0.840846 -1.72989
+v 1.00831 0.855616 -1.56475
+v 1.01221 1.38909 -1.56865
+v 1.63713 1.37433 -0.935107
+v 1.64103 0.840846 -0.939011
+v 1.80621 0.855616 -1.10414
+v 1.80231 1.38909 -1.10024
+v -1.10388 1.63426 1.10341
+v 1.10309 1.63426 1.10421
+v 1.52009 1.31426 1.52158
+v -1.52113 1.31426 1.52054
+v 1.10453 1.63426 -1.10276
+v 1.52204 1.31426 -1.51964
+v -1.10243 1.63426 -1.10486
+v -1.51919 1.31426 -1.52249
+v 1.13198 1.87823 -1.13191
+v 1.13198 -1.87823 -1.13191
+v -1.13191 -1.87823 -1.13198
+v -1.13191 1.87823 -1.13198
+v -1.13189 1.87823 -1.132
+v -1.13189 -1.87823 -1.132
+v -1.132 -1.87823 1.13189
+v -1.132 1.87823 1.13189
+v -1.13203 1.87823 1.13186
+v -1.13203 -1.87823 1.13186
+v 1.13186 -1.87823 1.13204
+v 1.13186 1.87823 1.13204
+v 0 0.425 1.134
+v -0.122418 0.41429 1.134
+v -0.241117 0.382486 1.134
+v -0.352491 0.330553 1.134
+v -0.453154 0.260071 1.134
+v -0.54005 0.173179 1.134
+v -0.610537 0.072519 1.134
+v -0.662475 -0.038852 1.134
+v -0.694284 -0.157549 1.134
+v -0.705 -0.279967 1.134
+v -0.694296 -0.402386 1.134
+v -0.662497 -0.521087 1.134
+v -0.61057 -0.632462 1.134
+v -0.540092 -0.733129 1.134
+v -0.453204 -0.820029 1.134
+v -0.352547 -0.890521 1.134
+v -0.241179 -0.942463 1.134
+v -0.122483 -0.974279 1.134
+v -6.5e-005 -0.985 1.134
+v 0.122354 -0.974301 1.134
+v 0.241056 -0.942508 1.134
+v 0.352434 -0.890586 1.134
+v 0.453104 -0.820113 1.134
+v 0.540008 -0.733229 1.134
+v 0.610504 -0.632575 1.134
+v 0.662452 -0.521209 1.134
+v 0.694273 -0.402515 1.134
+v 0.705 -0.280098 1.134
+v 0.694307 -0.157678 1.134
+v 0.662519 -0.038975 1.134
+v 0.610602 0.072406 1.134
+v 0.540134 0.173079 1.134
+v 0.453254 0.259987 1.134
+v 0.352604 0.330488 1.134
+v 0.24124 0.382441 1.134
+v 0.122547 0.414267 1.134
+v -0.022031 0.3569 1.144
+v -0.022031 0.1031 1.144
+v 0.022031 0.1031 1.144
+v 0.022031 0.3569 1.144
+v -0.337525 0.260559 1.144
+v -0.210627 0.040761 1.144
+v -0.172467 0.062792 1.144
+v -0.299365 0.28259 1.144
+v -0.562582 0.01938 1.144
+v -0.342787 -0.107524 1.144
+v -0.320755 -0.069365 1.144
+v -0.54055 0.057539 1.144
+v -0.636901 -0.302014 1.144
+v -0.383101 -0.302021 1.144
+v -0.383099 -0.257959 1.144
+v -0.636899 -0.257952 1.144
+v -0.540568 -0.617511 1.144
+v -0.320766 -0.490618 1.144
+v -0.342796 -0.452458 1.144
+v -0.562598 -0.579351 1.144
+v -0.299395 -0.842574 1.144
+v -0.172485 -0.622782 1.144
+v -0.210644 -0.60075 1.144
+v -0.337553 -0.820541 1.144
+v 0.021998 -0.916901 1.144
+v 0.022011 -0.663101 1.144
+v -0.022051 -0.663099 1.144
+v -0.022065 -0.916899 1.144
+v 0.337496 -0.820577 1.144
+v 0.21061 -0.600772 1.144
+v 0.172449 -0.622801 1.144
+v 0.299336 -0.842606 1.144
+v 0.562566 -0.57941 1.144
+v 0.342778 -0.452494 1.144
+v 0.320744 -0.490652 1.144
+v 0.540532 -0.617567 1.144
+v 0.636902 -0.258019 1.144
+v 0.383102 -0.257999 1.144
+v 0.383098 -0.302062 1.144
+v 0.636898 -0.302082 1.144
+v 0.540586 0.057482 1.144
+v 0.320777 -0.069399 1.144
+v 0.342805 -0.10756 1.144
+v 0.562614 0.019321 1.144
+v 0.299425 0.282558 1.144
+v 0.172503 0.062773 1.144
+v 0.210661 0.040738 1.144
+v 0.337582 0.260523 1.144
+v 0.569006 -0.128884 1.135
+v -0.021876 -0.253928 1.135
+v -0.013192 -0.313016 1.135
+v 0.57769 -0.187972 1.135
+v -0.343714 -0.249302 1.13464
+v 0.036147 -0.31015 1.13464
+v 0.042763 -0.250677 1.13464
+v -0.337099 -0.18983 1.13464
+v 1.134 0.425 0
+v 1.134 0.41429 0.122418
+v 1.134 0.382486 0.241117
+v 1.134 0.330553 0.352491
+v 1.134 0.260071 0.453154
+v 1.134 0.173179 0.54005
+v 1.134 0.072519 0.610537
+v 1.134 -0.038852 0.662475
+v 1.134 -0.157549 0.694284
+v 1.134 -0.279967 0.705
+v 1.134 -0.402386 0.694296
+v 1.134 -0.521087 0.662497
+v 1.134 -0.632462 0.61057
+v 1.134 -0.733129 0.540092
+v 1.134 -0.820029 0.453204
+v 1.134 -0.890521 0.352547
+v 1.134 -0.942463 0.241179
+v 1.134 -0.974279 0.122483
+v 1.134 -0.985 6.5e-005
+v 1.134 -0.974301 -0.122354
+v 1.134 -0.942508 -0.241056
+v 1.134 -0.890586 -0.352434
+v 1.134 -0.820113 -0.453104
+v 1.134 -0.733229 -0.540008
+v 1.134 -0.632575 -0.610504
+v 1.134 -0.521209 -0.662452
+v 1.134 -0.402515 -0.694273
+v 1.134 -0.280098 -0.705
+v 1.134 -0.157678 -0.694307
+v 1.134 -0.038975 -0.662519
+v 1.134 0.072406 -0.610602
+v 1.134 0.173079 -0.540134
+v 1.134 0.259987 -0.453254
+v 1.134 0.330488 -0.352604
+v 1.134 0.382441 -0.24124
+v 1.134 0.414267 -0.122547
+v 1.144 0.3569 0.022031
+v 1.144 0.1031 0.022031
+v 1.144 0.1031 -0.022031
+v 1.144 0.3569 -0.022031
+v 1.144 0.260559 0.337525
+v 1.144 0.040761 0.210627
+v 1.144 0.062792 0.172467
+v 1.144 0.28259 0.299365
+v 1.144 0.01938 0.562582
+v 1.144 -0.107524 0.342787
+v 1.144 -0.069365 0.320755
+v 1.144 0.057539 0.54055
+v 1.144 -0.302014 0.636901
+v 1.144 -0.302021 0.383101
+v 1.144 -0.257959 0.383099
+v 1.144 -0.257952 0.636899
+v 1.144 -0.617511 0.540568
+v 1.144 -0.490618 0.320766
+v 1.144 -0.452458 0.342796
+v 1.144 -0.579351 0.562598
+v 1.144 -0.842574 0.299395
+v 1.144 -0.622782 0.172485
+v 1.144 -0.60075 0.210644
+v 1.144 -0.820541 0.337553
+v 1.144 -0.916901 -0.021998
+v 1.144 -0.663101 -0.022011
+v 1.144 -0.663099 0.022051
+v 1.144 -0.916899 0.022065
+v 1.144 -0.820577 -0.337496
+v 1.144 -0.600772 -0.21061
+v 1.144 -0.622801 -0.172449
+v 1.144 -0.842606 -0.299336
+v 1.144 -0.57941 -0.562566
+v 1.144 -0.452494 -0.342778
+v 1.144 -0.490652 -0.320744
+v 1.144 -0.617567 -0.540532
+v 1.144 -0.258019 -0.636902
+v 1.144 -0.257999 -0.383102
+v 1.144 -0.302062 -0.383098
+v 1.144 -0.302082 -0.636898
+v 1.144 0.057482 -0.540586
+v 1.144 -0.069399 -0.320777
+v 1.144 -0.10756 -0.342805
+v 1.144 0.019321 -0.562614
+v 1.144 0.282558 -0.299425
+v 1.144 0.062773 -0.172503
+v 1.144 0.040738 -0.210661
+v 1.144 0.260523 -0.337582
+v 1.135 -0.128884 -0.569006
+v 1.135 -0.253928 0.021876
+v 1.135 -0.313016 0.013192
+v 1.135 -0.187972 -0.57769
+v 1.13464 -0.249302 0.343714
+v 1.13464 -0.31015 -0.036147
+v 1.13464 -0.250677 -0.042763
+v 1.13464 -0.18983 0.337099
+v 0 0.425 -1.134
+v 0.122418 0.41429 -1.134
+v 0.241117 0.382486 -1.134
+v 0.352491 0.330553 -1.134
+v 0.453154 0.260071 -1.134
+v 0.54005 0.173179 -1.134
+v 0.610537 0.072519 -1.134
+v 0.662475 -0.038852 -1.134
+v 0.694284 -0.157549 -1.134
+v 0.705 -0.279967 -1.134
+v 0.694296 -0.402386 -1.134
+v 0.662497 -0.521087 -1.134
+v 0.61057 -0.632462 -1.134
+v 0.540092 -0.733129 -1.134
+v 0.453204 -0.820029 -1.134
+v 0.352547 -0.890521 -1.134
+v 0.241179 -0.942463 -1.134
+v 0.122483 -0.974279 -1.134
+v 6.5e-005 -0.985 -1.134
+v -0.122354 -0.974301 -1.134
+v -0.241056 -0.942508 -1.134
+v -0.352434 -0.890586 -1.134
+v -0.453104 -0.820113 -1.134
+v -0.540008 -0.733229 -1.134
+v -0.610504 -0.632575 -1.134
+v -0.662452 -0.521209 -1.134
+v -0.694273 -0.402515 -1.134
+v -0.705 -0.280098 -1.134
+v -0.694307 -0.157678 -1.134
+v -0.662519 -0.038975 -1.134
+v -0.610602 0.072406 -1.134
+v -0.540134 0.173079 -1.134
+v -0.453254 0.259987 -1.134
+v -0.352604 0.330488 -1.134
+v -0.24124 0.382441 -1.134
+v -0.122547 0.414267 -1.134
+v 0.022031 0.3569 -1.144
+v 0.022031 0.1031 -1.144
+v -0.022031 0.1031 -1.144
+v -0.022031 0.3569 -1.144
+v 0.337525 0.260559 -1.144
+v 0.210627 0.040761 -1.144
+v 0.172467 0.062792 -1.144
+v 0.299365 0.28259 -1.144
+v 0.562582 0.01938 -1.144
+v 0.342787 -0.107524 -1.144
+v 0.320755 -0.069365 -1.144
+v 0.54055 0.057539 -1.144
+v 0.636901 -0.302014 -1.144
+v 0.383101 -0.302021 -1.144
+v 0.383099 -0.257959 -1.144
+v 0.636899 -0.257952 -1.144
+v 0.540568 -0.617511 -1.144
+v 0.320766 -0.490618 -1.144
+v 0.342796 -0.452458 -1.144
+v 0.562598 -0.579351 -1.144
+v 0.299395 -0.842574 -1.144
+v 0.172485 -0.622782 -1.144
+v 0.210644 -0.60075 -1.144
+v 0.337553 -0.820541 -1.144
+v -0.021998 -0.916901 -1.144
+v -0.022011 -0.663101 -1.144
+v 0.022051 -0.663099 -1.144
+v 0.022065 -0.916899 -1.144
+v -0.337496 -0.820577 -1.144
+v -0.21061 -0.600772 -1.144
+v -0.172449 -0.622801 -1.144
+v -0.299336 -0.842606 -1.144
+v -0.562566 -0.57941 -1.144
+v -0.342778 -0.452494 -1.144
+v -0.320744 -0.490652 -1.144
+v -0.540532 -0.617567 -1.144
+v -0.636902 -0.258019 -1.144
+v -0.383102 -0.257999 -1.144
+v -0.383098 -0.302062 -1.144
+v -0.636898 -0.302082 -1.144
+v -0.540586 0.057482 -1.144
+v -0.320777 -0.069399 -1.144
+v -0.342805 -0.10756 -1.144
+v -0.562614 0.019321 -1.144
+v -0.299425 0.282558 -1.144
+v -0.172503 0.062773 -1.144
+v -0.210661 0.040738 -1.144
+v -0.337582 0.260523 -1.144
+v -0.569006 -0.128884 -1.135
+v 0.021876 -0.253928 -1.135
+v 0.013192 -0.313016 -1.135
+v -0.57769 -0.187972 -1.135
+v 0.343714 -0.249302 -1.13464
+v -0.036147 -0.31015 -1.13464
+v -0.042763 -0.250677 -1.13464
+v 0.337099 -0.18983 -1.13464
+v -1.134 0.425 0
+v -1.134 0.41429 -0.122418
+v -1.134 0.382486 -0.241117
+v -1.134 0.330553 -0.352491
+v -1.134 0.260071 -0.453154
+v -1.134 0.173179 -0.54005
+v -1.134 0.072519 -0.610537
+v -1.134 -0.038852 -0.662475
+v -1.134 -0.157549 -0.694284
+v -1.134 -0.279967 -0.705
+v -1.134 -0.402386 -0.694296
+v -1.134 -0.521087 -0.662497
+v -1.134 -0.632462 -0.61057
+v -1.134 -0.733129 -0.540092
+v -1.134 -0.820029 -0.453204
+v -1.134 -0.890521 -0.352547
+v -1.134 -0.942463 -0.241179
+v -1.134 -0.974279 -0.122483
+v -1.134 -0.985 -6.5e-005
+v -1.134 -0.974301 0.122354
+v -1.134 -0.942508 0.241056
+v -1.134 -0.890586 0.352434
+v -1.134 -0.820113 0.453104
+v -1.134 -0.733229 0.540008
+v -1.134 -0.632575 0.610504
+v -1.134 -0.521209 0.662452
+v -1.134 -0.402515 0.694273
+v -1.134 -0.280098 0.705
+v -1.134 -0.157678 0.694307
+v -1.134 -0.038975 0.662519
+v -1.134 0.072406 0.610602
+v -1.134 0.173079 0.540134
+v -1.134 0.259987 0.453254
+v -1.134 0.330488 0.352604
+v -1.134 0.382441 0.24124
+v -1.134 0.414267 0.122547
+v -1.144 0.3569 -0.022031
+v -1.144 0.1031 -0.022031
+v -1.144 0.1031 0.022031
+v -1.144 0.3569 0.022031
+v -1.144 0.260559 -0.337525
+v -1.144 0.040761 -0.210627
+v -1.144 0.062792 -0.172467
+v -1.144 0.28259 -0.299365
+v -1.144 0.01938 -0.562582
+v -1.144 -0.107524 -0.342787
+v -1.144 -0.069365 -0.320755
+v -1.144 0.057539 -0.54055
+v -1.144 -0.302014 -0.636901
+v -1.144 -0.302021 -0.383101
+v -1.144 -0.257959 -0.383099
+v -1.144 -0.257952 -0.636899
+v -1.144 -0.617511 -0.540568
+v -1.144 -0.490618 -0.320766
+v -1.144 -0.452458 -0.342796
+v -1.144 -0.579351 -0.562598
+v -1.144 -0.842574 -0.299395
+v -1.144 -0.622782 -0.172485
+v -1.144 -0.60075 -0.210644
+v -1.144 -0.820541 -0.337553
+v -1.144 -0.916901 0.021998
+v -1.144 -0.663101 0.022011
+v -1.144 -0.663099 -0.022051
+v -1.144 -0.916899 -0.022065
+v -1.144 -0.820577 0.337496
+v -1.144 -0.600772 0.21061
+v -1.144 -0.622801 0.172449
+v -1.144 -0.842606 0.299336
+v -1.144 -0.57941 0.562566
+v -1.144 -0.452494 0.342778
+v -1.144 -0.490652 0.320744
+v -1.144 -0.617567 0.540532
+v -1.144 -0.258019 0.636902
+v -1.144 -0.257999 0.383102
+v -1.144 -0.302062 0.383098
+v -1.144 -0.302082 0.636898
+v -1.144 0.057482 0.540586
+v -1.144 -0.069399 0.320777
+v -1.144 -0.10756 0.342805
+v -1.144 0.019321 0.562614
+v -1.144 0.282558 0.299425
+v -1.144 0.062773 0.172503
+v -1.144 0.040738 0.210661
+v -1.144 0.260523 0.337582
+v -1.135 -0.128884 0.569006
+v -1.135 -0.253928 -0.021876
+v -1.135 -0.313016 -0.013192
+v -1.135 -0.187972 0.57769
+v -1.13464 -0.249302 -0.343714
+v -1.13464 -0.31015 0.036147
+v -1.13464 -0.250677 0.042763
+v -1.13464 -0.18983 -0.337099
+vn 1 0 0.000569096
+vn -1 0 -0.000569096
+vn -1 0 -0.000570691
+vn 1 0 0.000565259
+vn 0.000509719 -0.44721 -0.894429
+vn -0.000499176 0 1
+vn -0.000481064 0.266932 0.963715
+vn -0.000488087 0.514492 0.857495
+vn 0.00042804 -0.514498 -0.857492
+vn -0.000299513 -0.8 0.6
+vn -0.000138291 0.961524 0.274721
+vn 0.000137137 -0.961524 -0.27472
+vn 0 -1 0
+vn 0 1 0
+vn -0.000387739 0 1
+vn 0.000382513 0 -1
+vn 0.707107 0.707106 0.000400743
+vn -1 0 -0.000566154
+vn -0.600001 -0.799999 -0.00033981
+vn -0.707107 -0.707107 -0.000400468
+vn -0.707107 -0.707107 -0.000400332
+vn 0.707113 -0.7071 0.000400901
+vn 0.6 0.8 0.000340172
+vn 1 0 0.000566154
+vn -0.707107 0.707106 -0.000400744
+vn 0.707107 -0.707107 0.000400469
+vn -0.436532 0.786406 0.437042
+vn 0.429319 0.794316 -0.429823
+vn -0.346918 0.871609 -0.346332
+vn 0 -1 0
+vn 0.346918 0.871608 0.346334
+vn -0.000209213 0.793494 0.608578
+vn 0.608566 0.793503 0.000390815
+vn 0.000571085 0.793502 -0.608568
+vn -0.608802 0.793322 -0.000389153
+vn 1 0 0.00042435
+vn 0.000419184 0.707107 -0.707107
+vn -0.000355678 -0.8 0.599999
+vn -0.00041917 -0.707107 0.707107
+vn 0.000419193 -0.707106 -0.707108
+vn 0.000355696 0.8 -0.599999
+vn -0.000419162 0.707107 0.707107
+vn -0.000419164 -0.707105 0.707108
+vn 0.000419163 -0.707107 -0.707107
+vn -0.707094 -6.49068e-006 0.70712
+vn -0.707098 0 0.707115
+vn 0.707069 2.89744e-006 0.707144
+vn 0.707064 0 0.70715
+vn -0.707045 -4.84174e-006 -0.707169
+vn 0.707098 0 0.707115
+vn 0.707157 -1.26403e-005 -0.707056
+vn -0.70719 4.67573e-006 0.707024
+vn -0.707199 -1.1863e-006 0.707015
+
+g
+f 4 1 2
+f 4 2 3
+f 4 5 6
+f 4 6 1
+f 2 7 8
+f 2 8 3
+
+g
+f 9 10 11
+f 9 11 12
+f 9 13 14
+f 9 14 10
+f 16 14 13
+f 16 13 15
+f 15 12 11
+f 15 11 16
+f 10 17 18
+f 10 18 11
+f 10 14 19
+f 10 19 17
+f 20 19 14
+f 20 14 16
+f 17 19 21
+f 17 21 22
+f 23 21 19
+f 23 19 20
+f 20 18 24
+f 20 24 23
+f 22 9 12
+f 22 12 24
+f 22 21 13
+f 22 13 9
+f 15 13 21
+f 15 21 23
+f 23 24 12
+f 23 12 15
+f 28 25 26
+f 28 26 27
+f 32 29 30
+f 32 30 31
+f 29 28 27
+f 29 27 30
+f 32 25 28
+f 32 28 29
+f 25 32 31
+f 25 31 26
+f 27 26 31
+f 27 31 30
+
+g
+f 33 34 35
+f 36 37 38
+f 35 34 37
+f 35 37 36
+f 33 38 37
+f 33 37 34
+f 38 33 35
+f 38 35 36
+
+g
+f 44//2 39//3 40//2
+f 43//2 44//2 40//2
+f 43//2 40//2 41//3
+f 43//2 41//3 42//3
+f 44//1 39//1 40//1
+f 44//1 40//1 41//4
+f 43//1 44//1 41//4
+f 43//1 41//4 42//1
+f 45//1 46//1 47//1
+f 46//5 39//5 44//5
+f 46//5 44//5 47//5
+f 40//7 39//6 46//6
+f 40//7 46//6 45//7
+f 44//8 40//7 45//7
+f 44//8 45//7 47//8
+f 48//4 45//4 47//4
+f 45//9 40//9 44//9
+f 45//9 44//9 47//9
+f 40//10 45//10 48//10
+f 40//10 48//10 41//10
+f 44//11 41//11 48//11
+f 44//11 48//11 47//11
+f 48//4 47//4 49//4
+f 48//4 49//4 50//1
+f 48//12 41//12 44//12
+f 48//12 44//12 47//12
+f 50//13 42//13 41//13
+f 50//13 41//13 48//13
+f 43//6 42//6 50//6
+f 43//6 50//6 49//6
+f 44//14 43//14 49//14
+f 44//14 49//14 47//14
+f 56//2 51//3 52//2
+f 55//2 56//2 52//2
+f 55//2 52//2 53//3
+f 55//2 53//3 54//3
+f 56//1 51//1 52//1
+f 56//1 52//1 53//4
+f 55//1 56//1 53//4
+f 55//1 53//4 54//1
+f 57//1 58//1 59//1
+f 58//5 51//5 56//5
+f 58//5 56//5 59//5
+f 52//7 51//6 58//6
+f 52//7 58//6 57//7
+f 56//8 52//7 57//7
+f 56//8 57//7 59//8
+f 60//4 57//4 59//4
+f 57//9 52//9 56//9
+f 57//9 56//9 59//9
+f 52//10 57//10 60//10
+f 52//10 60//10 53//10
+f 56//11 53//11 60//11
+f 56//11 60//11 59//11
+f 60//4 59//4 61//4
+f 60//4 61//4 62//1
+f 60//12 53//12 56//12
+f 60//12 56//12 59//12
+f 53//13 60//13 62//13
+f 53//13 62//13 54//13
+f 55//6 54//6 62//6
+f 55//6 62//6 61//6
+f 56//14 55//14 61//14
+f 56//14 61//14 59//14
+
+g
+f 63//15 64//15 65//15
+f 65//15 66//15 63//15
+f 65//15 64//15 67//15
+f 65//15 67//15 68//15
+f 69//16 70//16 71//16
+f 63//17 71//17 70//17
+f 63//17 70//17 64//17
+f 65//18 64//18 70//18
+f 65//18 70//18 69//18
+f 69//19 71//19 63//19
+f 69//19 63//19 65//19
+f 71//16 72//16 69//16
+f 69//20 72//20 66//20
+f 69//20 66//20 65//21
+f 72//22 71//22 63//22
+f 72//22 63//22 66//22
+f 63//23 71//23 69//23
+f 63//23 69//23 65//23
+f 74//16 70//16 69//16
+f 74//16 69//16 73//16
+f 64//24 65//24 69//24
+f 64//24 69//24 70//24
+f 74//25 67//25 64//25
+f 74//25 64//25 70//25
+f 74//21 73//21 68//21
+f 74//21 68//21 67//21
+f 65//26 68//26 73//26
+f 65//26 73//26 69//22
+f 75//27 76//27 77//27
+f 78//28 79//28 80//28
+f 80//29 79//29 76//29
+f 80//29 76//29 75//29
+f 76//30 79//30 78//30
+f 76//30 78//30 77//30
+f 77//31 78//31 80//31
+f 77//31 80//31 75//31
+f 81//32 82//32 83//32
+f 81//32 83//32 84//32
+f 82//33 85//33 86//33
+f 82//33 86//33 83//33
+f 85//34 87//34 88//34
+f 85//34 88//34 86//34
+f 87//35 81//35 84//35
+f 87//35 84//35 88//35
+f 89//36 90//24 91//36
+f 91//36 92//36 89//36
+f 91//36 90//24 93//36
+f 91//36 93//36 94//36
+f 95//18 96//18 97//18
+f 89//37 97//37 96//37
+f 89//37 96//37 90//37
+f 91//15 90//15 96//15
+f 91//15 96//15 95//15
+f 95//38 97//38 89//38
+f 95//38 89//38 91//38
+f 97//18 98//18 95//18
+f 95//39 98//39 92//39
+f 95//39 92//39 91//39
+f 89//40 92//40 98//40
+f 89//40 98//40 97//40
+f 89//41 97//41 95//41
+f 89//41 95//41 91//41
+f 100//18 96//18 95//18
+f 100//18 95//18 99//18
+f 90//16 91//16 95//16
+f 90//16 95//16 96//16
+f 100//42 93//42 90//42
+f 100//42 90//42 96//42
+f 94//43 93//43 100//43
+f 94//43 100//43 99//43
+f 91//44 94//44 99//44
+f 91//44 99//44 95//44
+
+g
+f 104//45 101//45 102//45
+f 104//45 102//45 103//46
+f 105//47 106//48 107//47
+f 105//47 107//47 108//47
+f 109//49 110//49 111//49
+f 109//49 111//49 112//49
+
+g
+f 116 113 114
+f 116 114 115
+f 120 117 118
+f 120 118 119
+f 117 116 115
+f 117 115 118
+f 116 117 120
+f 116 120 113
+f 113 120 119
+f 113 119 114
+f 119 118 115
+f 119 115 114
+
+g
+f 121 122 123
+f 124 125 126
+f 126 125 122
+f 126 122 121
+f 122 125 124
+f 122 124 123
+f 123 124 126
+f 123 126 121
+
+g
+f 130//50 127//50 128//50
+f 130//50 128//50 129//50
+f 131//51 132//51 133//51
+f 131//51 133//51 134//51
+f 135//52 136//52 137//52
+f 135//52 137//52 138//53
+
+g
+f 142 139 140
+f 142 140 141
+f 146 143 144
+f 146 144 145
+f 143 142 141
+f 143 141 144
+f 146 139 142
+f 146 142 143
+f 139 146 145
+f 139 145 140
+f 141 140 145
+f 141 145 144
+
+g
+f 147 148 149
+f 150 151 152
+f 152 151 148
+f 152 148 147
+f 150 149 148
+f 150 148 151
+f 149 150 152
+f 149 152 147
+
+g
+f 156 153 154
+f 156 154 155
+f 157 158 159
+f 157 159 160
+f 161 162 163
+f 161 163 164
+
+g
+f 166 167 168
+f 166 168 165
+f 169 170 167
+f 169 167 166
+f 171 172 170
+f 171 170 169
+f 165 168 172
+f 165 172 171
+
+g
+f 176 173 174
+f 176 174 175
+f 180 177 178
+f 180 178 179
+f 184 181 182
+f 184 182 183
+
+g
+f 220 185 186
+f 220 186 187
+f 220 187 188
+f 220 188 189
+f 220 189 190
+f 220 190 191
+f 220 191 192
+f 220 192 193
+f 220 193 194
+f 220 194 195
+f 220 195 196
+f 220 196 197
+f 220 197 198
+f 220 198 199
+f 220 199 200
+f 220 200 201
+f 219 220 201
+f 218 219 201
+f 217 218 201
+f 216 217 201
+f 215 216 201
+f 214 215 201
+f 213 214 201
+f 212 213 201
+f 211 212 201
+f 210 211 201
+f 209 210 201
+f 209 201 202
+f 209 202 203
+f 209 203 204
+f 209 204 205
+f 209 205 206
+f 209 206 207
+f 209 207 208
+
+g
+f 224 221 222
+f 224 222 223
+f 226 227 228
+f 226 228 225
+f 229 230 231
+f 229 231 232
+f 236 233 234
+f 236 234 235
+f 238 239 240
+f 238 240 237
+f 241 242 243
+f 241 243 244
+f 247 248 245
+f 247 245 246
+f 251 252 249
+f 251 249 250
+f 256 253 254
+f 256 254 255
+f 260 257 258
+f 260 258 259
+f 263 264 261
+f 263 261 262
+f 265 266 267
+f 265 267 268
+
+g
+f 272 269 270
+f 272 270 271
+f 275 276 273
+f 275 273 274
+
+g
+f 312 277 278
+f 312 278 279
+f 312 279 280
+f 312 280 281
+f 312 281 282
+f 312 282 283
+f 312 283 284
+f 312 284 285
+f 312 285 286
+f 312 286 287
+f 312 287 288
+f 312 288 289
+f 312 289 290
+f 312 290 291
+f 312 291 292
+f 312 292 293
+f 311 312 293
+f 310 311 293
+f 309 310 293
+f 308 309 293
+f 307 308 293
+f 306 307 293
+f 305 306 293
+f 304 305 293
+f 303 304 293
+f 302 303 293
+f 301 302 293
+f 301 293 294
+f 301 294 295
+f 301 295 296
+f 301 296 297
+f 301 297 298
+f 301 298 299
+f 301 299 300
+
+g
+f 316 313 314
+f 316 314 315
+f 318 319 320
+f 318 320 317
+f 321 322 323
+f 321 323 324
+f 328 325 326
+f 328 326 327
+f 330 331 332
+f 330 332 329
+f 333 334 335
+f 333 335 336
+f 339 340 337
+f 339 337 338
+f 343 344 341
+f 343 341 342
+f 348 345 346
+f 348 346 347
+f 352 349 350
+f 352 350 351
+f 355 356 353
+f 355 353 354
+f 357 358 359
+f 357 359 360
+
+g
+f 364 361 362
+f 364 362 363
+f 367 368 365
+f 367 365 366
+
+g
+f 404 369 370
+f 404 370 371
+f 404 371 372
+f 404 372 373
+f 404 373 374
+f 404 374 375
+f 404 375 376
+f 404 376 377
+f 404 377 378
+f 404 378 379
+f 404 379 380
+f 404 380 381
+f 404 381 382
+f 404 382 383
+f 404 383 384
+f 404 384 385
+f 403 404 385
+f 402 403 385
+f 401 402 385
+f 400 401 385
+f 399 400 385
+f 398 399 385
+f 397 398 385
+f 396 397 385
+f 395 396 385
+f 394 395 385
+f 393 394 385
+f 393 385 386
+f 393 386 387
+f 393 387 388
+f 393 388 389
+f 393 389 390
+f 393 390 391
+f 393 391 392
+
+g
+f 408 405 406
+f 408 406 407
+f 410 411 412
+f 410 412 409
+f 413 414 415
+f 413 415 416
+f 420 417 418
+f 420 418 419
+f 422 423 424
+f 422 424 421
+f 425 426 427
+f 425 427 428
+f 431 432 429
+f 431 429 430
+f 435 436 433
+f 435 433 434
+f 440 437 438
+f 440 438 439
+f 444 441 442
+f 444 442 443
+f 447 448 445
+f 447 445 446
+f 449 450 451
+f 449 451 452
+
+g
+f 456 453 454
+f 456 454 455
+f 459 460 457
+f 459 457 458
+
+g
+f 496 461 462
+f 496 462 463
+f 496 463 464
+f 496 464 465
+f 496 465 466
+f 496 466 467
+f 496 467 468
+f 496 468 469
+f 496 469 470
+f 496 470 471
+f 496 471 472
+f 496 472 473
+f 496 473 474
+f 496 474 475
+f 496 475 476
+f 496 476 477
+f 495 496 477
+f 494 495 477
+f 493 494 477
+f 492 493 477
+f 491 492 477
+f 490 491 477
+f 489 490 477
+f 488 489 477
+f 487 488 477
+f 486 487 477
+f 485 486 477
+f 485 477 478
+f 485 478 479
+f 485 479 480
+f 485 480 481
+f 485 481 482
+f 485 482 483
+f 485 483 484
+
+g
+f 500 497 498
+f 500 498 499
+f 502 503 504
+f 502 504 501
+f 505 506 507
+f 505 507 508
+f 512 509 510
+f 512 510 511
+f 514 515 516
+f 514 516 513
+f 517 518 519
+f 517 519 520
+f 523 524 521
+f 523 521 522
+f 527 528 525
+f 527 525 526
+f 532 529 530
+f 532 530 531
+f 536 533 534
+f 536 534 535
+f 539 540 537
+f 539 537 538
+f 541 542 543
+f 541 543 544
+
+g
+f 548 545 546
+f 548 546 547
+f 551 552 549
+f 551 549 550
diff --git a/Build/source/utils/asymptote/exp.cc b/Build/source/utils/asymptote/exp.cc
index 48a5c000f25..e1ae008bf81 100644
--- a/Build/source/utils/asymptote/exp.cc
+++ b/Build/source/utils/asymptote/exp.cc
@@ -849,7 +849,9 @@ application *callExp::resolve(coenv &e, overloaded *o, signature *source,
em << "call of function \'" << s;
else
em << "call with signature \'";
- em << *source << "\' is ambiguous";
+ em << *source << "\' is ambiguous:\n\n";
+ for(app_list::iterator p=l.begin(); p != l.end(); ++p)
+ em << *(*p)->getType() << "\n";
}
return 0;
diff --git a/Build/source/utils/asymptote/fftw++.cc b/Build/source/utils/asymptote/fftw++.cc
index 18071492e3d..69a54934bbd 100644
--- a/Build/source/utils/asymptote/fftw++.cc
+++ b/Build/source/utils/asymptote/fftw++.cc
@@ -1,18 +1,21 @@
#include <cstring>
#include <sstream>
+
#include "fftw++.h"
using namespace std;
+using namespace utils;
namespace fftwpp {
const double fftw::twopi=2.0*acos(-1.0);
+bool fftw::wiser=false;
// User settings:
-unsigned int fftw::effort=FFTW_MEASURE;
-const char *fftw::WisdomName=".wisdom";
-unsigned int fftw::maxthreads=1;
-double fftw::testseconds=0.2; // Time limit for threading efficiency tests
+size_t fftw::effort=FFTW_MEASURE;
+string wisdomName="wisdom3.txt";
+ostringstream wisdomTemp;
+size_t fftw::maxthreads=1;
fftw_plan (*fftw::planner)(fftw *f, Complex *in, Complex *out)=Planner;
@@ -20,20 +23,17 @@ const char *fftw::oddshift="Shift is not implemented for odd nx";
const char *inout=
"constructor and call must be both in place or both out of place";
-fft1d::Table fft1d::threadtable;
-mfft1d::Table mfft1d::threadtable;
-rcfft1d::Table rcfft1d::threadtable;
-crfft1d::Table crfft1d::threadtable;
-mrcfft1d::Table mrcfft1d::threadtable;
-mcrfft1d::Table mcrfft1d::threadtable;
-fft2d::Table fft2d::threadtable;
+Mfft1d::Table Mfft1d::threadtable;
+Mrcfft1d::Table Mrcfft1d::threadtable;
+Mcrfft1d::Table Mcrfft1d::threadtable;
-void LoadWisdom()
+void loadWisdom()
{
static bool Wise=false;
if(!Wise) {
+ wisdomTemp << wisdomName << "_" << getpid();
ifstream ifWisdom;
- ifWisdom.open(fftw::WisdomName);
+ ifWisdom.open(wisdomName);
ostringstream wisdom;
wisdom << ifWisdom.rdbuf();
ifWisdom.close();
@@ -43,25 +43,34 @@ void LoadWisdom()
}
}
-void SaveWisdom()
+void saveWisdom()
{
- ofstream ofWisdom;
- ofWisdom.open(fftw::WisdomName);
- char *wisdom=fftw_export_wisdom_to_string();
- ofWisdom << wisdom;
- fftw_free(wisdom);
- ofWisdom.close();
+ if(fftw::wiser) {
+ char *wisdom=fftw_export_wisdom_to_string();
+ ofstream ofWisdom;
+ ofWisdom.open(wisdomTemp.str().c_str());
+ ofWisdom << wisdom;
+ fftw_free(wisdom);
+ ofWisdom.close();
+ rename(wisdomTemp.str().c_str(),wisdomName.c_str());
+ fftw::wiser=false;
+ }
}
fftw_plan Planner(fftw *F, Complex *in, Complex *out)
{
- LoadWisdom();
+ loadWisdom();
fftw::effort |= FFTW_WISDOM_ONLY;
fftw_plan plan=F->Plan(in,out);
fftw::effort &= ~FFTW_WISDOM_ONLY;
if(!plan) {
plan=F->Plan(in,out);
- SaveWisdom();
+ static bool first=true;
+ if(first) {
+ atexit(saveWisdom);
+ first=false;
+ }
+ fftw::wiser=true;
}
return plan;
}
@@ -71,5 +80,5 @@ ThreadBase::ThreadBase() {threads=fftw::maxthreads;}
}
namespace utils {
-unsigned int defaultmpithreads=1;
+size_t defaultmpithreads=1;
}
diff --git a/Build/source/utils/asymptote/fftw++.h b/Build/source/utils/asymptote/fftw++.h
index bf4102e06d9..162954623ed 100644
--- a/Build/source/utils/asymptote/fftw++.h
+++ b/Build/source/utils/asymptote/fftw++.h
@@ -1,5 +1,5 @@
/* Fast Fourier transform C++ header class for the FFTW3 Library
- Copyright (C) 2004-16
+ Copyright (C) 2004-2022
John C. Bowman, University of Alberta
Malcolm Roberts, University of Strasbourg
@@ -20,7 +20,7 @@
#ifndef __fftwpp_h__
#define __fftwpp_h__ 1
-#define __FFTWPP_H_VERSION__ 2.10
+#define __FFTWPP_H_VERSION__ 2.11
#include <cstdlib>
#include <fstream>
@@ -29,56 +29,16 @@
#include <cerrno>
#include <map>
#include <typeinfo>
+#include <climits>
-#ifndef _OPENMP
-#ifndef FFTWPP_SINGLE_THREAD
-#define FFTWPP_SINGLE_THREAD
-#endif
-#endif
-
-#ifndef FFTWPP_SINGLE_THREAD
-#include <omp.h>
-#endif
-
-inline int get_thread_num()
-{
-#ifdef FFTWPP_SINGLE_THREAD
- return 0;
-#else
- return omp_get_thread_num();
-#endif
-}
-
-inline int get_max_threads()
-{
-#ifdef FFTWPP_SINGLE_THREAD
- return 1;
-#else
- return omp_get_max_threads();
-#endif
-}
-
-#ifndef FFTWPP_SINGLE_THREAD
-#define PARALLEL(code) \
- if(threads > 1) { \
- _Pragma("omp parallel for num_threads(threads)") \
- code \
- } else { \
- code \
- }
-#else
-#define PARALLEL(code) \
- { \
- code \
- }
-#endif
+#include "seconds.h"
+#include "parallel.h"
#ifndef __Complex_h__
#include <complex>
typedef std::complex<double> Complex;
#endif
-#include "seconds.h"
#include "statistics.h"
#include "align.h"
@@ -97,35 +57,24 @@ extern "C" size_t fftw_alignment();
class fftw;
extern "C" fftw_plan Planner(fftw *F, Complex *in, Complex *out);
-void LoadWisdom();
-void SaveWisdom();
+void loadWisdom();
+void saveWisdom();
+extern std::string wisdomName;
extern const char *inout;
-struct threaddata {
- unsigned int threads;
- double mean;
- double stdev;
- threaddata() : threads(0), mean(0.0), stdev(0.0) {}
- threaddata(unsigned int threads, double mean, double stdev) :
- threads(threads), mean(mean), stdev(stdev) {}
-};
-
-class fftw;
-
class ThreadBase
{
-protected:
- unsigned int threads;
- unsigned int innerthreads;
public:
+ size_t threads;
+ size_t innerthreads;
ThreadBase();
- ThreadBase(unsigned int threads) : threads(threads) {}
- void Threads(unsigned int nthreads) {threads=nthreads;}
- unsigned int Threads() {return threads;}
- unsigned int Innerthreads() {return innerthreads;}
+ ThreadBase(size_t threads) : threads(threads) {}
+ void Threads(size_t nthreads) {threads=nthreads;}
+ size_t Threads() {return threads;}
+ size_t Innerthreads() {return innerthreads;}
- void multithread(unsigned int n) {
+ void multithread(size_t n) {
if(n >= threads) {
innerthreads=1;
} else {
@@ -133,65 +82,87 @@ public:
threads=1;
}
}
+
+ int get_thread_num0() {
+ return threads > 1 ? parallel::get_thread_num() : 0;
+ }
};
-inline unsigned int realsize(unsigned int n, Complex *in, Complex *out=NULL)
+inline size_t realsize(size_t n, bool inplace)
+{
+ return inplace ? 2*(n/2+1) : n;
+}
+
+inline size_t Inplace(Complex *in, Complex *out=NULL)
{
- return (!out || in == out) ? 2*(n/2+1) : n;
+ return !out || in == out;
}
-inline unsigned int realsize(unsigned int n, Complex *in, double *out)
+inline size_t Inplace(Complex *in, double *out)
{
- return realsize(n,in,(Complex *) out);
+ return Inplace(in,(Complex *) out);
}
-inline unsigned int realsize(unsigned int n, double *in, Complex *out)
+inline size_t Inplace(double *in, Complex *out)
{
- return realsize(n,(Complex *) in,out);
+ return Inplace((Complex *) in,out);
}
+class Doubles {
+public:
+ size_t rsize,csize;
+
+ Doubles(size_t nx, size_t M,
+ size_t istride, size_t ostride,
+ size_t idist, size_t odist, bool inplace) {
+ rsize=(realsize(nx,inplace)-2)*istride+(M-1)*idist+2;
+ csize=2*(nx/2*ostride+(M-1)*odist+1);
+ if(inplace)
+ rsize=csize=std::max(rsize,csize);
+ }
+};
+
// Base clase for fft routines
//
class fftw : public ThreadBase {
protected:
- unsigned int doubles; // number of double precision values in dataset
+ size_t doubles; // number of double precision values in output
int sign;
- unsigned int threads;
+ size_t threads;
double norm;
fftw_plan plan;
bool inplace;
- unsigned int Dist(unsigned int n, size_t stride, size_t dist) {
+ size_t Dist(size_t n, size_t stride, size_t dist) {
return dist ? dist : ((stride == 1) ? n : 1);
}
static const double twopi;
public:
- static unsigned int effort;
- static unsigned int maxthreads;
- static double testseconds;
- static const char *WisdomName;
+ static size_t effort;
+ static size_t maxthreads;
static fftw_plan (*planner)(fftw *f, Complex *in, Complex *out);
+ static bool wiser;
- virtual unsigned int Threads() {return threads;}
+ virtual size_t Threads() {return threads;}
static const char *oddshift;
// In-place shift of Fourier origin to (nx/2,0) for even nx.
- static void Shift(Complex *data, unsigned int nx, unsigned int ny,
- unsigned int threads) {
- unsigned int nyp=ny/2+1;
- unsigned int stop=nx*nyp;
+ static void Shift(Complex *data, size_t nx, size_t ny,
+ size_t threads) {
+ size_t nyp=ny/2+1;
+ size_t stop=nx*nyp;
if(nx % 2 == 0) {
- unsigned int inc=2*nyp;
+ size_t inc=2*nyp;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=nyp; i < stop; i += inc) {
+ for(size_t i=nyp; i < stop; i += inc) {
Complex *p=data+i;
- for(unsigned int j=0; j < nyp; j++) p[j]=-p[j];
+ for(size_t j=0; j < nyp; j++) p[j]=-p[j];
}
} else {
std::cerr << oddshift << std::endl;
@@ -200,17 +171,17 @@ public:
}
// Out-of-place shift of Fourier origin to (nx/2,0) for even nx.
- static void Shift(double *data, unsigned int nx, unsigned int ny,
- unsigned int threads) {
+ static void Shift(double *data, size_t nx, size_t ny,
+ size_t threads) {
if(nx % 2 == 0) {
- unsigned int stop=nx*ny;
- unsigned int inc=2*ny;
+ size_t stop=nx*ny;
+ size_t inc=2*ny;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=ny; i < stop; i += inc) {
+ for(size_t i=ny; i < stop; i += inc) {
double *p=data+i;
- for(unsigned int j=0; j < ny; j++) p[j]=-p[j];
+ for(size_t j=0; j < ny; j++) p[j]=-p[j];
}
} else {
std::cerr << oddshift << std::endl;
@@ -219,20 +190,20 @@ public:
}
// In-place shift of Fourier origin to (nx/2,ny/2,0) for even nx and ny.
- static void Shift(Complex *data, unsigned int nx, unsigned int ny,
- unsigned int nz, unsigned int threads) {
- unsigned int nzp=nz/2+1;
- unsigned int nyzp=ny*nzp;
+ static void Shift(Complex *data, size_t nx, size_t ny,
+ size_t nz, size_t threads) {
+ size_t nzp=nz/2+1;
+ size_t nyzp=ny*nzp;
if(nx % 2 == 0 && ny % 2 == 0) {
- unsigned int pinc=2*nzp;
+ size_t pinc=2*nzp;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; i++) {
+ for(size_t i=0; i < nx; i++) {
Complex *pstart=data+i*nyzp;
Complex *pstop=pstart+nyzp;
for(Complex *p=pstart+(1-(i % 2))*nzp; p < pstop; p += pinc) {
- for(unsigned int k=0; k < nzp; k++) p[k]=-p[k];
+ for(size_t k=0; k < nzp; k++) p[k]=-p[k];
}
}
} else {
@@ -242,19 +213,19 @@ public:
}
// Out-of-place shift of Fourier origin to (nx/2,ny/2,0) for even nx and ny.
- static void Shift(double *data, unsigned int nx, unsigned int ny,
- unsigned int nz, unsigned int threads) {
- unsigned int nyz=ny*nz;
+ static void Shift(double *data, size_t nx, size_t ny,
+ size_t nz, size_t threads) {
+ size_t nyz=ny*nz;
if(nx % 2 == 0 && ny % 2 == 0) {
- unsigned int pinc=2*nz;
+ size_t pinc=2*nz;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; i++) {
+ for(size_t i=0; i < nx; i++) {
double *pstart=data+i*nyz;
double *pstop=pstart+nyz;
for(double *p=pstart+(1-(i % 2))*nz; p < pstop; p += pinc) {
- for(unsigned int k=0; k < nz; k++) p[k]=-p[k];
+ for(size_t k=0; k < nz; k++) p[k]=-p[k];
}
}
} else {
@@ -264,8 +235,8 @@ public:
}
fftw() : plan(NULL) {}
- fftw(unsigned int doubles, int sign, unsigned int threads,
- unsigned int n=0) :
+ fftw(size_t doubles, int sign, size_t threads,
+ size_t n=0) :
doubles(doubles), sign(sign), threads(threads),
norm(1.0/(n ? n : doubles/2)), plan(NULL) {
#ifndef FFTWPP_SINGLE_THREAD
@@ -274,7 +245,8 @@ public:
}
virtual ~fftw() {
- if(plan) fftw_destroy_plan(plan);
+ if(plan)
+ fftw_destroy_plan(plan);
}
virtual fftw_plan Plan(Complex *in, Complex *out) {return NULL;};
@@ -290,72 +262,13 @@ public:
exit(1);
}
- static void planThreads(unsigned int threads) {
+ static void planThreads(size_t threads) {
#ifndef FFTWPP_SINGLE_THREAD
omp_set_num_threads(threads);
fftw_plan_with_nthreads(threads);
#endif
}
- threaddata time(fftw_plan plan1, fftw_plan planT, Complex *in, Complex *out,
- unsigned int Threads) {
- utils::statistics S,ST;
- double stop=utils::totalseconds()+testseconds;
- threads=1;
- plan=plan1;
- fft(in,out);
- threads=Threads;
- plan=planT;
- fft(in,out);
- unsigned int N=1;
- unsigned int ndoubles=doubles/2;
- for(;;) {
- double t0=utils::totalseconds();
- threads=1;
- plan=plan1;
- for(unsigned int i=0; i < N; ++i) {
- for(unsigned int i=0; i < ndoubles; ++i) out[i]=i;
- fft(in,out);
- }
- double t1=utils::totalseconds();
- threads=Threads;
- plan=planT;
- for(unsigned int i=0; i < N; ++i) {
- for(unsigned int i=0; i < ndoubles; ++i) out[i]=i;
- fft(in,out);
- }
- double t=utils::totalseconds();
- S.add(t1-t0);
- ST.add(t-t1);
- if(S.mean() < 100.0/CLOCKS_PER_SEC) {
- N *= 2;
- S.clear();
- ST.clear();
- }
- if(S.count() >= 10) {
- double error=S.stdev();
- double diff=ST.mean()-S.mean();
- if(diff >= 0.0 || t > stop) {
- threads=1;
- plan=plan1;
- fftw_destroy_plan(planT);
- break;
- }
- if(diff < -error) {
- threads=Threads;
- fftw_destroy_plan(plan1);
- break;
- }
- }
- }
- return threaddata(threads,S.mean(),S.stdev());
- }
-
- virtual threaddata lookup(bool inplace, unsigned int threads) {
- return threaddata();
- }
- virtual void store(bool inplace, const threaddata& data) {}
-
inline Complex *CheckAlign(Complex *in, Complex *out, bool constructor=true)
{
#ifndef NO_CHECK_ALIGN
@@ -368,51 +281,41 @@ public:
return out;
}
- threaddata Setup(Complex *in, Complex *out=NULL) {
+ void Setup(Complex *in, Complex *out=NULL) {
bool alloc=!in;
if(alloc) in=utils::ComplexAlign((doubles+1)/2);
out=CheckAlign(in,out);
inplace=(out==in);
- threaddata data;
- unsigned int Threads=threads;
-
- if(threads > 1) data=lookup(inplace,threads);
- else data=threaddata(1,0.0,0.0);
+ parallel::Threshold(threads);
+ if(doubles < 2*threshold)
+ threads=1;
- threads=data.threads > 0 ? data.threads : 1;
planThreads(threads);
plan=(*planner)(this,in,out);
if(!plan) noplan();
- fftw_plan planT;
- if(fftw::maxthreads > 1) {
- threads=Threads;
- planThreads(threads);
- planT=(*planner)(this,in,out);
-
- if(data.threads == 0) {
- if(planT)
- data=time(plan,planT,in,out,threads);
- else noplan();
- store(inplace,threaddata(threads,data.mean,data.stdev));
- }
- }
-
if(alloc) Array::deleteAlign(in,(doubles+1)/2);
#ifdef FFTWPP_VERBOSE
if(threads > 1)
std::cout << "Using " << threads << " threads." << std::endl;
#endif
- return data;
}
- threaddata Setup(Complex *in, double *out) {
- return Setup(in,(Complex *) out);
+ void Setup(Complex *in, double *out) {
+ parallel::Threshold(threads);
+ if(doubles < 4*threshold)
+ threads=1;
+
+ Setup(in,(Complex *) out);
}
- threaddata Setup(double *in, Complex *out=NULL) {
- return Setup((Complex *) in,out);
+ void Setup(double *in, Complex *out=NULL) {
+ parallel::Threshold(threads);
+ if(doubles < 4*threshold)
+ threads=1;
+
+ Setup((Complex *) in,out);
}
virtual void Execute(Complex *in, Complex *out, bool=false) {
@@ -455,51 +358,67 @@ public:
}
void Normalize(Complex *out) {
- unsigned int stop=doubles/2;
+ size_t stop=doubles/2;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < stop; i++) out[i] *= norm;
+ for(size_t i=0; i < stop; i++) out[i] *= norm;
}
void Normalize(double *out) {
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < doubles; i++) out[i] *= norm;
+ for(size_t i=0; i < doubles; i++) out[i] *= norm;
}
- virtual void fftNormalized(Complex *in, Complex *out=NULL, bool shift=false)
+ void fftNormalized(Complex *in, Complex *out=NULL)
{
out=Setout(in,out);
- Execute(in,out,shift);
+ Execute(in,out);
Normalize(out);
}
- virtual void fftNormalized(Complex *in, double *out, bool shift=false) {
+ void fftNormalized(Complex *in, double *out) {
out=(double *) Setout(in,(Complex *) out);
- Execute(in,(Complex *) out,shift);
+ Execute(in,(Complex *) out);
Normalize(out);
}
- virtual void fftNormalized(double *in, Complex *out, bool shift=false) {
- fftNormalized((Complex *) in,out,shift);
+ void fftNormalized(double *in, Complex *out) {
+ out=Setout((Complex *) in,out);
+ Execute((Complex *) in,out);
+ Normalize(out);
}
- template<class I, class O>
- void fft0Normalized(I in, O out) {
- fftNormalized(in,out,true);
+ void fft0Normalized(Complex *in, Complex *out=NULL)
+ {
+ out=Setout(in,out);
+ Execute(in,out,true);
+ Normalize(out);
+ }
+
+ void fft0Normalized(Complex *in, double *out) {
+ out=(double *) Setout(in,(Complex *) out);
+ Execute(in,(Complex *) out,true);
+ Normalize(out);
+ }
+
+ void fft0Normalized(double *in, Complex *out) {
+ out=Setout((Complex *) in,out);
+ Execute((Complex *) in,out,true);
+ Normalize(out);
}
template<class O>
- void Normalize(unsigned int nx, unsigned int M, size_t ostride,
+ void Normalize(size_t nx, size_t M, size_t ostride,
size_t odist, O *out) {
- unsigned int stop=nx*ostride;
+ size_t stop=nx*ostride;
O *outMdist=out+M*odist;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < stop; i += ostride) {
+ for(size_t i=0; i < stop; i += ostride) {
O *pstop=outMdist+i;
for(O *p=out+i; p < pstop; p += odist) {
*p *= norm;
@@ -508,10 +427,10 @@ public:
}
template<class I, class O>
- void fftNormalized(unsigned int nx, unsigned int M, size_t ostride,
- size_t odist, I *in, O *out=NULL, bool shift=false) {
+ void fftNormalized(size_t nx, size_t M, size_t ostride,
+ size_t odist, I *in, O *out) {
out=(O *) Setout((Complex *) in,(Complex *) out);
- Execute((Complex *) in,(Complex *) out,shift);
+ Execute((Complex *) in,(Complex *) out);
Normalize(nx,M,ostride,odist,out);
}
@@ -522,9 +441,9 @@ class Transpose {
bool inplace;
public:
template<class T>
- Transpose(unsigned int rows, unsigned int cols, unsigned int length,
- T *in, T *out=NULL, unsigned int threads=fftw::maxthreads) {
- unsigned int size=sizeof(T);
+ Transpose(size_t rows, size_t cols, size_t length,
+ T *in, T *out=NULL, size_t threads=fftw::maxthreads) {
+ size_t size=sizeof(T);
if(size % sizeof(double) != 0) {
std::cerr << "ERROR: Transpose is not implemented for type of size "
<< size;
@@ -537,6 +456,10 @@ public:
size /= sizeof(double);
length *= size;
+ parallel::Threshold(threads);
+ if(length*rows*cols/2 < threshold)
+ threads=1;
+
fftw::planThreads(threads);
fftw_iodim dims[3];
@@ -559,7 +482,8 @@ public:
}
~Transpose() {
- if(plan) fftw_destroy_plan(plan);
+ if(plan)
+ fftw_destroy_plan(plan);
}
template<class T>
@@ -577,74 +501,35 @@ public:
template<class T, class L>
class Threadtable {
public:
- typedef std::map<T,threaddata,L> Table;
+ typedef std::map<T,size_t,L> Table;
- threaddata Lookup(Table& table, T key) {
+ size_t Lookup(Table& table, T key) {
typename Table::iterator p=table.find(key);
- return p == table.end() ? threaddata() : p->second;
+ return p == table.end() ? 0 : p->second;
}
- void Store(Table& threadtable, T key, const threaddata& data) {
- threadtable[key]=data;
+ void Store(Table& threadtable, T key, size_t t) {
+ threadtable[key]=t;
}
};
-struct keytype1 {
- unsigned int nx;
- unsigned int threads;
+struct keytype {
+ size_t nx;
+ size_t M;
+ size_t threads;
bool inplace;
- keytype1(unsigned int nx, unsigned int threads, bool inplace) :
- nx(nx), threads(threads), inplace(inplace) {}
+ keytype(size_t nx, size_t M, size_t threads,
+ bool inplace) :
+ nx(nx), M(M), threads(threads), inplace(inplace) {}
};
-struct keyless1 {
- bool operator()(const keytype1& a, const keytype1& b) const {
+struct keyless {
+ bool operator()(const keytype& a, const keytype& b) const {
return a.nx < b.nx || (a.nx == b.nx &&
- (a.threads < b.threads || (a.threads == b.threads &&
- a.inplace < b.inplace)));
- }
-};
-
-struct keytype2 {
- unsigned int nx;
- unsigned int ny;
- unsigned int threads;
- bool inplace;
- keytype2(unsigned int nx, unsigned int ny, unsigned int threads,
- bool inplace) :
- nx(nx), ny(ny), threads(threads), inplace(inplace) {}
-};
-
-struct keyless2 {
- bool operator()(const keytype2& a, const keytype2& b) const {
- return a.nx < b.nx || (a.nx == b.nx &&
- (a.ny < b.ny || (a.ny == b.ny &&
- (a.threads < b.threads ||
- (a.threads == b.threads &&
- a.inplace < b.inplace)))));
- }
-};
-
-struct keytype3 {
- unsigned int nx;
- unsigned int ny;
- unsigned int nz;
- unsigned int threads;
- bool inplace;
- keytype3(unsigned int nx, unsigned int ny, unsigned int nz,
- unsigned int threads, bool inplace) :
- nx(nx), ny(ny), nz(nz), threads(threads), inplace(inplace) {}
-};
-
-struct keyless3 {
- bool operator()(const keytype3& a, const keytype3& b) const {
- return a.nx < b.nx || (a.nx == b.nx &&
- (a.ny < b.ny || (a.ny == b.ny &&
- (a.nz < b.nz ||
- (a.nz == b.nz &&
+ (a.M < b.M || (a.M == b.M &&
(a.threads < b.threads ||
(a.threads == b.threads &&
- a.inplace < b.inplace)))))));
+ a.inplace < b.inplace)))));
}
};
@@ -671,28 +556,20 @@ struct keyless3 {
// fft1d Backward(n,1);
// Backward.fft(in);
//
-class fft1d : public fftw, public Threadtable<keytype1,keyless1> {
- unsigned int nx;
- static Table threadtable;
+class fft1d : public fftw {
+ size_t nx;
public:
- fft1d(unsigned int nx, int sign, Complex *in=NULL, Complex *out=NULL,
- unsigned int threads=maxthreads)
+ fft1d(size_t nx, int sign, Complex *in=NULL, Complex *out=NULL,
+ size_t threads=maxthreads)
: fftw(2*nx,sign,threads), nx(nx) {Setup(in,out);}
#ifdef __Array_h__
fft1d(int sign, const Array::array1<Complex>& in,
const Array::array1<Complex>& out=Array::NULL1,
- unsigned int threads=maxthreads)
+ size_t threads=maxthreads)
: fftw(2*in.Nx(),sign,threads), nx(in.Nx()) {Setup(in,out);}
#endif
- threaddata lookup(bool inplace, unsigned int threads) {
- return this->Lookup(threadtable,keytype1(nx,threads,inplace));
- }
- void store(bool inplace, const threaddata& data) {
- this->Store(threadtable,keytype1(nx,data.threads,inplace),data);
- }
-
fftw_plan Plan(Complex *in, Complex *out) {
return fftw_plan_dft_1d(nx,(fftw_complex *) in,(fftw_complex *) out,
sign,effort);
@@ -700,62 +577,126 @@ public:
};
template<class I, class O>
-class fftwblock : public virtual fftw {
+class fftwblock : public virtual fftw,
+ public virtual Threadtable<keytype,keyless> {
public:
int nx;
- unsigned int M;
+ size_t M;
size_t istride,ostride;
size_t idist,odist;
fftw_plan plan1,plan2;
- unsigned int T,Q,R;
- fftwblock(unsigned int nx, unsigned int M,
- size_t istride, size_t ostride, size_t idist, size_t odist,
- Complex *in, Complex *out, unsigned int Threads)
+ size_t T,Q,R;
+ fftwblock() : plan1(NULL), plan2(NULL) {}
+
+ fftwblock(size_t nx, size_t M,
+ size_t istride, size_t ostride, size_t idist, size_t odist)
: fftw(), nx(nx), M(M), istride(istride), ostride(ostride),
idist(Dist(nx,istride,idist)), odist(Dist(nx,ostride,odist)),
- plan1(NULL), plan2(NULL) {
+ plan1(NULL), plan2(NULL) {}
+
+ void init(Complex *in, Complex *out, size_t Threads,
+ Table& threadtable) {
T=1;
Q=M;
R=0;
- threaddata S1=Setup(in,out);
- fftw_plan planT1=plan;
- threads=S1.threads;
- bool hermitian=typeid(I) == typeid(double) || typeid(O) == typeid(double);
+ if(Threads > M && M > 1) Threads=M;
- if(fftw::maxthreads > 1 && (!hermitian || ostride*(nx/2+1) < idist)) {
- if(Threads > 1) {
- T=std::min(M,Threads);
+ threads=Threads;
+ Setup(in,out);
+ Threads=threads;
+
+ size_t T0=Threads;
+ if(T0 > 1) {
+ size_t nxp=nx/2+1;
+ size_t olength=0;
+ size_t ilength=0;
+ if(typeid(I) == typeid(double)) {
+ ilength=nx;
+ olength=nxp;
+ }
+ if(typeid(O) == typeid(double)) {
+ ilength=nxp;
+ olength=nx;
+ }
+ if(!inplace ||
+ (ostride*olength*sizeof(O) <= idist*sizeof(I) &&
+ odist*sizeof(O) >= istride*ilength*sizeof(I))) {
+ T=T0;
Q=T > 0 ? M/T : 0;
R=M-Q*T;
- threads=Threads;
- threaddata ST=Setup(in,out);
-
- if(R > 0 && threads == 1 && plan1 != plan2) {
- fftw_destroy_plan(plan2);
- plan2=plan1;
+ size_t data=Lookup(threadtable,keytype(nx,M,Threads,inplace));
+ if(data == 1)
+ T0=1;
+ else {
+ fftw_plan planFFTW=plan;
+ threads=1;
+ Setup(in,out);
+ plan1=plan;
+ if(data == T) {
+ plan=NULL;
+ return;
+ }
+ plan=planFFTW;
}
+ } else T0=1;
+ }
- if(ST.mean > S1.mean-S1.stdev) { // Use FFTW's multi-threading
- fftw_destroy_plan(plan);
- if(R > 0) {
- fftw_destroy_plan(plan2);
- plan2=NULL;
- }
- T=1;
- Q=M;
- R=0;
- plan=planT1;
- } else { // Do the multi-threading ourselves
- fftw_destroy_plan(planT1);
- threads=ST.threads;
+ if(T0 == 1 || time(in,out)) { // Use FFTW's multithreading
+ T=1;
+ if(plan1) {
+ fftw_destroy_plan(plan1);
+ plan1=NULL;
+ if(plan2) {
+ fftw_destroy_plan(plan2);
+ plan2=NULL;
}
- } else
- Setup(in,out); // Synchronize wisdom
+ threads=Threads;
+ Store(threadtable,keytype(nx,M,Threads,inplace),T);
+ }
+ } else { // Do the multithreading ourselves
+ T=T0;
+ threads=T;
+ Store(threadtable,keytype(nx,M,Threads,inplace),T);
}
}
+ bool time(Complex *in, Complex *out) {
+ utils::statistics S(true),ST(true);
+ utils::statistics medianS(true),medianST(true);
+
+ double eps=0.02;
+
+ size_t T0=T;
+
+ do {
+ T=1; // FFTW
+ utils::cpuTimer C;
+ inplace ? fftNormalized(in,out) : fft(in,out);
+ S.add(C.nanoseconds());
+
+ T=T0; // BLOCK
+ utils::cpuTimer CT;
+ inplace ? fftNormalized(in,out) : fft(in,out);
+ ST.add(CT.nanoseconds());
+
+ if(S.count() >= 4 && ST.min() >= S.max())
+ return true;
+
+ if(S.count() >= 4 && S.min() >= ST.max())
+ return false;
+
+ medianS.add(S.median());
+ medianST.add(ST.median());
+
+ } while(S.count() < 5 || medianS.stderror() > eps*medianS.mean() ||
+ medianST.stderror() > eps*medianST.mean());
+
+ return S.median() <= ST.median();
+ }
+
+
fftw_plan Plan(int Q, fftw_complex *in, fftw_complex *out) {
return fftw_plan_many_dft(1,&nx,Q,in,NULL,istride,idist,
out,NULL,ostride,odist,sign,effort);
@@ -775,7 +716,6 @@ public:
if(R > 0) {
plan2=Plan(Q+1,(I *) in,(O *) out);
if(!plan2) return NULL;
- if(threads == 1) plan1=plan2;
}
return Plan(Q,(I *) in,(O *) out);
}
@@ -796,26 +736,62 @@ public:
if(T == 1)
Execute(plan,(I *) in,(O *) out);
else {
- unsigned int extra=T-R;
+ size_t extra=T-R;
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(T)
#endif
- for(unsigned int i=0; i < T; ++i) {
- unsigned int iQ=i*Q;
+ for(size_t i=0; i < T; ++i) {
+ size_t iQ=i*Q;
if(i < extra)
- Execute(plan,(I *) in+iQ*idist,(O *) out+iQ*odist);
+ Execute(plan1,(I *) in+iQ*idist,(O *) out+iQ*odist);
else {
- unsigned int offset=iQ+i-extra;
+ size_t offset=iQ+i-extra;
Execute(plan2,(I *) in+offset*idist,(O *) out+offset*odist);
}
}
}
}
- unsigned int Threads() {return std::max(T,threads);}
+ size_t Threads() {return std::max(T,threads);}
~fftwblock() {
- if(plan2) fftw_destroy_plan(plan2);
+ if(plan1)
+ fftw_destroy_plan(plan1);
+ if(plan2)
+ fftw_destroy_plan(plan2);
+ }
+};
+
+class Mfft1d : public fftwblock<fftw_complex,fftw_complex>,
+ public virtual Threadtable<keytype,keyless> {
+ static Table threadtable;
+public:
+ Mfft1d(size_t nx, int sign, size_t M=1,
+ Complex *in=NULL, Complex *out=NULL,
+ size_t threads=maxthreads) :
+ fftw(2*((nx-1)+(M-1)*nx+1),sign,threads,nx),
+ fftwblock<fftw_complex,fftw_complex>(nx,M,1,1,nx,nx) {
+ init(in,out,threads,threadtable);
+ }
+
+ Mfft1d(size_t nx, int sign, size_t M, size_t stride=1,
+ size_t dist=0, Complex *in=NULL, Complex *out=NULL,
+ size_t threads=maxthreads) :
+ fftw(2*((nx-1)*stride+(M-1)*Dist(nx,stride,dist)+1),sign,threads,nx),
+ fftwblock<fftw_complex,fftw_complex>
+ (nx,M,stride,stride,dist,dist) {
+ init(in,out,threads,threadtable);
+ }
+
+ Mfft1d(size_t nx, int sign, size_t M,
+ size_t istride, size_t ostride, size_t idist, size_t odist,
+ Complex *in, Complex *out, size_t threads=maxthreads):
+ fftw(std::max(2*((nx-1)*istride+(M-1)*Dist(nx,istride,idist)+1),
+ 2*((nx-1)*ostride+(M-1)*Dist(nx,ostride,odist)+1)),sign,
+ threads,nx),
+ fftwblock<fftw_complex,fftw_complex>(nx,M,istride,ostride,idist,odist)
+ {
+ init(in,out,threads,threadtable);
}
};
@@ -844,38 +820,74 @@ public:
// dist is the spacing between the first elements of the vectors.
//
//
-class mfft1d : public fftwblock<fftw_complex,fftw_complex>,
- public Threadtable<keytype3,keyless3> {
- static Table threadtable;
+class mfft1d {
+ bool single;
+ fft1d *fft1;
+ Mfft1d *fftm;
public:
- mfft1d(unsigned int nx, int sign, unsigned int M=1,
+ mfft1d(size_t nx, int sign, size_t M=1,
Complex *in=NULL, Complex *out=NULL,
- unsigned int threads=maxthreads) :
- fftw(2*((nx-1)+(M-1)*nx+1),sign,threads,nx),
- fftwblock<fftw_complex,fftw_complex>
- (nx,M,1,1,nx,nx,in,out,threads) {}
+ size_t threads=fftw::maxthreads) : single(M == 1) {
+ if(single)
+ fft1=new fft1d(nx,sign,in,out,threads);
+ else
+ fftm=new Mfft1d(nx,sign,M,in,out,threads);
+ }
- mfft1d(unsigned int nx, int sign, unsigned int M, size_t stride=1,
+ mfft1d(size_t nx, int sign, size_t M, size_t stride=1,
size_t dist=0, Complex *in=NULL, Complex *out=NULL,
- unsigned int threads=maxthreads) :
- fftw(2*((nx-1)*stride+(M-1)*Dist(nx,stride,dist)+1),sign,threads,nx),
- fftwblock<fftw_complex,fftw_complex>
- (nx,M,stride,stride,dist,dist,in,out,threads) {}
+ size_t threads=fftw::maxthreads) :
+ single(M == 1 && stride == 1) {
+ if(single)
+ fft1=new fft1d(nx,sign,in,out,threads);
+ else
+ fftm=new Mfft1d(nx,sign,M,stride,dist,in,out,threads);
+ }
- mfft1d(unsigned int nx, int sign, unsigned int M,
+ mfft1d(size_t nx, int sign, size_t M,
size_t istride, size_t ostride, size_t idist, size_t odist,
- Complex *in, Complex *out, unsigned int threads=maxthreads):
- fftw(std::max(2*((nx-1)*istride+(M-1)*Dist(nx,istride,idist)+1),
- 2*((nx-1)*ostride+(M-1)*Dist(nx,ostride,odist)+1)),sign,
- threads, nx),
- fftwblock<fftw_complex,fftw_complex>(nx,M,istride,ostride,idist,odist,in,
- out,threads) {}
+ Complex *in, Complex *out, size_t threads=fftw::maxthreads) :
+ single(M == 1 && istride == 1 && ostride == 1) {
+ if(single)
+ fft1=new fft1d(nx,sign,in,out,threads);
+ else
+ fftm=new Mfft1d(nx,sign,M,istride,ostride,idist,odist,in,out,threads);
+ }
+
+ size_t Threads() {
+ return single ? fft1->Threads() : fftm->Threads();
+ }
- threaddata lookup(bool inplace, unsigned int threads) {
- return Lookup(threadtable,keytype3(nx,Q,R,threads,inplace));
+ template<class I>
+ void fft(I in) {
+ single ? fft1->fft(in) : fftm->fft(in);
}
- void store(bool inplace, const threaddata& data) {
- Store(threadtable,keytype3(nx,Q,R,data.threads,inplace),data);
+
+ template<class I, class O>
+ void fft(I in, O out) {
+ single ? fft1->fft(in,out) : fftm->fft(in,out);
+ }
+
+ template<class I>
+ void fftNormalized(I in) {
+ single ? fft1->fftNormalized(in) : fftm->fftNormalized(in);
+ }
+
+ template<class I, class O>
+ void fftNormalized(I in, O out) {
+ single ? fft1->fftNormalized(in,out) : fftm->fftNormalized(in,out);
+ }
+
+ template<class O>
+ void Normalize(O out) {
+ single ? fft1->Normalize(out) : fftm->Normalize(out);
+ }
+
+ ~mfft1d() {
+ if(single)
+ delete fft1;
+ else
+ delete fftm;
}
};
@@ -898,24 +910,16 @@ public:
// in contains the n real values stored as a Complex array;
// out contains the first n/2+1 Complex Fourier values.
//
-class rcfft1d : public fftw, public Threadtable<keytype1,keyless1> {
- unsigned int nx;
- static Table threadtable;
+class rcfft1d : public fftw {
+ size_t nx;
public:
- rcfft1d(unsigned int nx, Complex *out=NULL, unsigned int threads=maxthreads)
+ rcfft1d(size_t nx, Complex *out=NULL, size_t threads=maxthreads)
: fftw(2*(nx/2+1),-1,threads,nx), nx(nx) {Setup(out,(double*) NULL);}
- rcfft1d(unsigned int nx, double *in, Complex *out=NULL,
- unsigned int threads=maxthreads)
+ rcfft1d(size_t nx, double *in, Complex *out=NULL,
+ size_t threads=maxthreads)
: fftw(2*(nx/2+1),-1,threads,nx), nx(nx) {Setup(in,out);}
- threaddata lookup(bool inplace, unsigned int threads) {
- return Lookup(threadtable,keytype1(nx,threads,inplace));
- }
- void store(bool inplace, const threaddata& data) {
- Store(threadtable,keytype1(nx,data.threads,inplace),data);
- }
-
fftw_plan Plan(Complex *in, Complex *out) {
return fftw_plan_dft_r2c_1d(nx,(double *) in,(fftw_complex *) out, effort);
}
@@ -946,23 +950,15 @@ public:
// in contains the first n/2+1 Complex Fourier values.
// out contains the n real values stored as a Complex array;
//
-class crfft1d : public fftw, public Threadtable<keytype1,keyless1> {
- unsigned int nx;
- static Table threadtable;
+class crfft1d : public fftw {
+ size_t nx;
public:
- crfft1d(unsigned int nx, double *out=NULL, unsigned int threads=maxthreads)
+ crfft1d(size_t nx, double *out=NULL, size_t threads=maxthreads)
: fftw(2*(nx/2+1),1,threads,nx), nx(nx) {Setup(out);}
- crfft1d(unsigned int nx, Complex *in, double *out=NULL,
- unsigned int threads=maxthreads)
- : fftw(realsize(nx,in,out),1,threads,nx), nx(nx) {Setup(in,out);}
-
- threaddata lookup(bool inplace, unsigned int threads) {
- return Lookup(threadtable,keytype1(nx,threads,inplace));
- }
- void store(bool inplace, const threaddata& data) {
- Store(threadtable,keytype1(nx,data.threads,inplace),data);
- }
+ crfft1d(size_t nx, Complex *in, double *out=NULL,
+ size_t threads=maxthreads)
+ : fftw(realsize(nx,Inplace(in,out)),1,threads,nx), nx(nx) {Setup(in,out);}
fftw_plan Plan(Complex *in, Complex *out) {
return fftw_plan_dft_c2r_1d(nx,(fftw_complex *) in,(double *) out,effort);
@@ -973,6 +969,29 @@ public:
}
};
+class Mrcfft1d : public fftwblock<double,fftw_complex>,
+ public virtual Threadtable<keytype,keyless> {
+ static Table threadtable;
+public:
+ Mrcfft1d(size_t nx, size_t M, size_t istride, size_t ostride,
+ size_t idist, size_t odist, double *in=NULL, Complex *out=NULL,
+ size_t threads=maxthreads)
+ : fftw(Doubles(nx,M,istride,ostride,idist,odist,Inplace(in,out)).csize,
+ -1,threads,nx),
+ fftwblock<double,fftw_complex>
+ (nx,M,istride,ostride,idist,odist) {
+ init((Complex *) in,out,threads,threadtable);
+ }
+
+ void Normalize(Complex *out) {
+ fftw::Normalize<Complex>(nx/2+1,M,ostride,odist,out);
+ }
+
+ void fftNormalized(double *in, Complex *out=NULL) {
+ fftw::fftNormalized<double,Complex>(nx/2+1,M,ostride,odist,in,out);
+ }
+};
+
// Compute the real Fourier transform of M real vectors, each of length n,
// using phase sign -1. Before calling fft(), the array in must be
// allocated as double[M*n] and the array out must be allocated as
@@ -997,38 +1016,77 @@ public:
// in contains the n real values stored as a Complex array;
// out contains the first n/2+1 Complex Fourier values.
//
-class mrcfft1d : public fftwblock<double,fftw_complex>,
- public Threadtable<keytype3,keyless3> {
- static Table threadtable;
+class mrcfft1d {
+ bool single;
+ rcfft1d *fft1;
+ Mrcfft1d *fftm;
public:
- mrcfft1d(unsigned int nx, unsigned int M,
- size_t istride, size_t ostride,
- size_t idist, size_t odist,
- double *in=NULL, Complex *out=NULL,
- unsigned int threads=maxthreads)
- : fftw(std::max((realsize(nx,in,out)-2)*istride+(M-1)*idist+2,
- 2*(nx/2*ostride+(M-1)*odist+1)),-1,threads,nx),
- fftwblock<double,fftw_complex>
- (nx,M,istride,ostride,idist,odist,(Complex *) in,out,threads) {}
+ mrcfft1d(size_t nx, size_t M, size_t istride, size_t ostride,
+ size_t idist, size_t odist, double *in=NULL, Complex *out=NULL,
+ size_t threads=fftw::maxthreads) :
+ single(M == 1 && istride == 1 && ostride == 1) {
+ if(single)
+ fft1=new rcfft1d(nx,in,out,threads);
+ else
+ fftm=new Mrcfft1d(nx,M,istride,ostride,idist,odist,in,out,threads);
+ }
- threaddata lookup(bool inplace, unsigned int threads) {
- return Lookup(threadtable,keytype3(nx,Q,R,threads,inplace));
+ size_t Threads() {
+ return single ? fft1->Threads() : fftm->Threads();
}
- void store(bool inplace, const threaddata& data) {
- Store(threadtable,keytype3(nx,Q,R,data.threads,inplace),data);
+ template<class I>
+ void fft(I in) {
+ single ? fft1->fft(in) : fftm->fft(in);
+ }
+
+ template<class I, class O>
+ void fft(I in, O out) {
+ single ? fft1->fft(in,out) : fftm->fft(in,out);
}
void Normalize(Complex *out) {
- fftw::Normalize<Complex>(nx/2+1,M,ostride,odist,out);
+ single ? fft1->Normalize(out) : fftm->Normalize(out);
+ }
+
+ template<class I>
+ void fftNormalized(I in) {
+ single ? fft1->fftNormalized(in) : fftm->fftNormalized(in);
}
- void fftNormalized(double *in, Complex *out=NULL, bool shift=false) {
- fftw::fftNormalized<double,Complex>(nx/2+1,M,ostride,odist,in,out,false);
+ template<class I, class O>
+ void fftNormalized(I in, O out=NULL) {
+ single ? fft1->fftNormalized(in,out) : fftm->fftNormalized(in,out);
}
- void fft0Normalized(double *in, Complex *out=NULL) {
- fftw::fftNormalized<double,Complex>(nx/2+1,M,ostride,odist,in,out,true);
+ ~mrcfft1d() {
+ if(single)
+ delete fft1;
+ else
+ delete fftm;
+ }
+};
+
+class Mcrfft1d : public fftwblock<fftw_complex,double>,
+ public virtual Threadtable<keytype,keyless> {
+ static Table threadtable;
+public:
+ Mcrfft1d(size_t nx, size_t M, size_t istride, size_t ostride,
+ size_t idist, size_t odist, Complex *in=NULL, double *out=NULL,
+ size_t threads=maxthreads)
+ : fftw(Doubles(nx,M,ostride,istride,odist,idist,Inplace(in,out)).rsize,
+ 1,threads,nx),
+ fftwblock<fftw_complex,double>
+ (nx,M,istride,ostride,idist,odist) {
+ init(in,(Complex *) out,threads,threadtable);
+ }
+
+ void Normalize(double *out) {
+ fftw::Normalize<double>(nx,M,ostride,odist,out);
+ }
+
+ void fftNormalized(Complex *in, double *out=NULL) {
+ fftw::fftNormalized<Complex,double>(nx,M,ostride,odist,in,out);
}
};
@@ -1055,36 +1113,54 @@ public:
// in contains the first n/2+1 Complex Fourier values;
// out contains the n real values stored as a Complex array.
//
-class mcrfft1d : public fftwblock<fftw_complex,double>,
- public Threadtable<keytype3,keyless3> {
- static Table threadtable;
+class mcrfft1d {
+ bool single;
+ crfft1d *fft1;
+ Mcrfft1d *fftm;
public:
- mcrfft1d(unsigned int nx, unsigned int M, size_t istride, size_t ostride,
+ mcrfft1d(size_t nx, size_t M, size_t istride, size_t ostride,
size_t idist, size_t odist, Complex *in=NULL, double *out=NULL,
- unsigned int threads=maxthreads)
- : fftw(std::max(2*(nx/2*istride+(M-1)*idist+1),
- (realsize(nx,in,out)-2)*ostride+(M-1)*odist+2),1,threads,nx),
- fftwblock<fftw_complex,double>
- (nx,M,istride,ostride,idist,odist,in,(Complex *) out,threads) {}
+ size_t threads=fftw::maxthreads) :
+ single(M == 1 && istride == 1 && ostride == 1) {
+ if(single)
+ fft1=new crfft1d(nx,in,out,threads);
+ else
+ fftm=new Mcrfft1d(nx,M,istride,ostride,idist,odist,in,out,threads);
+ }
+
+ size_t Threads() {
+ return single ? fft1->Threads() : fftm->Threads();
+ }
- threaddata lookup(bool inplace, unsigned int threads) {
- return Lookup(threadtable,keytype3(nx,Q,R,threads,inplace));
+ template<class I>
+ void fft(I in) {
+ single ? fft1->fft(in) : fftm->fft(in);
}
- void store(bool inplace, const threaddata& data) {
- Store(threadtable,keytype3(nx,Q,R,data.threads,inplace),data);
+ template<class I, class O>
+ void fft(I in, O out) {
+ single ? fft1->fft(in,out) : fftm->fft(in,out);
}
void Normalize(double *out) {
- fftw::Normalize<double>(nx,M,ostride,odist,out);
+ single ? fft1->Normalize(out) : fftm->Normalize(out);
}
- void fftNormalized(Complex *in, double *out=NULL, bool shift=false) {
- fftw::fftNormalized<Complex,double>(nx,M,ostride,odist,in,out,false);
+ template<class I>
+ void fftNormalized(I in) {
+ single ? fft1->fftNormalized(in) : fftm->fftNormalized(in);
}
- void fft0Normalized(Complex *in, double *out=NULL) {
- fftw::fftNormalized<Complex,double>(nx,M,ostride,odist,in,out,true);
+ template<class I, class O>
+ void fftNormalized(I in, O out=NULL) {
+ single ? fft1->fftNormalized(in,out) : fftm->fftNormalized(in,out);
+ }
+
+ ~mcrfft1d() {
+ if(single)
+ delete fft1;
+ else
+ delete fftm;
}
};
@@ -1114,31 +1190,23 @@ public:
// Note:
// in[ny*i+j] contains the ny Complex values for each i=0,...,nx-1.
//
-class fft2d : public fftw, public Threadtable<keytype2,keyless2> {
- unsigned int nx;
- unsigned int ny;
- static Table threadtable;
+class fft2d : public fftw {
+ size_t nx;
+ size_t ny;
public:
- fft2d(unsigned int nx, unsigned int ny, int sign, Complex *in=NULL,
- Complex *out=NULL, unsigned int threads=maxthreads)
+ fft2d(size_t nx, size_t ny, int sign, Complex *in=NULL,
+ Complex *out=NULL, size_t threads=maxthreads)
: fftw(2*nx*ny,sign,threads), nx(nx), ny(ny) {Setup(in,out);}
#ifdef __Array_h__
fft2d(int sign, const Array::array2<Complex>& in,
const Array::array2<Complex>& out=Array::NULL2,
- unsigned int threads=maxthreads)
+ size_t threads=maxthreads)
: fftw(2*in.Size(),sign,threads), nx(in.Nx()), ny(in.Ny()) {
Setup(in,out);
}
#endif
- threaddata lookup(bool inplace, unsigned int threads) {
- return this->Lookup(threadtable,keytype2(nx,ny,threads,inplace));
- }
- void store(bool inplace, const threaddata& data) {
- this->Store(threadtable,keytype2(nx,ny,data.threads,inplace),data);
- }
-
fftw_plan Plan(Complex *in, Complex *out) {
return fftw_plan_dft_2d(nx,ny,(fftw_complex *) in,(fftw_complex *) out,
sign,effort);
@@ -1173,15 +1241,15 @@ public:
// out contains the upper-half portion (ky >= 0) of the Complex transform.
//
class rcfft2d : public fftw {
- unsigned int nx;
- unsigned int ny;
+ size_t nx;
+ size_t ny;
public:
- rcfft2d(unsigned int nx, unsigned int ny, Complex *out=NULL,
- unsigned int threads=maxthreads)
+ rcfft2d(size_t nx, size_t ny, Complex *out=NULL,
+ size_t threads=maxthreads)
: fftw(2*nx*(ny/2+1),-1,threads,nx*ny), nx(nx), ny(ny) {Setup(out);}
- rcfft2d(unsigned int nx, unsigned int ny, double *in, Complex *out=NULL,
- unsigned int threads=maxthreads)
+ rcfft2d(size_t nx, size_t ny, double *in, Complex *out=NULL,
+ size_t threads=maxthreads)
: fftw(2*nx*(ny/2+1),-1,threads,nx*ny), nx(nx), ny(ny) {
Setup(in,out);
}
@@ -1201,18 +1269,18 @@ public:
// Set Nyquist modes of even shifted transforms to zero.
void deNyquist(Complex *f) {
- unsigned int nyp=ny/2+1;
+ size_t nyp=ny/2+1;
if(nx % 2 == 0)
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int j=0; j < nyp; ++j)
+ for(size_t j=0; j < nyp; ++j)
f[j]=0.0;
if(ny % 2 == 0)
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; ++i)
+ for(size_t i=0; i < nx; ++i)
f[(i+1)*nyp-1]=0.0;
}
};
@@ -1242,16 +1310,16 @@ public:
// out contains the nx*ny real values stored as a Complex array.
//
class crfft2d : public fftw {
- unsigned int nx;
- unsigned int ny;
+ size_t nx;
+ size_t ny;
public:
- crfft2d(unsigned int nx, unsigned int ny, double *out=NULL,
- unsigned int threads=maxthreads) :
+ crfft2d(size_t nx, size_t ny, double *out=NULL,
+ size_t threads=maxthreads) :
fftw(2*nx*(ny/2+1),1,threads,nx*ny), nx(nx), ny(ny) {Setup(out);}
- crfft2d(unsigned int nx, unsigned int ny, Complex *in, double *out=NULL,
- unsigned int threads=maxthreads)
- : fftw(nx*realsize(ny,in,out),1,threads,nx*ny), nx(nx), ny(ny) {
+ crfft2d(size_t nx, size_t ny, Complex *in, double *out=NULL,
+ size_t threads=maxthreads)
+ : fftw(nx*realsize(ny,Inplace(in,out)),1,threads,nx*ny), nx(nx), ny(ny) {
Setup(in,out);
}
@@ -1270,18 +1338,18 @@ public:
// Set Nyquist modes of even shifted transforms to zero.
void deNyquist(Complex *f) {
- unsigned int nyp=ny/2+1;
+ size_t nyp=ny/2+1;
if(nx % 2 == 0)
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int j=0; j < nyp; ++j)
+ for(size_t j=0; j < nyp; ++j)
f[j]=0.0;
if(ny % 2 == 0)
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; ++i)
+ for(size_t i=0; i < nx; ++i)
f[(i+1)*nyp-1]=0.0;
}
};
@@ -1314,19 +1382,19 @@ public:
// indexed by i=0,...,nx-1, j=0,...,ny-1, and k=0,...,nz-1.
//
class fft3d : public fftw {
- unsigned int nx;
- unsigned int ny;
- unsigned int nz;
+ size_t nx;
+ size_t ny;
+ size_t nz;
public:
- fft3d(unsigned int nx, unsigned int ny, unsigned int nz,
+ fft3d(size_t nx, size_t ny, size_t nz,
int sign, Complex *in=NULL, Complex *out=NULL,
- unsigned int threads=maxthreads)
+ size_t threads=maxthreads)
: fftw(2*nx*ny*nz,sign,threads), nx(nx), ny(ny), nz(nz) {Setup(in,out);}
#ifdef __Array_h__
fft3d(int sign, const Array::array3<Complex>& in,
const Array::array3<Complex>& out=Array::NULL3,
- unsigned int threads=maxthreads)
+ size_t threads=maxthreads)
: fftw(2*in.Size(),sign,threads), nx(in.Nx()), ny(in.Ny()), nz(in.Nz())
{Setup(in,out);}
#endif
@@ -1360,18 +1428,18 @@ public:
// out contains the upper-half portion (kz >= 0) of the Complex transform.
//
class rcfft3d : public fftw {
- unsigned int nx;
- unsigned int ny;
- unsigned int nz;
+ size_t nx;
+ size_t ny;
+ size_t nz;
public:
- rcfft3d(unsigned int nx, unsigned int ny, unsigned int nz, Complex *out=NULL,
- unsigned int threads=maxthreads)
+ rcfft3d(size_t nx, size_t ny, size_t nz, Complex *out=NULL,
+ size_t threads=maxthreads)
: fftw(2*nx*ny*(nz/2+1),-1,threads,nx*ny*nz), nx(nx), ny(ny), nz(nz) {
Setup(out);
}
- rcfft3d(unsigned int nx, unsigned int ny, unsigned int nz, double *in,
- Complex *out=NULL, unsigned int threads=maxthreads)
+ rcfft3d(size_t nx, size_t ny, size_t nz, double *in,
+ Complex *out=NULL, size_t threads=maxthreads)
: fftw(2*nx*ny*(nz/2+1),-1,threads,nx*ny*nz),
nx(nx), ny(ny), nz(nz) {Setup(in,out);}
@@ -1390,13 +1458,13 @@ public:
// Set Nyquist modes of even shifted transforms to zero.
void deNyquist(Complex *f) {
- unsigned int nzp=nz/2+1;
- unsigned int yz=ny*nzp;
+ size_t nzp=nz/2+1;
+ size_t yz=ny*nzp;
if(nx % 2 == 0) {
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int k=0; k < yz; ++k)
+ for(size_t k=0; k < yz; ++k)
f[k]=0.0;
}
@@ -1404,9 +1472,9 @@ public:
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; ++i) {
- unsigned int iyz=i*yz;
- for(unsigned int k=0; k < nzp; ++k)
+ for(size_t i=0; i < nx; ++i) {
+ size_t iyz=i*yz;
+ for(size_t k=0; k < nzp; ++k)
f[iyz+k]=0.0;
}
}
@@ -1415,8 +1483,8 @@ public:
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; ++i)
- for(unsigned int j=0; j < ny; ++j)
+ for(size_t i=0; i < nx; ++i)
+ for(size_t j=0; j < ny; ++j)
f[i*yz+(j+1)*nzp-1]=0.0;
}
};
@@ -1446,19 +1514,19 @@ public:
// out contains the nx*ny*nz real values stored as a Complex array.
//
class crfft3d : public fftw {
- unsigned int nx;
- unsigned int ny;
- unsigned int nz;
+ size_t nx;
+ size_t ny;
+ size_t nz;
public:
- crfft3d(unsigned int nx, unsigned int ny, unsigned int nz, double *out=NULL,
- unsigned int threads=maxthreads)
+ crfft3d(size_t nx, size_t ny, size_t nz, double *out=NULL,
+ size_t threads=maxthreads)
: fftw(2*nx*ny*(nz/2+1),1,threads,nx*ny*nz), nx(nx), ny(ny), nz(nz)
{Setup(out);}
- crfft3d(unsigned int nx, unsigned int ny, unsigned int nz, Complex *in,
- double *out=NULL, unsigned int threads=maxthreads)
- : fftw(nx*ny*(realsize(nz,in,out)),1,threads,nx*ny*nz), nx(nx), ny(ny),
- nz(nz) {Setup(in,out);}
+ crfft3d(size_t nx, size_t ny, size_t nz, Complex *in,
+ double *out=NULL, size_t threads=maxthreads)
+ : fftw(nx*ny*(realsize(nz,Inplace(in,out))),1,threads,nx*ny*nz),
+ nx(nx), ny(ny), nz(nz) {Setup(in,out);}
fftw_plan Plan(Complex *in, Complex *out) {
return fftw_plan_dft_c2r_3d(nx,ny,nz,(fftw_complex *) in,(double *) out,
@@ -1475,13 +1543,13 @@ public:
// Set Nyquist modes of even shifted transforms to zero.
void deNyquist(Complex *f) {
- unsigned int nzp=nz/2+1;
- unsigned int yz=ny*nzp;
+ size_t nzp=nz/2+1;
+ size_t yz=ny*nzp;
if(nx % 2 == 0) {
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int k=0; k < yz; ++k)
+ for(size_t k=0; k < yz; ++k)
f[k]=0.0;
}
@@ -1489,9 +1557,9 @@ public:
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; ++i) {
- unsigned int iyz=i*yz;
- for(unsigned int k=0; k < nzp; ++k)
+ for(size_t i=0; i < nx; ++i) {
+ size_t iyz=i*yz;
+ for(size_t k=0; k < nzp; ++k)
f[iyz+k]=0.0;
}
}
@@ -1500,8 +1568,8 @@ public:
#ifndef FFTWPP_SINGLE_THREAD
#pragma omp parallel for num_threads(threads)
#endif
- for(unsigned int i=0; i < nx; ++i)
- for(unsigned int j=0; j < ny; ++j)
+ for(size_t i=0; i < nx; ++i)
+ for(size_t j=0; j < ny; ++j)
f[i*yz+(j+1)*nzp-1]=0.0;
}
};
diff --git a/Build/source/utils/asymptote/fileio.h b/Build/source/utils/asymptote/fileio.h
index d601f176d85..6fcd379ec3f 100644
--- a/Build/source/utils/asymptote/fileio.h
+++ b/Build/source/utils/asymptote/fileio.h
@@ -56,9 +56,8 @@ inline void openpipeout()
int fd=intcast(settings::getSetting<Int>("outpipe"));
if(!pipeout && fd >= 0) pipeout=fdopen(fd,"w");
if(!pipeout) {
- ostringstream buf;
- buf << "Cannot open outpipe " << fd;
- reportError(buf);
+ cerr << "Cannot open outpipe " << fd << endl;
+ exit(-1);
}
}
diff --git a/Build/source/utils/asymptote/generate_enums.py b/Build/source/utils/asymptote/generate_enums.py
index 07f2d772318..6558243745c 100755
--- a/Build/source/utils/asymptote/generate_enums.py
+++ b/Build/source/utils/asymptote/generate_enums.py
@@ -14,7 +14,9 @@ from typing import List, Tuple, Any, Union
from datetime import datetime
import io
import argparse
+import os
import sys
+import time
import re
def cleanComment(s):
@@ -47,12 +49,18 @@ def create_enums(filename: str) -> List[Union[Tuple[str, int, str], Tuple[str, i
return final_list
+def datetime_now():
+ return datetime.utcfromtimestamp(
+ int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))
+ )
+
+
def generate_enum_cpp(outname, enums, name, comment=None, *args, **kwargs):
with io.open(outname, 'w') as fil:
fil.write('// Enum class for {0}\n'.format(name))
if comment is not None:
fil.write('// {0}\n'.format(comment))
- fil.write('// Generated at {0}\n\n'.format(datetime.now()))
+ fil.write('// Generated at {0}\n\n'.format(datetime_now()))
if 'namespace' in kwargs:
fil.write('namespace {0}\n'.format(kwargs['namespace']))
fil.write('{\n')
@@ -79,7 +87,7 @@ def generate_enum_java(outname, enums, name, comment=None, *args, **kwargs):
fil.write('// Enum class for {0}\n'.format(name))
if comment is not None:
fil.write('// {0}\n'.format(comment))
- fil.write('// Generated at {0}\n\n'.format(datetime.now()))
+ fil.write('// Generated at {0}\n\n'.format(datetime_now()))
if 'package' in kwargs:
fil.write('package {0};\n'.format(kwargs['package']))
@@ -122,7 +130,7 @@ def generate_enum_asy(outname, enums, name, comment=None, *args, **kwargs):
fil.write('// Enum class for {0}\n'.format(name))
if comment is not None:
fil.write('// {0}\n'.format(comment))
- fil.write('// Generated at {0}\n\n'.format(datetime.now()))
+ fil.write('// Generated at {0}\n\n'.format(datetime_now()))
fil.write('struct {0}\n'.format(name))
fil.write('{\n')
@@ -145,7 +153,7 @@ def generate_enum_py(outname, enums, name, comment=None, *args, **kwargs):
fil.write('# Enum class for {0}\n'.format(name))
if comment is not None:
fil.write('""" {0} """\n'.format(comment))
- fil.write('# Generated at {0}\n\n'.format(datetime.now()))
+ fil.write('# Generated at {0}\n\n'.format(datetime_now()))
fil.write('class {0}:\n'.format(name))
for enumTxt, enumNum, *ar in enums:
fil.write(' {0}_{2}={1}\n'.format(name, enumNum, enumTxt))
diff --git a/Build/source/utils/asymptote/glrender.cc b/Build/source/utils/asymptote/glrender.cc
index 68f298d10a3..2bcfe1cae5e 100644
--- a/Build/source/utils/asymptote/glrender.cc
+++ b/Build/source/utils/asymptote/glrender.cc
@@ -29,6 +29,7 @@
extern uint32_t CLZ(uint32_t a);
bool GPUindexing;
+bool GPUcompress;
namespace gl {
#ifdef HAVE_PTHREAD
@@ -67,7 +68,7 @@ pthread_t mainthread;
#endif
using settings::locateFile;
-using utils::seconds;
+using utils::stopWatch;
#endif // HAVE_GL
@@ -84,19 +85,24 @@ GLint countShader;
GLint transparentShader;
GLint blendShader;
GLint zeroShader;
+GLint compressShader;
GLint sum1Shader;
GLint sum2Shader;
+GLint sum2fastShader;
GLint sum3Shader;
+GLuint fragments;
+
GLuint offsetBuffer;
+GLuint indexBuffer;
+GLuint elementsBuffer;
GLuint countBuffer;
-GLuint maxBuffer;
-GLuint localSumBuffer;
GLuint globalSumBuffer;
GLuint fragmentBuffer;
GLuint depthBuffer;
GLuint opaqueBuffer;
GLuint opaqueDepthBuffer;
+GLuint feedbackBuffer;
bool ssbo;
bool interlock;
@@ -164,8 +170,10 @@ GLint gs2;
GLint gs;
GLint g;
GLuint processors;
-GLuint localsize;
-GLint maxgroups;
+GLuint localSize;
+GLuint blockSize;
+GLuint groupSize;
+//GLint maxgroups;
GLuint maxSize;
bool outlinemode=false;
@@ -208,6 +216,7 @@ string Format;
int fullWidth,fullHeight;
int Width,Height;
GLuint pixels;
+GLuint elements;
GLuint lastpixels;
double oWidth,oHeight;
int screenWidth,screenHeight;
@@ -533,40 +542,42 @@ void noShaders()
exit(-1);
}
-// Return ceil(log2(n)) where n is a 32 bit unsigned integer.
-uint32_t ceillog2(uint32_t n)
-{
- return 32-CLZ(n-1);
-}
-
void initComputeShaders()
{
string sum1=locateFile("shaders/sum1.glsl");
string sum2=locateFile("shaders/sum2.glsl");
+ string sum2fast=locateFile("shaders/sum2fast.glsl");
string sum3=locateFile("shaders/sum3.glsl");
- if(sum1.empty() || sum2.empty() || sum3.empty())
+ if(sum1.empty() || sum2.empty() || sum2fast.empty() || sum3.empty())
noShaders();
std::vector<ShaderfileModePair> shaders(1);
std::vector<std::string> shaderParams;
shaders[0]=ShaderfileModePair(sum1.c_str(),GL_COMPUTE_SHADER);
- ostringstream s;
- s << "LOCAL_SIZE_X " << localsize << "u" << endl;
+ ostringstream s,s2;
+ s << "LOCALSIZE " << gl::localSize << "u" << endl;
shaderParams.push_back(s.str().c_str());
+ s2 << "BLOCKSIZE " << gl::blockSize << "u" << endl;
+ shaderParams.push_back(s2.str().c_str());
GLuint rc=compileAndLinkShader(shaders,shaderParams,true,false,true);
if(rc == 0) {
GPUindexing=false; // Compute shaders are unavailable.
if(settings::verbose > 2)
cout << "No compute shader support" << endl;
} else {
- glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT,0,&maxgroups);
- maxgroups=min(1024,maxgroups/(GLint) (localsize*localsize));
+// glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT,0,&maxgroups);
+// maxgroups=min(1024,maxgroups/(GLint) (localSize*localSize));
camp::sum1Shader=rc;
shaders[0]=ShaderfileModePair(sum2.c_str(),GL_COMPUTE_SHADER);
- camp::sum2Shader=compileAndLinkShader(shaders,shaderParams,true,false,true);
+ camp::sum2Shader=compileAndLinkShader(shaders,shaderParams,true,false,
+ true);
+
+ shaders[0]=ShaderfileModePair(sum2fast.c_str(),GL_COMPUTE_SHADER);
+ camp::sum2fastShader=compileAndLinkShader(shaders,shaderParams,true,false,
+ true);
shaders[0]=ShaderfileModePair(sum3.c_str(),GL_COMPUTE_SHADER);
camp::sum3Shader=compileAndLinkShader(shaders,shaderParams,true,false,
@@ -585,31 +596,44 @@ void initBlendShader()
std::vector<ShaderfileModePair> shaders(2);
std::vector<std::string> shaderParams;
- ostringstream s,m2;
+ ostringstream s;
s << "ARRAYSIZE " << maxSize << "u" << endl;
shaderParams.push_back(s.str().c_str());
- m2 << "m2 " << localsize;
- shaderParams.push_back(m2.str().c_str());
if(GPUindexing)
shaderParams.push_back("GPUINDEXING");
+ if(GPUcompress)
+ shaderParams.push_back("GPUCOMPRESS");
shaders[0]=ShaderfileModePair(screen.c_str(),GL_VERTEX_SHADER);
shaders[1]=ShaderfileModePair(blend.c_str(),GL_FRAGMENT_SHADER);
camp::blendShader=compileAndLinkShader(shaders,shaderParams,ssbo);
}
+// Return the smallest power of 2 greater than or equal to n.
+inline GLuint ceilpow2(GLuint n)
+{
+ --n;
+ n |= n >> 1;
+ n |= n >> 2;
+ n |= n >> 4;
+ n |= n >> 8;
+ n |= n >> 16;
+ return ++n;
+}
+
void initShaders()
{
Nlights=nlights == 0 ? 0 : max(Nlights,nlights);
Nmaterials=max(Nmaterials,nmaterials);
string zero=locateFile("shaders/zero.glsl");
+ string compress=locateFile("shaders/compress.glsl");
string vertex=locateFile("shaders/vertex.glsl");
string count=locateFile("shaders/count.glsl");
string fragment=locateFile("shaders/fragment.glsl");
string screen=locateFile("shaders/screen.glsl");
- if(zero.empty() || vertex.empty() || fragment.empty() || screen.empty() ||
- count.empty())
+ if(zero.empty() || compress.empty() || vertex.empty() || fragment.empty() ||
+ screen.empty() || count.empty())
noShaders();
if(GPUindexing)
@@ -628,6 +652,8 @@ void initShaders()
#ifdef HAVE_SSBO
if(GPUindexing)
shaderParams.push_back("GPUINDEXING");
+ if(GPUcompress)
+ shaderParams.push_back("GPUCOMPRESS");
shaders[1]=ShaderfileModePair(count.c_str(),GL_FRAGMENT_SHADER);
camp::countShader=compileAndLinkShader(shaders,shaderParams,true);
if(camp::countShader)
@@ -647,10 +673,6 @@ void initShaders()
cout << "No SSBO support; order-independent transparency unavailable"
<< endl;
- ostringstream m2;
- m2 << "m2 " << localsize;
- shaderParams.push_back(m2.str().c_str());
-
shaders[1]=ShaderfileModePair(fragment.c_str(),GL_FRAGMENT_SHADER);
shaderParams.push_back("MATERIAL");
if(orthographic)
@@ -670,7 +692,7 @@ void initShaders()
if(interlock) shaderParams.push_back("HAVE_INTERLOCK");
camp::materialShader[0]=compileAndLinkShader(shaders,shaderParams,ssbo,
interlock);
- if(!camp::materialShader[0]) {
+ if(interlock && !camp::materialShader[0]) {
shaderParams.pop_back();
interlock=false;
camp::materialShader[0]=compileAndLinkShader(shaders,shaderParams,ssbo);
@@ -690,7 +712,7 @@ void initShaders()
shaderParams.pop_back();
shaderParams.push_back("GENERAL");
- if(Mode == 2)
+ if(Mode != 0)
shaderParams.push_back("WIREFRAME");
camp::generalShader[0]=compileAndLinkShader(shaders,shaderParams,ssbo,
interlock);
@@ -704,8 +726,14 @@ void initShaders()
shaderParams.clear();
if(ssbo) {
- if(!GPUindexing) {
- shaders[0]=ShaderfileModePair(screen.c_str(),GL_VERTEX_SHADER);
+ if(GPUindexing)
+ shaderParams.push_back("GPUINDEXING");
+ shaders[0]=ShaderfileModePair(screen.c_str(),GL_VERTEX_SHADER);
+ shaders[1]=ShaderfileModePair(compress.c_str(),GL_FRAGMENT_SHADER);
+ camp::compressShader=compileAndLinkShader(shaders,shaderParams,ssbo);
+ if(GPUindexing)
+ shaderParams.pop_back();
+ else {
shaders[1]=ShaderfileModePair(zero.c_str(),GL_FRAGMENT_SHADER);
camp::zeroShader=compileAndLinkShader(shaders,shaderParams,ssbo);
}
@@ -719,6 +747,7 @@ void deleteComputeShaders()
{
glDeleteProgram(camp::sum1Shader);
glDeleteProgram(camp::sum2Shader);
+ glDeleteProgram(camp::sum2fastShader);
glDeleteProgram(camp::sum3Shader);
}
@@ -736,6 +765,7 @@ void deleteShaders()
else
glDeleteProgram(camp::zeroShader);
glDeleteProgram(camp::countShader);
+ glDeleteProgram(camp::compressShader);
}
glDeleteProgram(camp::transparentShader);
@@ -747,6 +777,13 @@ void deleteShaders()
glDeleteProgram(camp::pixelShader);
}
+void resizeBlendShader(uint maxsize)
+{
+ gl::maxSize=ceilpow2(maxsize);
+ gl::deleteBlendShader();
+ gl::initBlendShader();
+}
+
void setBuffers()
{
GLuint vao;
@@ -761,12 +798,15 @@ void setBuffers()
#ifdef HAVE_SSBO
glGenBuffers(1, &camp::offsetBuffer);
- glGenBuffers(1, &camp::maxBuffer);
if(GPUindexing) {
- glGenBuffers(1, &camp::localSumBuffer);
glGenBuffers(1, &camp::globalSumBuffer);
- } else
- glGenBuffers(1, &camp::countBuffer);
+ glGenBuffers(1, &camp::feedbackBuffer);
+ }
+ glGenBuffers(1, &camp::countBuffer);
+ if(GPUcompress) {
+ glGenBuffers(1, &camp::indexBuffer);
+ glGenBuffers(1, &camp::elementsBuffer);
+ }
glGenBuffers(1, &camp::fragmentBuffer);
glGenBuffers(1, &camp::depthBuffer);
glGenBuffers(1, &camp::opaqueBuffer);
@@ -1154,6 +1194,8 @@ void nextframe(int)
if(Step) Animate=false;
}
+stopWatch Timer;
+
void display()
{
if(queueScreen) {
@@ -1165,9 +1207,9 @@ void display()
drawscene(Width,Height);
if(fps) {
if(framecount < 20) // Measure steady-state framerate
- seconds();
+ Timer.reset();
else {
- double s=seconds();
+ double s=Timer.seconds(true);
if(s > 0.0) {
double rate=1.0/s;
S.add(rate);
@@ -1293,16 +1335,14 @@ void shift(int x, int y)
void pan(int x, int y)
{
- if(orthographic) {
- double Zoominv=1.0/Zoom;
- X += (x-x0)*Zoominv;
- Y += (y0-y)*Zoominv;
- } else {
+ if(orthographic)
+ shift(x,y);
+ else {
cx += (x-x0)*(xmax-xmin)/Width;
cy += (y0-y)*(ymax-ymin)/Height;
+ x0=x; y0=y;
+ update();
}
- x0=x; y0=y;
- update();
}
void zoom(int x, int y)
@@ -1862,6 +1902,12 @@ void init_osmesa()
#endif /* HAVE_GL */
+bool NVIDIA()
+{
+ char *GLSL_VERSION=(char *) glGetString(GL_SHADING_LANGUAGE_VERSION);
+ return string(GLSL_VERSION).find("NVIDIA") != string::npos;
+}
+
// angle=0 means orthographic.
void glrender(const string& prefix, const picture *pic, const string& format,
double width, double height, double angle, double zoom,
@@ -1872,12 +1918,6 @@ void glrender(const string& prefix, const picture *pic, const string& format,
{
Iconify=getSetting<bool>("iconify");
-#if defined(HAVE_COMPUTE_SHADER) && !defined(HAVE_LIBOSMESA)
- GPUindexing=getSetting<bool>("GPUindexing");
-#else
- GPUindexing=false;
-#endif
-
if(zoom == 0.0) zoom=1.0;
Prefix=prefix;
@@ -2124,11 +2164,22 @@ void glrender(const string& prefix, const picture *pic, const string& format,
initialized=true;
+#if defined(HAVE_COMPUTE_SHADER) && !defined(HAVE_LIBOSMESA)
+ GPUindexing=getSetting<bool>("GPUindexing");
+ GPUcompress=getSetting<bool>("GPUcompress");
+#else
+ GPUindexing=false;
+ GPUcompress=false;
+#endif
+
GLint val;
glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE,&val);
- if(GPUindexing)
- localsize=getSetting<Int>("GPUlocalSize");
+ if(GPUindexing) {
+ gl::localSize=getSetting<Int>("GPUlocalSize");
+ gl::blockSize=getSetting<Int>("GPUblockSize");
+ gl::groupSize=gl::localSize*gl::blockSize;
+ }
Maxmaterials=val/sizeof(Material);
if(nmaterials > Maxmaterials) nmaterials=Maxmaterials;
@@ -2279,82 +2330,120 @@ void clearCount()
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
}
-void initPartialSums()
+void compressCount()
{
- gl::gs=gl::localsize*gl::g;
- gl::gs2=gl::localsize*gl::gs;
- gl::processors=gl::localsize*gl::gs2;
- GLuint zero=0;
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::localSumBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,(gl::processors+gl::gs2+2)*sizeof(GLuint),NULL,
- GL_DYNAMIC_DRAW);
- glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
- GL_UNSIGNED_BYTE,&zero);
- glBindBufferBase(GL_SHADER_STORAGE_BUFFER,2,camp::localSumBuffer);
-
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::globalSumBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,(1+gl::gs)*sizeof(GLuint),NULL,
- GL_DYNAMIC_DRAW);
- glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
- GL_UNSIGNED_BYTE,&zero);
- glBindBufferBase(GL_SHADER_STORAGE_BUFFER,3,camp::globalSumBuffer);
+ glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
+ glUseProgram(compressShader);
+ gl::lastshader=compressShader;
+ glUniform1ui(glGetUniformLocation(compressShader,"width"),gl::Width);
+ fpu_trap(false); // Work around FE_INVALID
+ glDrawArrays(GL_TRIANGLES, 0, 3);
+ fpu_trap(settings::trap());
+ glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
}
-GLuint partialSums()
+void partialSums(bool readSize=false)
{
- GLuint fragments;
- // Compute local partial sums on the GPU
+ // Compute partial sums on the GPU
glUseProgram(sum1Shader);
- glUniform1ui(glGetUniformLocation(sum1Shader,"elements"),gl::pixels);
- glDispatchCompute(gl::gs2,1,1);
-
- glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
-
- glUseProgram(sum2Shader);
- GLuint offset2=gl::processors+1;
- glUniform1ui(glGetUniformLocation(sum2Shader,"offset2"),offset2);
- glDispatchCompute(gl::gs,1,1);
+ glDispatchCompute(gl::g,1,1);
- glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
+ if(gl::elements <= gl::groupSize*gl::groupSize)
+ glUseProgram(sum2fastShader);
+ else {
+ glUseProgram(sum2Shader);
+ glUniform1ui(glGetUniformLocation(sum2Shader,"blockSize"),
+ gl::ceilquotient(gl::g,gl::localSize));
+ }
+ glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
+ glDispatchCompute(1,1,1);
glUseProgram(sum3Shader);
- glUniform1ui(glGetUniformLocation(sum3Shader,"offset2"),offset2);
+ glUniform1ui(glGetUniformLocation(sum3Shader,"final"),gl::elements-1);
+ glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT);
glDispatchCompute(gl::g,1,1);
+}
- glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
- // Compute global partial sums, including number of fragments, on the CPU
- GLuint *sum=(GLuint *) (glMapBuffer(GL_SHADER_STORAGE_BUFFER,
- GL_READ_WRITE));
- fragments=0;
- for(GLint i=1; i <= gl::gs; ++i) {
- fragments += sum[i];
- sum[i]=fragments;
+void resizeFragmentBuffer()
+{
+ if(GPUindexing) {
+ glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
+
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::feedbackBuffer);
+ GLuint *feedback=(GLuint *) glMapBuffer(GL_SHADER_STORAGE_BUFFER,GL_READ_ONLY);
+
+ GLuint maxDepth=feedback[0];
+ if(maxDepth > gl::maxSize)
+ gl::resizeBlendShader(maxDepth);
+
+ fragments=feedback[1];
+ glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
+ }
+
+ if(fragments > maxFragments) {
+ // Initialize the alpha buffer
+ maxFragments=11*fragments/10;
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::fragmentBuffer);
+ glBufferData(GL_SHADER_STORAGE_BUFFER,maxFragments*sizeof(glm::vec4),
+ NULL,GL_DYNAMIC_DRAW);
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER,4,camp::fragmentBuffer);
+
+
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::depthBuffer);
+ glBufferData(GL_SHADER_STORAGE_BUFFER,maxFragments*sizeof(GLfloat),
+ NULL,GL_DYNAMIC_DRAW);
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER,5,camp::depthBuffer);
+
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::feedbackBuffer);
}
- glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
- return fragments;
}
void refreshBuffers()
{
GLuint zero=0;
- GLuint fragments;
- gl::pixels=gl::Width*gl::Height;
+ gl::pixels=(gl::Width+1)*(gl::Height+1);
if(initSSBO) {
+ gl::processors=1;
+
+ GLuint Pixels;
+ if(GPUindexing) {
+ GLuint G=gl::ceilquotient(gl::pixels,gl::groupSize);
+ Pixels=gl::groupSize*G;
+
+ GLuint globalSize=gl::localSize*gl::ceilquotient(G,gl::localSize);
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::globalSumBuffer);
+ glBufferData(GL_SHADER_STORAGE_BUFFER,globalSize*sizeof(GLuint),NULL,
+ GL_DYNAMIC_READ);
+ glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R32UI,GL_RED_INTEGER,
+ GL_UNSIGNED_INT,&zero);
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER,3,camp::globalSumBuffer);
+ } else Pixels=gl::pixels;
+
glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::offsetBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,
- (GPUindexing ? 2:1)*gl::pixels*sizeof(GLuint),
+ glBufferData(GL_SHADER_STORAGE_BUFFER,(Pixels+2)*sizeof(GLuint),
NULL,GL_DYNAMIC_DRAW);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER,0,camp::offsetBuffer);
- glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
- GL_UNSIGNED_BYTE,&zero);
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::maxBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,sizeof(GLuint),
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::countBuffer);
+ glBufferData(GL_SHADER_STORAGE_BUFFER,(Pixels+2)*sizeof(GLuint),
NULL,GL_DYNAMIC_DRAW);
- glBindBufferBase(GL_SHADER_STORAGE_BUFFER,1,camp::maxBuffer);
- glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
- GL_UNSIGNED_BYTE,&zero);
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER,2,camp::countBuffer);
+
+ if(GPUcompress) {
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::indexBuffer);
+ glBufferData(GL_SHADER_STORAGE_BUFFER,gl::pixels*sizeof(GLuint),
+ NULL,GL_DYNAMIC_DRAW);
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER,1,camp::indexBuffer);
+
+ GLuint one=1;
+ glBindBuffer(GL_ATOMIC_COUNTER_BUFFER,camp::elementsBuffer);
+ glBufferData(GL_ATOMIC_COUNTER_BUFFER,sizeof(GLuint),&one,
+ GL_DYNAMIC_DRAW);
+ glBindBufferBase(GL_ATOMIC_COUNTER_BUFFER,0,camp::elementsBuffer);
+ } else
+ glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
+ GL_UNSIGNED_BYTE,&zero); // Clear the count buffer
glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::opaqueBuffer);
glBufferData(GL_SHADER_STORAGE_BUFFER,gl::pixels*sizeof(glm::vec4),NULL,
@@ -2362,50 +2451,31 @@ void refreshBuffers()
glBindBufferBase(GL_SHADER_STORAGE_BUFFER,6,camp::opaqueBuffer);
glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::opaqueDepthBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,gl::pixels*sizeof(GLfloat),NULL,
+ glBufferData(GL_SHADER_STORAGE_BUFFER,
+ sizeof(GLuint)+gl::pixels*sizeof(GLfloat),NULL,
GL_DYNAMIC_DRAW);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER,7,camp::opaqueDepthBuffer);
const GLfloat zerof=0.0;
glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R32F,GL_RED,GL_FLOAT,&zerof);
- if(GPUindexing) {
- double Tmin=HUGE_VAL;
- GLuint G=1;
- for(gl::g=2; gl::g <= gl::maxgroups;
- gl::g *= 2) {
- initPartialSums();
- partialSums();
- seconds();
- partialSums();
- double T=seconds();
- if(T < Tmin) {
- Tmin=T;
- G=gl::g;
- }
- }
- gl::g=G;
- initPartialSums();
- } else {
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::countBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,gl::pixels*sizeof(GLuint),
- NULL,GL_DYNAMIC_DRAW);
- glBindBufferBase(GL_SHADER_STORAGE_BUFFER,2,camp::countBuffer);
- glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
- GL_UNSIGNED_BYTE,&zero);
- }
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::feedbackBuffer);
+ glBufferData(GL_SHADER_STORAGE_BUFFER,2*sizeof(GLuint),NULL,
+ GL_DYNAMIC_DRAW);
+ glBindBufferBase(GL_SHADER_STORAGE_BUFFER,8,camp::feedbackBuffer);
+
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::feedbackBuffer);
initSSBO=false;
}
- if(GPUindexing && gl::exporting) {
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::offsetBuffer);
+ // Determine the fragment offsets
+
+ if(gl::exporting && GPUindexing && !GPUcompress) {
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::countBuffer);
glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R8UI,GL_RED_INTEGER,
GL_UNSIGNED_BYTE,&zero);
-
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::globalSumBuffer);
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::feedbackBuffer);
}
- // Determine the fragment offsets
-
if(!interlock) {
drawBuffer(material1Data,countShader);
drawBuffer(materialData,countShader);
@@ -2419,20 +2489,56 @@ void refreshBuffers()
glEnable(GL_MULTISAMPLE);
glDepthMask(GL_TRUE); // Write to depth buffer
- if(GPUindexing)
- fragments=partialSums();
- else {
+ if(GPUcompress) {
+ compressCount();
+ GLuint *p=(GLuint *) glMapBuffer(GL_ATOMIC_COUNTER_BUFFER,GL_READ_WRITE);
+ gl::elements=GPUindexing ? p[0] : p[0]-1;
+ p[0]=1;
+ glUnmapBuffer(GL_ATOMIC_COUNTER_BUFFER);
+ if(gl::elements == 0) return;
+ } else
+ gl::elements=gl::pixels;
+
+ if(GPUindexing) {
+ gl::g=gl::ceilquotient(gl::elements,gl::groupSize);
+ gl::elements=gl::groupSize*gl::g;
+
+ if(settings::verbose > 3) {
+ static bool first=true;
+ if(first) {
+ partialSums();
+ first=false;
+ }
+ unsigned int N=10000;
+ stopWatch Timer;
+ for(unsigned int i=0; i < N; ++i)
+ partialSums();
+ glFinish();
+ double T=Timer.seconds()/N;
+ cout << "elements=" << gl::elements << endl;
+ cout << "Tmin (ms)=" << T*1e3 << endl;
+ cout << "Megapixels/second=" << gl::elements/T/1e6 << endl;
+ }
+
+ partialSums(true);
+ } else {
+ size_t size=gl::elements*sizeof(GLuint);
+
// Compute partial sums on the CPU
glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::countBuffer);
- GLuint *count=((GLuint *) glMapBuffer(GL_SHADER_STORAGE_BUFFER,
- GL_READ_ONLY));
+ GLuint *p=(GLuint *) glMapBufferRange(GL_SHADER_STORAGE_BUFFER,
+ 0,size+sizeof(GLuint),
+ GL_MAP_READ_BIT);
+ GLuint maxsize=p[0];
+ GLuint *count=p+1;
glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::offsetBuffer);
- GLuint *offset=(GLuint *) glMapBuffer(GL_SHADER_STORAGE_BUFFER,
- GL_WRITE_ONLY);
+ GLuint *offset=(GLuint *) glMapBufferRange(GL_SHADER_STORAGE_BUFFER,
+ sizeof(GLuint),size,
+ GL_MAP_WRITE_BIT);
size_t Offset=offset[0]=count[0];
- for(size_t i=1; i < gl::pixels; ++i)
+ for(size_t i=1; i < gl::elements; ++i)
offset[i]=Offset += count[i];
fragments=Offset;
@@ -2442,27 +2548,16 @@ void refreshBuffers()
glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::countBuffer);
glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
- clearCount();
- }
-
- if(fragments > maxFragments) {
- // Initialize the alpha buffer
- maxFragments=11*fragments/10;
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::fragmentBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,maxFragments*sizeof(glm::vec4),
- NULL,GL_DYNAMIC_DRAW);
- glBindBufferBase(GL_SHADER_STORAGE_BUFFER,4,camp::fragmentBuffer);
-
-
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::depthBuffer);
- glBufferData(GL_SHADER_STORAGE_BUFFER,maxFragments*sizeof(GLfloat),
- NULL,GL_DYNAMIC_DRAW);
- glBindBufferBase(GL_SHADER_STORAGE_BUFFER,5,camp::depthBuffer);
+ if(gl::exporting) {
+ glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::countBuffer);
+ glClearBufferData(GL_SHADER_STORAGE_BUFFER,GL_R32UI,GL_RED_INTEGER,
+ GL_UNSIGNED_INT,&zero);
+ } else
+ clearCount();
- if(GPUindexing)
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::globalSumBuffer);
+ if(maxsize > gl::maxSize)
+ gl::resizeBlendShader(maxsize);
}
-
gl::lastshader=-1;
}
@@ -2475,17 +2570,6 @@ void setUniforms(vertexBuffer& data, GLint shader)
if(normal)
glUniform1ui(glGetUniformLocation(shader,"width"),gl::Width);
-
- if(camp::ssbo && GPUindexing &&
- (shader == transparentShader || !interlock)) {
- glUniform1ui(glGetUniformLocation(shader,"pixels"),gl::pixels);
- GLuint offset2=1+gl::processors;
- glUniform1ui(glGetUniformLocation(shader,"offset2"),offset2);
- GLuint m=GPUindexing ? gl::pixels/gl::processors : 0;
- GLuint r=gl::pixels-m*gl::processors;
- glUniform1ui(glGetUniformLocation(shader,"m1"),m);
- glUniform1ui(glGetUniformLocation(shader,"r"),r);
- }
}
glUniformMatrix4fv(glGetUniformLocation(shader,"projViewMat"),1,GL_FALSE,
@@ -2632,18 +2716,6 @@ void drawTriangle()
triangleData.clear();
}
-// Return the smallest power of 2 greater than or equal to n.
-inline GLuint ceilpow2(GLuint n)
-{
- --n;
- n |= n >> 1;
- n |= n >> 2;
- n |= n >> 4;
- n |= n >> 8;
- n |= n >> 16;
- return ++n;
-}
-
void aBufferTransparency()
{
// Collect transparent fragments
@@ -2656,15 +2728,6 @@ void aBufferTransparency()
glUseProgram(blendShader);
gl::lastshader=blendShader;
glUniform1ui(glGetUniformLocation(blendShader,"width"),gl::Width);
- if(GPUindexing) {
- glUniform1ui(glGetUniformLocation(blendShader,"pixels"),gl::pixels);
- GLuint offset2=gl::processors+1;
- glUniform1ui(glGetUniformLocation(blendShader,"offset2"),offset2);
- GLuint m=GPUindexing ? gl::pixels/gl::processors : 0;
- GLuint r=gl::pixels-m*gl::processors;
- glUniform1ui(glGetUniformLocation(blendShader,"m1"),m);
- glUniform1ui(glGetUniformLocation(blendShader,"r"),r);
- }
glUniform4f(glGetUniformLocation(blendShader,"background"),
gl::Background[0],gl::Background[1],gl::Background[2],
gl::Background[3]);
@@ -2673,22 +2736,6 @@ void aBufferTransparency()
glDrawArrays(GL_TRIANGLES,0,3);
fpu_trap(settings::trap());
transparentData.clear();
-
- if(gl::maxSize > 0) {
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::maxBuffer);
- GLuint *p=(GLuint *) glMapBuffer(GL_SHADER_STORAGE_BUFFER,GL_READ_WRITE);
- gl::maxSize=p[0];
- p[0]=0;
- glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
- if(gl::maxSize > 0) {
- gl::maxSize=ceilpow2(gl::maxSize);
- gl::deleteBlendShader();
- gl::initBlendShader();
- }
- if(GPUindexing)
- glBindBuffer(GL_SHADER_STORAGE_BUFFER,camp::globalSumBuffer);
- }
-
glEnable(GL_DEPTH_TEST);
}
@@ -2716,7 +2763,10 @@ void drawBuffers()
if(camp::ssbo) {
if(transparent) {
refreshBuffers();
- if(!interlock) gl::copied=true;
+ if(!interlock) {
+ resizeFragmentBuffer();
+ gl::copied=true;
+ }
}
}
@@ -2728,6 +2778,7 @@ void drawBuffers()
if(transparent) {
gl::copied=true;
+ if(interlock) resizeFragmentBuffer();
drawTransparent();
}
Opaque=0;
diff --git a/Build/source/utils/asymptote/interact.cc b/Build/source/utils/asymptote/interact.cc
index 6e21f15116f..1009b1d4770 100644
--- a/Build/source/utils/asymptote/interact.cc
+++ b/Build/source/utils/asymptote/interact.cc
@@ -123,6 +123,10 @@ void pre_readline()
int fd=intcast(settings::getSetting<Int>("inpipe"));
if(fd >= 0) {
if(!fin) fin=fdopen(fd,"r");
+ if(!fin) {
+ cerr << "Cannot open inpipe " << fd << endl;
+ exit(-1);
+ }
Readline=readpipeline;
} else {
#if defined(HAVE_READLINE) && defined(HAVE_LIBCURSES)
diff --git a/Build/source/utils/asymptote/jsfile.cc b/Build/source/utils/asymptote/jsfile.cc
index 19eb66428f0..7dc95c9bb68 100644
--- a/Build/source/utils/asymptote/jsfile.cc
+++ b/Build/source/utils/asymptote/jsfile.cc
@@ -8,6 +8,8 @@ using namespace settings;
namespace camp {
+const string s="document.asy.";
+
#ifndef HAVE_LIBGLM
size_t materialIndex=0;
#endif
@@ -140,59 +142,59 @@ void jsfile::open(string name)
out << newl << "<script>" << newl;
out << newl
- << "canvasWidth=" << gl::fullWidth << ";" << newl
- << "canvasHeight=" << gl::fullHeight << ";" << newl << newl
- << "webgl2=" << std::boolalpha << webgl2 << ";"
+ << s << "canvasWidth=" << gl::fullWidth << ";" << newl
+ << s << "canvasHeight=" << gl::fullHeight << ";" << newl << newl
+ << s << "webgl2=" << std::boolalpha << webgl2 << ";"
<< newl
- << "ibl=" << std::boolalpha << ibl << ";"
+ << s << "ibl=" << std::boolalpha << ibl << ";"
<< newl
- << "absolute=" << std::boolalpha << getSetting<bool>("absolute") << ";"
+ << s << "absolute=" << std::boolalpha << getSetting<bool>("absolute") << ";"
<< newl;
if(ibl) {
- out << "imageURL=\"" << getSetting<string>("imageURL")+"/\";" << newl;
- out << "image=\"" << getSetting<string>("image") << "\";" << newl << newl;
+ out << s << "imageURL=\"" << getSetting<string>("imageURL")+"/\";" << newl;
+ out << s << "image=\"" << getSetting<string>("image") << "\";" << newl << newl;
}
out << newl
- << "minBound=[" << gl::Xmin << "," << gl::Ymin << "," << gl::Zmin << "];"
+ << s << "minBound=[" << gl::Xmin << "," << gl::Ymin << "," << gl::Zmin << "];"
<< newl
- << "maxBound=[" << gl::Xmax << "," << gl::Ymax << "," << gl::Zmax << "];"
+ << s << "maxBound=[" << gl::Xmax << "," << gl::Ymax << "," << gl::Zmax << "];"
<< newl
- << "orthographic=" << gl::orthographic << ";"
+ << s << "orthographic=" << gl::orthographic << ";"
<< newl
- << "angleOfView=" << gl::Angle << ";"
+ << s << "angleOfView=" << gl::Angle << ";"
<< newl
- << "initialZoom=" << gl::Zoom0 << ";" << newl;
+ << s << "initialZoom=" << gl::Zoom0 << ";" << newl;
if(gl::Shift != pair(0.0,0.0))
- out << "viewportShift=" << gl::Shift*gl::Zoom0 << ";" << newl;
- out << "viewportMargin=" << gl::Margin << ";" << newl << newl
- << "zoomFactor=" << getSetting<double>("zoomfactor") << ";" << newl
- << "zoomPinchFactor=" << getSetting<double>("zoomPinchFactor") << ";"
+ out << s << "viewportShift=" << gl::Shift*gl::Zoom0 << ";" << newl;
+ out << s << "viewportMargin=" << gl::Margin << ";" << newl << newl
+ << s << "zoomFactor=" << getSetting<double>("zoomfactor") << ";" << newl
+ << s << "zoomPinchFactor=" << getSetting<double>("zoomPinchFactor") << ";"
<< newl
- << "zoomPinchCap=" << getSetting<double>("zoomPinchCap") << ";" << newl
- << "zoomStep=" << getSetting<double>("zoomstep") << ";" << newl
- << "shiftHoldDistance=" << getSetting<double>("shiftHoldDistance") << ";"
+ << s << "zoomPinchCap=" << getSetting<double>("zoomPinchCap") << ";" << newl
+ << s << "zoomStep=" << getSetting<double>("zoomstep") << ";" << newl
+ << s << "shiftHoldDistance=" << getSetting<double>("shiftHoldDistance") << ";"
<< newl
- << "shiftWaitTime=" << getSetting<double>("shiftWaitTime") << ";"
+ << s << "shiftWaitTime=" << getSetting<double>("shiftWaitTime") << ";"
<< newl
- << "vibrateTime=" << getSetting<double>("vibrateTime") << ";"
- << newl << newl
- << "Lights=[";
- for(size_t i=0; i < gl::nlights; ++i) {
- size_t i4=4*i;
- out << "new Light(" << newl
- << gl::Lights[i] << "," << newl
- << "[" << gl::Diffuse[i4] << "," << gl::Diffuse[i4+1] << ","
- << gl::Diffuse[i4+2] << "])," << newl;
- }
- out << "];" << newl << newl;
- out << "Background=[" << gl::Background[0] << "," << gl::Background[1] << ","
+ << s << "vibrateTime=" << getSetting<double>("vibrateTime") << ";"
+ << newl << newl;
+ out << s << "background=[" << gl::Background[0] << "," << gl::Background[1] << ","
<< gl::Background[2] << "," << gl::Background[3] << "];"
<< newl << newl;
- out << "Transform=[" << gl::T[0];
+ out << s << "Transform=[" << gl::T[0];
for(int i=1; i < 16; ++i)
out << "," << newl << gl::T[i];
out << "];" << newl << newl;
+ for(size_t i=0; i < gl::nlights; ++i) {
+ size_t i4=4*i;
+ out << "light(" << newl
+ << gl::Lights[i] << "," << newl
+ << "[" << gl::Diffuse[i4] << "," << gl::Diffuse[i4+1] << ","
+ << gl::Diffuse[i4+2] << "]);" << newl;
+ }
+ out << newl;
+
camp::clearCenters();
camp::clearMaterials();
#endif
@@ -204,7 +206,7 @@ void jsfile::finish(string name)
finished=true;
size_t ncenters=drawElement::centers.size();
if(ncenters > 0) {
- out << "Centers=[";
+ out << s << "Centers=[";
for(size_t i=0; i < ncenters; ++i)
out << newl << drawElement::centers[i] << ",";
out << newl << "];" << newl;
@@ -222,8 +224,7 @@ void jsfile::finish(string name)
void jsfile::addColor(const prc::RGBAColour& c)
{
- out << "[" << byte(c.R) << "," << byte(c.G) << "," << byte(c.B)
- << "," << byte(c.A) << "]";
+ out << "[" << c.R << "," << c.G << "," << c.B << "," << c.A << "]";
}
void jsfile::addIndices(const uint32_t *I)
@@ -232,7 +233,6 @@ void jsfile::addIndices(const uint32_t *I)
}
void jsfile::addRawPatch(triple const* controls, size_t n,
- const triple& Min, const triple& Max,
const prc::RGBAColour *c, size_t nc)
{
out << "patch([" << newl;
@@ -240,8 +240,7 @@ void jsfile::addRawPatch(triple const* controls, size_t n,
for(size_t i=0; i < last; ++i)
out << controls[i] << "," << newl;
out << controls[last] << newl << "],"
- << drawElement::centerIndex << "," << materialIndex << ","
- << newl << Min << "," << newl << Max;
+ << drawElement::centerIndex << "," << materialIndex;
if(c) {
out << ",[" << newl;
for(size_t i=0; i < nc; ++i) {
@@ -254,35 +253,31 @@ void jsfile::addRawPatch(triple const* controls, size_t n,
}
void jsfile::addCurve(const triple& z0, const triple& c0,
- const triple& c1, const triple& z1,
- const triple& Min, const triple& Max)
+ const triple& c1, const triple& z1)
{
out << "curve([" << newl;
out << z0 << "," << newl
<< c0 << "," << newl
<< c1 << "," << newl
<< z1 << newl << "],"
- << drawElement::centerIndex << "," << materialIndex << ","
- << newl << Min << "," << newl << Max << ");" << newl << newl;
+ << drawElement::centerIndex << "," << materialIndex
+ << ");" << newl << newl;
}
-void jsfile::addCurve(const triple& z0, const triple& z1,
- const triple& Min, const triple& Max)
+void jsfile::addCurve(const triple& z0, const triple& z1)
{
out << "curve([" << newl;
out << z0 << "," << newl
<< z1 << newl << "],"
- << drawElement::centerIndex << "," << materialIndex << ","
- << newl << Min << "," << newl << Max << ");" << newl << newl;
+ << drawElement::centerIndex << "," << materialIndex
+ << ");" << newl << newl;
}
-void jsfile::addPixel(const triple& z0, double width,
- const triple& Min, const triple& Max)
+void jsfile::addPixel(const triple& z0, double width)
{
out << "pixel(" << newl;
- out << z0 << "," << width << "," << newl
- << materialIndex << "," << newl << Min << "," << newl << Max << ");"
- << newl << newl;
+ out << z0 << "," << width << "," << newl << materialIndex
+ << ");" << newl << newl;
}
#ifdef HAVE_LIBGLM
@@ -297,8 +292,7 @@ void jsfile::addMaterial(Material const& material)
void jsfile::addTriangles(size_t nP, const triple* P, size_t nN,
const triple* N, size_t nC, const prc::RGBAColour* C,
size_t nI, const uint32_t (*PI)[3],
- const uint32_t (*NI)[3], const uint32_t (*CI)[3],
- const triple& Min, const triple& Max)
+ const uint32_t (*NI)[3], const uint32_t (*CI)[3])
{
for(size_t i=0; i < nP; ++i)
out << "Positions.push(" << P[i] << ");" << newl;
@@ -330,8 +324,8 @@ void jsfile::addTriangles(size_t nP, const triple* P, size_t nN,
out << "]);" << newl;
}
out << "triangles("
- << drawElement::centerIndex << "," << materialIndex << "," << newl
- << newl << Min << "," << newl << Max << ");" << newl << newl;
+ << drawElement::centerIndex << "," << materialIndex
+ << ");" << newl << newl;
}
void jsfile::addSphere(const triple& center, double radius)
@@ -371,9 +365,7 @@ void jsfile::addDisk(const triple& center, double radius,
<< ");" << newl << newl;
}
-void jsfile::addTube(const triple *g, double width,
- const triple& Min, const triple& Max, bool core)
-
+void jsfile::addTube(const triple *g, double width, bool core)
{
out << "tube(["
<< g[0] << "," << newl
@@ -381,37 +373,31 @@ void jsfile::addTube(const triple *g, double width,
<< g[2] << "," << newl
<< g[3] << newl << "],"
<< width << ","
- << drawElement::centerIndex << "," << materialIndex << ","
- << newl << Min << "," << newl << Max << "," << core <<");"
- << newl << newl;
+ << drawElement::centerIndex << "," << materialIndex << "," << core
+ << ");" << newl << newl;
}
-void jsfile::addPatch(triple const* controls,
- triple const& Min, triple const& Max,
- prc::RGBAColour const* c)
+void jsfile::addPatch(triple const* controls, prc::RGBAColour const* c)
{
- addRawPatch(controls,16,Min,Max,c,4);
+ addRawPatch(controls,16,c,4);
}
void jsfile::addStraightPatch(triple const* controls,
- triple const& Min, triple const& Max,
prc::RGBAColour const* c)
{
- addRawPatch(controls,4,Min,Max,c,4);
+ addRawPatch(controls,4,c,4);
}
void jsfile::addBezierTriangle(triple const* controls,
- triple const& Min, triple const& Max,
prc::RGBAColour const* c)
{
- addRawPatch(controls,10,Min,Max,c,3);
+ addRawPatch(controls,10,c,3);
}
void jsfile::addStraightBezierTriangle(triple const* controls,
- triple const& Min, triple const& Max,
prc::RGBAColour const* c)
{
- addRawPatch(controls,3,Min,Max,c,3);
+ addRawPatch(controls,3,c,3);
}
}
diff --git a/Build/source/utils/asymptote/jsfile.h b/Build/source/utils/asymptote/jsfile.h
index 9b4ca44dc15..385f2b09678 100644
--- a/Build/source/utils/asymptote/jsfile.h
+++ b/Build/source/utils/asymptote/jsfile.h
@@ -21,28 +21,23 @@ public:
void close() override;
void addCurve(const triple& z0, const triple& c0,
- const triple& c1, const triple& z1,
- const triple& Min, const triple& Max) override;
+ const triple& c1, const triple& z1) override;
- void addCurve(const triple& z0, const triple& z1,
- const triple& Min, const triple& Max) override;
+ void addCurve(const triple& z0, const triple& z1) override;
- void addPixel(const triple& z0, double width,
- const triple& Min, const triple& Max) override;
+ void addPixel(const triple& z0, double width) override;
void addTriangles(size_t nP, const triple* P, size_t nN, const triple* N,
size_t nC, const prc::RGBAColour* C, size_t nI,
const uint32_t (*PI)[3], const uint32_t (*NI)[3],
- const uint32_t (*CI)[3],
- const triple& Min, const triple& Max) override;
+ const uint32_t (*CI)[3]) override;
void addCylinder(const triple& center, double radius, double height,
const double& polar, const double& azimuth,
bool core) override;
void addDisk(const triple& center, double radius,
const double& polar, const double& azimuth) override;
- void addTube(const triple *g, double width,
- const triple& Min, const triple& Max, bool core) override;
+ void addTube(const triple *g, double width, bool core) override;
#ifdef HAVE_LIBGLM
void addMaterial(Material const& mat) override;
@@ -52,18 +47,17 @@ public:
void addHemisphere(triple const& center, double radius, double const& polar, double const& azimuth) override;
- void addPatch(triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ void addPatch(triple const* controls, prc::RGBAColour const* c) override;
- void
- addStraightPatch(triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ void addStraightPatch(triple const* controls,
+ prc::RGBAColour const* c) override;
- void
- addBezierTriangle(triple const* control, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ void addBezierTriangle(triple const* controls,
+ prc::RGBAColour const* c) override;
- void addStraightBezierTriangle(triple const* controls, triple const& Min, triple const& Max,
+ void addStraightBezierTriangle(triple const* controls,
prc::RGBAColour const* c) override;
-
void svgtohtml(string name);
void precision(int digits) override {out.precision(digits);}
@@ -82,8 +76,8 @@ protected:
void addColor(const prc::RGBAColour& c);
void addIndices(const uint32_t *I);
- void addRawPatch(const triple* controls, size_t n, const triple& Min,
- const triple& Max, const prc::RGBAColour *colors, size_t nc);
+ void addRawPatch(const triple* controls, size_t n,
+ const prc::RGBAColour *colors, size_t nc);
void addSphere(const triple& center, double radius, bool half=false,
const double& polar=0.0, const double& azimuth=0.0);
diff --git a/Build/source/utils/asymptote/lspserv.cc b/Build/source/utils/asymptote/lspserv.cc
index 90dcc6961d0..42f135b35fd 100644
--- a/Build/source/utils/asymptote/lspserv.cc
+++ b/Build/source/utils/asymptote/lspserv.cc
@@ -22,10 +22,6 @@
#include "process.h"
#include "locate.h"
-#define GC_THREADS
-
-#include "gc.h"
-
#define REGISTER_REQ_FN(typ, fn) remoteEndPoint->registerHandler(\
[this](typ::request const& req) { return this->fn(req); });
#define REGISTER_NOTIF_FN(typ, handler) remoteEndPoint->registerHandler(\
diff --git a/Build/source/utils/asymptote/main.cc b/Build/source/utils/asymptote/main.cc
index 4361e3dce42..c2b7b627bba 100644
--- a/Build/source/utils/asymptote/main.cc
+++ b/Build/source/utils/asymptote/main.cc
@@ -44,6 +44,10 @@
#include "interact.h"
#include "fileio.h"
+#ifdef HAVE_LIBFFTW3
+#include "fftw++.h"
+#endif
+
#ifdef HAVE_LSP
#include "lspserv.h"
#endif
@@ -114,6 +118,9 @@ void signalHandler(int)
void interruptHandler(int)
{
+#ifdef HAVE_LIBFFTW3
+ fftwpp::saveWisdom();
+#endif
em.Interrupt(true);
}
@@ -140,6 +147,7 @@ void *asymain(void *A)
setsignal(signalHandler);
Args *args=(Args *) A;
fpu_trap(trap());
+ fftwpp::wisdomName=".wisdom";
if(interactive) {
Signal(SIGINT,interruptHandler);
@@ -193,9 +201,10 @@ void *asymain(void *A)
} else {
for(int ind=0; ind < n; ind++) {
string name=(getArg(ind));
- if(name == stripExt(name)+".v3d") {
+ string prefix=stripExt(name);
+ if(name == prefix+".v3d") {
interact::uptodate=false;
- runString("import v3d; defaultfilename=\""+stripDir(name)+
+ runString("import v3d; defaultfilename=\""+stripDir(prefix)+
"\"; importv3d(\""+name+"\");");
} else
processFile(name,n > 1);
diff --git a/Build/source/utils/asymptote/mathop.h b/Build/source/utils/asymptote/mathop.h
index 785f30d036b..d51c5741eb1 100644
--- a/Build/source/utils/asymptote/mathop.h
+++ b/Build/source/utils/asymptote/mathop.h
@@ -249,7 +249,7 @@ struct quotient {
if(y == -1) return Negate(x);
// Implementation-independent definition of integer division: round down
Int q=x/y;
- if(q >= 0 || y*q == x) return q;
+ if(!((x < 0)^(y < 0)) || y*q == x) return q;
return q-1;
}
};
@@ -325,4 +325,3 @@ void interp(vm::stack *s)
} // namespace run
#endif //MATHOP_H
-
diff --git a/Build/source/utils/asymptote/memory.h b/Build/source/utils/asymptote/memory.h
index 8e878ef7123..180260bc9d4 100644
--- a/Build/source/utils/asymptote/memory.h
+++ b/Build/source/utils/asymptote/memory.h
@@ -50,6 +50,7 @@
#define GC_THREADS
#ifdef __clang__
#define GC_ATTR_EXPLICIT
+#define GC_NOEXCEPT
#endif
#include <gc.h>
diff --git a/Build/source/utils/asymptote/LspCpp/include/optional.hpp b/Build/source/utils/asymptote/optional.hpp
index 86e3b407c66..86e3b407c66 100644
--- a/Build/source/utils/asymptote/LspCpp/include/optional.hpp
+++ b/Build/source/utils/asymptote/optional.hpp
diff --git a/Build/source/utils/asymptote/parallel.cc b/Build/source/utils/asymptote/parallel.cc
new file mode 100644
index 00000000000..66bb85a342f
--- /dev/null
+++ b/Build/source/utils/asymptote/parallel.cc
@@ -0,0 +1,74 @@
+#include <iostream>
+#include <cstdlib>
+#include <cstdint>
+
+#include "parallel.h"
+
+#ifndef __Complex_h__
+#include <complex>
+typedef std::complex<double> Complex;
+#endif
+
+#include "statistics.h"
+#include "align.h"
+#include <chrono>
+
+namespace utils {
+int ALIGNMENT=2*sizeof(Complex); // Must be a multiple of sizeof(Complex)
+}
+
+using namespace utils;
+
+size_t threshold=SIZE_MAX;
+
+namespace parallel {
+
+size_t lastThreads=SIZE_MAX;
+
+const size_t maxThreshold=1 << 24;
+
+size_t parallelLoop(Complex *A, size_t m, size_t threads)
+{
+ auto T0=std::chrono::steady_clock::now();
+ PARALLEL(
+ for(size_t k=0; k < m; ++k)
+ A[k]=k;
+ );
+ PARALLEL(
+ for(size_t k=0; k < m; ++k)
+ A[k] *= k;
+ );
+ auto T1=std::chrono::steady_clock::now();
+
+ auto elapsed=std::chrono::duration_cast<std::chrono::nanoseconds>
+ (T1-T0);
+ return elapsed.count();
+}
+
+size_t measureThreshold(size_t threads)
+{
+ if(threads > 1) {
+ for(size_t m=1; m < maxThreshold; m *= 2) {
+ Complex *A=ComplexAlign(m);
+ if(!A)
+ break;
+ if(parallelLoop(A,m,threads) < parallelLoop(A,m,1))
+ return m;
+ deleteAlign(A);
+ }
+ }
+ return maxThreshold;
+}
+
+void Threshold(size_t threads)
+{
+ if(threads > 1 && threads < lastThreads) {
+ statistics S(true);
+ for(size_t i=0; i < 10; ++i)
+ S.add(measureThreshold(threads));
+ threshold=S.median();
+ lastThreads=threads;
+ }
+}
+
+}
diff --git a/Build/source/utils/asymptote/parallel.h b/Build/source/utils/asymptote/parallel.h
new file mode 100644
index 00000000000..0daa164e6f1
--- /dev/null
+++ b/Build/source/utils/asymptote/parallel.h
@@ -0,0 +1,63 @@
+#pragma once
+
+#ifndef _OPENMP
+#ifndef SINGLE_THREAD
+#define SINGLE_THREAD
+#endif
+#endif
+
+#ifndef SINGLE_THREAD
+#include <omp.h>
+#endif
+
+extern size_t threshold;
+
+namespace parallel {
+extern size_t lastThreads;
+inline int get_thread_num()
+{
+#ifdef SINGLE_THREAD
+ return 0;
+#else
+ return omp_get_thread_num();
+#endif
+}
+
+inline int get_max_threads()
+{
+#ifdef SINGLE_THREAD
+ return 1;
+#else
+ return omp_get_max_threads();
+#endif
+}
+}
+
+#ifndef SINGLE_THREAD
+#define PARALLEL(code) \
+ if(threads > 1) { \
+ _Pragma("omp parallel for num_threads(threads)") \
+ code \
+ } else {code}
+#else
+#define PARALLEL(code) {code}
+#endif
+
+#ifndef SINGLE_THREAD
+#define OMPIF(condition,directive,code) \
+ if(threads > 1 && condition) { \
+ _Pragma(directive) \
+ code \
+ } else {code}
+#else
+#define OMPIF(condition,directive,code) {code}
+#endif
+
+#define PARALLELIF(condition,code) \
+ OMPIF(condition,"omp parallel for num_threads(threads)",code)
+
+namespace parallel {
+
+void Threshold(size_t threads);
+
+}
diff --git a/Build/source/utils/asymptote/picture.cc b/Build/source/utils/asymptote/picture.cc
index 6dacbec2b45..2412863f606 100644
--- a/Build/source/utils/asymptote/picture.cc
+++ b/Build/source/utils/asymptote/picture.cc
@@ -359,7 +359,6 @@ void texinit()
bool context=settings::context(getSetting<string>("tex"));
string dir=stripFile(outname());
- dir=dir.substr(0,dir.length()-1);
string logname;
if(!context) logname=dir;
logname += "texput.log";
@@ -371,6 +370,7 @@ void texinit()
writeable.close();
unlink(cname);
+ dir=dir.substr(0,dir.length()-1);
mem::vector<string> cmd;
cmd.push_back(texprogram());
string oldPath;
@@ -464,7 +464,7 @@ string dvisvgmCommand(mem::vector<string>& cmd, const string& outname)
string libgs=getSetting<string>("libgs");
if(!libgs.empty())
cmd.push_back("--libgs="+libgs);
-// cmd.push_back("--optimize"); // Requires dvisvgm > 2.9.1
+ cmd.push_back("--optimize");
push_split(cmd,getSetting<string>("dvisvgmOptions"));
string outfile=stripDir(outname);
if(!outfile.empty())
@@ -635,7 +635,11 @@ bool picture::texprocess(const string& texname, const string& outname,
int picture::epstopdf(const string& epsname, const string& pdfname)
{
- string compress=getSetting<bool>("compress") ? "true" : "false";
+ string outputformat=getSetting<string>("outformat");
+ bool pdf=settings::pdf(getSetting<string>("tex"));
+ bool pdfformat=(pdf && outputformat == "") || outputformat == "pdf";
+ string compress=getSetting<bool>("compress") && pdfformat ?
+ "true" : "false";
mem::vector<string> cmd;
cmd.push_back(getSetting<string>("gs"));
cmd.push_back("-q");
@@ -685,7 +689,7 @@ int picture::pdftoeps(const string& pdfname, const string& epsname, bool eps)
mem::vector<string> cmd;
cmd.push_back(getSetting<string>("gs"));
cmd.push_back("-q");
- cmd.push_back("-dNOCACHE");
+ cmd.push_back("-dNoOutputFonts");
cmd.push_back("-dNOPAUSE");
cmd.push_back("-dBATCH");
cmd.push_back("-P");
diff --git a/Build/source/utils/asymptote/psfile.cc b/Build/source/utils/asymptote/psfile.cc
index 6d882f4bed7..924f3c1872d 100644
--- a/Build/source/utils/asymptote/psfile.cc
+++ b/Build/source/utils/asymptote/psfile.cc
@@ -183,22 +183,37 @@ void psfile::epilogue()
void psfile::setcolor(const pen& p, const string& begin="",
const string& end="")
{
+ ostringstream buf;
if(p.cmyk() && (!lastpen.cmyk() ||
(p.cyan() != lastpen.cyan() ||
p.magenta() != lastpen.magenta() ||
p.yellow() != lastpen.yellow() ||
p.black() != lastpen.black()))) {
- *out << begin << p.cyan() << " " << p.magenta() << " " << p.yellow() << " "
- << p.black() << (pdf ? " k" : " setcmykcolor") << end << newl;
+ buf << begin << p.cyan() << " " << p.magenta() << " " << p.yellow() << " "
+ << p.black();
+ if(pdf) {
+ *out << buf.str() << " k" << end << newl;
+ *out << buf.str() << " K" << end << newl;
+ } else
+ *out << buf.str() << " setcmykcolor" << end << newl;
} else if(p.rgb() && (!lastpen.rgb() ||
(p.red() != lastpen.red() ||
p.green() != lastpen.green() ||
p.blue() != lastpen.blue()))) {
- *out << begin << p.red() << " " << p.green() << " " << p.blue()
- << (pdf ? " rg" : " setrgbcolor") << end << newl;
+ buf << begin << p.red() << " " << p.green() << " " << p.blue();
+ if(pdf) {
+ *out << buf.str() << " rg" << end << newl;
+ *out << buf.str() << " RG" << end << newl;
+ } else
+ *out << buf.str() << " setrgbcolor" << end << newl;
} else if(p.grayscale() && (!lastpen.grayscale() ||
p.gray() != lastpen.gray())) {
- *out << begin << p.gray() << (pdf ? " g" : " setgray") << end << newl;
+ buf << begin << p.gray();
+ if(pdf) {
+ *out << begin << p.gray() << " g" << end << newl;
+ *out << begin << p.gray() << " G" << end << newl;
+ } else
+ *out << begin << p.gray() << " setgray" << end << newl;
}
}
diff --git a/Build/source/utils/asymptote/revision.cc b/Build/source/utils/asymptote/revision.cc
index c15e21a33e3..e061cbfb3b2 100644
--- a/Build/source/utils/asymptote/revision.cc
+++ b/Build/source/utils/asymptote/revision.cc
@@ -1,2 +1,2 @@
-const char *REVISION="2.79";
-const char *AsyGLVersion="1.01";
+const char *REVISION="2.84";
+const char *AsyGLVersion="1.02";
diff --git a/Build/source/utils/asymptote/runarray.cc b/Build/source/utils/asymptote/runarray.cc
index bfa4ff42858..f841e0f5223 100644
--- a/Build/source/utils/asymptote/runarray.cc
+++ b/Build/source/utils/asymptote/runarray.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
@@ -61,7 +61,7 @@ function *realRealFunction();
#define CURRENTPEN processData().currentpen
-#line 22 "runarray.in"
+#line 23 "runarray.in"
#include "array.h"
#include "arrayop.h"
#include "triple.h"
@@ -77,6 +77,19 @@ static const char *installFFTW=
"Please install fftw3, then ./configure; make";
#endif
+#ifdef HAVE_EIGEN_DENSE
+#include <Eigen/Dense>
+typedef std::complex<double> Complex;
+static const char *square="matrix must be square";
+using Eigen::MatrixXd;
+using Eigen::MatrixXcd;
+using Eigen::RealSchur;
+using Eigen::ComplexSchur;
+#else
+static const char *installEIGEN=
+ "Please install eigen3, then ./configure; make";
+#endif
+
using namespace camp;
using namespace vm;
@@ -89,6 +102,7 @@ typedef array Intarray;
typedef array Intarray2;
typedef array realarray;
typedef array realarray2;
+typedef array realarray3;
typedef array pairarray;
typedef array pairarray2;
typedef array pairarray3;
@@ -99,6 +113,7 @@ using types::IntArray;
using types::IntArray2;
using types::realArray;
using types::realArray2;
+using types::realArray3;
using types::pairArray;
using types::pairArray2;
using types::pairArray3;
@@ -640,10 +655,10 @@ void integeroverflow(size_t i)
#endif
namespace run {
// Create an empty array.
-#line 594 "runarray.in"
+#line 610 "runarray.in"
void emptyArray(stack *Stack)
{
-#line 595 "runarray.in"
+#line 611 "runarray.in"
{Stack->push<array*>(new array(0)); return;}
}
@@ -652,11 +667,11 @@ void emptyArray(stack *Stack)
// is popped off the stack, followed by each dimension in reverse order.
// The array itself is technically a one dimensional array of one
// dimension arrays and so on.
-#line 604 "runarray.in"
+#line 620 "runarray.in"
void newDeepArray(stack *Stack)
{
Int depth=vm::pop<Int>(Stack);
-#line 605 "runarray.in"
+#line 621 "runarray.in"
assert(depth > 0);
Int *dims = new Int[depth];
@@ -675,11 +690,11 @@ void newDeepArray(stack *Stack)
// Creates an array with elements already specified. First, the number
// of elements is popped off the stack, followed by each element in
// reverse order.
-#line 624 "runarray.in"
+#line 640 "runarray.in"
void newInitializedArray(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 625 "runarray.in"
+#line 641 "runarray.in"
assert(n >= 0);
array *a = new array(n);
@@ -692,12 +707,12 @@ void newInitializedArray(stack *Stack)
// Similar to newInitializedArray, but after the n elements, append another
// array to it.
-#line 638 "runarray.in"
+#line 654 "runarray.in"
void newAppendedArray(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
array* tail=vm::pop<array*>(Stack);
-#line 639 "runarray.in"
+#line 655 "runarray.in"
assert(n >= 0);
array *a = new array(n);
@@ -714,14 +729,14 @@ void newAppendedArray(stack *Stack)
// typeDepth is the true depth of the array determined at compile-time when the
// operations for the array type are added. This typeDepth argument is
// automatically pushed on the stack and is not visible to the user.
-#line 656 "runarray.in"
+#line 672 "runarray.in"
void copyArrayValue(stack *Stack)
{
Int typeDepth=vm::pop<Int>(Stack);
Int depth=vm::pop<Int>(Stack,Int_MAX);
item value=vm::pop(Stack);
Int n=vm::pop<Int>(Stack);
-#line 657 "runarray.in"
+#line 673 "runarray.in"
if(n < 0) error("cannot create a negative length array");
if(depth < 0) error("cannot copy to a negative depth");
if(depth > typeDepth) depth=typeDepth;
@@ -732,13 +747,13 @@ void copyArrayValue(stack *Stack)
// typeDepth is the true depth of the array determined at compile-time when the
// operations for the array type are added. This typeDepth argument is
// automatically pushed on the stack and is not visible to the user.
-#line 668 "runarray.in"
+#line 684 "runarray.in"
void copyArray(stack *Stack)
{
Int typeDepth=vm::pop<Int>(Stack);
Int depth=vm::pop<Int>(Stack,Int_MAX);
array * a=vm::pop<array *>(Stack);
-#line 669 "runarray.in"
+#line 685 "runarray.in"
if(a == 0) vm::error(dereferenceNullArray);
if(depth < 0) error("cannot copy to a negative depth");
if(depth > typeDepth) depth=typeDepth;
@@ -746,12 +761,12 @@ void copyArray(stack *Stack)
}
// Read an element from an array. Checks for initialization & bounds.
-#line 677 "runarray.in"
+#line 693 "runarray.in"
void arrayRead(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 678 "runarray.in"
+#line 694 "runarray.in"
item& i=arrayRead(a,n);
if (i.empty()) {
ostringstream buf;
@@ -762,37 +777,37 @@ void arrayRead(stack *Stack)
}
// Slice a substring from an array.
-#line 689 "runarray.in"
+#line 705 "runarray.in"
void arraySliceRead(stack *Stack)
{
Int right=vm::pop<Int>(Stack);
Int left=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 690 "runarray.in"
+#line 706 "runarray.in"
checkArray(a);
{Stack->push(a->slice(left, right)); return;}
}
// Slice a substring from an array. This implements the cases a[i:] and a[:]
// where the endpoint is not given, and assumed to be the length of the array.
-#line 697 "runarray.in"
+#line 713 "runarray.in"
void arraySliceReadToEnd(stack *Stack)
{
Int left=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 698 "runarray.in"
+#line 714 "runarray.in"
size_t len=checkArray(a);
{Stack->push(a->slice(left, (Int)len)); return;}
}
// Read an element from an array of arrays. Check bounds and initialize
// as necessary.
-#line 705 "runarray.in"
+#line 721 "runarray.in"
void arrayArrayRead(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 706 "runarray.in"
+#line 722 "runarray.in"
item& i=arrayRead(a,n);
if (i.empty()) i=new array(0);
{Stack->push(i); return;}
@@ -800,13 +815,13 @@ void arrayArrayRead(stack *Stack)
// Write an element to an array. Increase size if necessary.
// TODO: Add arrayWriteAndPop
-#line 714 "runarray.in"
+#line 730 "runarray.in"
void arrayWrite(stack *Stack)
{
item value=vm::pop(Stack);
Int n=vm::pop<Int>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 715 "runarray.in"
+#line 731 "runarray.in"
size_t len=checkArray(a);
bool cyclic=a->cyclic();
if(cyclic && len > 0) n=imod(n,len);
@@ -820,27 +835,27 @@ void arrayWrite(stack *Stack)
{Stack->push(value); return;}
}
-#line 729 "runarray.in"
+#line 745 "runarray.in"
void arraySliceWrite(stack *Stack)
{
array * src=vm::pop<array *>(Stack);
Int right=vm::pop<Int>(Stack);
Int left=vm::pop<Int>(Stack);
array * dest=vm::pop<array *>(Stack);
-#line 730 "runarray.in"
+#line 746 "runarray.in"
checkArray(src);
checkArray(dest);
dest->setSlice(left, right, src);
{Stack->push<array*>(src); return;}
}
-#line 737 "runarray.in"
+#line 753 "runarray.in"
void arraySliceWriteToEnd(stack *Stack)
{
array * src=vm::pop<array *>(Stack);
Int left=vm::pop<Int>(Stack);
array * dest=vm::pop<array *>(Stack);
-#line 738 "runarray.in"
+#line 754 "runarray.in"
checkArray(src);
size_t len=checkArray(dest);
dest->setSlice(left, (Int) len, src);
@@ -848,20 +863,20 @@ void arraySliceWriteToEnd(stack *Stack)
}
// Returns the length of an array.
-#line 746 "runarray.in"
+#line 762 "runarray.in"
void arrayLength(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 747 "runarray.in"
+#line 763 "runarray.in"
{Stack->push<Int>((Int) checkArray(a)); return;}
}
// Returns an array of integers representing the keys of the array.
-#line 752 "runarray.in"
+#line 768 "runarray.in"
void arrayKeys(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 753 "runarray.in"
+#line 769 "runarray.in"
size_t size=checkArray(a);
array *keys=new array();
@@ -875,33 +890,33 @@ void arrayKeys(stack *Stack)
}
// Return the cyclic flag for an array.
-#line 767 "runarray.in"
+#line 783 "runarray.in"
void arrayCyclicFlag(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 768 "runarray.in"
+#line 784 "runarray.in"
checkArray(a);
{Stack->push<bool>(a->cyclic()); return;}
}
-#line 773 "runarray.in"
+#line 789 "runarray.in"
void arraySetCyclicFlag(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
bool b=vm::pop<bool>(Stack);
-#line 774 "runarray.in"
+#line 790 "runarray.in"
checkArray(a);
a->cyclic(b);
{Stack->push<bool>(b); return;}
}
// Check to see if an array element is initialized.
-#line 781 "runarray.in"
+#line 797 "runarray.in"
void arrayInitializedHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 782 "runarray.in"
+#line 798 "runarray.in"
size_t len=checkArray(a);
bool cyclic=a->cyclic();
if(cyclic && len > 0) n=imod(n,len);
@@ -911,62 +926,62 @@ void arrayInitializedHelper(stack *Stack)
}
// Returns the initialize method for an array.
-#line 792 "runarray.in"
+#line 808 "runarray.in"
void arrayInitialized(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 793 "runarray.in"
+#line 809 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayInitializedHelper),a)); return;}
}
// The helper function for the cyclic method that sets the cyclic flag.
-#line 798 "runarray.in"
+#line 814 "runarray.in"
void arrayCyclicHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
bool b=vm::pop<bool>(Stack);
-#line 799 "runarray.in"
+#line 815 "runarray.in"
checkArray(a);
a->cyclic(b);
}
// Set the cyclic flag for an array.
-#line 805 "runarray.in"
+#line 821 "runarray.in"
void arrayCyclic(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 806 "runarray.in"
+#line 822 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayCyclicHelper),a)); return;}
}
// The helper function for the push method that does the actual operation.
-#line 811 "runarray.in"
+#line 827 "runarray.in"
void arrayPushHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
item x=vm::pop(Stack);
-#line 812 "runarray.in"
+#line 828 "runarray.in"
checkArray(a);
a->push(x);
{Stack->push(x); return;}
}
// Returns the push method for an array.
-#line 819 "runarray.in"
+#line 835 "runarray.in"
void arrayPush(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 820 "runarray.in"
+#line 836 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayPushHelper),a)); return;}
}
// The helper function for the append method that appends b to a.
-#line 825 "runarray.in"
+#line 841 "runarray.in"
void arrayAppendHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
array * b=vm::pop<array *>(Stack);
-#line 826 "runarray.in"
+#line 842 "runarray.in"
checkArray(a);
size_t size=checkArray(b);
for(size_t i=0; i < size; i++)
@@ -974,20 +989,20 @@ void arrayAppendHelper(stack *Stack)
}
// Returns the append method for an array.
-#line 834 "runarray.in"
+#line 850 "runarray.in"
void arrayAppend(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 835 "runarray.in"
+#line 851 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayAppendHelper),a)); return;}
}
// The helper function for the pop method.
-#line 840 "runarray.in"
+#line 856 "runarray.in"
void arrayPopHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 841 "runarray.in"
+#line 857 "runarray.in"
size_t asize=checkArray(a);
if(asize == 0)
error("cannot pop element from empty array");
@@ -995,22 +1010,22 @@ void arrayPopHelper(stack *Stack)
}
// Returns the pop method for an array.
-#line 849 "runarray.in"
+#line 865 "runarray.in"
void arrayPop(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 850 "runarray.in"
+#line 866 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayPopHelper),a)); return;}
}
// The helper function for the insert method.
-#line 855 "runarray.in"
+#line 871 "runarray.in"
void arrayInsertHelper(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
array * x=vm::pop<array *>(Stack);
Int i=vm::pop<Int>(Stack);
-#line 856 "runarray.in"
+#line 872 "runarray.in"
size_t asize=checkArray(a);
checkArray(x);
if(a->cyclic() && asize > 0) i=imod(i,asize);
@@ -1020,39 +1035,39 @@ void arrayInsertHelper(stack *Stack)
}
// Returns the insert method for an array.
-#line 866 "runarray.in"
+#line 882 "runarray.in"
void arrayInsert(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 867 "runarray.in"
+#line 883 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayInsertHelper),a)); return;}
}
// Returns the delete method for an array.
-#line 872 "runarray.in"
+#line 888 "runarray.in"
void arrayDelete(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 873 "runarray.in"
+#line 889 "runarray.in"
{Stack->push<callable*>(new thunk(new bfunc(arrayDeleteHelper),a)); return;}
}
-#line 877 "runarray.in"
+#line 893 "runarray.in"
void arrayAlias(stack *Stack)
{
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 878 "runarray.in"
+#line 894 "runarray.in"
{Stack->push<bool>(a==b); return;}
}
// Return array formed by indexing array a with elements of integer array b
-#line 883 "runarray.in"
+#line 899 "runarray.in"
void arrayIntArray(stack *Stack)
{
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 884 "runarray.in"
+#line 900 "runarray.in"
size_t asize=checkArray(a);
size_t bsize=checkArray(b);
array *r=new array(bsize);
@@ -1070,13 +1085,13 @@ void arrayIntArray(stack *Stack)
// returns the complement of the integer array a in {0,2,...,n-1},
// so that b[complement(a,b.length)] yields the complement of b[a].
-#line 902 "runarray.in"
+#line 918 "runarray.in"
// Intarray* complement(Intarray *a, Int n);
void gen_runarray32(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
Intarray * a=vm::pop<Intarray *>(Stack);
-#line 903 "runarray.in"
+#line 919 "runarray.in"
size_t asize=checkArray(a);
array *r=new array(0);
bool *keep=new bool[n];
@@ -1093,12 +1108,12 @@ void gen_runarray32(stack *Stack)
}
// Generate the sequence {f(i) : i=0,1,...n-1} given a function f and integer n
-#line 920 "runarray.in"
+#line 936 "runarray.in"
void arraySequence(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
callable * f=vm::pop<callable *>(Stack);
-#line 921 "runarray.in"
+#line 937 "runarray.in"
if(n < 0) n=0;
array *a=new array(n);
for(Int i=0; i < n; ++i) {
@@ -1110,12 +1125,12 @@ void arraySequence(stack *Stack)
}
// Return the array {0,1,...n-1}
-#line 933 "runarray.in"
+#line 949 "runarray.in"
// Intarray* sequence(Int n);
void gen_runarray34(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 934 "runarray.in"
+#line 950 "runarray.in"
if(n < 0) n=0;
array *a=new array(n);
for(Int i=0; i < n; ++i) {
@@ -1125,12 +1140,12 @@ void gen_runarray34(stack *Stack)
}
// Apply a function to each element of an array
-#line 944 "runarray.in"
+#line 960 "runarray.in"
void arrayFunction(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
callable * f=vm::pop<callable *>(Stack);
-#line 945 "runarray.in"
+#line 961 "runarray.in"
size_t size=checkArray(a);
array *b=new array(size);
for(size_t i=0; i < size; ++i) {
@@ -1141,13 +1156,13 @@ void arrayFunction(stack *Stack)
{Stack->push<array*>(b); return;}
}
-#line 956 "runarray.in"
+#line 972 "runarray.in"
void arraySort(stack *Stack)
{
bool stable=vm::pop<bool>(Stack,true);
callable * less=vm::pop<callable *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 957 "runarray.in"
+#line 973 "runarray.in"
array *c=copyArray(a);
compareFunc=less;
FuncStack=Stack;
@@ -1156,13 +1171,13 @@ void arraySort(stack *Stack)
{Stack->push<array*>(c); return;}
}
-#line 966 "runarray.in"
+#line 982 "runarray.in"
void arraySearch(stack *Stack)
{
callable * less=vm::pop<callable *>(Stack);
item key=vm::pop(Stack);
array * a=vm::pop<array *>(Stack);
-#line 967 "runarray.in"
+#line 983 "runarray.in"
size_t size=a->size();
compareFunc=less;
FuncStack=Stack;
@@ -1180,12 +1195,12 @@ void arraySearch(stack *Stack)
{Stack->push<Int>(0); return;}
}
-#line 985 "runarray.in"
+#line 1001 "runarray.in"
// bool all(boolarray *a);
void gen_runarray38(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 986 "runarray.in"
+#line 1002 "runarray.in"
size_t size=checkArray(a);
bool c=true;
for(size_t i=0; i < size; i++)
@@ -1193,12 +1208,12 @@ void gen_runarray38(stack *Stack)
{Stack->push<bool>(c); return;}
}
-#line 994 "runarray.in"
+#line 1010 "runarray.in"
// boolarray* !(boolarray* a);
void gen_runarray39(stack *Stack)
{
boolarray* a=vm::pop<boolarray*>(Stack);
-#line 995 "runarray.in"
+#line 1011 "runarray.in"
size_t size=checkArray(a);
array *c=new array(size);
for(size_t i=0; i < size; i++)
@@ -1206,12 +1221,12 @@ void gen_runarray39(stack *Stack)
{Stack->push<boolarray*>(c); return;}
}
-#line 1003 "runarray.in"
+#line 1019 "runarray.in"
// Int sum(boolarray *a);
void gen_runarray40(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1004 "runarray.in"
+#line 1020 "runarray.in"
size_t size=checkArray(a);
Int sum=0;
for(size_t i=0; i < size; i++)
@@ -1219,11 +1234,11 @@ void gen_runarray40(stack *Stack)
{Stack->push<Int>(sum); return;}
}
-#line 1012 "runarray.in"
+#line 1028 "runarray.in"
void arrayConcat(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 1013 "runarray.in"
+#line 1029 "runarray.in"
// a is an array of arrays to be concatenated together.
// The signature is
// T[] concat(... T[][] a);
@@ -1250,11 +1265,11 @@ void arrayConcat(stack *Stack)
{Stack->push<array*>(result); return;}
}
-#line 1040 "runarray.in"
+#line 1056 "runarray.in"
void array2Transpose(stack *Stack)
{
array * a=vm::pop<array *>(Stack);
-#line 1041 "runarray.in"
+#line 1057 "runarray.in"
size_t asize=checkArray(a);
array *c=new array(0);
size_t csize=0;
@@ -1283,12 +1298,12 @@ void array2Transpose(stack *Stack)
// permutation (021 or 120, etc; original is 012).
// Transpose by sending respective members to the permutated locations:
// return the array obtained by putting a[i][j][k] into position perm{ijk}.
-#line 1070 "runarray.in"
+#line 1086 "runarray.in"
void array3Transpose(stack *Stack)
{
array * perm=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 1071 "runarray.in"
+#line 1087 "runarray.in"
const size_t DIM=3;
if(checkArray(perm) != DIM) {
@@ -1372,13 +1387,13 @@ void array3Transpose(stack *Stack)
// Find the index of the nth true value in a boolean array or -1 if not found.
// If n is negative, search backwards.
-#line 1155 "runarray.in"
+#line 1171 "runarray.in"
// Int find(boolarray *a, Int n=1);
void gen_runarray44(stack *Stack)
{
Int n=vm::pop<Int>(Stack,1);
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1156 "runarray.in"
+#line 1172 "runarray.in"
size_t size=checkArray(a);
Int j=-1;
if(n > 0)
@@ -1395,12 +1410,12 @@ void gen_runarray44(stack *Stack)
}
// Find all indices of true values in a boolean array.
-#line 1173 "runarray.in"
+#line 1189 "runarray.in"
// Intarray* findall(boolarray *a);
void gen_runarray45(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1174 "runarray.in"
+#line 1190 "runarray.in"
size_t size=checkArray(a);
array *b=new array(0);
for(size_t i=0; i < size; i++) {
@@ -1413,13 +1428,13 @@ void gen_runarray45(stack *Stack)
// construct vector obtained by replacing those elements of b for which the
// corresponding elements of a are false by the corresponding element of c.
-#line 1187 "runarray.in"
+#line 1203 "runarray.in"
void arrayConditional(stack *Stack)
{
array * c=vm::pop<array *>(Stack);
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 1188 "runarray.in"
+#line 1204 "runarray.in"
size_t size=checkArray(a);
array *r=new array(size);
if(b && c) {
@@ -1443,22 +1458,22 @@ void arrayConditional(stack *Stack)
}
// Return an n x n identity matrix.
-#line 1212 "runarray.in"
+#line 1228 "runarray.in"
// realarray2* identity(Int n);
void gen_runarray47(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 1213 "runarray.in"
+#line 1229 "runarray.in"
{Stack->push<realarray2*>(Identity(n)); return;}
}
// Return the inverse of an n x n matrix a using Gauss-Jordan elimination.
-#line 1218 "runarray.in"
+#line 1234 "runarray.in"
// realarray2* inverse(realarray2 *a);
void gen_runarray48(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1219 "runarray.in"
+#line 1235 "runarray.in"
size_t n=checkArray(a);
double *A;
copyArray2C(A,a,true,0,NoGC);
@@ -1471,14 +1486,14 @@ void gen_runarray48(stack *Stack)
// Solve the linear equation ax=b by LU decomposition, returning the
// solution x, where a is an n x n matrix and b is an array of length n.
// If no solution exists, return an empty array.
-#line 1232 "runarray.in"
+#line 1248 "runarray.in"
// realarray* solve(realarray2 *a, realarray *b, bool warn=true);
void gen_runarray49(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
realarray * b=vm::pop<realarray *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1233 "runarray.in"
+#line 1249 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<realarray*>(new array(0)); return;}
@@ -1530,14 +1545,14 @@ void gen_runarray49(stack *Stack)
// Solve the linear equation ax=b by LU decomposition, returning the
// solution x, where a is an n x n matrix and b is an n x m matrix.
// If no solution exists, return an empty array.
-#line 1285 "runarray.in"
+#line 1301 "runarray.in"
// realarray2* solve(realarray2 *a, realarray2 *b, bool warn=true);
void gen_runarray50(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1286 "runarray.in"
+#line 1302 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<realarray2*>(new array(0)); return;}
@@ -1599,12 +1614,12 @@ void gen_runarray50(stack *Stack)
}
// Compute the determinant of an n x n matrix.
-#line 1348 "runarray.in"
+#line 1364 "runarray.in"
// real determinant(realarray2 *a);
void gen_runarray51(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1349 "runarray.in"
+#line 1365 "runarray.in"
real *A;
copyArray2C(A,a);
size_t n=checkArray(a);
@@ -1619,13 +1634,13 @@ void gen_runarray51(stack *Stack)
{Stack->push<real>(det); return;}
}
-#line 1364 "runarray.in"
+#line 1380 "runarray.in"
// realarray* *(realarray2 *a, realarray *b);
void gen_runarray52(stack *Stack)
{
realarray * b=vm::pop<realarray *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1365 "runarray.in"
+#line 1381 "runarray.in"
size_t n=checkArray(a);
size_t m=checkArray(b);
array *c=new array(n);
@@ -1643,13 +1658,13 @@ void gen_runarray52(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 1383 "runarray.in"
+#line 1399 "runarray.in"
// realarray* *(realarray *a, realarray2 *b);
void gen_runarray53(stack *Stack)
{
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1384 "runarray.in"
+#line 1400 "runarray.in"
size_t n=checkArray(a);
if(n != checkArray(b)) error(incommensurate);
real *A;
@@ -1677,62 +1692,62 @@ void gen_runarray53(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 1412 "runarray.in"
+#line 1428 "runarray.in"
// Intarray2* *(Intarray2 *a, Intarray2 *b);
void gen_runarray54(stack *Stack)
{
Intarray2 * b=vm::pop<Intarray2 *>(Stack);
Intarray2 * a=vm::pop<Intarray2 *>(Stack);
-#line 1413 "runarray.in"
+#line 1429 "runarray.in"
{Stack->push<Intarray2*>(mult<Int>(a,b)); return;}
}
-#line 1417 "runarray.in"
+#line 1433 "runarray.in"
// realarray2* *(realarray2 *a, realarray2 *b);
void gen_runarray55(stack *Stack)
{
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1418 "runarray.in"
+#line 1434 "runarray.in"
{Stack->push<realarray2*>(mult<real>(a,b)); return;}
}
-#line 1422 "runarray.in"
+#line 1438 "runarray.in"
// pairarray2* *(pairarray2 *a, pairarray2 *b);
void gen_runarray56(stack *Stack)
{
pairarray2 * b=vm::pop<pairarray2 *>(Stack);
pairarray2 * a=vm::pop<pairarray2 *>(Stack);
-#line 1423 "runarray.in"
+#line 1439 "runarray.in"
{Stack->push<pairarray2*>(mult<pair>(a,b)); return;}
}
-#line 1427 "runarray.in"
+#line 1443 "runarray.in"
// triple *(realarray2 *t, triple v);
void gen_runarray57(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
-#line 1428 "runarray.in"
+#line 1444 "runarray.in"
{Stack->push<triple>(*t*v); return;}
}
-#line 1432 "runarray.in"
+#line 1448 "runarray.in"
// realarray2* AtA(realarray2 *a);
void gen_runarray58(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1433 "runarray.in"
+#line 1449 "runarray.in"
{Stack->push<realarray2*>(AtA<real>(a)); return;}
}
-#line 1437 "runarray.in"
+#line 1453 "runarray.in"
// pair project(triple v, realarray2 *t);
void gen_runarray59(stack *Stack)
{
realarray2 * t=vm::pop<realarray2 *>(Stack);
triple v=vm::pop<triple>(Stack);
-#line 1438 "runarray.in"
+#line 1454 "runarray.in"
size_t n=checkArray(t);
if(n != 4) error(incommensurate);
array *t0=read<array*>(t,0);
@@ -1757,13 +1772,13 @@ void gen_runarray59(stack *Stack)
}
// Compute the dot product of vectors a and b.
-#line 1463 "runarray.in"
+#line 1479 "runarray.in"
// real dot(realarray *a, realarray *b);
void gen_runarray60(stack *Stack)
{
realarray * b=vm::pop<realarray *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1464 "runarray.in"
+#line 1480 "runarray.in"
size_t n=checkArrays(a,b);
real sum=0.0;
for(size_t i=0; i < n; ++i)
@@ -1772,13 +1787,13 @@ void gen_runarray60(stack *Stack)
}
// Compute the complex dot product of vectors a and b.
-#line 1473 "runarray.in"
+#line 1489 "runarray.in"
// pair dot(pairarray *a, pairarray *b);
void gen_runarray61(stack *Stack)
{
pairarray * b=vm::pop<pairarray *>(Stack);
pairarray * a=vm::pop<pairarray *>(Stack);
-#line 1474 "runarray.in"
+#line 1490 "runarray.in"
size_t n=checkArrays(a,b);
pair sum=zero;
for(size_t i=0; i < n; ++i)
@@ -1793,7 +1808,7 @@ void gen_runarray61(stack *Stack)
// [ a[2] b[2] c[2] ]
// [ ... ]
// [ c[n-1] a[n-1] b[n-1] ]
-#line 1489 "runarray.in"
+#line 1505 "runarray.in"
// realarray* tridiagonal(realarray *a, realarray *b, realarray *c, realarray *f);
void gen_runarray62(stack *Stack)
{
@@ -1801,7 +1816,7 @@ void gen_runarray62(stack *Stack)
realarray * c=vm::pop<realarray *>(Stack);
realarray * b=vm::pop<realarray *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1490 "runarray.in"
+#line 1506 "runarray.in"
size_t n=checkArrays(a,b);
checkEqual(n,checkArray(c));
checkEqual(n,checkArray(f));
@@ -1898,7 +1913,7 @@ void gen_runarray62(stack *Stack)
}
// Root solve by Newton-Raphson
-#line 1587 "runarray.in"
+#line 1603 "runarray.in"
// real newton(Int iterations=100, callableReal *f, callableReal *fprime, real x, bool verbose=false);
void gen_runarray63(stack *Stack)
{
@@ -1907,7 +1922,7 @@ void gen_runarray63(stack *Stack)
callableReal * fprime=vm::pop<callableReal *>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
Int iterations=vm::pop<Int>(Stack,100);
-#line 1589 "runarray.in"
+#line 1605 "runarray.in"
static const real fuzz=1000.0*DBL_EPSILON;
Int i=0;
size_t oldPrec=0;
@@ -1953,7 +1968,7 @@ void gen_runarray63(stack *Stack)
// Root solve by Newton-Raphson bisection
// cf. routine rtsafe (Press et al., Numerical Recipes, 1991).
-#line 1635 "runarray.in"
+#line 1651 "runarray.in"
// real newton(Int iterations=100, callableReal *f, callableReal *fprime, real x1, real x2, bool verbose=false);
void gen_runarray64(stack *Stack)
{
@@ -1963,7 +1978,7 @@ void gen_runarray64(stack *Stack)
callableReal * fprime=vm::pop<callableReal *>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
Int iterations=vm::pop<Int>(Stack,100);
-#line 1637 "runarray.in"
+#line 1653 "runarray.in"
static const real fuzz=1000.0*DBL_EPSILON;
size_t oldPrec=0;
if(verbose)
@@ -2049,7 +2064,7 @@ void gen_runarray64(stack *Stack)
// In this implementation, the binary search is interleaved
// with a modified version of quadratic interpolation.
// This is a C++ port of the Asymptote routine written by Charles Staats III.
-#line 1723 "runarray.in"
+#line 1739 "runarray.in"
// real _findroot(callableReal *f, real a, real b, real tolerance, real fa, real fb);
void gen_runarray65(stack *Stack)
{
@@ -2059,7 +2074,7 @@ void gen_runarray65(stack *Stack)
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
-#line 1725 "runarray.in"
+#line 1741 "runarray.in"
if(fa == 0.0) {Stack->push<real>(a); return;}
if(fb == 0.0) {Stack->push<real>(b); return;}
@@ -2151,7 +2166,7 @@ void gen_runarray65(stack *Stack)
{Stack->push<real>(a-(b-a)/(fb-fa)*fa); return;}
}
-#line 1817 "runarray.in"
+#line 1833 "runarray.in"
// real simpson(callableReal *f, real a, real b, real acc=DBL_EPSILON, real dxmax=0);
void gen_runarray66(stack *Stack)
{
@@ -2160,7 +2175,7 @@ void gen_runarray66(stack *Stack)
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
-#line 1819 "runarray.in"
+#line 1835 "runarray.in"
real integral;
if(dxmax <= 0) dxmax=fabs(b-a);
callable *oldFunc=Func;
@@ -2173,13 +2188,13 @@ void gen_runarray66(stack *Stack)
}
// Compute the fast Fourier transform of a pair array
-#line 1832 "runarray.in"
+#line 1848 "runarray.in"
// pairarray* fft(pairarray *a, Int sign=1);
void gen_runarray67(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray * a=vm::pop<pairarray *>(Stack);
-#line 1833 "runarray.in"
+#line 1849 "runarray.in"
#ifdef HAVE_LIBFFTW3
unsigned n=(unsigned) checkArray(a);
array *c=new array(n);
@@ -2209,13 +2224,13 @@ void gen_runarray67(stack *Stack)
}
// Compute the fast Fourier transform of a 2D pair array
-#line 1863 "runarray.in"
+#line 1879 "runarray.in"
// pairarray2* fft(pairarray2 *a, Int sign=1);
void gen_runarray68(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray2 * a=vm::pop<pairarray2 *>(Stack);
-#line 1864 "runarray.in"
+#line 1880 "runarray.in"
#ifdef HAVE_LIBFFTW3
size_t n=checkArray(a);
size_t m=n == 0 ? 0 : checkArray(read<array*>(a,0));
@@ -2260,13 +2275,13 @@ void gen_runarray68(stack *Stack)
}
// Compute the fast Fourier transform of a 3D pair array
-#line 1909 "runarray.in"
+#line 1925 "runarray.in"
// pairarray3* fft(pairarray3 *a, Int sign=1);
void gen_runarray69(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray3 * a=vm::pop<pairarray3 *>(Stack);
-#line 1910 "runarray.in"
+#line 1926 "runarray.in"
#ifdef HAVE_LIBFFTW3
size_t n=checkArray(a);
array *a0=read<array*>(a,0);
@@ -2323,12 +2338,120 @@ void gen_runarray69(stack *Stack)
{Stack->push<pairarray3*>(c); return;}
}
-#line 1967 "runarray.in"
-// Intarray2* triangulate(pairarray *z);
+// Compute the real Schur decomposition of a 2D pair array
+#line 1984 "runarray.in"
+// realarray3* _schur(realarray2 *a);
void gen_runarray70(stack *Stack)
{
+ realarray2 * a=vm::pop<realarray2 *>(Stack);
+#line 1985 "runarray.in"
+#ifdef HAVE_EIGEN_DENSE
+ size_t n=checkArray(a);
+
+ MatrixXd A(n,n);
+ RealSchur<MatrixXd> schur(n);
+
+ array *S=new array(2);
+
+ if(n) {
+ for(size_t i=0; i < n; ++i) {
+ array *ai=read<array *>(a,i);
+ size_t aisize=checkArray(ai);
+ if(aisize != n) error(square);
+ for(size_t j=0; j < n; ++j)
+ A(i,j)=read<double>(ai,j);
+ }
+
+ schur.compute(A);
+ MatrixXd U=schur.matrixU();
+ MatrixXd T=schur.matrixT();
+
+ array *u=new array(n);
+ array *t=new array(n);
+ (*S)[0]=u;
+ (*S)[1]=t;
+
+ for(size_t i=0; i < n; ++i) {
+ array *ui=new array(n);
+ array *ti=new array(n);
+ (*u)[i]=ui;
+ (*t)[i]=ti;
+ for(size_t j=0; j < n; ++j) {
+ (*ui)[j]=U(i,j);
+ (*ti)[j]=T(i,j);
+ }
+ }
+ }
+#else
+ unused(a);
+ array *S=new array(0);
+ error(installEIGEN);
+#endif // HAVE_EIGEN_DENSE
+ {Stack->push<realarray3*>(S); return;}
+}
+
+// Compute the Schur decomposition of a 2D pair array
+#line 2032 "runarray.in"
+// pairarray3* _schur(pairarray2 *a);
+void gen_runarray71(stack *Stack)
+{
+ pairarray2 * a=vm::pop<pairarray2 *>(Stack);
+#line 2033 "runarray.in"
+#ifdef HAVE_EIGEN_DENSE
+ size_t n=checkArray(a);
+
+ MatrixXcd A(n,n);
+ ComplexSchur<MatrixXcd> schur(n);
+
+ array *S=new array(2);
+
+ if(n) {
+ for(size_t i=0; i < n; ++i) {
+ array *ai=read<array *>(a,i);
+ size_t aisize=checkArray(ai);
+ if(aisize != n) error(square);
+ for(size_t j=0; j < n; ++j) {
+ pair z=read<pair>(ai,j);
+ A(i,j)=Complex(z.getx(),z.gety());
+ }
+ }
+
+ schur.compute(A);
+ MatrixXcd U=schur.matrixU();
+ MatrixXcd T=schur.matrixT();
+
+ array *u=new array(n);
+ array *t=new array(n);
+ (*S)[0]=u;
+ (*S)[1]=t;
+
+ for(size_t i=0; i < n; ++i) {
+ array *ui=new array(n);
+ array *ti=new array(n);
+ (*u)[i]=ui;
+ (*t)[i]=ti;
+ for(size_t j=0; j < n; ++j) {
+ Complex z=U(i,j);
+ Complex w=T(i,j);
+ (*ui)[j]=pair(z.real(),z.imag());
+ (*ti)[j]=pair(w.real(),w.imag());
+ }
+ }
+ }
+#else
+ unused(a);
+ array *S=new array(0);
+ error(installEIGEN);
+#endif // HAVE_EIGEN_DENSE
+ {Stack->push<pairarray3*>(S); return;}
+}
+
+#line 2083 "runarray.in"
+// Intarray2* triangulate(pairarray *z);
+void gen_runarray72(stack *Stack)
+{
pairarray * z=vm::pop<pairarray *>(Stack);
-#line 1968 "runarray.in"
+#line 2084 "runarray.in"
size_t nv=checkArray(z);
// Call robust version of Gilles Dumoulin's port of Paul Bourke's
// triangulation code.
@@ -2362,12 +2485,12 @@ void gen_runarray70(stack *Stack)
{Stack->push<Intarray2*>(t); return;}
}
-#line 2002 "runarray.in"
+#line 2118 "runarray.in"
// real norm(realarray *a);
-void gen_runarray71(stack *Stack)
+void gen_runarray73(stack *Stack)
{
realarray * a=vm::pop<realarray *>(Stack);
-#line 2003 "runarray.in"
+#line 2119 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2377,12 +2500,12 @@ void gen_runarray71(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2013 "runarray.in"
+#line 2129 "runarray.in"
// real norm(realarray2 *a);
-void gen_runarray72(stack *Stack)
+void gen_runarray74(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 2014 "runarray.in"
+#line 2130 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2396,12 +2519,12 @@ void gen_runarray72(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2028 "runarray.in"
+#line 2144 "runarray.in"
// real norm(triplearray2 *a);
-void gen_runarray73(stack *Stack)
+void gen_runarray75(stack *Stack)
{
triplearray2 * a=vm::pop<triplearray2 *>(Stack);
-#line 2029 "runarray.in"
+#line 2145 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2415,12 +2538,12 @@ void gen_runarray73(stack *Stack)
{Stack->push<real>(sqrt(M)); return;}
}
-#line 2043 "runarray.in"
+#line 2159 "runarray.in"
// real change2(triplearray2 *a);
-void gen_runarray74(stack *Stack)
+void gen_runarray76(stack *Stack)
{
triplearray2 * a=vm::pop<triplearray2 *>(Stack);
-#line 2044 "runarray.in"
+#line 2160 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<real>(0.0); return;}
@@ -2441,13 +2564,13 @@ void gen_runarray74(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2065 "runarray.in"
+#line 2181 "runarray.in"
// triple minbezier(triplearray2 *P, triple b);
-void gen_runarray75(stack *Stack)
+void gen_runarray77(stack *Stack)
{
triple b=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2066 "runarray.in"
+#line 2182 "runarray.in"
size_t N;
real *A=copyTripleArray2Components(P,N);
bound_double *B=bounddouble(N);
@@ -2458,13 +2581,13 @@ void gen_runarray75(stack *Stack)
{Stack->push<triple>(b); return;}
}
-#line 2077 "runarray.in"
+#line 2193 "runarray.in"
// triple maxbezier(triplearray2 *P, triple b);
-void gen_runarray76(stack *Stack)
+void gen_runarray78(stack *Stack)
{
triple b=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2078 "runarray.in"
+#line 2194 "runarray.in"
size_t N;
real *A=copyTripleArray2Components(P,N);
bound_double *B=bounddouble(N);
@@ -2475,13 +2598,13 @@ void gen_runarray76(stack *Stack)
{Stack->push<triple>(b); return;}
}
-#line 2089 "runarray.in"
+#line 2205 "runarray.in"
// pair minratio(triplearray2 *P, pair b);
-void gen_runarray77(stack *Stack)
+void gen_runarray79(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2090 "runarray.in"
+#line 2206 "runarray.in"
size_t N;
triple *A=copyTripleArray2C(P,N);
real fuzz=Fuzz*norm(A,N);
@@ -2492,13 +2615,13 @@ void gen_runarray77(stack *Stack)
{Stack->push<pair>(b); return;}
}
-#line 2101 "runarray.in"
+#line 2217 "runarray.in"
// pair maxratio(triplearray2 *P, pair b);
-void gen_runarray78(stack *Stack)
+void gen_runarray80(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2102 "runarray.in"
+#line 2218 "runarray.in"
size_t N;
triple *A=copyTripleArray2C(P,N);
bound_triple *B=boundtriple(N);
@@ -2509,11 +2632,11 @@ void gen_runarray78(stack *Stack)
{Stack->push<pair>(b); return;}
}
-#line 2113 "runarray.in"
+#line 2229 "runarray.in"
// realarray* _projection();
-void gen_runarray79(stack *Stack)
+void gen_runarray81(stack *Stack)
{
-#line 2114 "runarray.in"
+#line 2230 "runarray.in"
#ifdef HAVE_GL
array *a=new array(14);
gl::projection P=gl::camera();
@@ -2550,166 +2673,170 @@ namespace trans {
void gen_runarray_venv(venv &ve)
{
-#line 593 "runarray.in"
+#line 609 "runarray.in"
REGISTER_BLTIN(run::emptyArray,"emptyArray");
-#line 599 "runarray.in"
+#line 615 "runarray.in"
REGISTER_BLTIN(run::newDeepArray,"newDeepArray");
-#line 621 "runarray.in"
+#line 637 "runarray.in"
REGISTER_BLTIN(run::newInitializedArray,"newInitializedArray");
-#line 636 "runarray.in"
- REGISTER_BLTIN(run::newAppendedArray,"newAppendedArray");
#line 652 "runarray.in"
+ REGISTER_BLTIN(run::newAppendedArray,"newAppendedArray");
+#line 668 "runarray.in"
REGISTER_BLTIN(run::copyArrayValue,"copyArrayValue");
-#line 664 "runarray.in"
+#line 680 "runarray.in"
REGISTER_BLTIN(run::copyArray,"copyArray");
-#line 676 "runarray.in"
+#line 692 "runarray.in"
REGISTER_BLTIN(run::arrayRead,"arrayRead");
-#line 688 "runarray.in"
+#line 704 "runarray.in"
REGISTER_BLTIN(run::arraySliceRead,"arraySliceRead");
-#line 695 "runarray.in"
+#line 711 "runarray.in"
REGISTER_BLTIN(run::arraySliceReadToEnd,"arraySliceReadToEnd");
-#line 703 "runarray.in"
+#line 719 "runarray.in"
REGISTER_BLTIN(run::arrayArrayRead,"arrayArrayRead");
-#line 712 "runarray.in"
+#line 728 "runarray.in"
REGISTER_BLTIN(run::arrayWrite,"arrayWrite");
-#line 729 "runarray.in"
+#line 745 "runarray.in"
REGISTER_BLTIN(run::arraySliceWrite,"arraySliceWrite");
-#line 737 "runarray.in"
+#line 753 "runarray.in"
REGISTER_BLTIN(run::arraySliceWriteToEnd,"arraySliceWriteToEnd");
-#line 745 "runarray.in"
+#line 761 "runarray.in"
REGISTER_BLTIN(run::arrayLength,"arrayLength");
-#line 751 "runarray.in"
+#line 767 "runarray.in"
REGISTER_BLTIN(run::arrayKeys,"arrayKeys");
-#line 766 "runarray.in"
+#line 782 "runarray.in"
REGISTER_BLTIN(run::arrayCyclicFlag,"arrayCyclicFlag");
-#line 773 "runarray.in"
+#line 789 "runarray.in"
REGISTER_BLTIN(run::arraySetCyclicFlag,"arraySetCyclicFlag");
-#line 780 "runarray.in"
+#line 796 "runarray.in"
REGISTER_BLTIN(run::arrayInitializedHelper,"arrayInitializedHelper");
-#line 791 "runarray.in"
+#line 807 "runarray.in"
REGISTER_BLTIN(run::arrayInitialized,"arrayInitialized");
-#line 797 "runarray.in"
+#line 813 "runarray.in"
REGISTER_BLTIN(run::arrayCyclicHelper,"arrayCyclicHelper");
-#line 804 "runarray.in"
+#line 820 "runarray.in"
REGISTER_BLTIN(run::arrayCyclic,"arrayCyclic");
-#line 810 "runarray.in"
+#line 826 "runarray.in"
REGISTER_BLTIN(run::arrayPushHelper,"arrayPushHelper");
-#line 818 "runarray.in"
+#line 834 "runarray.in"
REGISTER_BLTIN(run::arrayPush,"arrayPush");
-#line 824 "runarray.in"
+#line 840 "runarray.in"
REGISTER_BLTIN(run::arrayAppendHelper,"arrayAppendHelper");
-#line 833 "runarray.in"
+#line 849 "runarray.in"
REGISTER_BLTIN(run::arrayAppend,"arrayAppend");
-#line 839 "runarray.in"
+#line 855 "runarray.in"
REGISTER_BLTIN(run::arrayPopHelper,"arrayPopHelper");
-#line 848 "runarray.in"
+#line 864 "runarray.in"
REGISTER_BLTIN(run::arrayPop,"arrayPop");
-#line 854 "runarray.in"
+#line 870 "runarray.in"
REGISTER_BLTIN(run::arrayInsertHelper,"arrayInsertHelper");
-#line 865 "runarray.in"
+#line 881 "runarray.in"
REGISTER_BLTIN(run::arrayInsert,"arrayInsert");
-#line 871 "runarray.in"
+#line 887 "runarray.in"
REGISTER_BLTIN(run::arrayDelete,"arrayDelete");
-#line 877 "runarray.in"
+#line 893 "runarray.in"
REGISTER_BLTIN(run::arrayAlias,"arrayAlias");
-#line 882 "runarray.in"
+#line 898 "runarray.in"
REGISTER_BLTIN(run::arrayIntArray,"arrayIntArray");
-#line 900 "runarray.in"
+#line 916 "runarray.in"
addFunc(ve, run::gen_runarray32, IntArray(), SYM(complement), formal(IntArray(), SYM(a), false, false), formal(primInt(), SYM(n), false, false));
-#line 919 "runarray.in"
+#line 935 "runarray.in"
REGISTER_BLTIN(run::arraySequence,"arraySequence");
-#line 932 "runarray.in"
+#line 948 "runarray.in"
addFunc(ve, run::gen_runarray34, IntArray(), SYM(sequence), formal(primInt(), SYM(n), false, false));
-#line 943 "runarray.in"
+#line 959 "runarray.in"
REGISTER_BLTIN(run::arrayFunction,"arrayFunction");
-#line 956 "runarray.in"
+#line 972 "runarray.in"
REGISTER_BLTIN(run::arraySort,"arraySort");
-#line 966 "runarray.in"
+#line 982 "runarray.in"
REGISTER_BLTIN(run::arraySearch,"arraySearch");
-#line 985 "runarray.in"
+#line 1001 "runarray.in"
addFunc(ve, run::gen_runarray38, primBoolean(), SYM(all), formal(booleanArray(), SYM(a), false, false));
-#line 994 "runarray.in"
+#line 1010 "runarray.in"
addFunc(ve, run::gen_runarray39, booleanArray(), SYM_LOGNOT, formal(booleanArray(), SYM(a), false, false));
-#line 1003 "runarray.in"
+#line 1019 "runarray.in"
addFunc(ve, run::gen_runarray40, primInt(), SYM(sum), formal(booleanArray(), SYM(a), false, false));
-#line 1012 "runarray.in"
+#line 1028 "runarray.in"
REGISTER_BLTIN(run::arrayConcat,"arrayConcat");
-#line 1040 "runarray.in"
+#line 1056 "runarray.in"
REGISTER_BLTIN(run::array2Transpose,"array2Transpose");
-#line 1066 "runarray.in"
+#line 1082 "runarray.in"
REGISTER_BLTIN(run::array3Transpose,"array3Transpose");
-#line 1153 "runarray.in"
+#line 1169 "runarray.in"
addFunc(ve, run::gen_runarray44, primInt(), SYM(find), formal(booleanArray(), SYM(a), false, false), formal(primInt(), SYM(n), true, false));
-#line 1172 "runarray.in"
+#line 1188 "runarray.in"
addFunc(ve, run::gen_runarray45, IntArray(), SYM(findall), formal(booleanArray(), SYM(a), false, false));
-#line 1185 "runarray.in"
+#line 1201 "runarray.in"
REGISTER_BLTIN(run::arrayConditional,"arrayConditional");
-#line 1211 "runarray.in"
+#line 1227 "runarray.in"
addFunc(ve, run::gen_runarray47, realArray2(), SYM(identity), formal(primInt(), SYM(n), false, false));
-#line 1217 "runarray.in"
+#line 1233 "runarray.in"
addFunc(ve, run::gen_runarray48, realArray2(), SYM(inverse), formal(realArray2(), SYM(a), false, false));
-#line 1229 "runarray.in"
+#line 1245 "runarray.in"
addFunc(ve, run::gen_runarray49, realArray(), SYM(solve), formal(realArray2(), SYM(a), false, false), formal(realArray(), SYM(b), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 1282 "runarray.in"
+#line 1298 "runarray.in"
addFunc(ve, run::gen_runarray50, realArray2(), SYM(solve), formal(realArray2(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 1347 "runarray.in"
+#line 1363 "runarray.in"
addFunc(ve, run::gen_runarray51, primReal(), SYM(determinant), formal(realArray2(), SYM(a), false, false));
-#line 1364 "runarray.in"
+#line 1380 "runarray.in"
addFunc(ve, run::gen_runarray52, realArray(), SYM_TIMES, formal(realArray2(), SYM(a), false, false), formal(realArray(), SYM(b), false, false));
-#line 1383 "runarray.in"
+#line 1399 "runarray.in"
addFunc(ve, run::gen_runarray53, realArray(), SYM_TIMES, formal(realArray(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false));
-#line 1412 "runarray.in"
+#line 1428 "runarray.in"
addFunc(ve, run::gen_runarray54, IntArray2(), SYM_TIMES, formal(IntArray2(), SYM(a), false, false), formal(IntArray2(), SYM(b), false, false));
-#line 1417 "runarray.in"
+#line 1433 "runarray.in"
addFunc(ve, run::gen_runarray55, realArray2(), SYM_TIMES, formal(realArray2(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false));
-#line 1422 "runarray.in"
+#line 1438 "runarray.in"
addFunc(ve, run::gen_runarray56, pairArray2(), SYM_TIMES, formal(pairArray2(), SYM(a), false, false), formal(pairArray2(), SYM(b), false, false));
-#line 1427 "runarray.in"
+#line 1443 "runarray.in"
addFunc(ve, run::gen_runarray57, primTriple(), SYM_TIMES, formal(realArray2(), SYM(t), false, false), formal(primTriple(), SYM(v), false, false));
-#line 1432 "runarray.in"
+#line 1448 "runarray.in"
addFunc(ve, run::gen_runarray58, realArray2(), SYM(AtA), formal(realArray2(), SYM(a), false, false));
-#line 1437 "runarray.in"
+#line 1453 "runarray.in"
addFunc(ve, run::gen_runarray59, primPair(), SYM(project), formal(primTriple(), SYM(v), false, false), formal(realArray2(), SYM(t), false, false));
-#line 1462 "runarray.in"
+#line 1478 "runarray.in"
addFunc(ve, run::gen_runarray60, primReal(), SYM(dot), formal(realArray(), SYM(a), false, false), formal(realArray(), SYM(b), false, false));
-#line 1472 "runarray.in"
+#line 1488 "runarray.in"
addFunc(ve, run::gen_runarray61, primPair(), SYM(dot), formal(pairArray(), SYM(a), false, false), formal(pairArray(), SYM(b), false, false));
-#line 1482 "runarray.in"
+#line 1498 "runarray.in"
addFunc(ve, run::gen_runarray62, realArray(), SYM(tridiagonal), formal(realArray(), SYM(a), false, false), formal(realArray(), SYM(b), false, false), formal(realArray(), SYM(c), false, false), formal(realArray(), SYM(f), false, false));
-#line 1586 "runarray.in"
+#line 1602 "runarray.in"
addFunc(ve, run::gen_runarray63, primReal(), SYM(newton), formal(primInt(), SYM(iterations), true, false), formal(realRealFunction(), SYM(f), false, false), formal(realRealFunction(), SYM(fprime), false, false), formal(primReal(), SYM(x), false, false), formal(primBoolean(), SYM(verbose), true, false));
-#line 1633 "runarray.in"
+#line 1649 "runarray.in"
addFunc(ve, run::gen_runarray64, primReal(), SYM(newton), formal(primInt(), SYM(iterations), true, false), formal(realRealFunction(), SYM(f), false, false), formal(realRealFunction(), SYM(fprime), false, false), formal(primReal(), SYM(x1), false, false), formal(primReal(), SYM(x2), false, false), formal(primBoolean(), SYM(verbose), true, false));
-#line 1715 "runarray.in"
+#line 1731 "runarray.in"
addFunc(ve, run::gen_runarray65, primReal(), SYM(_findroot), formal(realRealFunction(), SYM(f), false, false), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(tolerance), false, false), formal(primReal(), SYM(fa), false, false), formal(primReal(), SYM(fb), false, false));
-#line 1817 "runarray.in"
+#line 1833 "runarray.in"
addFunc(ve, run::gen_runarray66, primReal(), SYM(simpson), formal(realRealFunction(), SYM(f), false, false), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(acc), true, false), formal(primReal(), SYM(dxmax), true, false));
-#line 1831 "runarray.in"
+#line 1847 "runarray.in"
addFunc(ve, run::gen_runarray67, pairArray(), SYM(fft), formal(pairArray(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1862 "runarray.in"
+#line 1878 "runarray.in"
addFunc(ve, run::gen_runarray68, pairArray2(), SYM(fft), formal(pairArray2(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1908 "runarray.in"
+#line 1924 "runarray.in"
addFunc(ve, run::gen_runarray69, pairArray3(), SYM(fft), formal(pairArray3(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1967 "runarray.in"
- addFunc(ve, run::gen_runarray70, IntArray2(), SYM(triangulate), formal(pairArray(), SYM(z), false, false));
-#line 2002 "runarray.in"
- addFunc(ve, run::gen_runarray71, primReal(), SYM(norm), formal(realArray(), SYM(a), false, false));
-#line 2013 "runarray.in"
- addFunc(ve, run::gen_runarray72, primReal(), SYM(norm), formal(realArray2(), SYM(a), false, false));
-#line 2028 "runarray.in"
- addFunc(ve, run::gen_runarray73, primReal(), SYM(norm), formal(tripleArray2(), SYM(a), false, false));
-#line 2043 "runarray.in"
- addFunc(ve, run::gen_runarray74, primReal(), SYM(change2), formal(tripleArray2(), SYM(a), false, false));
-#line 2065 "runarray.in"
- addFunc(ve, run::gen_runarray75, primTriple(), SYM(minbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
-#line 2077 "runarray.in"
- addFunc(ve, run::gen_runarray76, primTriple(), SYM(maxbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
-#line 2089 "runarray.in"
- addFunc(ve, run::gen_runarray77, primPair(), SYM(minratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
-#line 2101 "runarray.in"
- addFunc(ve, run::gen_runarray78, primPair(), SYM(maxratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
-#line 2113 "runarray.in"
- addFunc(ve, run::gen_runarray79, realArray(), SYM(_projection));
+#line 1983 "runarray.in"
+ addFunc(ve, run::gen_runarray70, realArray3(), SYM(_schur), formal(realArray2(), SYM(a), false, false));
+#line 2031 "runarray.in"
+ addFunc(ve, run::gen_runarray71, pairArray3(), SYM(_schur), formal(pairArray2(), SYM(a), false, false));
+#line 2083 "runarray.in"
+ addFunc(ve, run::gen_runarray72, IntArray2(), SYM(triangulate), formal(pairArray(), SYM(z), false, false));
+#line 2118 "runarray.in"
+ addFunc(ve, run::gen_runarray73, primReal(), SYM(norm), formal(realArray(), SYM(a), false, false));
+#line 2129 "runarray.in"
+ addFunc(ve, run::gen_runarray74, primReal(), SYM(norm), formal(realArray2(), SYM(a), false, false));
+#line 2144 "runarray.in"
+ addFunc(ve, run::gen_runarray75, primReal(), SYM(norm), formal(tripleArray2(), SYM(a), false, false));
+#line 2159 "runarray.in"
+ addFunc(ve, run::gen_runarray76, primReal(), SYM(change2), formal(tripleArray2(), SYM(a), false, false));
+#line 2181 "runarray.in"
+ addFunc(ve, run::gen_runarray77, primTriple(), SYM(minbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
+#line 2193 "runarray.in"
+ addFunc(ve, run::gen_runarray78, primTriple(), SYM(maxbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
+#line 2205 "runarray.in"
+ addFunc(ve, run::gen_runarray79, primPair(), SYM(minratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
+#line 2217 "runarray.in"
+ addFunc(ve, run::gen_runarray80, primPair(), SYM(maxratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
+#line 2229 "runarray.in"
+ addFunc(ve, run::gen_runarray81, realArray(), SYM(_projection));
}
} // namespace trans
diff --git a/Build/source/utils/asymptote/runarray.in b/Build/source/utils/asymptote/runarray.in
index 5e45cfd4bf2..6748f7a8902 100644
--- a/Build/source/utils/asymptote/runarray.in
+++ b/Build/source/utils/asymptote/runarray.in
@@ -12,6 +12,7 @@ Intarray* => IntArray()
Intarray2* => IntArray2()
realarray* => realArray()
realarray2* => realArray2()
+realarray3* => realArray3()
pairarray* => pairArray()
pairarray2* => pairArray2()
pairarray3* => pairArray3()
@@ -34,6 +35,19 @@ static const char *installFFTW=
"Please install fftw3, then ./configure; make";
#endif
+#ifdef HAVE_EIGEN_DENSE
+#include <Eigen/Dense>
+typedef std::complex<double> Complex;
+static const char *square="matrix must be square";
+using Eigen::MatrixXd;
+using Eigen::MatrixXcd;
+using Eigen::RealSchur;
+using Eigen::ComplexSchur;
+#else
+static const char *installEIGEN=
+ "Please install eigen3, then ./configure; make";
+#endif
+
using namespace camp;
using namespace vm;
@@ -46,6 +60,7 @@ typedef array Intarray;
typedef array Intarray2;
typedef array realarray;
typedef array realarray2;
+typedef array realarray3;
typedef array pairarray;
typedef array pairarray2;
typedef array pairarray3;
@@ -56,6 +71,7 @@ using types::IntArray;
using types::IntArray2;
using types::realArray;
using types::realArray2;
+using types::realArray3;
using types::pairArray;
using types::pairArray2;
using types::pairArray3;
@@ -1964,6 +1980,106 @@ pairarray3* fft(pairarray3 *a, Int sign=1)
return c;
}
+// Compute the real Schur decomposition of a 2D pair array
+realarray3* _schur(realarray2 *a)
+{
+#ifdef HAVE_EIGEN_DENSE
+ size_t n=checkArray(a);
+
+ MatrixXd A(n,n);
+ RealSchur<MatrixXd> schur(n);
+
+ array *S=new array(2);
+
+ if(n) {
+ for(size_t i=0; i < n; ++i) {
+ array *ai=read<array *>(a,i);
+ size_t aisize=checkArray(ai);
+ if(aisize != n) error(square);
+ for(size_t j=0; j < n; ++j)
+ A(i,j)=read<double>(ai,j);
+ }
+
+ schur.compute(A);
+ MatrixXd U=schur.matrixU();
+ MatrixXd T=schur.matrixT();
+
+ array *u=new array(n);
+ array *t=new array(n);
+ (*S)[0]=u;
+ (*S)[1]=t;
+
+ for(size_t i=0; i < n; ++i) {
+ array *ui=new array(n);
+ array *ti=new array(n);
+ (*u)[i]=ui;
+ (*t)[i]=ti;
+ for(size_t j=0; j < n; ++j) {
+ (*ui)[j]=U(i,j);
+ (*ti)[j]=T(i,j);
+ }
+ }
+ }
+#else
+ unused(a);
+ array *S=new array(0);
+ error(installEIGEN);
+#endif // HAVE_EIGEN_DENSE
+ return S;
+}
+
+// Compute the Schur decomposition of a 2D pair array
+pairarray3* _schur(pairarray2 *a)
+{
+#ifdef HAVE_EIGEN_DENSE
+ size_t n=checkArray(a);
+
+ MatrixXcd A(n,n);
+ ComplexSchur<MatrixXcd> schur(n);
+
+ array *S=new array(2);
+
+ if(n) {
+ for(size_t i=0; i < n; ++i) {
+ array *ai=read<array *>(a,i);
+ size_t aisize=checkArray(ai);
+ if(aisize != n) error(square);
+ for(size_t j=0; j < n; ++j) {
+ pair z=read<pair>(ai,j);
+ A(i,j)=Complex(z.getx(),z.gety());
+ }
+ }
+
+ schur.compute(A);
+ MatrixXcd U=schur.matrixU();
+ MatrixXcd T=schur.matrixT();
+
+ array *u=new array(n);
+ array *t=new array(n);
+ (*S)[0]=u;
+ (*S)[1]=t;
+
+ for(size_t i=0; i < n; ++i) {
+ array *ui=new array(n);
+ array *ti=new array(n);
+ (*u)[i]=ui;
+ (*t)[i]=ti;
+ for(size_t j=0; j < n; ++j) {
+ Complex z=U(i,j);
+ Complex w=T(i,j);
+ (*ui)[j]=pair(z.real(),z.imag());
+ (*ti)[j]=pair(w.real(),w.imag());
+ }
+ }
+ }
+#else
+ unused(a);
+ array *S=new array(0);
+ error(installEIGEN);
+#endif // HAVE_EIGEN_DENSE
+ return S;
+}
+
Intarray2 *triangulate(pairarray *z)
{
size_t nv=checkArray(z);
diff --git a/Build/source/utils/asymptote/runbacktrace.cc b/Build/source/utils/asymptote/runbacktrace.cc
index 002debf8f60..14ad27acc87 100644
--- a/Build/source/utils/asymptote/runbacktrace.cc
+++ b/Build/source/utils/asymptote/runbacktrace.cc
@@ -43,11 +43,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runfile.cc b/Build/source/utils/asymptote/runfile.cc
index c9b2554da88..7804565b7ea 100644
--- a/Build/source/utils/asymptote/runfile.cc
+++ b/Build/source/utils/asymptote/runfile.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runhistory.cc b/Build/source/utils/asymptote/runhistory.cc
index f6a9cc8cf95..089807c5a0a 100644
--- a/Build/source/utils/asymptote/runhistory.cc
+++ b/Build/source/utils/asymptote/runhistory.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runlabel.cc b/Build/source/utils/asymptote/runlabel.cc
index 7611a05eb90..6605bc1b848 100644
--- a/Build/source/utils/asymptote/runlabel.cc
+++ b/Build/source/utils/asymptote/runlabel.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
@@ -360,14 +360,13 @@ void gen_runlabel3(stack *Stack)
int status=opentex(texname,prefix,!xe);
- string pdfname,pdfname2,psname2;
+ string pdfname,psname2;
bool keep=getSetting<bool>("keep");
if(!status) {
if(xe) {
string psdriver=getSetting<string>("psdriver");
pdfname=auxname(prefix,"pdf");
- pdfname2=auxname(prefix+"_","pdf");
psname2=auxname(prefix+"_","ps");
if(!fs::exists(pdfname)) {Stack->push<patharray2*>(new array(n)); return;}
std::ofstream ps(psname.c_str(),std::ios::binary);
@@ -375,34 +374,21 @@ void gen_runlabel3(stack *Stack)
showpath(ps);
- mem::vector<string> pcmd;
- pcmd.push_back(getSetting<string>("gs"));
- pcmd.push_back("-q");
- pcmd.push_back("-dNOCACHE");
- pcmd.push_back("-dNOPAUSE");
- pcmd.push_back("-dBATCH");
- if(safe) pcmd.push_back("-dSAFER");
- pcmd.push_back("-sDEVICE=pdfwrite");
- pcmd.push_back("-sOutputFile="+pdfname2);
- pcmd.push_back(pdfname);
- status=System(pcmd,0,true,"gs");
- if(status == 0) {
- mem::vector<string> cmd;
- cmd.push_back(getSetting<string>("gs"));
- cmd.push_back("-q");
- cmd.push_back("-dNOCACHE");
- cmd.push_back("-dNOPAUSE");
- cmd.push_back("-dBATCH");
- if(safe) cmd.push_back("-dSAFER");
- cmd.push_back("-sDEVICE="+psdriver);
- cmd.push_back("-sOutputFile="+psname2);
- cmd.push_back(pdfname2);
- status=System(cmd,0,true,"gs");
-
- std::ifstream in(psname2.c_str());
- ps << in.rdbuf();
- ps.close();
- }
+ mem::vector<string> cmd;
+ cmd.push_back(getSetting<string>("gs"));
+ cmd.push_back("-q");
+ cmd.push_back("-dNoOutputFonts");
+ cmd.push_back("-dNOPAUSE");
+ cmd.push_back("-dBATCH");
+ if(safe) cmd.push_back("-dSAFER");
+ cmd.push_back("-sDEVICE="+psdriver);
+ cmd.push_back("-sOutputFile="+psname2);
+ cmd.push_back(pdfname);
+ status=System(cmd,0,true,"gs");
+
+ std::ifstream in(psname2.c_str());
+ ps << in.rdbuf();
+ ps.close();
} else {
if(!fs::exists(dviname)) {Stack->push<patharray2*>(new array(n)); return;}
mem::vector<string> dcmd;
@@ -424,11 +410,7 @@ void gen_runlabel3(stack *Stack)
if(!getSetting<bool>("keepaux"))
unlink(auxname(prefix,"aux").c_str());
unlink(auxname(prefix,"log").c_str());
- if(xe) {
- unlink(pdfname.c_str());
- unlink(pdfname2.c_str());
- } else
- unlink(dviname.c_str());
+ unlink(xe ? pdfname.c_str() : dviname.c_str());
if(settings::context(texengine)) {
unlink(auxname(prefix,"top").c_str());
unlink(auxname(prefix,"tua").c_str());
@@ -439,13 +421,13 @@ void gen_runlabel3(stack *Stack)
{Stack->push<patharray2*>(xe ? readpath(psname,keep,0.1) : readpath(psname,keep,0.12,-1.0)); return;}
}
-#line 367 "runlabel.in"
+#line 349 "runlabel.in"
// patharray2* textpath(stringarray *s, penarray *p);
void gen_runlabel4(stack *Stack)
{
penarray * p=vm::pop<penarray *>(Stack);
stringarray * s=vm::pop<stringarray *>(Stack);
-#line 368 "runlabel.in"
+#line 350 "runlabel.in"
size_t n=checkArrays(s,p);
if(n == 0) {Stack->push<patharray2*>(new array(0)); return;}
@@ -481,7 +463,7 @@ void gen_runlabel4(stack *Stack)
mem::vector<string> cmd2;
cmd2.push_back(getSetting<string>("gs"));
cmd2.push_back("-q");
- cmd2.push_back("-dNOCACHE");
+ cmd2.push_back("-dNoOutputFonts");
cmd2.push_back("-dNOPAUSE");
cmd2.push_back("-dBATCH");
cmd2.push_back("-P");
@@ -518,13 +500,13 @@ void gen_runlabel4(stack *Stack)
{Stack->push<patharray2*>(readpath(psname,keep,0.1)); return;}
}
-#line 441 "runlabel.in"
+#line 423 "runlabel.in"
// patharray* _strokepath(path g, pen p=CURRENTPEN);
void gen_runlabel5(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
path g=vm::pop<path>(Stack);
-#line 442 "runlabel.in"
+#line 424 "runlabel.in"
array *P=new array(0);
if(g.size() == 0) {Stack->push<patharray*>(P); return;}
@@ -562,9 +544,9 @@ void gen_runlabel_venv(venv &ve)
addFunc(ve, run::gen_runlabel2, realArray(), SYM(texsize), formal(primString(), SYM(s), false, false), formal(primPen(), SYM(p), true, false));
#line 243 "runlabel.in"
addFunc(ve, run::gen_runlabel3, pathArray2(), SYM(_texpath), formal(stringArray(), SYM(s), false, false), formal(penArray(), SYM(p), false, false));
-#line 367 "runlabel.in"
+#line 349 "runlabel.in"
addFunc(ve, run::gen_runlabel4, pathArray2(), SYM(textpath), formal(stringArray(), SYM(s), false, false), formal(penArray(), SYM(p), false, false));
-#line 441 "runlabel.in"
+#line 423 "runlabel.in"
addFunc(ve, run::gen_runlabel5, pathArray(), SYM(_strokepath), formal(primPath(), SYM(g), false, false), formal(primPen(), SYM(p), true, false));
}
diff --git a/Build/source/utils/asymptote/runlabel.in b/Build/source/utils/asymptote/runlabel.in
index 4a6a157d085..06354a90450 100644
--- a/Build/source/utils/asymptote/runlabel.in
+++ b/Build/source/utils/asymptote/runlabel.in
@@ -285,14 +285,13 @@ patharray2 *_texpath(stringarray *s, penarray *p)
int status=opentex(texname,prefix,!xe);
- string pdfname,pdfname2,psname2;
+ string pdfname,psname2;
bool keep=getSetting<bool>("keep");
if(!status) {
if(xe) {
string psdriver=getSetting<string>("psdriver");
pdfname=auxname(prefix,"pdf");
- pdfname2=auxname(prefix+"_","pdf");
psname2=auxname(prefix+"_","ps");
if(!fs::exists(pdfname)) return new array(n);
std::ofstream ps(psname.c_str(),std::ios::binary);
@@ -300,34 +299,21 @@ patharray2 *_texpath(stringarray *s, penarray *p)
showpath(ps);
- mem::vector<string> pcmd;
- pcmd.push_back(getSetting<string>("gs"));
- pcmd.push_back("-q");
- pcmd.push_back("-dNOCACHE");
- pcmd.push_back("-dNOPAUSE");
- pcmd.push_back("-dBATCH");
- if(safe) pcmd.push_back("-dSAFER");
- pcmd.push_back("-sDEVICE=pdfwrite");
- pcmd.push_back("-sOutputFile="+pdfname2);
- pcmd.push_back(pdfname);
- status=System(pcmd,0,true,"gs");
- if(status == 0) {
- mem::vector<string> cmd;
- cmd.push_back(getSetting<string>("gs"));
- cmd.push_back("-q");
- cmd.push_back("-dNOCACHE");
- cmd.push_back("-dNOPAUSE");
- cmd.push_back("-dBATCH");
- if(safe) cmd.push_back("-dSAFER");
- cmd.push_back("-sDEVICE="+psdriver);
- cmd.push_back("-sOutputFile="+psname2);
- cmd.push_back(pdfname2);
- status=System(cmd,0,true,"gs");
-
- std::ifstream in(psname2.c_str());
- ps << in.rdbuf();
- ps.close();
- }
+ mem::vector<string> cmd;
+ cmd.push_back(getSetting<string>("gs"));
+ cmd.push_back("-q");
+ cmd.push_back("-dNoOutputFonts");
+ cmd.push_back("-dNOPAUSE");
+ cmd.push_back("-dBATCH");
+ if(safe) cmd.push_back("-dSAFER");
+ cmd.push_back("-sDEVICE="+psdriver);
+ cmd.push_back("-sOutputFile="+psname2);
+ cmd.push_back(pdfname);
+ status=System(cmd,0,true,"gs");
+
+ std::ifstream in(psname2.c_str());
+ ps << in.rdbuf();
+ ps.close();
} else {
if(!fs::exists(dviname)) return new array(n);
mem::vector<string> dcmd;
@@ -349,11 +335,7 @@ patharray2 *_texpath(stringarray *s, penarray *p)
if(!getSetting<bool>("keepaux"))
unlink(auxname(prefix,"aux").c_str());
unlink(auxname(prefix,"log").c_str());
- if(xe) {
- unlink(pdfname.c_str());
- unlink(pdfname2.c_str());
- } else
- unlink(dviname.c_str());
+ unlink(xe ? pdfname.c_str() : dviname.c_str());
if(settings::context(texengine)) {
unlink(auxname(prefix,"top").c_str());
unlink(auxname(prefix,"tua").c_str());
@@ -401,7 +383,7 @@ patharray2 *textpath(stringarray *s, penarray *p)
mem::vector<string> cmd2;
cmd2.push_back(getSetting<string>("gs"));
cmd2.push_back("-q");
- cmd2.push_back("-dNOCACHE");
+ cmd2.push_back("-dNoOutputFonts");
cmd2.push_back("-dNOPAUSE");
cmd2.push_back("-dBATCH");
cmd2.push_back("-P");
diff --git a/Build/source/utils/asymptote/runmath.cc b/Build/source/utils/asymptote/runmath.cc
index 776e45c804a..d9ac05bba4d 100644
--- a/Build/source/utils/asymptote/runmath.cc
+++ b/Build/source/utils/asymptote/runmath.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
@@ -70,8 +70,6 @@ function *realRealFunction();
#ifdef __CYGWIN__
extern "C" double yn(int, double);
extern "C" double jn(int, double);
-extern "C" int __signgam;
-#define signgam __signgam
#endif
using namespace camp;
@@ -248,233 +246,233 @@ void Srand(Int seed)
#endif
namespace run {
-#line 192 "runmath.in"
+#line 190 "runmath.in"
// real ^(real x, Int y);
void gen_runmath0(stack *Stack)
{
Int y=vm::pop<Int>(Stack);
real x=vm::pop<real>(Stack);
-#line 193 "runmath.in"
+#line 191 "runmath.in"
{Stack->push<real>(pow(x,y)); return;}
}
-#line 197 "runmath.in"
+#line 195 "runmath.in"
// pair ^(pair z, Int y);
void gen_runmath1(stack *Stack)
{
Int y=vm::pop<Int>(Stack);
pair z=vm::pop<pair>(Stack);
-#line 198 "runmath.in"
+#line 196 "runmath.in"
{Stack->push<pair>(pow(z,y)); return;}
}
-#line 202 "runmath.in"
+#line 200 "runmath.in"
// Int quotient(Int x, Int y);
void gen_runmath2(stack *Stack)
{
Int y=vm::pop<Int>(Stack);
Int x=vm::pop<Int>(Stack);
-#line 203 "runmath.in"
+#line 201 "runmath.in"
{Stack->push<Int>(quotient<Int>()(x,y)); return;}
}
-#line 207 "runmath.in"
+#line 205 "runmath.in"
// Int abs(Int x);
void gen_runmath3(stack *Stack)
{
Int x=vm::pop<Int>(Stack);
-#line 208 "runmath.in"
+#line 206 "runmath.in"
{Stack->push<Int>(Abs(x)); return;}
}
-#line 212 "runmath.in"
+#line 210 "runmath.in"
// Int sgn(real x);
void gen_runmath4(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 213 "runmath.in"
+#line 211 "runmath.in"
{Stack->push<Int>(sgn(x)); return;}
}
-#line 217 "runmath.in"
+#line 215 "runmath.in"
// Int rand();
void gen_runmath5(stack *Stack)
{
-#line 218 "runmath.in"
+#line 216 "runmath.in"
if(initializeRandom)
Srand(1);
{Stack->push<Int>(random()); return;}
}
-#line 224 "runmath.in"
+#line 222 "runmath.in"
// void srand(Int seed);
void gen_runmath6(stack *Stack)
{
Int seed=vm::pop<Int>(Stack);
-#line 225 "runmath.in"
+#line 223 "runmath.in"
Srand(seed);
}
// a random number uniformly distributed in the interval [0,1]
-#line 230 "runmath.in"
+#line 228 "runmath.in"
// real unitrand();
void gen_runmath7(stack *Stack)
{
-#line 231 "runmath.in"
+#line 229 "runmath.in"
{Stack->push<real>(((real) random())/RANDOM_MAX); return;}
}
-#line 235 "runmath.in"
+#line 233 "runmath.in"
// Int ceil(real x);
void gen_runmath8(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 236 "runmath.in"
+#line 234 "runmath.in"
{Stack->push<Int>(Intcast(ceil(x))); return;}
}
-#line 240 "runmath.in"
+#line 238 "runmath.in"
// Int floor(real x);
void gen_runmath9(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 241 "runmath.in"
+#line 239 "runmath.in"
{Stack->push<Int>(Intcast(floor(x))); return;}
}
-#line 245 "runmath.in"
+#line 243 "runmath.in"
// Int round(real x);
void gen_runmath10(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 246 "runmath.in"
+#line 244 "runmath.in"
if(validInt(x)) {Stack->push<Int>(Round(x)); return;}
integeroverflow(0);
}
-#line 251 "runmath.in"
+#line 249 "runmath.in"
// Int Ceil(real x);
void gen_runmath11(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 252 "runmath.in"
+#line 250 "runmath.in"
{Stack->push<Int>(Ceil(x)); return;}
}
-#line 256 "runmath.in"
+#line 254 "runmath.in"
// Int Floor(real x);
void gen_runmath12(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 257 "runmath.in"
+#line 255 "runmath.in"
{Stack->push<Int>(Floor(x)); return;}
}
-#line 261 "runmath.in"
+#line 259 "runmath.in"
// Int Round(real x);
void gen_runmath13(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 262 "runmath.in"
+#line 260 "runmath.in"
{Stack->push<Int>(Round(Intcap(x))); return;}
}
-#line 266 "runmath.in"
+#line 264 "runmath.in"
// real fmod(real x, real y);
void gen_runmath14(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 267 "runmath.in"
+#line 265 "runmath.in"
if (y == 0.0) dividebyzero();
{Stack->push<real>(fmod(x,y)); return;}
}
-#line 272 "runmath.in"
+#line 270 "runmath.in"
// real atan2(real y, real x);
void gen_runmath15(stack *Stack)
{
real x=vm::pop<real>(Stack);
real y=vm::pop<real>(Stack);
-#line 273 "runmath.in"
+#line 271 "runmath.in"
{Stack->push<real>(atan2(y,x)); return;}
}
-#line 277 "runmath.in"
+#line 275 "runmath.in"
// real hypot(real x, real y);
void gen_runmath16(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 278 "runmath.in"
+#line 276 "runmath.in"
{Stack->push<real>(hypot(x,y)); return;}
}
-#line 282 "runmath.in"
+#line 280 "runmath.in"
// real remainder(real x, real y);
void gen_runmath17(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 283 "runmath.in"
+#line 281 "runmath.in"
{Stack->push<real>(remainder(x,y)); return;}
}
-#line 287 "runmath.in"
+#line 285 "runmath.in"
// real Jn(Int n, real x);
void gen_runmath18(stack *Stack)
{
real x=vm::pop<real>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 288 "runmath.in"
+#line 286 "runmath.in"
{Stack->push<real>(jn(n,x)); return;}
}
-#line 292 "runmath.in"
+#line 290 "runmath.in"
// real Yn(Int n, real x);
void gen_runmath19(stack *Stack)
{
real x=vm::pop<real>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 293 "runmath.in"
+#line 291 "runmath.in"
{Stack->push<real>(yn(n,x)); return;}
}
-#line 297 "runmath.in"
+#line 295 "runmath.in"
// real erf(real x);
void gen_runmath20(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 298 "runmath.in"
+#line 296 "runmath.in"
{Stack->push<real>(erf(x)); return;}
}
-#line 302 "runmath.in"
+#line 300 "runmath.in"
// real erfc(real x);
void gen_runmath21(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 303 "runmath.in"
+#line 301 "runmath.in"
{Stack->push<real>(erfc(x)); return;}
}
-#line 307 "runmath.in"
+#line 305 "runmath.in"
// Int factorial(Int n);
void gen_runmath22(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 308 "runmath.in"
+#line 306 "runmath.in"
if(n < 0) error(invalidargument);
{Stack->push<Int>(factorial(n)); return;}
}
-#line 312 "runmath.in"
+#line 310 "runmath.in"
// Int choose(Int n, Int k);
void gen_runmath23(stack *Stack)
{
Int k=vm::pop<Int>(Stack);
Int n=vm::pop<Int>(Stack);
-#line 313 "runmath.in"
+#line 311 "runmath.in"
if(n < 0 || k < 0 || k > n) error(invalidargument);
Int f=1;
Int r=n-k;
@@ -485,12 +483,12 @@ void gen_runmath23(stack *Stack)
{Stack->push<Int>(f); return;}
}
-#line 323 "runmath.in"
+#line 321 "runmath.in"
// real gamma(real x);
void gen_runmath24(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 324 "runmath.in"
+#line 322 "runmath.in"
#ifdef HAVE_TGAMMA
{Stack->push<real>(tgamma(x)); return;}
#else
@@ -499,14 +497,14 @@ void gen_runmath24(stack *Stack)
#endif
}
-#line 333 "runmath.in"
+#line 331 "runmath.in"
// realarray* quadraticroots(real a, real b, real c);
void gen_runmath25(stack *Stack)
{
real c=vm::pop<real>(Stack);
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
-#line 334 "runmath.in"
+#line 332 "runmath.in"
quadraticroots q(a,b,c);
array *roots=new array(q.roots);
if(q.roots >= 1) (*roots)[0]=q.t1;
@@ -514,14 +512,14 @@ void gen_runmath25(stack *Stack)
{Stack->push<realarray*>(roots); return;}
}
-#line 342 "runmath.in"
+#line 340 "runmath.in"
// pairarray* quadraticroots(explicit pair a, explicit pair b, explicit pair c);
void gen_runmath26(stack *Stack)
{
pair c=vm::pop<pair>(Stack);
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 343 "runmath.in"
+#line 341 "runmath.in"
Quadraticroots q(a,b,c);
array *roots=new array(q.roots);
if(q.roots >= 1) (*roots)[0]=q.z1;
@@ -529,7 +527,7 @@ void gen_runmath26(stack *Stack)
{Stack->push<pairarray*>(roots); return;}
}
-#line 351 "runmath.in"
+#line 349 "runmath.in"
// realarray* cubicroots(real a, real b, real c, real d);
void gen_runmath27(stack *Stack)
{
@@ -537,7 +535,7 @@ void gen_runmath27(stack *Stack)
real c=vm::pop<real>(Stack);
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
-#line 352 "runmath.in"
+#line 350 "runmath.in"
cubicroots q(a,b,c,d);
array *roots=new array(q.roots);
if(q.roots >= 1) (*roots)[0]=q.t1;
@@ -548,98 +546,98 @@ void gen_runmath27(stack *Stack)
// Logical operations
-#line 363 "runmath.in"
+#line 361 "runmath.in"
// bool !(bool b);
void gen_runmath28(stack *Stack)
{
bool b=vm::pop<bool>(Stack);
-#line 364 "runmath.in"
+#line 362 "runmath.in"
{Stack->push<bool>(!b); return;}
}
-#line 369 "runmath.in"
+#line 367 "runmath.in"
void boolMemEq(stack *Stack)
{
frame * b=vm::pop<frame *>(Stack);
frame * a=vm::pop<frame *>(Stack);
-#line 370 "runmath.in"
+#line 368 "runmath.in"
{Stack->push<bool>(a == b); return;}
}
-#line 374 "runmath.in"
+#line 372 "runmath.in"
void boolMemNeq(stack *Stack)
{
frame * b=vm::pop<frame *>(Stack);
frame * a=vm::pop<frame *>(Stack);
-#line 375 "runmath.in"
+#line 373 "runmath.in"
{Stack->push<bool>(a != b); return;}
}
-#line 379 "runmath.in"
+#line 377 "runmath.in"
void boolFuncEq(stack *Stack)
{
callable * b=vm::pop<callable *>(Stack);
callable * a=vm::pop<callable *>(Stack);
-#line 380 "runmath.in"
+#line 378 "runmath.in"
{Stack->push<bool>(a->compare(b)); return;}
}
-#line 384 "runmath.in"
+#line 382 "runmath.in"
void boolFuncNeq(stack *Stack)
{
callable * b=vm::pop<callable *>(Stack);
callable * a=vm::pop<callable *>(Stack);
-#line 385 "runmath.in"
+#line 383 "runmath.in"
{Stack->push<bool>(!(a->compare(b))); return;}
}
// Bit operations
-#line 391 "runmath.in"
+#line 389 "runmath.in"
// Int AND(Int a, Int b);
void gen_runmath33(stack *Stack)
{
Int b=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 392 "runmath.in"
+#line 390 "runmath.in"
{Stack->push<Int>(a & b); return;}
}
-#line 397 "runmath.in"
+#line 395 "runmath.in"
// Int OR(Int a, Int b);
void gen_runmath34(stack *Stack)
{
Int b=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 398 "runmath.in"
+#line 396 "runmath.in"
{Stack->push<Int>(a | b); return;}
}
-#line 402 "runmath.in"
+#line 400 "runmath.in"
// Int XOR(Int a, Int b);
void gen_runmath35(stack *Stack)
{
Int b=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 403 "runmath.in"
+#line 401 "runmath.in"
{Stack->push<Int>(a ^ b); return;}
}
-#line 407 "runmath.in"
+#line 405 "runmath.in"
// Int NOT(Int a);
void gen_runmath36(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 408 "runmath.in"
+#line 406 "runmath.in"
{Stack->push<Int>(~a); return;}
}
-#line 412 "runmath.in"
+#line 410 "runmath.in"
// Int CLZ(Int a);
void gen_runmath37(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 413 "runmath.in"
+#line 411 "runmath.in"
if((unsigned long long) a > 0xFFFFFFFF)
{Stack->push<Int>(CLZ((uint32_t) ((unsigned long long) a >> 32))); return;}
else {
@@ -649,32 +647,32 @@ void gen_runmath37(stack *Stack)
}
}
-#line 423 "runmath.in"
+#line 421 "runmath.in"
// Int popcount(Int a);
void gen_runmath38(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 424 "runmath.in"
+#line 422 "runmath.in"
{Stack->push<Int>(popcount(a)); return;}
}
-#line 428 "runmath.in"
+#line 426 "runmath.in"
// Int CTZ(Int a);
void gen_runmath39(stack *Stack)
{
Int a=vm::pop<Int>(Stack);
-#line 429 "runmath.in"
+#line 427 "runmath.in"
{Stack->push<Int>(popcount((a&-a)-1)); return;}
}
// bitreverse a within a word of length bits.
-#line 434 "runmath.in"
+#line 432 "runmath.in"
// Int bitreverse(Int a, Int bits);
void gen_runmath40(stack *Stack)
{
Int bits=vm::pop<Int>(Stack);
Int a=vm::pop<Int>(Stack);
-#line 435 "runmath.in"
+#line 433 "runmath.in"
typedef unsigned long long Bitreverse(unsigned long long a);
static Bitreverse *B[]={bitreverse8,bitreverse16,bitreverse24,bitreverse32,
bitreverse40,bitreverse48,bitreverse56,bitreverse64};
@@ -695,87 +693,87 @@ namespace trans {
void gen_runmath_venv(venv &ve)
{
-#line 192 "runmath.in"
+#line 190 "runmath.in"
addFunc(ve, run::gen_runmath0, primReal(), SYM_CARET, formal(primReal(), SYM(x), false, false), formal(primInt(), SYM(y), false, false));
-#line 197 "runmath.in"
+#line 195 "runmath.in"
addFunc(ve, run::gen_runmath1, primPair(), SYM_CARET, formal(primPair(), SYM(z), false, false), formal(primInt(), SYM(y), false, false));
-#line 202 "runmath.in"
+#line 200 "runmath.in"
addFunc(ve, run::gen_runmath2, primInt(), SYM(quotient), formal(primInt(), SYM(x), false, false), formal(primInt(), SYM(y), false, false));
-#line 207 "runmath.in"
+#line 205 "runmath.in"
addFunc(ve, run::gen_runmath3, primInt(), SYM(abs), formal(primInt(), SYM(x), false, false));
-#line 212 "runmath.in"
+#line 210 "runmath.in"
addFunc(ve, run::gen_runmath4, primInt(), SYM(sgn), formal(primReal(), SYM(x), false, false));
-#line 217 "runmath.in"
+#line 215 "runmath.in"
addFunc(ve, run::gen_runmath5, primInt(), SYM(rand));
-#line 224 "runmath.in"
+#line 222 "runmath.in"
addFunc(ve, run::gen_runmath6, primVoid(), SYM(srand), formal(primInt(), SYM(seed), false, false));
-#line 229 "runmath.in"
+#line 227 "runmath.in"
addFunc(ve, run::gen_runmath7, primReal(), SYM(unitrand));
-#line 235 "runmath.in"
+#line 233 "runmath.in"
addFunc(ve, run::gen_runmath8, primInt(), SYM(ceil), formal(primReal(), SYM(x), false, false));
-#line 240 "runmath.in"
+#line 238 "runmath.in"
addFunc(ve, run::gen_runmath9, primInt(), SYM(floor), formal(primReal(), SYM(x), false, false));
-#line 245 "runmath.in"
+#line 243 "runmath.in"
addFunc(ve, run::gen_runmath10, primInt(), SYM(round), formal(primReal(), SYM(x), false, false));
-#line 251 "runmath.in"
+#line 249 "runmath.in"
addFunc(ve, run::gen_runmath11, primInt(), SYM(Ceil), formal(primReal(), SYM(x), false, false));
-#line 256 "runmath.in"
+#line 254 "runmath.in"
addFunc(ve, run::gen_runmath12, primInt(), SYM(Floor), formal(primReal(), SYM(x), false, false));
-#line 261 "runmath.in"
+#line 259 "runmath.in"
addFunc(ve, run::gen_runmath13, primInt(), SYM(Round), formal(primReal(), SYM(x), false, false));
-#line 266 "runmath.in"
+#line 264 "runmath.in"
addFunc(ve, run::gen_runmath14, primReal(), SYM(fmod), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 272 "runmath.in"
+#line 270 "runmath.in"
addFunc(ve, run::gen_runmath15, primReal(), SYM(atan2), formal(primReal(), SYM(y), false, false), formal(primReal(), SYM(x), false, false));
-#line 277 "runmath.in"
+#line 275 "runmath.in"
addFunc(ve, run::gen_runmath16, primReal(), SYM(hypot), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 282 "runmath.in"
+#line 280 "runmath.in"
addFunc(ve, run::gen_runmath17, primReal(), SYM(remainder), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 287 "runmath.in"
+#line 285 "runmath.in"
addFunc(ve, run::gen_runmath18, primReal(), SYM(Jn), formal(primInt(), SYM(n), false, false), formal(primReal(), SYM(x), false, false));
-#line 292 "runmath.in"
+#line 290 "runmath.in"
addFunc(ve, run::gen_runmath19, primReal(), SYM(Yn), formal(primInt(), SYM(n), false, false), formal(primReal(), SYM(x), false, false));
-#line 297 "runmath.in"
+#line 295 "runmath.in"
addFunc(ve, run::gen_runmath20, primReal(), SYM(erf), formal(primReal(), SYM(x), false, false));
-#line 302 "runmath.in"
+#line 300 "runmath.in"
addFunc(ve, run::gen_runmath21, primReal(), SYM(erfc), formal(primReal(), SYM(x), false, false));
-#line 307 "runmath.in"
+#line 305 "runmath.in"
addFunc(ve, run::gen_runmath22, primInt(), SYM(factorial), formal(primInt(), SYM(n), false, false));
-#line 312 "runmath.in"
+#line 310 "runmath.in"
addFunc(ve, run::gen_runmath23, primInt(), SYM(choose), formal(primInt(), SYM(n), false, false), formal(primInt(), SYM(k), false, false));
-#line 323 "runmath.in"
+#line 321 "runmath.in"
addFunc(ve, run::gen_runmath24, primReal(), SYM(gamma), formal(primReal(), SYM(x), false, false));
-#line 333 "runmath.in"
+#line 331 "runmath.in"
addFunc(ve, run::gen_runmath25, realArray(), SYM(quadraticroots), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(c), false, false));
-#line 342 "runmath.in"
+#line 340 "runmath.in"
addFunc(ve, run::gen_runmath26, pairArray(), SYM(quadraticroots), formal(primPair(), SYM(a), false, true), formal(primPair(), SYM(b), false, true), formal(primPair(), SYM(c), false, true));
-#line 351 "runmath.in"
+#line 349 "runmath.in"
addFunc(ve, run::gen_runmath27, realArray(), SYM(cubicroots), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(c), false, false), formal(primReal(), SYM(d), false, false));
-#line 361 "runmath.in"
+#line 359 "runmath.in"
addFunc(ve, run::gen_runmath28, primBoolean(), SYM_LOGNOT, formal(primBoolean(), SYM(b), false, false));
-#line 369 "runmath.in"
+#line 367 "runmath.in"
REGISTER_BLTIN(run::boolMemEq,"boolMemEq");
-#line 374 "runmath.in"
+#line 372 "runmath.in"
REGISTER_BLTIN(run::boolMemNeq,"boolMemNeq");
-#line 379 "runmath.in"
+#line 377 "runmath.in"
REGISTER_BLTIN(run::boolFuncEq,"boolFuncEq");
-#line 384 "runmath.in"
+#line 382 "runmath.in"
REGISTER_BLTIN(run::boolFuncNeq,"boolFuncNeq");
-#line 389 "runmath.in"
+#line 387 "runmath.in"
addFunc(ve, run::gen_runmath33, primInt(), SYM(AND), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(b), false, false));
-#line 397 "runmath.in"
+#line 395 "runmath.in"
addFunc(ve, run::gen_runmath34, primInt(), SYM(OR), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(b), false, false));
-#line 402 "runmath.in"
+#line 400 "runmath.in"
addFunc(ve, run::gen_runmath35, primInt(), SYM(XOR), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(b), false, false));
-#line 407 "runmath.in"
+#line 405 "runmath.in"
addFunc(ve, run::gen_runmath36, primInt(), SYM(NOT), formal(primInt(), SYM(a), false, false));
-#line 412 "runmath.in"
+#line 410 "runmath.in"
addFunc(ve, run::gen_runmath37, primInt(), SYM(CLZ), formal(primInt(), SYM(a), false, false));
-#line 423 "runmath.in"
+#line 421 "runmath.in"
addFunc(ve, run::gen_runmath38, primInt(), SYM(popcount), formal(primInt(), SYM(a), false, false));
-#line 428 "runmath.in"
+#line 426 "runmath.in"
addFunc(ve, run::gen_runmath39, primInt(), SYM(CTZ), formal(primInt(), SYM(a), false, false));
-#line 433 "runmath.in"
+#line 431 "runmath.in"
addFunc(ve, run::gen_runmath40, primInt(), SYM(bitreverse), formal(primInt(), SYM(a), false, false), formal(primInt(), SYM(bits), false, false));
}
diff --git a/Build/source/utils/asymptote/runmath.in b/Build/source/utils/asymptote/runmath.in
index 9b1291cb941..4beba44fc31 100644
--- a/Build/source/utils/asymptote/runmath.in
+++ b/Build/source/utils/asymptote/runmath.in
@@ -17,8 +17,6 @@ pairarray* => pairArray()
#ifdef __CYGWIN__
extern "C" double yn(int, double);
extern "C" double jn(int, double);
-extern "C" int __signgam;
-#define signgam __signgam
#endif
using namespace camp;
diff --git a/Build/source/utils/asymptote/runpair.cc b/Build/source/utils/asymptote/runpair.cc
index 7ac0c999086..bbae654ec36 100644
--- a/Build/source/utils/asymptote/runpair.cc
+++ b/Build/source/utils/asymptote/runpair.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runpath.cc b/Build/source/utils/asymptote/runpath.cc
index 069055cb6f3..b346cecd739 100644
--- a/Build/source/utils/asymptote/runpath.cc
+++ b/Build/source/utils/asymptote/runpath.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runpath3d.cc b/Build/source/utils/asymptote/runpath3d.cc
index ed27e19b62b..cb80e3b692f 100644
--- a/Build/source/utils/asymptote/runpath3d.cc
+++ b/Build/source/utils/asymptote/runpath3d.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runpicture.cc b/Build/source/utils/asymptote/runpicture.cc
index a85946c710d..70be72fd98f 100644
--- a/Build/source/utils/asymptote/runpicture.cc
+++ b/Build/source/utils/asymptote/runpicture.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
@@ -876,6 +876,7 @@ void gen_runpicture46(stack *Stack)
}
bool clip=false;
if((*p)->begingroup()) {
+ string key=(*p)->KEY;
++level;
while(p != f->nodes.end() && level) {
if(!Delete) {
@@ -894,6 +895,8 @@ void gen_runpicture46(stack *Stack)
fflush(pipeout);
error(nobegin);
}
+ if(level == 0)
+ (*p)->KEY=key;
}
}
}
@@ -958,7 +961,7 @@ void gen_runpicture46(stack *Stack)
// Three-dimensional picture and surface operations
// Bezier curve
-#line 630 "runpicture.in"
+#line 633 "runpicture.in"
// void _draw(picture *f, path3 g, triple center=Zero, penarray *p, real opacity, real shininess, real metallic, real fresnel0, Int interaction=0);
void gen_runpicture47(stack *Stack)
{
@@ -971,7 +974,7 @@ void gen_runpicture47(stack *Stack)
triple center=vm::pop<triple>(Stack,Zero);
path3 g=vm::pop<path3>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 633 "runpicture.in"
+#line 636 "runpicture.in"
size_t n=g.size();
for(unsigned int i=0; i < n; ++i)
f->append(new drawPath3(g.subpath((Int) i,Int(i+1)),center,*p,opacity,
@@ -980,7 +983,7 @@ void gen_runpicture47(stack *Stack)
}
// Bezier patch
-#line 642 "runpicture.in"
+#line 645 "runpicture.in"
// void draw(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, Int digits, bool primitive=false);
void gen_runpicture48(stack *Stack)
{
@@ -997,7 +1000,7 @@ void gen_runpicture48(stack *Stack)
triple center=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 646 "runpicture.in"
+#line 649 "runpicture.in"
f->append(new drawBezierPatch(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
(Interaction) intcast(interaction),
@@ -1005,7 +1008,7 @@ void gen_runpicture48(stack *Stack)
}
// Bezier triangle
-#line 654 "runpicture.in"
+#line 657 "runpicture.in"
// void drawbeziertriangle(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, Int digits, bool primitive=false);
void gen_runpicture49(stack *Stack)
{
@@ -1022,7 +1025,7 @@ void gen_runpicture49(stack *Stack)
triple center=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 659 "runpicture.in"
+#line 662 "runpicture.in"
f->append(new drawBezierTriangle(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
(Interaction) intcast(interaction),
@@ -1030,7 +1033,7 @@ void gen_runpicture49(stack *Stack)
}
// General NURBS curve
-#line 667 "runpicture.in"
+#line 670 "runpicture.in"
// void draw(picture *f, triplearray *P, realarray *knot, realarray *weights=emptyarray, pen p);
void gen_runpicture50(stack *Stack)
{
@@ -1039,12 +1042,12 @@ void gen_runpicture50(stack *Stack)
realarray * knot=vm::pop<realarray *>(Stack);
triplearray * P=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 669 "runpicture.in"
+#line 672 "runpicture.in"
f->append(new drawNurbsPath3(*P,knot,weights,p));
}
// General NURBS surface
-#line 674 "runpicture.in"
+#line 677 "runpicture.in"
// void draw(picture *f, triplearray2 *P, realarray *uknot, realarray *vknot, realarray2 *weights=emptyarray, penarray *p, real opacity, real shininess,real metallic, real fresnel0, penarray *colors);
void gen_runpicture51(stack *Stack)
{
@@ -1059,13 +1062,13 @@ void gen_runpicture51(stack *Stack)
realarray * uknot=vm::pop<realarray *>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 677 "runpicture.in"
+#line 680 "runpicture.in"
f->append(new drawNurbs(*P,uknot,vknot,weights,*p,opacity,shininess,
metallic,fresnel0,*colors));
}
// Sphere primitive
-#line 683 "runpicture.in"
+#line 686 "runpicture.in"
// void drawSphere(picture *f, realarray2 *t, bool half=false, penarray *p, real opacity, real shininess, real metallic, real fresnel0, Int type);
void gen_runpicture52(stack *Stack)
{
@@ -1078,13 +1081,13 @@ void gen_runpicture52(stack *Stack)
bool half=vm::pop<bool>(Stack,false);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 686 "runpicture.in"
+#line 689 "runpicture.in"
f->append(new drawSphere(*t,half,*p,opacity,shininess,metallic,fresnel0,
intcast(type)));
}
// Cylinder primitive
-#line 692 "runpicture.in"
+#line 695 "runpicture.in"
// void drawCylinder(picture *f, realarray2 *t, penarray *p, real opacity, real shininess, real metallic, real fresnel0, bool core=false);
void gen_runpicture53(stack *Stack)
{
@@ -1096,12 +1099,12 @@ void gen_runpicture53(stack *Stack)
penarray * p=vm::pop<penarray *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 695 "runpicture.in"
+#line 698 "runpicture.in"
f->append(new drawCylinder(*t,*p,opacity,shininess,metallic,fresnel0,core));
}
// Disk primitive
-#line 700 "runpicture.in"
+#line 703 "runpicture.in"
// void drawDisk(picture *f, realarray2 *t, penarray *p, real opacity, real shininess, real metallic, real fresnel0);
void gen_runpicture54(stack *Stack)
{
@@ -1112,12 +1115,12 @@ void gen_runpicture54(stack *Stack)
penarray * p=vm::pop<penarray *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 702 "runpicture.in"
+#line 705 "runpicture.in"
f->append(new drawDisk(*t,*p,opacity,shininess,metallic,fresnel0));
}
// Tube primitive
-#line 707 "runpicture.in"
+#line 710 "runpicture.in"
// void drawTube(picture *f, triplearray *g, real width, penarray *p, real opacity, real shininess, real metallic, real fresnel0, triple min, triple max, bool core=false);
void gen_runpicture55(stack *Stack)
{
@@ -1132,13 +1135,13 @@ void gen_runpicture55(stack *Stack)
real width=vm::pop<real>(Stack);
triplearray * g=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 710 "runpicture.in"
+#line 713 "runpicture.in"
f->append(new drawTube(*g,width,*p,opacity,shininess,metallic,fresnel0,
min,max,core));
}
// Draw pixel
-#line 716 "runpicture.in"
+#line 719 "runpicture.in"
// void drawpixel(picture *f, triple v, pen p, real width=1.0);
void gen_runpicture56(stack *Stack)
{
@@ -1146,12 +1149,12 @@ void gen_runpicture56(stack *Stack)
pen p=vm::pop<pen>(Stack);
triple v=vm::pop<triple>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 717 "runpicture.in"
+#line 720 "runpicture.in"
f->append(new drawPixel(v,p,width));
}
// Draw triangles
-#line 722 "runpicture.in"
+#line 725 "runpicture.in"
// void draw(picture *f, triplearray *v, Intarray2 *vi, triple center=Zero, triplearray *n, Intarray2 *ni, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *c=emptyarray, Intarray2 *ci=emptyarray, Int interaction);
void gen_runpicture57(stack *Stack)
{
@@ -1169,64 +1172,64 @@ void gen_runpicture57(stack *Stack)
Intarray2 * vi=vm::pop<Intarray2 *>(Stack);
triplearray * v=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 727 "runpicture.in"
+#line 730 "runpicture.in"
f->append(new drawTriangles(*v,*vi,center,*n,*ni,*p,opacity,shininess,
metallic,fresnel0,*c,*ci,
(Interaction) intcast(interaction)));
}
-#line 733 "runpicture.in"
+#line 736 "runpicture.in"
// triple min3(picture *f);
void gen_runpicture58(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 734 "runpicture.in"
+#line 737 "runpicture.in"
{Stack->push<triple>(f->bounds3().Min()); return;}
}
-#line 738 "runpicture.in"
+#line 741 "runpicture.in"
// triple max3(picture *f);
void gen_runpicture59(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 739 "runpicture.in"
+#line 742 "runpicture.in"
{Stack->push<triple>(f->bounds3().Max()); return;}
}
-#line 743 "runpicture.in"
+#line 746 "runpicture.in"
// triple size3(picture *f);
void gen_runpicture60(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 744 "runpicture.in"
+#line 747 "runpicture.in"
bbox3 b=f->bounds3();
{Stack->push<triple>(b.Max()-b.Min()); return;}
}
-#line 749 "runpicture.in"
+#line 752 "runpicture.in"
// pair minratio(picture *f);
void gen_runpicture61(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 750 "runpicture.in"
+#line 753 "runpicture.in"
{Stack->push<pair>(f->ratio(::min)); return;}
}
-#line 754 "runpicture.in"
+#line 757 "runpicture.in"
// pair maxratio(picture *f);
void gen_runpicture62(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 755 "runpicture.in"
+#line 758 "runpicture.in"
{Stack->push<pair>(f->ratio(::max)); return;}
}
-#line 759 "runpicture.in"
+#line 762 "runpicture.in"
// bool is3D(picture *f);
void gen_runpicture63(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 760 "runpicture.in"
+#line 763 "runpicture.in"
{Stack->push<bool>(f->have3D()); return;}
}
@@ -1330,39 +1333,39 @@ void gen_runpicture_venv(venv &ve)
addFunc(ve, run::gen_runpicture45, primVoid(), SYM(xmap), formal(primString(), SYM(key), false, false), formal(primTransform(), SYM(t), true, false));
#line 515 "runpicture.in"
addFunc(ve, run::gen_runpicture46, primVoid(), SYM(deconstruct), formal(primPicture(), SYM(f), false, false), formal(primPicture(), SYM(preamble), true, false), formal(primTransform(), SYM(t), true, false));
-#line 626 "runpicture.in"
+#line 629 "runpicture.in"
addFunc(ve, run::gen_runpicture47, primVoid(), SYM(_draw), formal(primPicture(), SYM(f), false, false), formal(primPath3(), SYM(g), false, false), formal(primTriple(), SYM(center), true, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primInt(), SYM(interaction), true, false));
-#line 641 "runpicture.in"
+#line 644 "runpicture.in"
addFunc(ve, run::gen_runpicture48, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primInt(), SYM(digits), false, false), formal(primBoolean(), SYM(primitive), true, false));
-#line 653 "runpicture.in"
+#line 656 "runpicture.in"
addFunc(ve, run::gen_runpicture49, primVoid(), SYM(drawbeziertriangle), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primInt(), SYM(digits), false, false), formal(primBoolean(), SYM(primitive), true, false));
-#line 666 "runpicture.in"
+#line 669 "runpicture.in"
addFunc(ve, run::gen_runpicture50, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(p), false, false), formal(realArray(), SYM(knot), false, false), formal(realArray(), SYM(weights), true, false), formal(primPen(), SYM(p), false, false));
-#line 673 "runpicture.in"
+#line 676 "runpicture.in"
addFunc(ve, run::gen_runpicture51, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(realArray(), SYM(uknot), false, false), formal(realArray(), SYM(vknot), false, false), formal(realArray2(), SYM(weights), true, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(colors), false, false));
-#line 682 "runpicture.in"
+#line 685 "runpicture.in"
addFunc(ve, run::gen_runpicture52, primVoid(), SYM(drawSphere), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(primBoolean(), SYM(half), true, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primInt(), SYM(type), false, false));
-#line 691 "runpicture.in"
+#line 694 "runpicture.in"
addFunc(ve, run::gen_runpicture53, primVoid(), SYM(drawCylinder), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primBoolean(), SYM(core), true, false));
-#line 699 "runpicture.in"
+#line 702 "runpicture.in"
addFunc(ve, run::gen_runpicture54, primVoid(), SYM(drawDisk), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false));
-#line 706 "runpicture.in"
+#line 709 "runpicture.in"
addFunc(ve, run::gen_runpicture55, primVoid(), SYM(drawTube), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(g), false, false), formal(primReal(), SYM(width), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primTriple(), SYM(min), false, false), formal(primTriple(), SYM(max), false, false), formal(primBoolean(), SYM(core), true, false));
-#line 715 "runpicture.in"
+#line 718 "runpicture.in"
addFunc(ve, run::gen_runpicture56, primVoid(), SYM(drawpixel), formal(primPicture(), SYM(f), false, false), formal(primTriple(), SYM(v), false, false), formal(primPen(), SYM(p), false, false), formal(primReal(), SYM(width), true, false));
-#line 721 "runpicture.in"
+#line 724 "runpicture.in"
addFunc(ve, run::gen_runpicture57, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(v), false, false), formal(IntArray2(), SYM(vi), false, false), formal(primTriple(), SYM(center), true, false), formal(tripleArray(), SYM(n), false, false), formal(IntArray2(), SYM(ni), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(c), true, false), formal(IntArray2(), SYM(ci), true, false), formal(primInt(), SYM(interaction), false, false));
-#line 733 "runpicture.in"
+#line 736 "runpicture.in"
addFunc(ve, run::gen_runpicture58, primTriple(), SYM(min3), formal(primPicture(), SYM(f), false, false));
-#line 738 "runpicture.in"
+#line 741 "runpicture.in"
addFunc(ve, run::gen_runpicture59, primTriple(), SYM(max3), formal(primPicture(), SYM(f), false, false));
-#line 743 "runpicture.in"
+#line 746 "runpicture.in"
addFunc(ve, run::gen_runpicture60, primTriple(), SYM(size3), formal(primPicture(), SYM(f), false, false));
-#line 749 "runpicture.in"
+#line 752 "runpicture.in"
addFunc(ve, run::gen_runpicture61, primPair(), SYM(minratio), formal(primPicture(), SYM(f), false, false));
-#line 754 "runpicture.in"
+#line 757 "runpicture.in"
addFunc(ve, run::gen_runpicture62, primPair(), SYM(maxratio), formal(primPicture(), SYM(f), false, false));
-#line 759 "runpicture.in"
+#line 762 "runpicture.in"
addFunc(ve, run::gen_runpicture63, primBoolean(), SYM(is3D), formal(primPicture(), SYM(f), false, false));
}
diff --git a/Build/source/utils/asymptote/runpicture.in b/Build/source/utils/asymptote/runpicture.in
index e782d2ed779..696e303ace6 100644
--- a/Build/source/utils/asymptote/runpicture.in
+++ b/Build/source/utils/asymptote/runpicture.in
@@ -545,6 +545,7 @@ void deconstruct(picture *f, picture *preamble=NULL, transform T=identity)
}
bool clip=false;
if((*p)->begingroup()) {
+ string key=(*p)->KEY;
++level;
while(p != f->nodes.end() && level) {
if(!Delete) {
@@ -563,6 +564,8 @@ void deconstruct(picture *f, picture *preamble=NULL, transform T=identity)
fflush(pipeout);
error(nobegin);
}
+ if(level == 0)
+ (*p)->KEY=key;
}
}
}
diff --git a/Build/source/utils/asymptote/runstring.cc b/Build/source/utils/asymptote/runstring.cc
index 98f10e08f2d..912df0ce348 100644
--- a/Build/source/utils/asymptote/runstring.cc
+++ b/Build/source/utils/asymptote/runstring.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runsystem.cc b/Build/source/utils/asymptote/runsystem.cc
index 81115dfc59b..e9c8c37eec6 100644
--- a/Build/source/utils/asymptote/runsystem.cc
+++ b/Build/source/utils/asymptote/runsystem.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runtime.cc b/Build/source/utils/asymptote/runtime.cc
index 5b6e9ea7308..18b9e162f09 100644
--- a/Build/source/utils/asymptote/runtime.cc
+++ b/Build/source/utils/asymptote/runtime.cc
@@ -54,11 +54,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
@@ -204,6 +204,8 @@ const item Default=item(default_t());
namespace run {
+stopWatch wallClock;
+
const char *arrayempty="cannot take min or max of empty array";
const char *noruntime="no runtime environment for embedded eval";
@@ -254,54 +256,54 @@ void unused(void *)
namespace run {
// Initializers
-#line 226 "runtime.in"
+#line 228 "runtime.in"
void IntZero(stack *Stack)
{
-#line 227 "runtime.in"
+#line 229 "runtime.in"
{Stack->push<Int>(0); return;}
}
-#line 232 "runtime.in"
+#line 234 "runtime.in"
void realZero(stack *Stack)
{
-#line 233 "runtime.in"
+#line 235 "runtime.in"
{Stack->push<real>(0.0); return;}
}
-#line 237 "runtime.in"
+#line 239 "runtime.in"
void boolFalse(stack *Stack)
{
-#line 238 "runtime.in"
+#line 240 "runtime.in"
{Stack->push<bool>(false); return;}
}
-#line 242 "runtime.in"
+#line 244 "runtime.in"
// bool isnan(real x);
void gen_runtime3(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 243 "runtime.in"
+#line 245 "runtime.in"
{Stack->push<bool>(std::isnan(x)); return;}
}
-#line 247 "runtime.in"
+#line 249 "runtime.in"
void pushNullArray(stack *Stack)
{
-#line 248 "runtime.in"
+#line 250 "runtime.in"
{Stack->push<array*>(0); return;}
}
-#line 252 "runtime.in"
+#line 254 "runtime.in"
void pushNullRecord(stack *Stack)
{
-#line 253 "runtime.in"
+#line 255 "runtime.in"
{Stack->push<frame*>(0); return;}
}
-#line 257 "runtime.in"
+#line 259 "runtime.in"
void pushNullFunction(stack *Stack)
{
-#line 258 "runtime.in"
+#line 260 "runtime.in"
{Stack->push(nullfunc::instance()); return;}
}
@@ -310,222 +312,222 @@ void pushNullFunction(stack *Stack)
// Put the default value token on the stack (in place of an argument when
// making a function call).
-#line 267 "runtime.in"
+#line 269 "runtime.in"
void pushDefault(stack *Stack)
{
-#line 268 "runtime.in"
+#line 270 "runtime.in"
{Stack->push(Default); return;}
}
// Test if the value on the stack is the default value token.
-#line 274 "runtime.in"
+#line 276 "runtime.in"
void isDefault(stack *Stack)
{
item i=vm::pop(Stack);
-#line 275 "runtime.in"
+#line 277 "runtime.in"
{Stack->push<bool>(isdefault(i)); return;}
}
// Casts
-#line 281 "runtime.in"
+#line 283 "runtime.in"
void pairToGuide(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 282 "runtime.in"
+#line 284 "runtime.in"
{Stack->push<guide*>(new pairguide(z)); return;}
}
-#line 287 "runtime.in"
+#line 289 "runtime.in"
void pathToGuide(stack *Stack)
{
path p=vm::pop<path>(Stack);
-#line 288 "runtime.in"
+#line 290 "runtime.in"
{Stack->push<guide*>(new pathguide(p)); return;}
}
-#line 292 "runtime.in"
+#line 294 "runtime.in"
void guideToPath(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 293 "runtime.in"
+#line 295 "runtime.in"
{Stack->push<path>(g->solve()); return;}
}
// Pen operations
-#line 299 "runtime.in"
+#line 301 "runtime.in"
void newPen(stack *Stack)
{
-#line 300 "runtime.in"
+#line 302 "runtime.in"
{Stack->push<pen>(pen()); return;}
}
-#line 305 "runtime.in"
+#line 307 "runtime.in"
// bool ==(pen a, pen b);
void gen_runtime13(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 306 "runtime.in"
+#line 308 "runtime.in"
{Stack->push<bool>(a == b); return;}
}
-#line 310 "runtime.in"
+#line 312 "runtime.in"
// bool !=(pen a, pen b);
void gen_runtime14(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 311 "runtime.in"
+#line 313 "runtime.in"
{Stack->push<bool>(a != b); return;}
}
-#line 315 "runtime.in"
+#line 317 "runtime.in"
// pen +(pen a, pen b);
void gen_runtime15(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 316 "runtime.in"
+#line 318 "runtime.in"
{Stack->push<pen>(a+b); return;}
}
-#line 320 "runtime.in"
+#line 322 "runtime.in"
// pen *(real a, pen b);
void gen_runtime16(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
real a=vm::pop<real>(Stack);
-#line 321 "runtime.in"
+#line 323 "runtime.in"
{Stack->push<pen>(a*b); return;}
}
-#line 325 "runtime.in"
+#line 327 "runtime.in"
// pen *(pen a, real b);
void gen_runtime17(stack *Stack)
{
real b=vm::pop<real>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 326 "runtime.in"
+#line 328 "runtime.in"
{Stack->push<pen>(b*a); return;}
}
-#line 330 "runtime.in"
+#line 332 "runtime.in"
// pair max(pen p);
void gen_runtime18(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 331 "runtime.in"
+#line 333 "runtime.in"
{Stack->push<pair>(p.bounds().Max()); return;}
}
-#line 335 "runtime.in"
+#line 337 "runtime.in"
// pair min(pen p);
void gen_runtime19(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 336 "runtime.in"
+#line 338 "runtime.in"
{Stack->push<pair>(p.bounds().Min()); return;}
}
// Reset the meaning of pen default attributes.
-#line 341 "runtime.in"
+#line 343 "runtime.in"
// void resetdefaultpen();
void gen_runtime20(stack *)
{
-#line 342 "runtime.in"
+#line 344 "runtime.in"
processData().defaultpen=camp::pen::initialpen();
}
-#line 346 "runtime.in"
+#line 348 "runtime.in"
// void defaultpen(pen p);
void gen_runtime21(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 347 "runtime.in"
+#line 349 "runtime.in"
processData().defaultpen=pen(resolvepen,p);
}
-#line 351 "runtime.in"
+#line 353 "runtime.in"
// pen defaultpen();
void gen_runtime22(stack *Stack)
{
-#line 352 "runtime.in"
+#line 354 "runtime.in"
{Stack->push<pen>(processData().defaultpen); return;}
}
-#line 356 "runtime.in"
+#line 358 "runtime.in"
// bool invisible(pen p);
void gen_runtime23(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 357 "runtime.in"
+#line 359 "runtime.in"
{Stack->push<bool>(p.invisible()); return;}
}
-#line 361 "runtime.in"
+#line 363 "runtime.in"
// pen invisible();
void gen_runtime24(stack *Stack)
{
-#line 362 "runtime.in"
+#line 364 "runtime.in"
{Stack->push<pen>(pen(invisiblepen)); return;}
}
-#line 366 "runtime.in"
+#line 368 "runtime.in"
// pen gray(pen p);
void gen_runtime25(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 367 "runtime.in"
+#line 369 "runtime.in"
p.togrey();
{Stack->push<pen>(p); return;}
}
-#line 372 "runtime.in"
+#line 374 "runtime.in"
// pen rgb(pen p);
void gen_runtime26(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 373 "runtime.in"
+#line 375 "runtime.in"
p.torgb();
{Stack->push<pen>(p); return;}
}
-#line 378 "runtime.in"
+#line 380 "runtime.in"
// pen cmyk(pen p);
void gen_runtime27(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 379 "runtime.in"
+#line 381 "runtime.in"
p.tocmyk();
{Stack->push<pen>(p); return;}
}
-#line 384 "runtime.in"
+#line 386 "runtime.in"
// pen interp(pen a, pen b, real t);
void gen_runtime28(stack *Stack)
{
real t=vm::pop<real>(Stack);
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 385 "runtime.in"
+#line 387 "runtime.in"
{Stack->push<pen>(interpolate(a,b,t)); return;}
}
-#line 389 "runtime.in"
+#line 391 "runtime.in"
// pen rgb(real r, real g, real b);
void gen_runtime29(stack *Stack)
{
real b=vm::pop<real>(Stack);
real g=vm::pop<real>(Stack);
real r=vm::pop<real>(Stack);
-#line 390 "runtime.in"
+#line 392 "runtime.in"
{Stack->push<pen>(pen(r,g,b)); return;}
}
-#line 394 "runtime.in"
+#line 396 "runtime.in"
// pen cmyk(real c, real m, real y, real k);
void gen_runtime30(stack *Stack)
{
@@ -533,25 +535,25 @@ void gen_runtime30(stack *Stack)
real y=vm::pop<real>(Stack);
real m=vm::pop<real>(Stack);
real c=vm::pop<real>(Stack);
-#line 395 "runtime.in"
+#line 397 "runtime.in"
{Stack->push<pen>(pen(c,m,y,k)); return;}
}
-#line 399 "runtime.in"
+#line 401 "runtime.in"
// pen gray(real gray);
void gen_runtime31(stack *Stack)
{
real gray=vm::pop<real>(Stack);
-#line 400 "runtime.in"
+#line 402 "runtime.in"
{Stack->push<pen>(pen(gray)); return;}
}
-#line 404 "runtime.in"
+#line 406 "runtime.in"
// realarray* colors(pen p);
void gen_runtime32(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 405 "runtime.in"
+#line 407 "runtime.in"
size_t n=ColorComponents[p.colorspace()];
array *a=new array(n);
@@ -578,87 +580,87 @@ void gen_runtime32(stack *Stack)
{Stack->push<realarray*>(a); return;}
}
-#line 432 "runtime.in"
+#line 434 "runtime.in"
// string hex(pen p);
void gen_runtime33(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 433 "runtime.in"
+#line 435 "runtime.in"
{Stack->push<string>(p.hex()); return;}
}
-#line 437 "runtime.in"
+#line 439 "runtime.in"
// Int byte(real x);
void gen_runtime34(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 438 "runtime.in"
+#line 440 "runtime.in"
{Stack->push<Int>(camp::byte(x)); return;}
}
-#line 442 "runtime.in"
+#line 444 "runtime.in"
// real byteinv(Int x);
void gen_runtime35(stack *Stack)
{
Int x=vm::pop<Int>(Stack);
-#line 443 "runtime.in"
+#line 445 "runtime.in"
{Stack->push<real>(x >= 0 ? camp::byteinv(x) : 0.0); return;}
}
-#line 447 "runtime.in"
+#line 449 "runtime.in"
// string colorspace(pen p);
void gen_runtime36(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 448 "runtime.in"
+#line 450 "runtime.in"
string s=ColorDeviceSuffix[p.colorspace()];
std::transform(s.begin(),s.end(),s.begin(),tolower);
{Stack->push<string>(s); return;}
}
-#line 454 "runtime.in"
+#line 456 "runtime.in"
// pen pattern(string *s);
void gen_runtime37(stack *Stack)
{
string * s=vm::pop<string *>(Stack);
-#line 455 "runtime.in"
+#line 457 "runtime.in"
{Stack->push<pen>(pen(setpattern,*s)); return;}
}
-#line 459 "runtime.in"
+#line 461 "runtime.in"
// string pattern(pen p);
void gen_runtime38(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 460 "runtime.in"
+#line 462 "runtime.in"
{Stack->push<string>(p.fillpattern()); return;}
}
-#line 464 "runtime.in"
+#line 466 "runtime.in"
// pen fillrule(Int n);
void gen_runtime39(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 465 "runtime.in"
+#line 467 "runtime.in"
{Stack->push<pen>(pen(n >= 0 && n < nFill ? (FillRule) n : DEFFILL)); return;}
}
-#line 469 "runtime.in"
+#line 471 "runtime.in"
// Int fillrule(pen p);
void gen_runtime40(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 470 "runtime.in"
+#line 472 "runtime.in"
{Stack->push<Int>(p.Fillrule()); return;}
}
-#line 474 "runtime.in"
+#line 476 "runtime.in"
// pen opacity(real opacity=1.0, string blend=defaulttransparency);
void gen_runtime41(stack *Stack)
{
string blend=vm::pop<string>(Stack,defaulttransparency);
real opacity=vm::pop<real>(Stack,1.0);
-#line 475 "runtime.in"
+#line 477 "runtime.in"
for(Int i=0; i < nBlendMode; ++i)
if(blend == BlendMode[i]) {Stack->push<pen>(pen(Transparency(blend,opacity))); return;}
@@ -667,25 +669,25 @@ void gen_runtime41(stack *Stack)
error(buf);
}
-#line 484 "runtime.in"
+#line 486 "runtime.in"
// real opacity(pen p);
void gen_runtime42(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 485 "runtime.in"
+#line 487 "runtime.in"
{Stack->push<real>(p.opacity()); return;}
}
-#line 489 "runtime.in"
+#line 491 "runtime.in"
// string blend(pen p);
void gen_runtime43(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 490 "runtime.in"
+#line 492 "runtime.in"
{Stack->push<string>(p.blend()); return;}
}
-#line 494 "runtime.in"
+#line 496 "runtime.in"
// pen linetype(realarray *pattern, real offset=0, bool scale=true, bool adjust=true);
void gen_runtime44(stack *Stack)
{
@@ -693,7 +695,7 @@ void gen_runtime44(stack *Stack)
bool scale=vm::pop<bool>(Stack,true);
real offset=vm::pop<real>(Stack,0);
realarray * pattern=vm::pop<realarray *>(Stack);
-#line 496 "runtime.in"
+#line 498 "runtime.in"
size_t size=checkArray(pattern);
array *a=new array(size);
for(size_t i=0; i < size; ++i)
@@ -702,272 +704,272 @@ void gen_runtime44(stack *Stack)
{Stack->push<pen>(pen(LineType(*a,offset,scale,adjust))); return;}
}
-#line 505 "runtime.in"
+#line 507 "runtime.in"
// realarray* linetype(pen p=CURRENTPEN);
void gen_runtime45(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 506 "runtime.in"
+#line 508 "runtime.in"
array a=p.linetype()->pattern;
{Stack->push<realarray*>(copyArray(&a)); return;}
}
-#line 511 "runtime.in"
+#line 513 "runtime.in"
// real offset(pen p);
void gen_runtime46(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 512 "runtime.in"
+#line 514 "runtime.in"
{Stack->push<real>(p.linetype()->offset); return;}
}
-#line 516 "runtime.in"
+#line 518 "runtime.in"
// bool scale(pen p);
void gen_runtime47(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 517 "runtime.in"
+#line 519 "runtime.in"
{Stack->push<bool>(p.linetype()->scale); return;}
}
-#line 521 "runtime.in"
+#line 523 "runtime.in"
// bool adjust(pen p);
void gen_runtime48(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 522 "runtime.in"
+#line 524 "runtime.in"
{Stack->push<bool>(p.linetype()->adjust); return;}
}
-#line 526 "runtime.in"
+#line 528 "runtime.in"
// pen adjust(pen p, real arclength, bool cyclic);
void gen_runtime49(stack *Stack)
{
bool cyclic=vm::pop<bool>(Stack);
real arclength=vm::pop<real>(Stack);
pen p=vm::pop<pen>(Stack);
-#line 527 "runtime.in"
+#line 529 "runtime.in"
{Stack->push<pen>(adjustdash(p,arclength,cyclic)); return;}
}
-#line 531 "runtime.in"
+#line 533 "runtime.in"
// pen linecap(Int n);
void gen_runtime50(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 532 "runtime.in"
+#line 534 "runtime.in"
{Stack->push<pen>(pen(setlinecap,n >= 0 && n < nCap ? n : DEFCAP)); return;}
}
-#line 536 "runtime.in"
+#line 538 "runtime.in"
// Int linecap(pen p=CURRENTPEN);
void gen_runtime51(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 537 "runtime.in"
+#line 539 "runtime.in"
{Stack->push<Int>(p.cap()); return;}
}
-#line 541 "runtime.in"
+#line 543 "runtime.in"
// pen linejoin(Int n);
void gen_runtime52(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 542 "runtime.in"
+#line 544 "runtime.in"
{Stack->push<pen>(pen(setlinejoin,n >= 0 && n < nJoin ? n : DEFJOIN)); return;}
}
-#line 546 "runtime.in"
+#line 548 "runtime.in"
// Int linejoin(pen p=CURRENTPEN);
void gen_runtime53(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 547 "runtime.in"
+#line 549 "runtime.in"
{Stack->push<Int>(p.join()); return;}
}
-#line 551 "runtime.in"
+#line 553 "runtime.in"
// pen miterlimit(real x);
void gen_runtime54(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 552 "runtime.in"
+#line 554 "runtime.in"
{Stack->push<pen>(pen(setmiterlimit,x >= 1.0 ? x : DEFJOIN)); return;}
}
-#line 556 "runtime.in"
+#line 558 "runtime.in"
// real miterlimit(pen p=CURRENTPEN);
void gen_runtime55(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 557 "runtime.in"
+#line 559 "runtime.in"
{Stack->push<real>(p.miter()); return;}
}
-#line 561 "runtime.in"
+#line 563 "runtime.in"
// pen linewidth(real x);
void gen_runtime56(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 562 "runtime.in"
+#line 564 "runtime.in"
{Stack->push<pen>(pen(setlinewidth,x >= 0.0 ? x : DEFWIDTH)); return;}
}
-#line 566 "runtime.in"
+#line 568 "runtime.in"
// real linewidth(pen p=CURRENTPEN);
void gen_runtime57(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 567 "runtime.in"
+#line 569 "runtime.in"
{Stack->push<real>(p.width()); return;}
}
-#line 571 "runtime.in"
+#line 573 "runtime.in"
// pen fontcommand(string *s);
void gen_runtime58(stack *Stack)
{
string * s=vm::pop<string *>(Stack);
-#line 572 "runtime.in"
+#line 574 "runtime.in"
{Stack->push<pen>(pen(setfont,*s)); return;}
}
-#line 576 "runtime.in"
+#line 578 "runtime.in"
// string font(pen p=CURRENTPEN);
void gen_runtime59(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 577 "runtime.in"
+#line 579 "runtime.in"
{Stack->push<string>(p.Font()); return;}
}
-#line 581 "runtime.in"
+#line 583 "runtime.in"
// pen fontsize(real size, real lineskip);
void gen_runtime60(stack *Stack)
{
real lineskip=vm::pop<real>(Stack);
real size=vm::pop<real>(Stack);
-#line 582 "runtime.in"
+#line 584 "runtime.in"
{Stack->push<pen>(pen(setfontsize,size > 0.0 ? size : 0.0,
lineskip > 0.0 ? lineskip : 0.0)); return;}
}
-#line 587 "runtime.in"
+#line 589 "runtime.in"
// real fontsize(pen p=CURRENTPEN);
void gen_runtime61(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 588 "runtime.in"
+#line 590 "runtime.in"
{Stack->push<real>(p.size()); return;}
}
-#line 592 "runtime.in"
+#line 594 "runtime.in"
// real lineskip(pen p=CURRENTPEN);
void gen_runtime62(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 593 "runtime.in"
+#line 595 "runtime.in"
{Stack->push<real>(p.Lineskip()); return;}
}
-#line 597 "runtime.in"
+#line 599 "runtime.in"
// pen overwrite(Int n);
void gen_runtime63(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 598 "runtime.in"
+#line 600 "runtime.in"
{Stack->push<pen>(pen(setoverwrite,n >= 0 && n < nOverwrite ? (overwrite_t) n :
DEFWRITE)); return;}
}
-#line 603 "runtime.in"
+#line 605 "runtime.in"
// Int overwrite(pen p=CURRENTPEN);
void gen_runtime64(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 604 "runtime.in"
+#line 606 "runtime.in"
{Stack->push<Int>(p.Overwrite()); return;}
}
-#line 608 "runtime.in"
+#line 610 "runtime.in"
// pen basealign(Int n);
void gen_runtime65(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 609 "runtime.in"
+#line 611 "runtime.in"
{Stack->push<pen>(pen(n >= 0 && n < nBaseLine ? (BaseLine) n : DEFBASE)); return;}
}
-#line 613 "runtime.in"
+#line 615 "runtime.in"
// Int basealign(pen p=CURRENTPEN);
void gen_runtime66(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 614 "runtime.in"
+#line 616 "runtime.in"
{Stack->push<Int>(p.Baseline()); return;}
}
-#line 618 "runtime.in"
+#line 620 "runtime.in"
// transform transform(pen p);
void gen_runtime67(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 619 "runtime.in"
+#line 621 "runtime.in"
{Stack->push<transform>(p.getTransform()); return;}
}
-#line 623 "runtime.in"
+#line 625 "runtime.in"
// path nib(pen p);
void gen_runtime68(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 624 "runtime.in"
+#line 626 "runtime.in"
{Stack->push<path>(p.Path()); return;}
}
-#line 628 "runtime.in"
+#line 630 "runtime.in"
// pen makepen(path p);
void gen_runtime69(stack *Stack)
{
path p=vm::pop<path>(Stack);
-#line 629 "runtime.in"
+#line 631 "runtime.in"
{Stack->push<pen>(pen(p)); return;}
}
-#line 633 "runtime.in"
+#line 635 "runtime.in"
// pen colorless(pen p);
void gen_runtime70(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 634 "runtime.in"
+#line 636 "runtime.in"
p.colorless();
{Stack->push<pen>(p); return;}
}
// Interactive mode
-#line 640 "runtime.in"
+#line 642 "runtime.in"
// bool interactive();
void gen_runtime71(stack *Stack)
{
-#line 641 "runtime.in"
+#line 643 "runtime.in"
{Stack->push<bool>(interact::interactive); return;}
}
-#line 646 "runtime.in"
+#line 648 "runtime.in"
// bool uptodate();
void gen_runtime72(stack *Stack)
{
-#line 647 "runtime.in"
+#line 649 "runtime.in"
{Stack->push<bool>(interact::uptodate); return;}
}
// System commands
-#line 653 "runtime.in"
+#line 655 "runtime.in"
// Int system(stringarray *s);
void gen_runtime73(stack *Stack)
{
stringarray * s=vm::pop<stringarray *>(Stack);
-#line 654 "runtime.in"
+#line 656 "runtime.in"
if(safe) error("system() call disabled; override with option -nosafe");
size_t size=checkArray(s);
if(size == 0) {Stack->push<Int>(0); return;}
@@ -977,57 +979,57 @@ void gen_runtime73(stack *Stack)
{Stack->push<Int>(System(cmd)); return;}
}
-#line 665 "runtime.in"
+#line 667 "runtime.in"
// bool view();
void gen_runtime74(stack *Stack)
{
-#line 666 "runtime.in"
+#line 668 "runtime.in"
{Stack->push<bool>(view()); return;}
}
-#line 670 "runtime.in"
+#line 672 "runtime.in"
// string asydir();
void gen_runtime75(stack *Stack)
{
-#line 671 "runtime.in"
+#line 673 "runtime.in"
{Stack->push<string>(systemDir); return;}
}
-#line 675 "runtime.in"
+#line 677 "runtime.in"
// string locale(string s=emptystring);
void gen_runtime76(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
-#line 676 "runtime.in"
+#line 678 "runtime.in"
char *L=setlocale(LC_ALL,s.empty() ? NULL : s.c_str());
{Stack->push<string>(L != NULL ? string(L) : ""); return;}
}
-#line 681 "runtime.in"
+#line 683 "runtime.in"
// void abort(string s=emptystring);
void gen_runtime77(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
-#line 682 "runtime.in"
+#line 684 "runtime.in"
if(s.empty()) throw handled_error();
error(s.c_str());
}
-#line 687 "runtime.in"
+#line 689 "runtime.in"
// void exit();
void gen_runtime78(stack *)
{
-#line 688 "runtime.in"
+#line 690 "runtime.in"
throw quit();
}
-#line 692 "runtime.in"
+#line 694 "runtime.in"
// void assert(bool b, string s=emptystring);
void gen_runtime79(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
bool b=vm::pop<bool>(Stack);
-#line 693 "runtime.in"
+#line 695 "runtime.in"
flush(cout);
if(!b) {
ostringstream buf;
@@ -1037,34 +1039,34 @@ void gen_runtime79(stack *Stack)
}
}
-#line 703 "runtime.in"
+#line 705 "runtime.in"
// void sleep(Int seconds);
void gen_runtime80(stack *Stack)
{
Int seconds=vm::pop<Int>(Stack);
-#line 704 "runtime.in"
+#line 706 "runtime.in"
if(seconds <= 0) return;
sleep(seconds);
}
-#line 709 "runtime.in"
+#line 711 "runtime.in"
// void usleep(Int microseconds);
void gen_runtime81(stack *Stack)
{
Int microseconds=vm::pop<Int>(Stack);
-#line 710 "runtime.in"
+#line 712 "runtime.in"
if(microseconds <= 0) return;
usleep((unsigned long) microseconds);
}
-#line 715 "runtime.in"
+#line 717 "runtime.in"
// void _eval(string *s, bool embedded, bool interactiveWrite=false);
void gen_runtime82(stack *Stack)
{
bool interactiveWrite=vm::pop<bool>(Stack,false);
bool embedded=vm::pop<bool>(Stack);
string * s=vm::pop<string *>(Stack);
-#line 716 "runtime.in"
+#line 718 "runtime.in"
if(embedded) {
trans::coenv *e=Stack->getEnvironment();
vm::interactiveStack *is=dynamic_cast<vm::interactiveStack *>(Stack);
@@ -1076,13 +1078,13 @@ void gen_runtime82(stack *Stack)
runString(*s,interactiveWrite);
}
-#line 728 "runtime.in"
+#line 730 "runtime.in"
// void _eval(runnable *s, bool embedded);
void gen_runtime83(stack *Stack)
{
bool embedded=vm::pop<bool>(Stack);
runnable * s=vm::pop<runnable *>(Stack);
-#line 729 "runtime.in"
+#line 731 "runtime.in"
absyntax::block *ast=new absyntax::block(s->getPos(), false);
ast->add(s);
@@ -1097,51 +1099,51 @@ void gen_runtime83(stack *Stack)
runCode(ast);
}
-#line 744 "runtime.in"
+#line 746 "runtime.in"
// string xasyKEY();
void gen_runtime84(stack *Stack)
{
-#line 745 "runtime.in"
+#line 747 "runtime.in"
processDataStruct& P=processData();
xkey_t& xkey=P.xkey;
xkey_t::iterator p=xkey.find(P.topPos.LineColumn());
{Stack->push<string>(p != xkey.end() ? p->second+" 1" : toplocation()+" 0"); return;}
}
-#line 751 "runtime.in"
+#line 753 "runtime.in"
// void xasyKEY(string *s);
void gen_runtime85(stack *Stack)
{
string * s=vm::pop<string *>(Stack);
-#line 752 "runtime.in"
+#line 754 "runtime.in"
processData().KEY=*s;
}
-#line 755 "runtime.in"
+#line 757 "runtime.in"
// string location();
void gen_runtime86(stack *Stack)
{
-#line 756 "runtime.in"
+#line 758 "runtime.in"
ostringstream buf;
buf << getPos();
{Stack->push<string>(buf.str()); return;}
}
// Wrapper for the stack::load() method.
-#line 762 "runtime.in"
+#line 764 "runtime.in"
void loadModule(stack *Stack)
{
string * index=vm::pop<string *>(Stack);
-#line 763 "runtime.in"
+#line 765 "runtime.in"
Stack->load(*index);
}
-#line 767 "runtime.in"
+#line 769 "runtime.in"
// string cd(string s=emptystring);
void gen_runtime88(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
-#line 768 "runtime.in"
+#line 770 "runtime.in"
if(!globalread()) readDisabled();
if(!s.empty() && !globalwrite()) {
string outname=settings::outname();
@@ -1151,13 +1153,13 @@ void gen_runtime88(stack *Stack)
{Stack->push<string>(setPath(s.c_str())); return;}
}
-#line 778 "runtime.in"
+#line 780 "runtime.in"
// void list(string *s, bool imports=false);
void gen_runtime89(stack *Stack)
{
bool imports=vm::pop<bool>(Stack,false);
string * s=vm::pop<string *>(Stack);
-#line 779 "runtime.in"
+#line 781 "runtime.in"
if(*s == "-") return;
trans::genv ge;
symbol name=symbol::trans(*s);
@@ -1167,18 +1169,18 @@ void gen_runtime89(stack *Stack)
// Guide operations
-#line 789 "runtime.in"
+#line 791 "runtime.in"
void nullGuide(stack *Stack)
{
-#line 790 "runtime.in"
+#line 792 "runtime.in"
{Stack->push<guide*>(new pathguide(path())); return;}
}
-#line 795 "runtime.in"
+#line 797 "runtime.in"
void dotsGuide(stack *Stack)
{
guidearray * a=vm::pop<guidearray *>(Stack);
-#line 796 "runtime.in"
+#line 798 "runtime.in"
guidevector v;
size_t size=checkArray(a);
for (size_t i=0; i < size; ++i)
@@ -1187,11 +1189,11 @@ void dotsGuide(stack *Stack)
{Stack->push<guide*>(new multiguide(v)); return;}
}
-#line 805 "runtime.in"
+#line 807 "runtime.in"
void dashesGuide(stack *Stack)
{
guidearray * a=vm::pop<guidearray *>(Stack);
-#line 806 "runtime.in"
+#line 808 "runtime.in"
static camp::curlSpec curly;
static camp::specguide curlout(&curly, camp::OUT);
static camp::specguide curlin(&curly, camp::IN);
@@ -1217,179 +1219,179 @@ void dashesGuide(stack *Stack)
{Stack->push<guide*>(new multiguide(v)); return;}
}
-#line 832 "runtime.in"
+#line 834 "runtime.in"
void newCycleToken(stack *Stack)
{
-#line 833 "runtime.in"
+#line 835 "runtime.in"
{Stack->push<cycleToken>(cycleToken()); return;}
}
-#line 837 "runtime.in"
+#line 839 "runtime.in"
// guide* operator cast(cycleToken tok);
void gen_runtime94(stack *Stack)
{
cycleToken tok=vm::pop<cycleToken>(Stack);
-#line 838 "runtime.in"
+#line 840 "runtime.in"
// Avoid unused variable warning messages.
unused(&tok);
{Stack->push<guide*>(new cycletokguide()); return;}
}
-#line 844 "runtime.in"
+#line 846 "runtime.in"
// guide* operator spec(pair z, Int p);
void gen_runtime95(stack *Stack)
{
Int p=vm::pop<Int>(Stack);
pair z=vm::pop<pair>(Stack);
-#line 845 "runtime.in"
+#line 847 "runtime.in"
camp::side d=(camp::side) p;
camp::dirSpec *sp=new camp::dirSpec(z);
{Stack->push<guide*>(new specguide(sp,d)); return;}
}
-#line 852 "runtime.in"
+#line 854 "runtime.in"
// curlSpecifier operator curl(real gamma, Int p);
void gen_runtime96(stack *Stack)
{
Int p=vm::pop<Int>(Stack);
real gamma=vm::pop<real>(Stack);
-#line 853 "runtime.in"
+#line 855 "runtime.in"
camp::side s=(camp::side) p;
{Stack->push<curlSpecifier>(curlSpecifier(gamma,s)); return;}
}
-#line 858 "runtime.in"
+#line 860 "runtime.in"
void curlSpecifierValuePart(stack *Stack)
{
curlSpecifier spec=vm::pop<curlSpecifier>(Stack);
-#line 859 "runtime.in"
+#line 861 "runtime.in"
{Stack->push<real>(spec.getValue()); return;}
}
-#line 863 "runtime.in"
+#line 865 "runtime.in"
void curlSpecifierSidePart(stack *Stack)
{
curlSpecifier spec=vm::pop<curlSpecifier>(Stack);
-#line 864 "runtime.in"
+#line 866 "runtime.in"
{Stack->push<Int>(spec.getSide()); return;}
}
-#line 868 "runtime.in"
+#line 870 "runtime.in"
// guide* operator cast(curlSpecifier spec);
void gen_runtime99(stack *Stack)
{
curlSpecifier spec=vm::pop<curlSpecifier>(Stack);
-#line 869 "runtime.in"
+#line 871 "runtime.in"
{Stack->push<guide*>(new specguide(spec)); return;}
}
-#line 873 "runtime.in"
+#line 875 "runtime.in"
// tensionSpecifier operator tension(real tout, real tin, bool atleast);
void gen_runtime100(stack *Stack)
{
bool atleast=vm::pop<bool>(Stack);
real tin=vm::pop<real>(Stack);
real tout=vm::pop<real>(Stack);
-#line 874 "runtime.in"
+#line 876 "runtime.in"
{Stack->push<tensionSpecifier>(tensionSpecifier(tout, tin, atleast)); return;}
}
-#line 878 "runtime.in"
+#line 880 "runtime.in"
void tensionSpecifierOutPart(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 879 "runtime.in"
+#line 881 "runtime.in"
{Stack->push<real>(t.getOut()); return;}
}
-#line 883 "runtime.in"
+#line 885 "runtime.in"
void tensionSpecifierInPart(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 884 "runtime.in"
+#line 886 "runtime.in"
{Stack->push<real>(t.getIn()); return;}
}
-#line 888 "runtime.in"
+#line 890 "runtime.in"
void tensionSpecifierAtleastPart(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 889 "runtime.in"
+#line 891 "runtime.in"
{Stack->push<bool>(t.getAtleast()); return;}
}
-#line 893 "runtime.in"
+#line 895 "runtime.in"
// guide* operator cast(tensionSpecifier t);
void gen_runtime104(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 894 "runtime.in"
+#line 896 "runtime.in"
{Stack->push<guide*>(new tensionguide(t)); return;}
}
-#line 898 "runtime.in"
+#line 900 "runtime.in"
// guide* operator controls(pair zout, pair zin);
void gen_runtime105(stack *Stack)
{
pair zin=vm::pop<pair>(Stack);
pair zout=vm::pop<pair>(Stack);
-#line 899 "runtime.in"
+#line 901 "runtime.in"
{Stack->push<guide*>(new controlguide(zout, zin)); return;}
}
-#line 903 "runtime.in"
+#line 905 "runtime.in"
// Int size(guide *g);
void gen_runtime106(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 904 "runtime.in"
+#line 906 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<Int>(f.size()); return;}
}
-#line 910 "runtime.in"
+#line 912 "runtime.in"
// Int length(guide *g);
void gen_runtime107(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 911 "runtime.in"
+#line 913 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<Int>(g->cyclic() ? f.size() : f.size()-1); return;}
}
-#line 917 "runtime.in"
+#line 919 "runtime.in"
// bool cyclic(guide *g);
void gen_runtime108(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 918 "runtime.in"
+#line 920 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<bool>(g->cyclic()); return;}
}
-#line 924 "runtime.in"
+#line 926 "runtime.in"
// pair point(guide *g, Int t);
void gen_runtime109(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 925 "runtime.in"
+#line 927 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<pair>(f.Nodes(adjustedIndex(t,f.size(),g->cyclic())).z); return;}
}
-#line 931 "runtime.in"
+#line 933 "runtime.in"
// pairarray* dirSpecifier(guide *g, Int t);
void gen_runtime110(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 932 "runtime.in"
+#line 934 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1400,13 +1402,13 @@ void gen_runtime110(stack *Stack)
{Stack->push<pairarray*>(c); return;}
}
-#line 943 "runtime.in"
+#line 945 "runtime.in"
// pairarray* controlSpecifier(guide *g, Int t);
void gen_runtime111(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 944 "runtime.in"
+#line 946 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1422,13 +1424,13 @@ void gen_runtime111(stack *Stack)
} else {Stack->push<pairarray*>(new array(0)); return;}
}
-#line 960 "runtime.in"
+#line 962 "runtime.in"
// tensionSpecifier tensionSpecifier(guide *g, Int t);
void gen_runtime112(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 961 "runtime.in"
+#line 963 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1437,13 +1439,13 @@ void gen_runtime112(stack *Stack)
{Stack->push<tensionSpecifier>(tensionSpecifier(curr.tout.val,f.Nodes(t+1).tin.val,curr.tout.atleast)); return;}
}
-#line 970 "runtime.in"
+#line 972 "runtime.in"
// realarray* curlSpecifier(guide *g, Int t);
void gen_runtime113(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 971 "runtime.in"
+#line 973 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1456,12 +1458,12 @@ void gen_runtime113(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 984 "runtime.in"
+#line 986 "runtime.in"
// guide* reverse(guide *g);
void gen_runtime114(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 985 "runtime.in"
+#line 987 "runtime.in"
flatguide f;
g->flatten(f,false);
if(f.precyclic())
@@ -1512,11 +1514,11 @@ void gen_runtime114(stack *Stack)
{Stack->push<guide*>(new multiguide(v)); return;}
}
-#line 1037 "runtime.in"
+#line 1039 "runtime.in"
// realarray* _cputime();
void gen_runtime115(stack *Stack)
{
-#line 1038 "runtime.in"
+#line 1040 "runtime.in"
static const real ticktime=1.0/sysconf(_SC_CLK_TCK);
struct tms buf;
@@ -1526,109 +1528,109 @@ void gen_runtime115(stack *Stack)
(*t)[1]=((real) buf.tms_stime)*ticktime;
(*t)[2]=((real) buf.tms_cutime)*ticktime;
(*t)[3]=((real) buf.tms_cstime)*ticktime;
- (*t)[4]=utils::totalseconds();
+ (*t)[4]=wallClock.seconds();
{Stack->push<realarray*>(t); return;}
}
// Transforms
-#line 1054 "runtime.in"
+#line 1056 "runtime.in"
// bool ==(transform a, transform b);
void gen_runtime116(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1055 "runtime.in"
+#line 1057 "runtime.in"
{Stack->push<bool>(a == b); return;}
}
-#line 1060 "runtime.in"
+#line 1062 "runtime.in"
// bool !=(transform a, transform b);
void gen_runtime117(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1061 "runtime.in"
+#line 1063 "runtime.in"
{Stack->push<bool>(a != b); return;}
}
-#line 1065 "runtime.in"
+#line 1067 "runtime.in"
// transform +(transform a, transform b);
void gen_runtime118(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1066 "runtime.in"
+#line 1068 "runtime.in"
{Stack->push<transform>(a+b); return;}
}
-#line 1070 "runtime.in"
+#line 1072 "runtime.in"
// transform *(transform a, transform b);
void gen_runtime119(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1071 "runtime.in"
+#line 1073 "runtime.in"
{Stack->push<transform>(a*b); return;}
}
-#line 1075 "runtime.in"
+#line 1077 "runtime.in"
// pair *(transform t, pair z);
void gen_runtime120(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1076 "runtime.in"
+#line 1078 "runtime.in"
{Stack->push<pair>(t*z); return;}
}
-#line 1080 "runtime.in"
+#line 1082 "runtime.in"
// path *(transform t, path g);
void gen_runtime121(stack *Stack)
{
path g=vm::pop<path>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1081 "runtime.in"
+#line 1083 "runtime.in"
{Stack->push<path>(transformed(t,g)); return;}
}
-#line 1085 "runtime.in"
+#line 1087 "runtime.in"
// pen *(transform t, pen p);
void gen_runtime122(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1086 "runtime.in"
+#line 1088 "runtime.in"
{Stack->push<pen>(transformed(t,p)); return;}
}
-#line 1090 "runtime.in"
+#line 1092 "runtime.in"
// picture* *(transform t, picture *f);
void gen_runtime123(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1091 "runtime.in"
+#line 1093 "runtime.in"
{Stack->push<picture*>(transformed(t,f)); return;}
}
-#line 1095 "runtime.in"
+#line 1097 "runtime.in"
// picture* *(realarray2 *t, picture *f);
void gen_runtime124(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
-#line 1096 "runtime.in"
+#line 1098 "runtime.in"
{Stack->push<picture*>(transformed(*t,f)); return;}
}
-#line 1100 "runtime.in"
+#line 1102 "runtime.in"
// transform ^(transform t, Int n);
void gen_runtime125(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1101 "runtime.in"
+#line 1103 "runtime.in"
transform T;
if(n < 0) {
n=-n;
@@ -1638,55 +1640,55 @@ void gen_runtime125(stack *Stack)
{Stack->push<transform>(T); return;}
}
-#line 1111 "runtime.in"
+#line 1113 "runtime.in"
void transformXPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1112 "runtime.in"
+#line 1114 "runtime.in"
{Stack->push<real>(t.getx()); return;}
}
-#line 1116 "runtime.in"
+#line 1118 "runtime.in"
void transformYPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1117 "runtime.in"
+#line 1119 "runtime.in"
{Stack->push<real>(t.gety()); return;}
}
-#line 1121 "runtime.in"
+#line 1123 "runtime.in"
void transformXXPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1122 "runtime.in"
+#line 1124 "runtime.in"
{Stack->push<real>(t.getxx()); return;}
}
-#line 1126 "runtime.in"
+#line 1128 "runtime.in"
void transformXYPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1127 "runtime.in"
+#line 1129 "runtime.in"
{Stack->push<real>(t.getxy()); return;}
}
-#line 1131 "runtime.in"
+#line 1133 "runtime.in"
void transformYXPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1132 "runtime.in"
+#line 1134 "runtime.in"
{Stack->push<real>(t.getyx()); return;}
}
-#line 1136 "runtime.in"
+#line 1138 "runtime.in"
void transformYYPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1137 "runtime.in"
+#line 1139 "runtime.in"
{Stack->push<real>(t.getyy()); return;}
}
-#line 1141 "runtime.in"
+#line 1143 "runtime.in"
void real6ToTransform(stack *Stack)
{
real yy=vm::pop<real>(Stack);
@@ -1695,439 +1697,456 @@ void real6ToTransform(stack *Stack)
real xx=vm::pop<real>(Stack);
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 1143 "runtime.in"
+#line 1145 "runtime.in"
{Stack->push<transform>(transform(x,y,xx,xy,yx,yy)); return;}
}
-#line 1147 "runtime.in"
+#line 1149 "runtime.in"
// transform shift(transform t);
void gen_runtime133(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1148 "runtime.in"
+#line 1150 "runtime.in"
{Stack->push<transform>(transform(t.getx(),t.gety(),0,0,0,0)); return;}
}
-#line 1152 "runtime.in"
+#line 1154 "runtime.in"
// transform shiftless(transform t);
void gen_runtime134(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1153 "runtime.in"
+#line 1155 "runtime.in"
{Stack->push<transform>(transform(0,0,t.getxx(),t.getxy(),t.getyx(),t.getyy())); return;}
}
-#line 1157 "runtime.in"
+#line 1159 "runtime.in"
// transform identity();
void transformIdentity(stack *Stack)
{
-#line 1158 "runtime.in"
+#line 1160 "runtime.in"
{Stack->push<transform>(identity); return;}
}
-#line 1162 "runtime.in"
+#line 1164 "runtime.in"
// transform inverse(transform t);
void gen_runtime136(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1163 "runtime.in"
+#line 1165 "runtime.in"
{Stack->push<transform>(inverse(t)); return;}
}
-#line 1167 "runtime.in"
+#line 1169 "runtime.in"
// transform shift(pair z);
void gen_runtime137(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 1168 "runtime.in"
+#line 1170 "runtime.in"
{Stack->push<transform>(shift(z)); return;}
}
-#line 1172 "runtime.in"
+#line 1174 "runtime.in"
// transform shift(real x, real y);
void gen_runtime138(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 1173 "runtime.in"
+#line 1175 "runtime.in"
{Stack->push<transform>(shift(pair(x,y))); return;}
}
-#line 1177 "runtime.in"
+#line 1179 "runtime.in"
// transform xscale(real x);
void gen_runtime139(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 1178 "runtime.in"
+#line 1180 "runtime.in"
{Stack->push<transform>(xscale(x)); return;}
}
-#line 1182 "runtime.in"
+#line 1184 "runtime.in"
// transform yscale(real y);
void gen_runtime140(stack *Stack)
{
real y=vm::pop<real>(Stack);
-#line 1183 "runtime.in"
+#line 1185 "runtime.in"
{Stack->push<transform>(yscale(y)); return;}
}
-#line 1187 "runtime.in"
+#line 1189 "runtime.in"
// transform scale(real x);
void gen_runtime141(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 1188 "runtime.in"
+#line 1190 "runtime.in"
{Stack->push<transform>(scale(x)); return;}
}
-#line 1192 "runtime.in"
+#line 1194 "runtime.in"
// transform scale(real x, real y);
void gen_runtime142(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 1193 "runtime.in"
+#line 1195 "runtime.in"
{Stack->push<transform>(scale(x,y)); return;}
}
-#line 1197 "runtime.in"
+#line 1199 "runtime.in"
// transform slant(real s);
void gen_runtime143(stack *Stack)
{
real s=vm::pop<real>(Stack);
-#line 1198 "runtime.in"
+#line 1200 "runtime.in"
{Stack->push<transform>(slant(s)); return;}
}
-#line 1202 "runtime.in"
+#line 1204 "runtime.in"
// transform rotate(real angle, pair z=0);
void gen_runtime144(stack *Stack)
{
pair z=vm::pop<pair>(Stack,0);
real angle=vm::pop<real>(Stack);
-#line 1203 "runtime.in"
+#line 1205 "runtime.in"
{Stack->push<transform>(rotatearound(z,radians(angle))); return;}
}
-#line 1207 "runtime.in"
+#line 1209 "runtime.in"
// transform reflect(pair a, pair b);
void gen_runtime145(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 1208 "runtime.in"
+#line 1210 "runtime.in"
{Stack->push<transform>(reflectabout(a,b)); return;}
}
-#line 1212 "runtime.in"
+#line 1214 "runtime.in"
// bool isometry(transform t);
void gen_runtime146(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1213 "runtime.in"
+#line 1215 "runtime.in"
{Stack->push<bool>(t.isIsometry()); return;}
}
+#line 1219 "runtime.in"
+// real bezier(real a, real b, real c, real d, real t);
+void gen_runtime147(stack *Stack)
+{
+ real t=vm::pop<real>(Stack);
+ real d=vm::pop<real>(Stack);
+ real c=vm::pop<real>(Stack);
+ real b=vm::pop<real>(Stack);
+ real a=vm::pop<real>(Stack);
+#line 1220 "runtime.in"
+ real onemt=1-t;
+ real onemt2=onemt*onemt;
+ {Stack->push<real>(onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d)); return;}
+}
+
} // namespace run
namespace trans {
void gen_runtime_venv(venv &ve)
{
-#line 224 "runtime.in"
+#line 226 "runtime.in"
REGISTER_BLTIN(run::IntZero,"IntZero");
-#line 232 "runtime.in"
+#line 234 "runtime.in"
REGISTER_BLTIN(run::realZero,"realZero");
-#line 237 "runtime.in"
+#line 239 "runtime.in"
REGISTER_BLTIN(run::boolFalse,"boolFalse");
-#line 242 "runtime.in"
+#line 244 "runtime.in"
addFunc(ve, run::gen_runtime3, primBoolean(), SYM(isnan), formal(primReal(), SYM(x), false, false));
-#line 247 "runtime.in"
+#line 249 "runtime.in"
REGISTER_BLTIN(run::pushNullArray,"pushNullArray");
-#line 252 "runtime.in"
+#line 254 "runtime.in"
REGISTER_BLTIN(run::pushNullRecord,"pushNullRecord");
-#line 257 "runtime.in"
+#line 259 "runtime.in"
REGISTER_BLTIN(run::pushNullFunction,"pushNullFunction");
-#line 262 "runtime.in"
+#line 264 "runtime.in"
REGISTER_BLTIN(run::pushDefault,"pushDefault");
-#line 272 "runtime.in"
+#line 274 "runtime.in"
REGISTER_BLTIN(run::isDefault,"isDefault");
-#line 279 "runtime.in"
+#line 281 "runtime.in"
REGISTER_BLTIN(run::pairToGuide,"pairToGuide");
-#line 287 "runtime.in"
+#line 289 "runtime.in"
REGISTER_BLTIN(run::pathToGuide,"pathToGuide");
-#line 292 "runtime.in"
+#line 294 "runtime.in"
REGISTER_BLTIN(run::guideToPath,"guideToPath");
-#line 297 "runtime.in"
+#line 299 "runtime.in"
REGISTER_BLTIN(run::newPen,"newPen");
-#line 305 "runtime.in"
+#line 307 "runtime.in"
addFunc(ve, run::gen_runtime13, primBoolean(), SYM_EQ, formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 310 "runtime.in"
+#line 312 "runtime.in"
addFunc(ve, run::gen_runtime14, primBoolean(), SYM_NEQ, formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 315 "runtime.in"
+#line 317 "runtime.in"
addFunc(ve, run::gen_runtime15, primPen(), SYM_PLUS, formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 320 "runtime.in"
+#line 322 "runtime.in"
addFunc(ve, run::gen_runtime16, primPen(), SYM_TIMES, formal(primReal(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 325 "runtime.in"
+#line 327 "runtime.in"
addFunc(ve, run::gen_runtime17, primPen(), SYM_TIMES, formal(primPen(), SYM(a), false, false), formal(primReal(), SYM(b), false, false));
-#line 330 "runtime.in"
+#line 332 "runtime.in"
addFunc(ve, run::gen_runtime18, primPair(), SYM(max), formal(primPen(), SYM(p), false, false));
-#line 335 "runtime.in"
+#line 337 "runtime.in"
addFunc(ve, run::gen_runtime19, primPair(), SYM(min), formal(primPen(), SYM(p), false, false));
-#line 340 "runtime.in"
+#line 342 "runtime.in"
addFunc(ve, run::gen_runtime20, primVoid(), SYM(resetdefaultpen));
-#line 346 "runtime.in"
+#line 348 "runtime.in"
addFunc(ve, run::gen_runtime21, primVoid(), SYM(defaultpen), formal(primPen(), SYM(p), false, false));
-#line 351 "runtime.in"
+#line 353 "runtime.in"
addFunc(ve, run::gen_runtime22, primPen(), SYM(defaultpen));
-#line 356 "runtime.in"
+#line 358 "runtime.in"
addFunc(ve, run::gen_runtime23, primBoolean(), SYM(invisible), formal(primPen(), SYM(p), false, false));
-#line 361 "runtime.in"
+#line 363 "runtime.in"
addFunc(ve, run::gen_runtime24, primPen(), SYM(invisible));
-#line 366 "runtime.in"
+#line 368 "runtime.in"
addFunc(ve, run::gen_runtime25, primPen(), SYM(gray), formal(primPen(), SYM(p), false, false));
-#line 372 "runtime.in"
+#line 374 "runtime.in"
addFunc(ve, run::gen_runtime26, primPen(), SYM(rgb), formal(primPen(), SYM(p), false, false));
-#line 378 "runtime.in"
+#line 380 "runtime.in"
addFunc(ve, run::gen_runtime27, primPen(), SYM(cmyk), formal(primPen(), SYM(p), false, false));
-#line 384 "runtime.in"
+#line 386 "runtime.in"
addFunc(ve, run::gen_runtime28, primPen(), SYM(interp), formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false), formal(primReal(), SYM(t), false, false));
-#line 389 "runtime.in"
+#line 391 "runtime.in"
addFunc(ve, run::gen_runtime29, primPen(), SYM(rgb), formal(primReal(), SYM(r), false, false), formal(primReal(), SYM(g), false, false), formal(primReal(), SYM(b), false, false));
-#line 394 "runtime.in"
+#line 396 "runtime.in"
addFunc(ve, run::gen_runtime30, primPen(), SYM(cmyk), formal(primReal(), SYM(c), false, false), formal(primReal(), SYM(m), false, false), formal(primReal(), SYM(y), false, false), formal(primReal(), SYM(k), false, false));
-#line 399 "runtime.in"
+#line 401 "runtime.in"
addFunc(ve, run::gen_runtime31, primPen(), SYM(gray), formal(primReal(), SYM(gray), false, false));
-#line 404 "runtime.in"
+#line 406 "runtime.in"
addFunc(ve, run::gen_runtime32, realArray(), SYM(colors), formal(primPen(), SYM(p), false, false));
-#line 432 "runtime.in"
+#line 434 "runtime.in"
addFunc(ve, run::gen_runtime33, primString(), SYM(hex), formal(primPen(), SYM(p), false, false));
-#line 437 "runtime.in"
+#line 439 "runtime.in"
addFunc(ve, run::gen_runtime34, primInt(), SYM(byte), formal(primReal(), SYM(x), false, false));
-#line 442 "runtime.in"
+#line 444 "runtime.in"
addFunc(ve, run::gen_runtime35, primReal(), SYM(byteinv), formal(primInt(), SYM(x), false, false));
-#line 447 "runtime.in"
+#line 449 "runtime.in"
addFunc(ve, run::gen_runtime36, primString(), SYM(colorspace), formal(primPen(), SYM(p), false, false));
-#line 454 "runtime.in"
+#line 456 "runtime.in"
addFunc(ve, run::gen_runtime37, primPen(), SYM(pattern), formal(primString(), SYM(s), false, false));
-#line 459 "runtime.in"
+#line 461 "runtime.in"
addFunc(ve, run::gen_runtime38, primString(), SYM(pattern), formal(primPen(), SYM(p), false, false));
-#line 464 "runtime.in"
+#line 466 "runtime.in"
addFunc(ve, run::gen_runtime39, primPen(), SYM(fillrule), formal(primInt(), SYM(n), false, false));
-#line 469 "runtime.in"
+#line 471 "runtime.in"
addFunc(ve, run::gen_runtime40, primInt(), SYM(fillrule), formal(primPen(), SYM(p), false, false));
-#line 474 "runtime.in"
+#line 476 "runtime.in"
addFunc(ve, run::gen_runtime41, primPen(), SYM(opacity), formal(primReal(), SYM(opacity), true, false), formal(primString(), SYM(blend), true, false));
-#line 484 "runtime.in"
+#line 486 "runtime.in"
addFunc(ve, run::gen_runtime42, primReal(), SYM(opacity), formal(primPen(), SYM(p), false, false));
-#line 489 "runtime.in"
+#line 491 "runtime.in"
addFunc(ve, run::gen_runtime43, primString(), SYM(blend), formal(primPen(), SYM(p), false, false));
-#line 494 "runtime.in"
+#line 496 "runtime.in"
addFunc(ve, run::gen_runtime44, primPen(), SYM(linetype), formal(realArray(), SYM(pattern), false, false), formal(primReal(), SYM(offset), true, false), formal(primBoolean(), SYM(scale), true, false), formal(primBoolean(), SYM(adjust), true, false));
-#line 505 "runtime.in"
+#line 507 "runtime.in"
addFunc(ve, run::gen_runtime45, realArray(), SYM(linetype), formal(primPen(), SYM(p), true, false));
-#line 511 "runtime.in"
+#line 513 "runtime.in"
addFunc(ve, run::gen_runtime46, primReal(), SYM(offset), formal(primPen(), SYM(p), false, false));
-#line 516 "runtime.in"
+#line 518 "runtime.in"
addFunc(ve, run::gen_runtime47, primBoolean(), SYM(scale), formal(primPen(), SYM(p), false, false));
-#line 521 "runtime.in"
+#line 523 "runtime.in"
addFunc(ve, run::gen_runtime48, primBoolean(), SYM(adjust), formal(primPen(), SYM(p), false, false));
-#line 526 "runtime.in"
+#line 528 "runtime.in"
addFunc(ve, run::gen_runtime49, primPen(), SYM(adjust), formal(primPen(), SYM(p), false, false), formal(primReal(), SYM(arclength), false, false), formal(primBoolean(), SYM(cyclic), false, false));
-#line 531 "runtime.in"
+#line 533 "runtime.in"
addFunc(ve, run::gen_runtime50, primPen(), SYM(linecap), formal(primInt(), SYM(n), false, false));
-#line 536 "runtime.in"
+#line 538 "runtime.in"
addFunc(ve, run::gen_runtime51, primInt(), SYM(linecap), formal(primPen(), SYM(p), true, false));
-#line 541 "runtime.in"
+#line 543 "runtime.in"
addFunc(ve, run::gen_runtime52, primPen(), SYM(linejoin), formal(primInt(), SYM(n), false, false));
-#line 546 "runtime.in"
+#line 548 "runtime.in"
addFunc(ve, run::gen_runtime53, primInt(), SYM(linejoin), formal(primPen(), SYM(p), true, false));
-#line 551 "runtime.in"
+#line 553 "runtime.in"
addFunc(ve, run::gen_runtime54, primPen(), SYM(miterlimit), formal(primReal(), SYM(x), false, false));
-#line 556 "runtime.in"
+#line 558 "runtime.in"
addFunc(ve, run::gen_runtime55, primReal(), SYM(miterlimit), formal(primPen(), SYM(p), true, false));
-#line 561 "runtime.in"
+#line 563 "runtime.in"
addFunc(ve, run::gen_runtime56, primPen(), SYM(linewidth), formal(primReal(), SYM(x), false, false));
-#line 566 "runtime.in"
+#line 568 "runtime.in"
addFunc(ve, run::gen_runtime57, primReal(), SYM(linewidth), formal(primPen(), SYM(p), true, false));
-#line 571 "runtime.in"
+#line 573 "runtime.in"
addFunc(ve, run::gen_runtime58, primPen(), SYM(fontcommand), formal(primString(), SYM(s), false, false));
-#line 576 "runtime.in"
+#line 578 "runtime.in"
addFunc(ve, run::gen_runtime59, primString(), SYM(font), formal(primPen(), SYM(p), true, false));
-#line 581 "runtime.in"
+#line 583 "runtime.in"
addFunc(ve, run::gen_runtime60, primPen(), SYM(fontsize), formal(primReal(), SYM(size), false, false), formal(primReal(), SYM(lineskip), false, false));
-#line 587 "runtime.in"
+#line 589 "runtime.in"
addFunc(ve, run::gen_runtime61, primReal(), SYM(fontsize), formal(primPen(), SYM(p), true, false));
-#line 592 "runtime.in"
+#line 594 "runtime.in"
addFunc(ve, run::gen_runtime62, primReal(), SYM(lineskip), formal(primPen(), SYM(p), true, false));
-#line 597 "runtime.in"
+#line 599 "runtime.in"
addFunc(ve, run::gen_runtime63, primPen(), SYM(overwrite), formal(primInt(), SYM(n), false, false));
-#line 603 "runtime.in"
+#line 605 "runtime.in"
addFunc(ve, run::gen_runtime64, primInt(), SYM(overwrite), formal(primPen(), SYM(p), true, false));
-#line 608 "runtime.in"
+#line 610 "runtime.in"
addFunc(ve, run::gen_runtime65, primPen(), SYM(basealign), formal(primInt(), SYM(n), false, false));
-#line 613 "runtime.in"
+#line 615 "runtime.in"
addFunc(ve, run::gen_runtime66, primInt(), SYM(basealign), formal(primPen(), SYM(p), true, false));
-#line 618 "runtime.in"
+#line 620 "runtime.in"
addFunc(ve, run::gen_runtime67, primTransform(), SYM(transform), formal(primPen(), SYM(p), false, false));
-#line 623 "runtime.in"
+#line 625 "runtime.in"
addFunc(ve, run::gen_runtime68, primPath(), SYM(nib), formal(primPen(), SYM(p), false, false));
-#line 628 "runtime.in"
+#line 630 "runtime.in"
addFunc(ve, run::gen_runtime69, primPen(), SYM(makepen), formal(primPath(), SYM(p), false, false));
-#line 633 "runtime.in"
+#line 635 "runtime.in"
addFunc(ve, run::gen_runtime70, primPen(), SYM(colorless), formal(primPen(), SYM(p), false, false));
-#line 639 "runtime.in"
+#line 641 "runtime.in"
addFunc(ve, run::gen_runtime71, primBoolean(), SYM(interactive));
-#line 646 "runtime.in"
+#line 648 "runtime.in"
addFunc(ve, run::gen_runtime72, primBoolean(), SYM(uptodate));
-#line 651 "runtime.in"
+#line 653 "runtime.in"
addFunc(ve, run::gen_runtime73, primInt(), SYM(system), formal(stringArray(), SYM(s), false, false));
-#line 665 "runtime.in"
+#line 667 "runtime.in"
addFunc(ve, run::gen_runtime74, primBoolean(), SYM(view));
-#line 670 "runtime.in"
+#line 672 "runtime.in"
addFunc(ve, run::gen_runtime75, primString(), SYM(asydir));
-#line 675 "runtime.in"
+#line 677 "runtime.in"
addFunc(ve, run::gen_runtime76, primString(), SYM(locale), formal(primString(), SYM(s), true, false));
-#line 681 "runtime.in"
+#line 683 "runtime.in"
addFunc(ve, run::gen_runtime77, primVoid(), SYM(abort), formal(primString(), SYM(s), true, false));
-#line 687 "runtime.in"
+#line 689 "runtime.in"
addFunc(ve, run::gen_runtime78, primVoid(), SYM(exit));
-#line 692 "runtime.in"
+#line 694 "runtime.in"
addFunc(ve, run::gen_runtime79, primVoid(), SYM(assert), formal(primBoolean(), SYM(b), false, false), formal(primString(), SYM(s), true, false));
-#line 703 "runtime.in"
+#line 705 "runtime.in"
addFunc(ve, run::gen_runtime80, primVoid(), SYM(sleep), formal(primInt(), SYM(seconds), false, false));
-#line 709 "runtime.in"
+#line 711 "runtime.in"
addFunc(ve, run::gen_runtime81, primVoid(), SYM(usleep), formal(primInt(), SYM(microseconds), false, false));
-#line 715 "runtime.in"
+#line 717 "runtime.in"
addFunc(ve, run::gen_runtime82, primVoid(), SYM(_eval), formal(primString(), SYM(s), false, false), formal(primBoolean(), SYM(embedded), false, false), formal(primBoolean(), SYM(interactivewrite), true, false));
-#line 728 "runtime.in"
+#line 730 "runtime.in"
addFunc(ve, run::gen_runtime83, primVoid(), SYM(_eval), formal(primCode(), SYM(s), false, false), formal(primBoolean(), SYM(embedded), false, false));
-#line 744 "runtime.in"
+#line 746 "runtime.in"
addFunc(ve, run::gen_runtime84, primString(), SYM(xasyKEY));
-#line 751 "runtime.in"
+#line 753 "runtime.in"
addFunc(ve, run::gen_runtime85, primVoid(), SYM(xasyKEY), formal(primString(), SYM(s), false, false));
-#line 755 "runtime.in"
+#line 757 "runtime.in"
addFunc(ve, run::gen_runtime86, primString(), SYM(location));
-#line 761 "runtime.in"
+#line 763 "runtime.in"
REGISTER_BLTIN(run::loadModule,"loadModule");
-#line 767 "runtime.in"
+#line 769 "runtime.in"
addFunc(ve, run::gen_runtime88, primString(), SYM(cd), formal(primString(), SYM(s), true, false));
-#line 778 "runtime.in"
+#line 780 "runtime.in"
addFunc(ve, run::gen_runtime89, primVoid(), SYM(list), formal(primString(), SYM(s), false, false), formal(primBoolean(), SYM(imports), true, false));
-#line 787 "runtime.in"
+#line 789 "runtime.in"
REGISTER_BLTIN(run::nullGuide,"nullGuide");
-#line 795 "runtime.in"
+#line 797 "runtime.in"
REGISTER_BLTIN(run::dotsGuide,"dotsGuide");
-#line 805 "runtime.in"
+#line 807 "runtime.in"
REGISTER_BLTIN(run::dashesGuide,"dashesGuide");
-#line 832 "runtime.in"
+#line 834 "runtime.in"
REGISTER_BLTIN(run::newCycleToken,"newCycleToken");
-#line 837 "runtime.in"
+#line 839 "runtime.in"
addFunc(ve, run::gen_runtime94, primGuide(), symbol::trans("operator cast"), formal(primCycleToken(), SYM(tok), false, false));
-#line 844 "runtime.in"
+#line 846 "runtime.in"
addFunc(ve, run::gen_runtime95, primGuide(), symbol::trans("operator spec"), formal(primPair(), SYM(z), false, false), formal(primInt(), SYM(p), false, false));
-#line 852 "runtime.in"
+#line 854 "runtime.in"
addFunc(ve, run::gen_runtime96, primCurlSpecifier(), SYM_CURL, formal(primReal(), SYM(gamma), false, false), formal(primInt(), SYM(p), false, false));
-#line 858 "runtime.in"
+#line 860 "runtime.in"
REGISTER_BLTIN(run::curlSpecifierValuePart,"curlSpecifierValuePart");
-#line 863 "runtime.in"
+#line 865 "runtime.in"
REGISTER_BLTIN(run::curlSpecifierSidePart,"curlSpecifierSidePart");
-#line 868 "runtime.in"
+#line 870 "runtime.in"
addFunc(ve, run::gen_runtime99, primGuide(), symbol::trans("operator cast"), formal(primCurlSpecifier(), SYM(spec), false, false));
-#line 873 "runtime.in"
+#line 875 "runtime.in"
addFunc(ve, run::gen_runtime100, primTensionSpecifier(), SYM_TENSION, formal(primReal(), SYM(tout), false, false), formal(primReal(), SYM(tin), false, false), formal(primBoolean(), SYM(atleast), false, false));
-#line 878 "runtime.in"
+#line 880 "runtime.in"
REGISTER_BLTIN(run::tensionSpecifierOutPart,"tensionSpecifierOutPart");
-#line 883 "runtime.in"
+#line 885 "runtime.in"
REGISTER_BLTIN(run::tensionSpecifierInPart,"tensionSpecifierInPart");
-#line 888 "runtime.in"
+#line 890 "runtime.in"
REGISTER_BLTIN(run::tensionSpecifierAtleastPart,"tensionSpecifierAtleastPart");
-#line 893 "runtime.in"
+#line 895 "runtime.in"
addFunc(ve, run::gen_runtime104, primGuide(), symbol::trans("operator cast"), formal(primTensionSpecifier(), SYM(t), false, false));
-#line 898 "runtime.in"
+#line 900 "runtime.in"
addFunc(ve, run::gen_runtime105, primGuide(), SYM_CONTROLS, formal(primPair(), SYM(zout), false, false), formal(primPair(), SYM(zin), false, false));
-#line 903 "runtime.in"
+#line 905 "runtime.in"
addFunc(ve, run::gen_runtime106, primInt(), SYM(size), formal(primGuide(), SYM(g), false, false));
-#line 910 "runtime.in"
+#line 912 "runtime.in"
addFunc(ve, run::gen_runtime107, primInt(), SYM(length), formal(primGuide(), SYM(g), false, false));
-#line 917 "runtime.in"
+#line 919 "runtime.in"
addFunc(ve, run::gen_runtime108, primBoolean(), SYM(cyclic), formal(primGuide(), SYM(g), false, false));
-#line 924 "runtime.in"
+#line 926 "runtime.in"
addFunc(ve, run::gen_runtime109, primPair(), SYM(point), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 931 "runtime.in"
+#line 933 "runtime.in"
addFunc(ve, run::gen_runtime110, pairArray(), SYM(dirSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 943 "runtime.in"
+#line 945 "runtime.in"
addFunc(ve, run::gen_runtime111, pairArray(), SYM(controlSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 960 "runtime.in"
+#line 962 "runtime.in"
addFunc(ve, run::gen_runtime112, primTensionSpecifier(), SYM(tensionSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 970 "runtime.in"
+#line 972 "runtime.in"
addFunc(ve, run::gen_runtime113, realArray(), SYM(curlSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 984 "runtime.in"
+#line 986 "runtime.in"
addFunc(ve, run::gen_runtime114, primGuide(), SYM(reverse), formal(primGuide(), SYM(g), false, false));
-#line 1037 "runtime.in"
+#line 1039 "runtime.in"
addFunc(ve, run::gen_runtime115, realArray(), SYM(_cputime));
-#line 1052 "runtime.in"
+#line 1054 "runtime.in"
addFunc(ve, run::gen_runtime116, primBoolean(), SYM_EQ, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1060 "runtime.in"
+#line 1062 "runtime.in"
addFunc(ve, run::gen_runtime117, primBoolean(), SYM_NEQ, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1065 "runtime.in"
+#line 1067 "runtime.in"
addFunc(ve, run::gen_runtime118, primTransform(), SYM_PLUS, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1070 "runtime.in"
+#line 1072 "runtime.in"
addFunc(ve, run::gen_runtime119, primTransform(), SYM_TIMES, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1075 "runtime.in"
+#line 1077 "runtime.in"
addFunc(ve, run::gen_runtime120, primPair(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPair(), SYM(z), false, false));
-#line 1080 "runtime.in"
+#line 1082 "runtime.in"
addFunc(ve, run::gen_runtime121, primPath(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPath(), SYM(g), false, false));
-#line 1085 "runtime.in"
+#line 1087 "runtime.in"
addFunc(ve, run::gen_runtime122, primPen(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPen(), SYM(p), false, false));
-#line 1090 "runtime.in"
+#line 1092 "runtime.in"
addFunc(ve, run::gen_runtime123, primPicture(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPicture(), SYM(f), false, false));
-#line 1095 "runtime.in"
+#line 1097 "runtime.in"
addFunc(ve, run::gen_runtime124, primPicture(), SYM_TIMES, formal(realArray2(), SYM(t), false, false), formal(primPicture(), SYM(f), false, false));
-#line 1100 "runtime.in"
+#line 1102 "runtime.in"
addFunc(ve, run::gen_runtime125, primTransform(), SYM_CARET, formal(primTransform(), SYM(t), false, false), formal(primInt(), SYM(n), false, false));
-#line 1111 "runtime.in"
+#line 1113 "runtime.in"
REGISTER_BLTIN(run::transformXPart,"transformXPart");
-#line 1116 "runtime.in"
+#line 1118 "runtime.in"
REGISTER_BLTIN(run::transformYPart,"transformYPart");
-#line 1121 "runtime.in"
+#line 1123 "runtime.in"
REGISTER_BLTIN(run::transformXXPart,"transformXXPart");
-#line 1126 "runtime.in"
+#line 1128 "runtime.in"
REGISTER_BLTIN(run::transformXYPart,"transformXYPart");
-#line 1131 "runtime.in"
+#line 1133 "runtime.in"
REGISTER_BLTIN(run::transformYXPart,"transformYXPart");
-#line 1136 "runtime.in"
+#line 1138 "runtime.in"
REGISTER_BLTIN(run::transformYYPart,"transformYYPart");
-#line 1141 "runtime.in"
+#line 1143 "runtime.in"
REGISTER_BLTIN(run::real6ToTransform,"real6ToTransform");
-#line 1147 "runtime.in"
+#line 1149 "runtime.in"
addFunc(ve, run::gen_runtime133, primTransform(), SYM(shift), formal(primTransform(), SYM(t), false, false));
-#line 1152 "runtime.in"
+#line 1154 "runtime.in"
addFunc(ve, run::gen_runtime134, primTransform(), SYM(shiftless), formal(primTransform(), SYM(t), false, false));
-#line 1157 "runtime.in"
+#line 1159 "runtime.in"
addFunc(ve, run::transformIdentity, primTransform(), SYM(identity));
-#line 1162 "runtime.in"
+#line 1164 "runtime.in"
addFunc(ve, run::gen_runtime136, primTransform(), SYM(inverse), formal(primTransform(), SYM(t), false, false));
-#line 1167 "runtime.in"
+#line 1169 "runtime.in"
addFunc(ve, run::gen_runtime137, primTransform(), SYM(shift), formal(primPair(), SYM(z), false, false));
-#line 1172 "runtime.in"
+#line 1174 "runtime.in"
addFunc(ve, run::gen_runtime138, primTransform(), SYM(shift), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 1177 "runtime.in"
+#line 1179 "runtime.in"
addFunc(ve, run::gen_runtime139, primTransform(), SYM(xscale), formal(primReal(), SYM(x), false, false));
-#line 1182 "runtime.in"
+#line 1184 "runtime.in"
addFunc(ve, run::gen_runtime140, primTransform(), SYM(yscale), formal(primReal(), SYM(y), false, false));
-#line 1187 "runtime.in"
+#line 1189 "runtime.in"
addFunc(ve, run::gen_runtime141, primTransform(), SYM(scale), formal(primReal(), SYM(x), false, false));
-#line 1192 "runtime.in"
+#line 1194 "runtime.in"
addFunc(ve, run::gen_runtime142, primTransform(), SYM(scale), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 1197 "runtime.in"
+#line 1199 "runtime.in"
addFunc(ve, run::gen_runtime143, primTransform(), SYM(slant), formal(primReal(), SYM(s), false, false));
-#line 1202 "runtime.in"
+#line 1204 "runtime.in"
addFunc(ve, run::gen_runtime144, primTransform(), SYM(rotate), formal(primReal(), SYM(angle), false, false), formal(primPair(), SYM(z), true, false));
-#line 1207 "runtime.in"
+#line 1209 "runtime.in"
addFunc(ve, run::gen_runtime145, primTransform(), SYM(reflect), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false));
-#line 1212 "runtime.in"
+#line 1214 "runtime.in"
addFunc(ve, run::gen_runtime146, primBoolean(), SYM(isometry), formal(primTransform(), SYM(t), false, false));
+#line 1219 "runtime.in"
+ addFunc(ve, run::gen_runtime147, primReal(), SYM(bezier), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(c), false, false), formal(primReal(), SYM(d), false, false), formal(primReal(), SYM(t), false, false));
}
} // namespace trans
diff --git a/Build/source/utils/asymptote/runtime.in b/Build/source/utils/asymptote/runtime.in
index 1f67200f5d2..048689c7891 100644
--- a/Build/source/utils/asymptote/runtime.in
+++ b/Build/source/utils/asymptote/runtime.in
@@ -179,6 +179,8 @@ const item Default=item(default_t());
namespace run {
+stopWatch wallClock;
+
const char *arrayempty="cannot take min or max of empty array";
const char *noruntime="no runtime environment for embedded eval";
@@ -1045,7 +1047,7 @@ realarray *_cputime()
(*t)[1]=((real) buf.tms_stime)*ticktime;
(*t)[2]=((real) buf.tms_cutime)*ticktime;
(*t)[3]=((real) buf.tms_cstime)*ticktime;
- (*t)[4]=utils::totalseconds();
+ (*t)[4]=wallClock.seconds();
return t;
}
@@ -1213,3 +1215,10 @@ bool isometry(transform t)
{
return t.isIsometry();
}
+
+real bezier(real a, real b, real c, real d, real t)
+{
+ real onemt=1-t;
+ real onemt2=onemt*onemt;
+ return onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d);
+}
diff --git a/Build/source/utils/asymptote/runtimebase.in b/Build/source/utils/asymptote/runtimebase.in
index 5f4cd4e458e..48c1b1818f8 100644
--- a/Build/source/utils/asymptote/runtimebase.in
+++ b/Build/source/utils/asymptote/runtimebase.in
@@ -43,11 +43,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/runtriple.cc b/Build/source/utils/asymptote/runtriple.cc
index eefd6beaae7..919f2957f1c 100644
--- a/Build/source/utils/asymptote/runtriple.cc
+++ b/Build/source/utils/asymptote/runtriple.cc
@@ -42,11 +42,11 @@ using camp::triple;
#include <primitives.h>
#undef PRIMITIVE
-typedef double real;
-
void unused(void *);
namespace run {
+typedef double real;
+
array *copyArray(array *a);
array *copyArray2(array *a);
array *copyArray3(array *a);
diff --git a/Build/source/utils/asymptote/seconds.h b/Build/source/utils/asymptote/seconds.h
index 0b92e902e2c..a7ea9c0e597 100644
--- a/Build/source/utils/asymptote/seconds.h
+++ b/Build/source/utils/asymptote/seconds.h
@@ -1,99 +1,81 @@
#ifndef __seconds_h__
#define __seconds_h__ 1
-#ifdef _WIN32
-#include <Winsock2.h>
+#include <chrono>
-#include <time.h>
-#include <windows.h>
-#include <iostream>
+namespace utils {
-#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
-#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64
+#ifdef _WIN32
+#include <Windows.h>
+#define getpid GetCurrentProcessId
+inline double cpuTime() {
+ FILETIME a,b,c,d;
+ return GetProcessTimes(GetCurrentThread(),&a,&b,&c,&d) != 0 ?
+ (double) (d.dwLowDateTime |
+ ((unsigned long long)d.dwHighDateTime << 32))*100.0 : 0.0;
+}
#else
-#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
+#include <unistd.h>
+#include <time.h>
+inline double cpuTime() {
+ timespec t;
+ clock_gettime(CLOCK_THREAD_CPUTIME_ID,&t);
+ return 1.0e9*t.tv_sec+t.tv_nsec;
+}
#endif
-struct timezone
-{
- int tz_minuteswest; /* minutes W of Greenwich */
- int tz_dsttime; /* type of dst correction */
+class stopWatch {
+ std::chrono::time_point<std::chrono::steady_clock> Start;
+
+public:
+ void reset() {
+ Start=std::chrono::steady_clock::now();
+ }
+
+ stopWatch() {
+ reset();
+ }
+
+ double nanoseconds(bool reset=false) {
+ auto Stop=std::chrono::steady_clock::now();
+ double ns=std::chrono::duration_cast<std::chrono::nanoseconds>
+ (Stop-Start).count();
+ if(reset) Start=Stop;
+ return ns;
+ }
+
+ double seconds(bool reset=false) {
+ return 1.0e-9*nanoseconds(reset);
+ }
};
-// Definition of a gettimeofday function
-
-inline int gettimeofday(struct timeval *tv, struct timezone *tz)
-{
-// Define a structure to receive the current Windows filetime
- FILETIME ft;
-
-// Initialize the present time to 0 and the timezone to UTC
- unsigned __int64 tmpres = 0;
- static int tzflag = 0;
-
- if (NULL != tv)
- {
- GetSystemTimeAsFileTime(&ft);
-
-// The GetSystemTimeAsFileTime returns the number of 100 nanosecond
-// intervals since Jan 1, 1601 in a structure. Copy the high bits to
-// the 64 bit tmpres, shift it left by 32 then or in the low 32 bits.
- tmpres |= ft.dwHighDateTime;
- tmpres <<= 32;
- tmpres |= ft.dwLowDateTime;
-
-// Convert to microseconds by dividing by 10
- tmpres /= 10;
-
-// The Unix epoch starts on Jan 1 1970. Need to subtract the difference
-// in seconds from Jan 1 1601.
- tmpres -= DELTA_EPOCH_IN_MICROSECS;
-
-// Finally change microseconds to seconds and place in the seconds value.
-// The modulus picks up the microseconds.
- tv->tv_sec = (long)(tmpres / 1000000UL);
- tv->tv_usec = (long)(tmpres % 1000000UL);
- }
-
- if (NULL != tz)
- {
- if (!tzflag)
- {
- _tzset();
- tzflag++;
- }
-
-// Adjust for the timezone west of Greenwich
- tz->tz_minuteswest = _timezone / 60;
- tz->tz_dsttime = _daylight;
- }
-
- return 0;
-}
+class cpuTimer {
+ double start;
+ std::chrono::time_point<std::chrono::steady_clock> Start;
-#else
+public:
+ void reset() {
+ start=cpuTime();
+ Start=std::chrono::steady_clock::now();
+ }
-#include <sys/time.h>
+ cpuTimer() {
+ reset();
+ }
-#endif
+ double nanoseconds() {
+ auto Stop=std::chrono::steady_clock::now();
+ double stop=cpuTime();
-namespace utils {
+ return
+ std::min((double) std::chrono::duration_cast<std::chrono::nanoseconds>
+ (Stop-Start).count(),stop-start);
+ }
-inline double totalseconds()
-{
- timeval tv;
- gettimeofday(&tv,NULL);
- return tv.tv_sec+tv.tv_usec/1000000.0;
-}
-
-inline double seconds()
-{
- static double lastseconds=totalseconds();
- double t=totalseconds();
- double seconds=t-lastseconds;
- lastseconds=t;
- return seconds;
-}
+ double seconds() {
+ return 1.0e-9*nanoseconds();
+ }
+};
}
diff --git a/Build/source/utils/asymptote/settings.cc b/Build/source/utils/asymptote/settings.cc
index d5342908c29..be96fd0cd1f 100644
--- a/Build/source/utils/asymptote/settings.cc
+++ b/Build/source/utils/asymptote/settings.cc
@@ -71,7 +71,6 @@ using vm::array;
void runFile(const string& filename);
-
namespace settings {
using camp::pair;
@@ -102,8 +101,8 @@ string defaultPSViewer="open";
string defaultPDFViewer="open";
string defaultHTMLViewer="open";
#else
-string defaultPSViewer="gv";
-string defaultPDFViewer="acroread";
+string defaultPSViewer="evince";
+string defaultPDFViewer="evince";
string defaultHTMLViewer="google-chrome";
#endif
string defaultGhostscript="gs";
@@ -119,14 +118,12 @@ bool msdos=true;
string HOME="USERPROFILE";
string docdir="c:\\Program Files\\Asymptote";
const char pathSeparator=';';
-//string defaultPSViewer="gsview32.exe";
string defaultPSViewer="cmd";
//string defaultPDFViewer="AcroRd32.exe";
string defaultPDFViewer="cmd";
string defaultHTMLViewer="cmd";
string defaultGhostscript;
string defaultGhostscriptLibrary;
-//string defaultDisplay="imdisplay";
string defaultDisplay="cmd";
//string defaultAnimate="animate";
string defaultAnimate="cmd";
@@ -204,8 +201,6 @@ void queryRegistry()
if(defaultPDFViewer != "cmd")
defaultPDFViewer=getEntry("Adobe/Acrobat Reader/*/InstallPath/@")+"\\"+
defaultPDFViewer;
- if(defaultPSViewer != "cmd")
- defaultPSViewer=getEntry("Ghostgum/GSview/*")+"\\gsview\\"+defaultPSViewer;
string s;
s=getEntry("Microsoft/Windows/CurrentVersion/App Paths/Asymptote/Path");
if(!s.empty()) docdir=s;
@@ -368,9 +363,9 @@ struct option : public gc {
}
// Outputs description of the command for the -help option.
- virtual void describe() {
+ virtual void describe(char option) {
// Don't show the option if it has no desciption.
- if (!desc.empty()) {
+ if(!hide() && ((option == 'h') ^ env())) {
const unsigned WIDTH=22;
string start=describeStart();
cerr << std::left << std::setw(WIDTH) << start;
@@ -380,14 +375,19 @@ struct option : public gc {
}
cerr << " " << desc;
if(cmdlineonly) cerr << "; command-line only";
- if(Default != "")
- cerr << " [" << Default << "]";
+ if(Default != "") {
+ if(!desc.empty()) cerr << " ";
+ cerr << Default;
+ }
cerr << endl;
}
}
virtual void reset() {
}
+
+ virtual bool env() {return false;}
+ virtual bool hide() {return false;}
};
const string noarg;
@@ -465,7 +465,7 @@ struct boolSetting : public itemSetting {
bool defaultValue=false)
: itemSetting(name, code, noarg, desc,
types::primBoolean(), (item)defaultValue,
- defaultValue ? "true" : "false") {}
+ defaultValue ? "[true]" : "[false]") {}
bool getOption() {
value=(item)true;
@@ -476,6 +476,8 @@ struct boolSetting : public itemSetting {
struct negOption : public option {
boolSetting &base;
+ bool hide() {return true;}
+
negOption(boolSetting &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -522,6 +524,8 @@ struct boolSetting : public itemSetting {
struct negOption : public option {
multiOption &base;
+ bool hide() {return true;}
+
negOption(multiOption &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -563,7 +567,7 @@ struct stringSetting : public argumentSetting {
stringSetting(string name, char code,
string argname, string desc,
string defaultValue="")
- : argumentSetting(name, code, argname, desc.empty() ? "" :
+ : argumentSetting(name, code, argname, desc == "" ? "["+defaultValue+"]" :
desc+(defaultValue.empty() ? "" : " ["+defaultValue+"]"),
types::primString(), (item)defaultValue) {}
@@ -602,6 +606,8 @@ struct warnSetting : public option {
struct negOption : public option {
warnSetting &base;
+ bool hide() {return true;}
+
negOption(warnSetting &base, string name, string argname)
: option(name, 0, argname, ""), base(base) {}
@@ -632,6 +638,7 @@ string GetEnv(string s, string Default) {
struct envSetting : public stringSetting {
envSetting(string name, string Default)
: stringSetting(name, 0, " ", "", GetEnv(name,Default)) {}
+ bool env() {return true;}
};
template<class T>
@@ -707,6 +714,7 @@ struct stringArraySetting : public itemSetting {
stringArraySetting(string name, array *defaultValue)
: itemSetting(name, 0, "", "",
types::stringArray(), (item) defaultValue) {}
+ bool hide() {return true;}
bool getOption() {return true;}
};
@@ -789,6 +797,8 @@ struct boolrefSetting : public refSetting<bool> {
struct negOption : public option {
boolrefSetting &base;
+ bool hide() {return true;}
+
negOption(boolrefSetting &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -840,6 +850,8 @@ struct incrementSetting : public refSetting<Int> {
struct negOption : public option {
incrementSetting &base;
+ bool hide() {return true;}
+
negOption(incrementSetting &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -869,6 +881,8 @@ struct incrementOption : public option {
Int level=1)
: option(name, code, noarg, desc, true), ref(ref), level(level) {}
+ bool hide() {return true;}
+
bool getOption() {
// Increment the value.
(*ref) += level;
@@ -904,15 +918,19 @@ void reportSyntax() {
exit(1);
}
-void displayOptions()
+void displayOptions(char code)
{
cerr << endl;
- cerr << "Options (negate by replacing - with -no): "
- << endl << endl;
+ if(code == 'h')
+ cerr << "Options (negate boolean options by replacing - with -no): "
+ << endl << endl;
+ else
+ cerr << "Environment settings: "
+ << endl << endl;
for (optionsMap_t::iterator opt=optionsMap.begin();
opt!=optionsMap.end();
++opt)
- opt->second->describe();
+ opt->second->describe(code);
}
struct helpOption : public option {
@@ -921,7 +939,7 @@ struct helpOption : public option {
bool getOption() {
usage(argv0);
- displayOptions();
+ displayOptions(code);
cerr << endl;
exit(0);
@@ -950,6 +968,7 @@ struct versionOption : public option {
bool ssbo=false;
bool gsl=false;
bool fftw3=false;
+ bool eigen=false;
bool xdr=false;
bool curl=false;
bool lsp=false;
@@ -979,6 +998,10 @@ struct versionOption : public option {
fftw3=true;
#endif
+#ifdef HAVE_EIGEN_DENSE
+ eigen=true;
+#endif
+
#ifdef HAVE_RPC_RPC_H
xdr=true;
#endif
@@ -1023,6 +1046,7 @@ struct versionOption : public option {
feature("SSBO GLSL shader storage buffer objects",ssbo);
feature("GSL GNU Scientific Library (special functions)",gsl);
feature("FFTW3 Fast Fourier transforms",fftw3);
+ feature("Eigen Eigenvalue library",eigen);
feature("XDR External Data Representation (portable binary file format for V3D)",xdr);
feature("CURL URL support",curl);
feature("LSP Language Server Protocol",lsp);
@@ -1206,7 +1230,7 @@ void initSettings() {
addOption(new stringArraySetting("wheeldown", stringArray(wheeldown)));
addOption(new stringArraySetting("suppress", new array));
- addOption(new warnSetting("warn", 0, "string", "Enable warning"));
+ addOption(new warnSetting("warn", 0, "str", "Enable warning"));
multiOption *view=new multiOption("View", 'V', "View output");
view->add(new boolSetting("batchView", 0, "View output in batch mode",
@@ -1230,9 +1254,9 @@ void initSettings() {
"Show 3D axes in PDF output", true));
addOption(new boolSetting("ibl", 0,
"Enable environment map image-based lighting", false));
- addOption(new stringSetting("image", 0,"string","Environment image name","snowyField"));
- addOption(new stringSetting("imageDir", 0,"string","Environment image library directory","ibl"));
- addOption(new stringSetting("imageURL", 0,"string","Environment image library URL","https://vectorgraphics.gitlab.io/asymptote/ibl"));
+ addOption(new stringSetting("image", 0,"str","Environment image name","snowyField"));
+ addOption(new stringSetting("imageDir", 0,"str","Environment image library directory","ibl"));
+ addOption(new stringSetting("imageURL", 0,"str","Environment image library URL","https://vectorgraphics.gitlab.io/asymptote/ibl"));
addOption(new realSetting("render", 0, "n",
"Render 3D graphics using n pixels per bp (-1=auto)",
havegl ? -1.0 : 0.0));
@@ -1248,8 +1272,13 @@ void initSettings() {
"Compute indexing partial sums on GPU", true));
addOption(new boolSetting("GPUinterlock", 0,
"Use fragment shader interlock", true));
+ addOption(new boolSetting("GPUcompress", 0,
+ "Compress GPU transparent fragment counts",
+ false));
addOption(new IntSetting("GPUlocalSize", 0, "n",
- "Compute shader local size", 16));
+ "Compute shader local size", 256));
+ addOption(new IntSetting("GPUblockSize", 0, "n",
+ "Compute shader block size", 8));
addOption(new pairSetting("position", 0, "pair",
"Initial 3D rendering screen position"));
@@ -1280,6 +1309,7 @@ void initSettings() {
"Write expressions entered at the prompt to stdout",
true));
addOption(new helpOption("help", 'h', "Show summary of options"));
+ addOption(new helpOption("environment", 'e', "Show summary of environment settings"));
addOption(new versionOption("version", 0, "Show version"));
addOption(new pairSetting("offset", 'O', "pair", "PostScript offset"));
@@ -1369,8 +1399,8 @@ void initSettings() {
"Garbage collect using purge(divisor=n) [2]"));
#endif
- addOption(new stringSetting("prompt", 0,"string","Prompt","> "));
- addOption(new stringSetting("prompt2", 0,"string",
+ addOption(new stringSetting("prompt", 0,"str","Prompt","> "));
+ addOption(new stringSetting("prompt2", 0,"str",
"Continuation prompt for multiline input ",
".."));
addOption(new boolSetting("multiline", 0,
@@ -1384,8 +1414,8 @@ void initSettings() {
addOption(new boolSetting("wait", 0,
"Wait for child processes to finish before exiting"));
- addOption(new IntSetting("inpipe", 0, "n","",-1));
- addOption(new IntSetting("outpipe", 0, "n","",-1));
+ addOption(new IntSetting("inpipe", 0, "n","Input pipe",-1));
+ addOption(new IntSetting("outpipe", 0, "n","Output pipe",-1));
addOption(new boolSetting("exitonEOF", 0, "Exit interactive mode on EOF",
true));
@@ -1412,11 +1442,11 @@ void initSettings() {
addOption(new IntSetting("pdfreloaddelay", 0, "usec",
"Delay before attempting initial pdf reload"
,750000));
- addOption(new stringSetting("autoimport", 0, "string",
+ addOption(new stringSetting("autoimport", 0, "str",
"Module to automatically import"));
- addOption(new userSetting("command", 'c', "string",
+ addOption(new userSetting("command", 'c', "str",
"Command to autoexecute"));
- addOption(new userSetting("user", 'u', "string",
+ addOption(new userSetting("user", 'u', "str",
"General purpose user string"));
addOption(new realSetting("zoomfactor", 0, "factor", "Zoom step factor",
@@ -1446,20 +1476,20 @@ void initSettings() {
addOption(new IntSetting("digits", 0, "n",
"Default output file precision", 7));
- addOption(new realSetting("paperwidth", 0, "bp", ""));
- addOption(new realSetting("paperheight", 0, "bp", ""));
+ addOption(new realSetting("paperwidth", 0, "bp", "Default page width"));
+ addOption(new realSetting("paperheight", 0, "bp", "Default page height"));
- addOption(new stringSetting("dvipsOptions", 0, "string", ""));
- addOption(new stringSetting("dvisvgmOptions", 0, "string", ""));
+ addOption(new stringSetting("dvipsOptions", 0, "str", ""));
+ addOption(new stringSetting("dvisvgmOptions", 0, "str", ""));
addOption(new boolSetting("dvisvgmMultipleFiles", 0,
- "dvisvgm supports multiple files", false));
- addOption(new stringSetting("convertOptions", 0, "string", ""));
- addOption(new stringSetting("gsOptions", 0, "string", ""));
- addOption(new stringSetting("htmlviewerOptions", 0, "string", ""));
- addOption(new stringSetting("psviewerOptions", 0, "string", ""));
- addOption(new stringSetting("pdfviewerOptions", 0, "string", ""));
- addOption(new stringSetting("pdfreloadOptions", 0, "string", ""));
- addOption(new stringSetting("glOptions", 0, "string", ""));
+ "dvisvgm supports multiple files", true));
+ addOption(new stringSetting("convertOptions", 0, "str", ""));
+ addOption(new stringSetting("gsOptions", 0, "str", ""));
+ addOption(new stringSetting("htmlviewerOptions", 0, "str", ""));
+ addOption(new stringSetting("psviewerOptions", 0, "str", ""));
+ addOption(new stringSetting("pdfviewerOptions", 0, "str", ""));
+ addOption(new stringSetting("pdfreloadOptions", 0, "str", ""));
+ addOption(new stringSetting("glOptions", 0, "str", ""));
addOption(new stringSetting("hyperrefOptions", 0, "str",
"","setpagesize=false,unicode,pdfborder=0 0 0"));
diff --git a/Build/source/utils/asymptote/shaders.cc b/Build/source/utils/asymptote/shaders.cc
index 9aa29bec062..371cd1c1b93 100644
--- a/Build/source/utils/asymptote/shaders.cc
+++ b/Build/source/utils/asymptote/shaders.cc
@@ -98,6 +98,7 @@ GLuint createShaderFile(std::string file, int shaderType,
#ifdef HAVE_SSBO
if(ssbo) {
shaderSrc << "#extension GL_ARB_shader_storage_buffer_object : enable" << "\n";
+ shaderSrc << "#extension GL_ARB_shader_atomic_counters : enable" << "\n";
if(interlock)
shaderSrc << "#extension GL_ARB_fragment_shader_interlock : enable"
<< "\n";
diff --git a/Build/source/utils/asymptote/statistics.h b/Build/source/utils/asymptote/statistics.h
index a8cca39bf41..5588f7a99d3 100644
--- a/Build/source/utils/asymptote/statistics.h
+++ b/Build/source/utils/asymptote/statistics.h
@@ -1,18 +1,46 @@
#ifndef __statistics_h__
#define __statistics_h__ 1
+#include <queue>
+#include <cfloat>
+
namespace utils {
+template <class T, class S, class C>
+void clearpq(std::priority_queue<T, S, C>& q) {
+ struct HackedQueue : private std::priority_queue<T, S, C> {
+ static S& Container(std::priority_queue<T, S, C>& q) {
+ return q.*&HackedQueue::c;
+ }
+ };
+ HackedQueue::Container(q).clear();
+}
+
class statistics {
- unsigned int N;
+ size_t N;
double A;
double varL;
double varH;
+ double m,M;
+ double Median;
+ bool computeMedian;
+
+ // These heap stores are only used when computeMedian=true.
+ // Max heap stores the smaller half elements:
+ std::priority_queue<double> s;
+ // Min heap stores the greater half elements:
+ std::priority_queue<double,std::vector<double>,std::greater<double> > g;
+
public:
- statistics() {clear();}
- void clear() {N=0; A=varL=varH=0.0;}
+ statistics(bool computeMedian=false) : computeMedian(computeMedian) {
+ clear();
+ }
+ void clear() {N=0; A=varL=varH=0.0; m=DBL_MAX; M=-m; clearpq(s); clearpq(g);}
double count() {return N;}
double mean() {return A;}
+ double max() {return M;}
+ double min() {return m;}
+ double sum() {return N*A;}
void add(double t) {
++N;
double diff=t-A;
@@ -22,10 +50,53 @@ public:
varL += v;
else
varH += v;
+
+ if(t < m) m=t;
+ if(t > M) M=t;
+
+ if(computeMedian) {
+ if(N == 1)
+ s.push(Median=t);
+ else {
+ if(s.size() > g.size()) { // left side heap has more elements
+
+ if(t < Median) {
+ g.push(s.top());
+ s.pop();
+ s.push(t);
+ } else
+ g.push(t);
+
+ Median=0.5*(s.top()+g.top());
+ }
+
+ else if(s.size() == g.size()) { // both heaps are balanced
+ if(t < Median) {
+ s.push(t);
+ Median=(double) s.top();
+ } else {
+ g.push(t);
+ Median=(double) g.top();
+ }
+ }
+
+ else { // right side heap has more elements
+ if(t > Median) {
+ s.push(g.top());
+ g.pop();
+ g.push(t);
+ } else
+ s.push(t);
+
+ Median=0.5*(s.top()+g.top());
+ }
+ }
+ }
}
+
double stdev(double var, double f) {
- double factor=N > f ? f/(N-f) : 0.0;
- return sqrt(var*factor);
+ if(N <= f) return DBL_MAX;
+ return sqrt(var*f/(N-f));
}
double stdev() {
return stdev(varL+varH,1.0);
@@ -36,8 +107,18 @@ public:
double stdevH() {
return stdev(varH,2.0);
}
- void output(const char *text, unsigned int m) {
- std::cout << text << ":\n"
+ double stderror() {
+ return stdev()/sqrt(N);
+ }
+ double median() {
+ if(!computeMedian) {
+ std::cerr << "Constructor requires median=true" << std::endl;
+ exit(-1);
+ }
+ return Median;
+ }
+ void output(const char *text, size_t m) {
+ std::cout << text << ": \n"
<< m << "\t"
<< A << "\t"
<< stdevL() << "\t"
diff --git a/Build/source/utils/asymptote/tests/arith/integer.asy b/Build/source/utils/asymptote/tests/arith/integer.asy
index b5c337d2733..5433f345bce 100644
--- a/Build/source/utils/asymptote/tests/arith/integer.asy
+++ b/Build/source/utils/asymptote/tests/arith/integer.asy
@@ -1,23 +1,32 @@
// Integer arithmetic.
import TestLib;
StartTest("integer addition");
-assert(1+1==2);
+assert(1+1 == 2);
EndTest();
StartTest("integer subtraction");
-assert(2-1==1);
+assert(2-1 == 1);
EndTest();
StartTest("integer multiplication");
-assert(2*2==4);
+assert(2*2 == 4);
EndTest();
StartTest("integer division");
-assert(4/2==2);
+assert(4/2 == 2);
+assert(3/2 == 1.5);
+EndTest();
+StartTest("integer quotient");
+assert(4#2 == 2);
+assert(3#2 == 1);
+assert(1#2 == 0);
+assert(-1#2 == -1);
+assert(1#-2 == -1);
+assert(-1#-2 == 0);
+assert(-3#2 == -2);
EndTest();
StartTest("integer self ops");
-{ int x = 3; assert(++x==4); assert(x==4); }
-{ int x = 3; assert(--x==2); assert(x==2); }
-{ int x = 3; assert((x+=7) == 10); assert(x==10); }
-{ int x = 3; assert((x-=7) == -4); assert(x==-4); }
-{ int x = 3; assert((x*=7) == 21); assert(x==21); }
-{ int x = 10; assert((x%=4) == 2); assert(x==2); }
+{ int x=3; assert(++x == 4); assert(x == 4); }
+{ int x=3; assert(--x == 2); assert(x == 2); }
+{ int x=3; assert((x += 7) == 10); assert(x == 10); }
+{ int x=3; assert((x -= 7) == -4); assert(x == -4); }
+{ int x=3; assert((x *= 7) == 21); assert(x == 21); }
+{ int x=10; assert((x %= 4) == 2); assert(x == 2); }
EndTest();
-
diff --git a/Build/source/utils/asymptote/util.cc b/Build/source/utils/asymptote/util.cc
index 85e9320cfdc..df33e29bff1 100644
--- a/Build/source/utils/asymptote/util.cc
+++ b/Build/source/utils/asymptote/util.cc
@@ -288,6 +288,10 @@ int System(const mem::vector<string> &command, int quiet, bool wait,
if(pid == -1)
camp::reportError("Cannot fork process");
+#ifdef __MSDOS__
+ wait=true;
+#endif
+
if(pid == 0) {
if(interact::interactive) signal(SIGINT,SIG_IGN);
if(quiet) {
diff --git a/Build/source/utils/asymptote/v3dfile.cc b/Build/source/utils/asymptote/v3dfile.cc
index f281db010da..e800b445df6 100644
--- a/Build/source/utils/asymptote/v3dfile.cc
+++ b/Build/source/utils/asymptote/v3dfile.cc
@@ -101,8 +101,7 @@ void v3dfile::addColors(prc::RGBAColour const* col, size_t nc)
}
-void v3dfile::addPatch(triple const* controls, triple const& Min,
- triple const& Max, prc::RGBAColour const* c)
+void v3dfile::addPatch(triple const* controls, prc::RGBAColour const* c)
{
getXDRFile() << (c ? v3dtypes::bezierPatchColor : v3dtypes::bezierPatch);
addTriples(controls,16);
@@ -112,8 +111,8 @@ void v3dfile::addPatch(triple const* controls, triple const& Min,
addColors(c,4);
}
-void v3dfile::addStraightPatch(triple const* controls, triple const& Min,
- triple const& Max, prc::RGBAColour const* c)
+void v3dfile::addStraightPatch(triple const* controls,
+ prc::RGBAColour const* c)
{
getXDRFile() << (c ? v3dtypes::quadColor : v3dtypes::quad);
addTriples(controls,4);
@@ -123,8 +122,8 @@ void v3dfile::addStraightPatch(triple const* controls, triple const& Min,
addColors(c,4);
}
-void v3dfile::addBezierTriangle(triple const* controls, triple const& Min,
- triple const& Max, prc::RGBAColour const* c)
+void v3dfile::addBezierTriangle(triple const* controls,
+ prc::RGBAColour const* c)
{
getXDRFile() << (c ? v3dtypes::bezierTriangleColor : v3dtypes::bezierTriangle);
addTriples(controls,10);
@@ -134,8 +133,8 @@ void v3dfile::addBezierTriangle(triple const* controls, triple const& Min,
addColors(c,3);
}
-void v3dfile::addStraightBezierTriangle(triple const* controls, triple const& Min,
- triple const& Max, prc::RGBAColour const* c)
+void v3dfile::addStraightBezierTriangle(triple const* controls,
+ prc::RGBAColour const* c)
{
getXDRFile() << (c ? v3dtypes::triangleColor : v3dtypes::triangle);
addTriples(controls,3);
@@ -196,7 +195,7 @@ void v3dfile::addDisk(triple const& center, double radius, double const& polar,
getXDRFile() << polar << azimuth;
}
-void v3dfile::addTube(triple const* g, double width, triple const& Min, triple const& Max, bool core)
+void v3dfile::addTube(triple const* g, double width, bool core)
{
getXDRFile() << v3dtypes::tube;
for(int i=0; i < 4; ++i)
@@ -206,9 +205,11 @@ void v3dfile::addTube(triple const* g, double width, triple const& Min, triple c
getXDRFile() << core;
}
-void v3dfile::addTriangles(size_t nP, triple const* P, size_t nN, triple const* N, size_t nC, prc::RGBAColour const* C,
- size_t nI, uint32_t const (* PI)[3], uint32_t const (* NI)[3], uint32_t const (* CI)[3],
- triple const& Min, triple const& Max)
+void v3dfile::addTriangles(size_t nP, triple const* P, size_t nN,
+ triple const* N, size_t nC,
+ prc::RGBAColour const* C, size_t nI,
+ uint32_t const (* PI)[3], uint32_t const (* NI)[3],
+ uint32_t const (* CI)[3])
{
getXDRFile() << v3dtypes::triangles;
getXDRFile() << (uint32_t) nI;
@@ -266,21 +267,21 @@ void v3dfile::addIndices(uint32_t const* v)
getXDRFile() << v[0] << v[1] << v[2];
}
-void v3dfile::addCurve(triple const& z0, triple const& c0, triple const& c1, triple const& z1, triple const& Min,
- triple const& Max)
+void v3dfile::addCurve(triple const& z0, triple const& c0, triple const& c1,
+ triple const& z1)
{
getXDRFile() << v3dtypes::curve << z0 << c0 << c1 << z1;
addCenterIndexMat();
}
-void v3dfile::addCurve(triple const& z0, triple const& z1, triple const& Min, triple const& Max)
+void v3dfile::addCurve(triple const& z0, triple const& z1)
{
getXDRFile() << v3dtypes::line << z0 << z1;
addCenterIndexMat();
}
-void v3dfile::addPixel(triple const& z0, double width, triple const& Min, triple const& Max)
+void v3dfile::addPixel(triple const& z0, double width)
{
getXDRFile() << v3dtypes::pixel << z0 << width;
getXDRFile() << (uint32_t) materialIndex;
diff --git a/Build/source/utils/asymptote/v3dfile.h b/Build/source/utils/asymptote/v3dfile.h
index 5da40724770..4bbfdd78876 100644
--- a/Build/source/utils/asymptote/v3dfile.h
+++ b/Build/source/utils/asymptote/v3dfile.h
@@ -98,13 +98,13 @@ public:
void writeInit();
void finalize();
- void addPatch(triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ void addPatch(triple const* controls, prc::RGBAColour const* c) override;
void addStraightPatch(
- triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ triple const* controls, prc::RGBAColour const* c) override;
void addBezierTriangle(
- triple const* control, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ triple const* control, prc::RGBAColour const* c) override;
void addStraightBezierTriangle(
- triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+ triple const* controls, prc::RGBAColour const* c) override;
#ifdef HAVE_LIBGLM
void addMaterial(Material const& mat) override;
@@ -118,21 +118,20 @@ public:
bool core) override;
void addDisk(triple const& center, double radius,
double const& polar, const double& azimuth) override;
- void addTube(const triple *g, double width,
- const triple& Min, const triple& Max, bool core) override;
+ void addTube(const triple *g, double width, bool core) override;
void addTriangles(size_t nP, const triple* P, size_t nN,
- const triple* N, size_t nC, const prc::RGBAColour* C,
- size_t nI, const uint32_t (*PI)[3],
- const uint32_t (*NI)[3], const uint32_t (*CI)[3],
- const triple& Min, const triple& Max) override;
+ const triple* N, size_t nC, const prc::RGBAColour* C,
+ size_t nI, const uint32_t (*PI)[3],
+ const uint32_t (*NI)[3],
+ const uint32_t (*CI)[3]) override;
- void addCurve(triple const& z0, triple const& c0, triple const& c1, triple const& z1, triple const& Min,
- triple const& Max) override;
+ void addCurve(triple const& z0, triple const& c0, triple const& c1,
+ triple const& z1) override;
- void addCurve(triple const& z0, triple const& z1, triple const& Min, triple const& Max) override;
+ void addCurve(triple const& z0, triple const& z1) override;
- void addPixel(triple const& z0, double width, triple const& Min, triple const& Max) override;
+ void addPixel(triple const& z0, double width) override;
void precision(int digits) override {}
diff --git a/Build/source/utils/asymptote/v3dheadertypes.h b/Build/source/utils/asymptote/v3dheadertypes.h
index 67536e98b63..8644f1ce8aa 100644
--- a/Build/source/utils/asymptote/v3dheadertypes.h
+++ b/Build/source/utils/asymptote/v3dheadertypes.h
@@ -1,6 +1,6 @@
// Enum class for v3dheadertypes
// AUTO-GENERATED from v3dheadertypes.csv
-// Generated at 2022-03-07 12:04:07.350990
+// Generated at 2023-01-23 00:17:36
namespace camp
{
diff --git a/Build/source/utils/asymptote/v3dheadertypes.py b/Build/source/utils/asymptote/v3dheadertypes.py
index 9ac4b9401f3..d0fcb63ff25 100644
--- a/Build/source/utils/asymptote/v3dheadertypes.py
+++ b/Build/source/utils/asymptote/v3dheadertypes.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Enum class for v3dheadertypes
""" AUTO-GENERATED from v3dheadertypes.csv """
-# Generated at 2022-03-07 12:05:14.330045
+# Generated at 2023-01-23 00:17:44
class v3dheadertypes:
v3dheadertypes_canvasWidth=1
diff --git a/Build/source/utils/asymptote/v3dtypes.h b/Build/source/utils/asymptote/v3dtypes.h
index a674ff8bf5b..305584ad3be 100644
--- a/Build/source/utils/asymptote/v3dtypes.h
+++ b/Build/source/utils/asymptote/v3dtypes.h
@@ -1,6 +1,6 @@
// Enum class for v3dtypes
// AUTO-GENERATED from v3dtypes.csv
-// Generated at 2022-03-07 12:04:07.351004
+// Generated at 2023-01-23 00:17:36
namespace camp
{
diff --git a/Build/source/utils/asymptote/v3dtypes.py b/Build/source/utils/asymptote/v3dtypes.py
index 728f6a343db..62dbea5aa68 100644
--- a/Build/source/utils/asymptote/v3dtypes.py
+++ b/Build/source/utils/asymptote/v3dtypes.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Enum class for v3dtypes
""" AUTO-GENERATED from v3dtypes.csv """
-# Generated at 2022-03-07 12:05:14.296777
+# Generated at 2023-01-23 00:17:44
class v3dtypes:
v3dtypes_material=1
diff --git a/Build/source/utils/asymptote/webgl/gl.js b/Build/source/utils/asymptote/webgl/gl.js
index a3b990c3858..00375ee57f7 100644
--- a/Build/source/utils/asymptote/webgl/gl.js
+++ b/Build/source/utils/asymptote/webgl/gl.js
@@ -1,53 +1,70 @@
-let P=[]; // Array of Bezier patches, triangles, curves, and pixels
-let Materials=[]; // Array of materials
-let Lights=[]; // Array of lights
-let Centers=[]; // Array of billboard centers
-let Background=[1,1,1,1]; // Background color
-let Transform; // Transformation matrix T[4][4] that maps back to user
-// coordinates, with T[i][j] stored as element 4*i+j.
-
-let canvasWidth,canvasHeight; // Canvas width, height
-
-let absolute=false; // true: absolute size; false: scale to canvas
-let ibl=false;
-let imageURL;
-let image;
-
-let minBound,maxBound; // Scene min,max bounding box corners (3-tuples)
-let orthographic; // true: orthographic; false: perspective
-let angleOfView; // Field of view angle
-let initialZoom; // Initial zoom
-let viewportShift=[0,0]; // Viewport shift (for perspective projection)
-let viewportMargin; // Margin around viewport (2-tuple)
-let webgl2=false;
-
-let zoomFactor; // Zoom base factor
-let zoomPinchFactor; // Zoom pinch factor
-let zoomPinchCap; // Zoom pinch limit
-let zoomStep; // Zoom power step
-
-let shiftHoldDistance; // Shift-mode maximum hold distance (pixels)
-let shiftWaitTime; // Shift-mode hold time (milliseconds)
-let vibrateTime; // Shift-mode vibrate time (milliseconds)
-
-let canvasWidth0,canvasHeight0; // Initial values
-let zoom0; // Adjusted initial zoom
+// AsyGL library core
-let embedded; // Is image embedded within another window?
+(function() {
+
+document.asy={
+ canvasWidth:0,
+ canvasHeight:0,
+ absolute:false, // true: absolute size; false: scale to canvas
+
+ minBound:[0,0,0], // Component-wise minimum bounding box corner
+ maxBound:[0,0,0], // Component-wise maximum bounding box corner
+
+ orthographic:false, // true: orthographic; false: perspective
+ angleOfView:0, // Field of view angle
+ initialZoom:0, // Initial zoom
+
+ viewportShift:[0,0], // Viewport shift (for perspective projection)
+ viewportMargin:[0,0], // Margin around viewport
+
+ background:[], // Background color
+
+ zoomFactor:0, // Zoom base factor
+ zoomPinchFactor:0, // Zoom pinch factor
+ zoomPinchCap:0, // Zoom pinch limit
+ zoomStep:0, // Zoom power step
+
+ shiftHoldDistance:0, // Shift-mode maximum hold distance (pixels)
+ shiftWaitTime:0, // Shift-mode hold time (milliseconds)
+ vibrateTime:0, // Shift-mode vibrate time (milliseconds)
+
+ ibl:false,
+ webgl2:false,
+
+ imageURL:"",
+ image:"",
+
+ // Transformation matrix T[4][4] that maps back to user
+ // coordinates, with T[i][j] stored as element 4*i+j.
+ Transform:[],
+
+ Centers:[] // Array of billboard centers
+}
+
+let W=document.asy;
-let canvas; // Rendering canvas
let gl; // WebGL rendering context
let alpha; // Is background opaque?
-
+let embedded; // Is image embedded within another window?
+let canvas; // Rendering canvas
let offscreen; // Offscreen rendering canvas for embedded images
let context; // 2D context for copying embedded offscreen images
+let P=[]; // Array of Bezier patches, triangles, curves, and pixels
+let Lights=[]; // Array of lights
+let Materials=[]; // Array of materials
+
let nlights=0; // Number of lights compiled in shader
let Nmaterials=2; // Maximum number of materials compiled in shader
let materials=[]; // Subset of Materials passed as uniforms
let maxMaterials; // Limit on number of materials allowed in shader
+// Initial values:
+let canvasWidth0;
+let canvasHeight0;
+let zoom0;
+
let halfCanvasWidth,halfCanvasHeight;
const pixelResolution=0.75; // Adaptive rendering constant.
@@ -57,6 +74,7 @@ const windowTrim=10;
const third=1/3;
const pi=Math.acos(-1.0);
const radians=pi/180.0;
+const maxDepth=Math.ceil(1-Math.log2(Number.EPSILON));
let Zoom;
let lastZoom;
@@ -116,9 +134,9 @@ function IBLReady()
function SetIBL()
{
- if(!embedded)
+ if(!W.embedded)
deleteShaders();
- initShaders(ibl);
+ initShaders(W.ibl);
}
let roughnessStepCount=8;
@@ -196,7 +214,7 @@ function deleteShaders()
function saveAttributes()
{
- let a=webgl2 ?
+ let a=W.webgl2 ?
window.top.document.asygl2[alpha] :
window.top.document.asygl[alpha];
@@ -213,7 +231,7 @@ function saveAttributes()
function restoreAttributes()
{
- let a=webgl2 ?
+ let a=W.webgl2 ?
window.top.document.asygl2[alpha] :
window.top.document.asygl[alpha];
@@ -232,18 +250,18 @@ let indexExt;
function webGL(canvas,alpha) {
let gl;
- if(webgl2) {
+ if(W.webgl2) {
gl=canvas.getContext("webgl2",{alpha: alpha});
- if(embedded && !gl) {
- webgl2=false;
- ibl=false;
+ if(W.embedded && !gl) {
+ W.webgl2=false;
+ W.ibl=false;
initGL(false); // Look for an existing webgl context
return null; // Skip remainder of parent call
}
}
if(!gl) {
- webgl2=false;
- ibl=false;
+ W.webgl2=false;
+ W.ibl=false;
gl=canvas.getContext("webgl",{alpha: alpha});
}
if(!gl)
@@ -253,24 +271,24 @@ function webGL(canvas,alpha) {
function initGL(outer=true)
{
- if(ibl) webgl2=true;
+ if(W.ibl) W.webgl2=true;
- alpha=Background[3] < 1;
+ alpha=W.background[3] < 1;
- if(embedded) {
+ if(W.embedded) {
let p=window.top.document;
- if(outer) context=canvas.getContext("2d");
- offscreen=webgl2 ? p.offscreen2 : p.offscreen;
+ if(outer) context=W.canvas.getContext("2d");
+ offscreen=W.webgl2 ? p.offscreen2 : p.offscreen;
if(!offscreen) {
offscreen=p.createElement("canvas");
- if(webgl2)
+ if(W.webgl2)
p.offscreen2=offscreen;
else
p.offscreen=offscreen;
}
- if(webgl2) {
+ if(W.webgl2) {
if(!p.asygl2)
p.asygl2=Array(2);
} else {
@@ -278,14 +296,14 @@ function initGL(outer=true)
p.asygl=Array(2);
}
- asygl=webgl2 ? p.asygl2 : p.asygl;
+ asygl=W.webgl2 ? p.asygl2 : p.asygl;
if(!asygl[alpha] || !asygl[alpha].gl) {
rc=webGL(offscreen,alpha);
if(rc) gl=rc;
else return;
initShaders();
- if(webgl2)
+ if(W.webgl2)
p.asygl2[alpha]={};
else
p.asygl[alpha]={};
@@ -299,7 +317,7 @@ function initGL(outer=true)
}
}
} else {
- gl=webGL(canvas,alpha);
+ gl=webGL(W.canvas,alpha);
initShaders();
}
@@ -316,7 +334,7 @@ function initGL(outer=true)
function getShader(gl,shaderScript,type,options=[])
{
- let version=webgl2 ? '300 es' : '100';
+ let version=W.webgl2 ? '300 es' : '100';
let defines=Array(...options)
let macros=[
['nlights',wireframe == 0 ? Lights.length : 0],
@@ -337,13 +355,13 @@ precision mediump float;
let extensions=[];
- if(webgl2)
+ if(W.webgl2)
defines.push('WEBGL2');
- if(ibl)
+ if(W.ibl)
macros.push(['ROUGHNESS_STEP_COUNT',roughnessStepCount.toFixed(2)]);
- if(orthographic)
+ if(W.orthographic)
defines.push('ORTHOGRAPHIC');
macros_str=macros.map(macro => `#define ${macro[0]} ${macro[1]}`).join('\n')
@@ -422,9 +440,9 @@ function drawBuffer(data,shader,indices=data.indices)
gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,false,2,0);
if(shader == colorShader || shader == transparentShader) {
- data.colorsBuffer=registerBuffer(new Uint8Array(data.colors),
+ data.colorsBuffer=registerBuffer(new Float32Array(data.colors),
data.colorsBuffer,copy);
- gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,true,0,0);
+ gl.vertexAttribPointer(colorAttribute,4,gl.FLOAT,true,0,0);
}
data.indicesBuffer=registerBuffer(indexExt ? new Uint32Array(indices) :
@@ -633,7 +651,7 @@ class Geometry {
if(this.CenterIndex == 0)
v=corners(this.Min,this.Max);
else {
- this.c=Centers[this.CenterIndex-1];
+ this.c=W.Centers[this.CenterIndex-1];
v=this.Tcorners(this.Min,this.Max);
}
@@ -659,7 +677,7 @@ class Geometry {
P[i]=this.T(p[i]);
}
- let s=orthographic ? 1 : this.Min[2]/maxBound[2];
+ let s=W.orthographic ? 1 : this.Min[2]/W.maxBound[2];
let res=pixelResolution*
Math.hypot(s*(viewParam.xmax-viewParam.xmin),
s*(viewParam.ymax-viewParam.ymin))/size2;
@@ -673,23 +691,28 @@ class Geometry {
}
}
+function boundPoints(p,m)
+{
+ let b=p[0];
+ let n=p.length;
+ for(let i=1; i < n; ++i)
+ b=m(b,p[i]);
+ return b;
+}
+
class BezierPatch extends Geometry {
/**
* Constructor for Bezier Patch
* @param {*} controlpoints array of 16 control points
* @param {*} CenterIndex center index of billboard labels (or 0)
* @param {*} MaterialIndex material index (>= 0)
- * @param {*} Min bounding box corner
- * @param {*} Max bounding box corner
* @param {*} colors array of 4 RGBA color arrays
*/
- constructor(controlpoints,CenterIndex,MaterialIndex,Min,Max,color) {
+ constructor(controlpoints,CenterIndex,MaterialIndex,color,Min,Max) {
super();
this.controlpoints=controlpoints;
this.CenterIndex=CenterIndex;
this.MaterialIndex=MaterialIndex;
- this.Min=Min;
- this.Max=Max;
this.color=color;
let n=controlpoints.length;
if(color) {
@@ -701,7 +724,13 @@ class BezierPatch extends Geometry {
this.vertex=this.transparent ? this.data.Vertex.bind(this.data) :
this.data.vertex.bind(this.data);
- this.L2norm(this.controlpoints);
+
+ let norm2=this.L2norm2(this.controlpoints);
+ let fuzz=Math.sqrt(1000*Number.EPSILON*norm2);
+ this.epsilon=norm2*Number.EPSILON;
+
+ this.Min=Min ? Min : this.Bounds(this.controlpoints,Math.min,fuzz);
+ this.Max=Max ? Max : this.Bounds(this.controlpoints,Math.max,fuzz);
}
setMaterialIndex() {
@@ -715,15 +744,128 @@ class BezierPatch extends Geometry {
}
}
+ cornerbound(p,m) {
+ let b=m(p[0],p[3]);
+ b=m(b,p[12]);
+ return m(b,p[15]);
+ }
+
+ controlbound(p,m) {
+ let b=m(p[1],p[2]);
+ b=m(b,p[4]);
+ b=m(b,p[5]);
+ b=m(b,p[6]);
+ b=m(b,p[7]);
+ b=m(b,p[8]);
+ b=m(b,p[9]);
+ b=m(b,p[10]);
+ b=m(b,p[11]);
+ b=m(b,p[13]);
+ return m(b,p[14]);
+ }
+
+ bound(p,m,b,fuzz,depth) {
+ b=m(b,this.cornerbound(p,m));
+ if(m(-1.0,1.0)*(b-this.controlbound(p,m)) >= -fuzz || depth == 0)
+ return b;
+
+ --depth;
+ fuzz *= 2;
+
+ let c0=new Split(p[0],p[1],p[2],p[3]);
+ let c1=new Split(p[4],p[5],p[6],p[7]);
+ let c2=new Split(p[8],p[9],p[10],p[11]);
+ let c3=new Split(p[12],p[13],p[14],p[15]);
+
+ let c4=new Split(p[0],p[4],p[8],p[12]);
+ let c5=new Split(c0.m0,c1.m0,c2.m0,c3.m0);
+ let c6=new Split(c0.m3,c1.m3,c2.m3,c3.m3);
+ let c7=new Split(c0.m5,c1.m5,c2.m5,c3.m5);
+ let c8=new Split(c0.m4,c1.m4,c2.m4,c3.m4);
+ let c9=new Split(c0.m2,c1.m2,c2.m2,c3.m2);
+ let c10=new Split(p[3],p[7],p[11],p[15]);
+
+ // Check all 4 Bezier subpatches.
+ let s0=[p[0],c0.m0,c0.m3,c0.m5,c4.m0,c5.m0,c6.m0,c7.m0,
+ c4.m3,c5.m3,c6.m3,c7.m3,c4.m5,c5.m5,c6.m5,c7.m5];
+ b=this.bound(s0,m,b,fuzz,depth);
+ let s1=[c4.m5,c5.m5,c6.m5,c7.m5,c4.m4,c5.m4,c6.m4,c7.m4,
+ c4.m2,c5.m2,c6.m2,c7.m2,p[12],c3.m0,c3.m3,c3.m5];
+ b=this.bound(s1,m,b,fuzz,depth);
+ let s2=[c7.m5,c8.m5,c9.m5,c10.m5,c7.m4,c8.m4,c9.m4,c10.m4,
+ c7.m2,c8.m2,c9.m2,c10.m2,c3.m5,c3.m4,c3.m2,p[15]];
+ b=this.bound(s2,m,b,fuzz,depth);
+ let s3=[c0.m5,c0.m4,c0.m2,p[3],c7.m0,c8.m0,c9.m0,c10.m0,
+ c7.m3,c8.m3,c9.m3,c10.m3,c7.m5,c8.m5,c9.m5,c10.m5];
+ return this.bound(s3,m,b,fuzz,depth);
+ }
+
+ cornerboundtri(p,m) {
+ let b=m(p[0],p[6]);
+ return m(b,p[9]);
+ }
+
+ controlboundtri(p,m) {
+ let b=m(p[1],p[2]);
+ b=m(b,p[3]);
+ b=m(b,p[4]);
+ b=m(b,p[5]);
+ b=m(b,p[7]);
+ return m(b,p[8]);
+ }
+
+ boundtri(p,m,b,fuzz,depth) {
+ b=m(b,this.cornerboundtri(p,m));
+ if(m(-1.0,1.0)*(b-this.controlboundtri(p,m)) >= -fuzz || depth == 0)
+ return b;
+
+ --depth;
+ fuzz *= 2;
+
+ let s=new Splittri(p);
+
+ let l=[s.l003,s.l102,s.l012,s.l201,s.l111,
+ s.l021,s.l300,s.l210,s.l120,s.l030]; // left
+ b=this.boundtri(l,m,b,fuzz,depth);
+
+ let r=[s.l300,s.r102,s.r012,s.r201,s.r111,
+ s.r021,s.r300,s.r210,s.r120,s.r030]; // right
+ b=this.boundtri(r,m,b,fuzz,depth);
+
+ let u=[s.l030,s.u102,s.u012,s.u201,s.u111,
+ s.u021,s.r030,s.u210,s.u120,s.u030]; // up
+ b=this.boundtri(u,m,b,fuzz,depth);
+
+ let c=[s.r030,s.u201,s.r021,s.u102,s.c111,
+ s.r012,s.l030,s.l120,s.l210,s.l300]; // center
+ return this.boundtri(c,m,b,fuzz,depth);
+ }
+
+ Bounds(p,m,fuzz) {
+ let b=Array(3);
+ let n=p.length;
+ let x=Array(n);
+ for(let i=0; i < 3; ++i) {
+ for(let j=0; j < n; ++j)
+ x[j]=p[j][i];
+ if(n == 16)
+ b[i]=this.bound(x,m,x[0],fuzz,maxDepth)
+ else if(n == 10)
+ b[i]=this.boundtri(x,m,x[0],fuzz,maxDepth);
+ else
+ b[i]=boundPoints(x,m);
+ }
+ return [b[0],b[1],b[2]];
+ }
+
// Render a Bezier patch via subdivision.
- L2norm(p) {
+ L2norm2(p) {
let p0=p[0];
- this.epsilon=0;
+ let norm2=0;
let n=p.length;
for(let i=1; i < n; ++i)
- this.epsilon=Math.max(this.epsilon,
- abs2([p[i][0]-p0[0],p[i][1]-p0[1],p[i][2]-p0[2]]));
- this.epsilon *= Number.EPSILON
+ norm2=Math.max(norm2,abs2([p[i][0]-p0[0],p[i][1]-p0[1],p[i][2]-p0[2]]));
+ return norm2;
}
processTriangle(p) {
@@ -1776,14 +1918,128 @@ class BezierPatch extends Geometry {
}
}
+// Calculate the coefficients of a Bezier derivative divided by 3.
+function derivative(z0,c0,c1,z1)
+{
+ let a=z1-z0+3.0*(c0-c1);
+ let b=2.0*(z0+c1)-4.0*c0;
+ let c=c0-z0;
+ return [a,b,c];
+}
+
+function goodroot(t)
+{
+ return 0.0 <= t && t <= 1.0;
+}
+
+// Accurate computation of sqrt(1+x)-1.
+function sqrt1pxm1(x)
+{
+ return x/(Math.sqrt(1.0+x)+1.0);
+}
+
+// Solve for the real roots of the quadratic equation ax^2+bx+c=0.
+class quadraticroots {
+ constructor(a,b,c) {
+ const Fuzz2=1000*Number.EPSILON;
+ const Fuzz4=Fuzz2*Fuzz2;
+
+ // Remove roots at numerical infinity.
+ if(Math.abs(a) <= Fuzz2*Math.abs(b)+Fuzz4*Math.abs(c)) {
+ if(Math.abs(b) > Fuzz2*Math.abs(c)) {
+ this.roots=1;
+ this.t1=-c/b;
+ } else if(c == 0.0) {
+ this.roots=1;
+ this.t1=0.0;
+ } else {
+ this.roots=0;
+ }
+ } else {
+ let factor=0.5*b/a;
+ let denom=b*factor;
+ if(Math.abs(denom) <= Fuzz2*Math.abs(c)) {
+ let x=-c/a;
+ if(x >= 0.0) {
+ this.roots=2;
+ this.t2=Math.sqrt(x);
+ this.t1=-this.t2;
+ } else
+ this.roots=0;
+ } else {
+ let x=-2.0*c/denom;
+ if(x > -1.0) {
+ this.roots=2;
+ let r2=factor*sqrt1pxm1(x);
+ let r1=-r2-2.0*factor;
+ if(r1 <= r2) {
+ this.t1=r1;
+ this.t2=r2;
+ } else {
+ this.t1=r2;
+ this.t2=r1;
+ }
+ } else if(x == -1.0) {
+ this.roots=1;
+ this.t1=this.t2=-factor;
+ } else
+ this.roots=0;
+ }
+ }
+ }
+}
+
class BezierCurve extends Geometry {
constructor(controlpoints,CenterIndex,MaterialIndex,Min,Max) {
super();
this.controlpoints=controlpoints;
this.CenterIndex=CenterIndex;
this.MaterialIndex=MaterialIndex;
- this.Min=Min;
- this.Max=Max;
+
+ if(Min && Max) {
+ this.Min=Min;
+ this.Max=Max;
+ } else {
+ let b=this.Bounds(this.controlpoints);
+ this.Min=b[0];
+ this.Max=b[1];
+ }
+ }
+
+ Bounds(p) {
+ let b=Array(3);
+ let B=Array(3);
+ let n=p.length;
+ let x=Array(n);
+ for(let i=0; i < 3; ++i) {
+ for(let j=0; j < n; ++j)
+ x[j]=p[j][i];
+ let m,M;
+ m=M=x[0];
+ if(n == 4) {
+ m=Math.min(m,x[3]);
+ M=Math.max(M,x[3]);
+ let a=derivative(x[0],x[1],x[2],x[3]);
+ let q=new quadraticroots(a[0],a[1],a[2]);
+ if(q.roots != 0 && goodroot(q.t1)) {
+ let v=bezier(x[0],x[1],x[2],x[3],q.t1);
+ m=Math.min(m,v);
+ M=Math.max(M,v);
+ }
+ if(q.roots == 2 && goodroot(q.t2)) {
+ let v=bezier(x[0],x[1],x[2],x[3],q.t2);
+ m=Math.min(m,v);
+ M=Math.max(M,v);
+ }
+ } else {
+ let v=x[1];
+ m=Math.min(m,v);
+ M=Math.max(M,v);
+ }
+ b[i]=m;
+ B[i]=M;
+ }
+ return [[b[0],b[1],b[2]],[B[0],B[1],B[2]]];
}
setMaterialIndex() {
@@ -1869,14 +2125,14 @@ class BezierCurve extends Geometry {
}
class Pixel extends Geometry {
- constructor(controlpoint,width,MaterialIndex,Min,Max) {
+ constructor(controlpoint,width,MaterialIndex) {
super();
this.controlpoint=controlpoint;
this.width=width;
this.CenterIndex=0;
this.MaterialIndex=MaterialIndex;
- this.Min=Min;
- this.Max=Max;
+ this.Min=controlpoint;
+ this.Max=controlpoint;
}
setMaterialIndex() {
@@ -1898,24 +2154,32 @@ class Pixel extends Geometry {
}
class Triangles extends Geometry {
- constructor(CenterIndex,MaterialIndex,Min,Max) {
+ constructor(CenterIndex,MaterialIndex) {
super();
this.CenterIndex=CenterIndex;
this.MaterialIndex=MaterialIndex;
- this.Min=Min;
- this.Max=Max;
+ this.Min=this.Bounds(Positions,Math.min);
+ this.Max=this.Bounds(Positions,Math.max);
this.controlpoints=Positions;
this.Normals=Normals;
this.Colors=Colors;
this.Indices=Indices;
- Positions=[];
- Normals=[];
- Colors=[];
- Indices=[];
this.transparent=Materials[this.MaterialIndex].diffuse[3] < 1;
}
+ Bounds(p,m) {
+ let b=Array(3);
+ let n=p.length;
+ let x=Array(n);
+ for(let i=0; i < 3; ++i) {
+ for(let j=0; j < n; ++j)
+ x[j]=p[j][i];
+ b[i]=boundPoints(x,m);
+ }
+ return [b[0],b[1],b[2]];
+ }
+
setMaterialIndex() {
if(this.transparent)
this.setMaterial(transparentData,drawTransparent);
@@ -2036,6 +2300,17 @@ function initShader(options=[])
return shader;
}
+class Split {
+ constructor(z0,c0,c1,z1) {
+ this.m0=0.5*(z0+c0);
+ let m1=0.5*(c0+c1);
+ this.m2=0.5*(c1+z1);
+ this.m3=0.5*(this.m0+m1);
+ this.m4=0.5*(m1+this.m2);
+ this.m5=0.5*(this.m3+this.m4);
+ }
+}
+
class Split3 {
constructor(z0,c0,c1,z1) {
this.m0=[0.5*(z0[0]+c0[0]),0.5*(z0[1]+c0[1]),0.5*(z0[2]+c0[2])];
@@ -2052,6 +2327,65 @@ class Split3 {
}
}
+class Splittri {
+ constructor(p) {
+ this.l003=p[0];
+ let p102=p[1];
+ let p012=p[2];
+ let p201=p[3];
+ let p111=p[4];
+ let p021=p[5];
+ this.r300=p[6];
+ let p210=p[7];
+ let p120=p[8];
+ this.u030=p[9];
+
+ this.u021=0.5*(this.u030+p021);
+ this.u120=0.5*(this.u030+p120);
+
+ let p033=0.5*(p021+p012);
+ let p231=0.5*(p120+p111);
+ let p330=0.5*(p120+p210);
+
+ let p123=0.5*(p012+p111);
+
+ this.l012=0.5*(p012+this.l003);
+ let p312=0.5*(p111+p201);
+ this.r210=0.5*(p210+this.r300);
+
+ this.l102=0.5*(this.l003+p102);
+ let p303=0.5*(p102+p201);
+ this.r201=0.5*(p201+this.r300);
+
+ this.u012=0.5*(this.u021+p033);
+ this.u210=0.5*(this.u120+p330);
+ this.l021=0.5*(p033+this.l012);
+ let p4xx=0.5*p231+0.25*(p111+p102);
+ this.r120=0.5*(p330+this.r210);
+ let px4x=0.5*p123+0.25*(p111+p210);
+ let pxx4=0.25*(p021+p111)+0.5*p312;
+ this.l201=0.5*(this.l102+p303);
+ this.r102=0.5*(p303+this.r201);
+
+ this.l210=0.5*(px4x+this.l201); // = m120
+ this.r012=0.5*(px4x+this.r102); // = m021
+ this.l300=0.5*(this.l201+this.r102); // = r003 = m030
+
+ this.r021=0.5*(pxx4+this.r120); // = m012
+ this.u201=0.5*(this.u210+pxx4); // = m102
+ this.r030=0.5*(this.u210+this.r120); // = u300 = m003
+
+ this.u102=0.5*(this.u012+p4xx); // = m201
+ this.l120=0.5*(this.l021+p4xx); // = m210
+ this.l030=0.5*(this.u012+this.l021); // = u003 = m300
+
+ this.l111=0.5*(p123+this.l102);
+ this.r111=0.5*(p312+this.r210);
+ this.u111=0.5*(this.u021+p231);
+ this.c111=0.25*(p033+p330+p303+p111);
+ }
+}
+
function unit(v)
{
let norm=1/(Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]) || 1);
@@ -2075,6 +2409,14 @@ function cross(u,v)
u[0]*v[1]-u[1]*v[0]];
}
+// Evaluate the Bezier curve defined by a,b,c,d at t.
+function bezier(a,b,c,d,t)
+{
+ let onemt=1-t;
+ let onemt2=onemt*onemt;
+ return onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d);
+}
+
// Return one-third of the first derivative of the Bezier curve defined
// by a,b,c,d at t=0.
function bezierP(a,b)
@@ -2283,7 +2625,7 @@ function shiftScene(lastX,lastY,rawX,rawY)
function panScene(lastX,lastY,rawX,rawY)
{
- if(orthographic) {
+ if(W.orthographic) {
shiftScene(lastX,lastY,rawX,rawY);
} else {
center.x += (rawX-lastX)*(viewParam.xmax-viewParam.xmin);
@@ -2315,11 +2657,11 @@ function capzoom()
function zoomImage(diff)
{
- let stepPower=zoomStep*halfCanvasHeight*diff;
- const limit=Math.log(0.1*Number.MAX_VALUE)/Math.log(zoomFactor);
+ let stepPower=W.zoomStep*halfCanvasHeight*diff;
+ const limit=Math.log(0.1*Number.MAX_VALUE)/Math.log(W.zoomFactor);
if(Math.abs(stepPower) < limit) {
- Zoom *= zoomFactor**stepPower;
+ Zoom *= W.zoomFactor**stepPower;
capzoom();
}
}
@@ -2403,13 +2745,13 @@ let zoomEnabled=0;
function enableZoom()
{
zoomEnabled=1;
- canvas.addEventListener("wheel",handleMouseWheel,false);
+ W.canvas.addEventListener("wheel",handleMouseWheel,false);
}
function disableZoom()
{
zoomEnabled=0;
- canvas.removeEventListener("wheel",handleMouseWheel,false);
+ W.canvas.removeEventListener("wheel",handleMouseWheel,false);
}
function Camera()
@@ -2431,7 +2773,7 @@ function Camera()
let R1=rotMat[j4+1];
let R2=rotMat[j4+2];
let R3=rotMat[j4+3];
- let T4ij=Transform[i4+j];
+ let T4ij=W.Transform[i4+j];
sumCamera += T4ij*(R3-cx*R0-cy*R1-cz*R2);
sumUp += T4ij*R1;
sumTarget += T4ij*(R3-cx*R0-cy*R1);
@@ -2445,30 +2787,28 @@ function Camera()
function projection()
{
- if(Transform == null) return "";
-
let camera,up,target;
[camera,up,target]=Camera();
- let projection=orthographic ? " orthographic(" : " perspective(";
+ let projection=W.orthographic ? " orthographic(" : " perspective(";
let indent="".padStart(projection.length);
let currentprojection="currentprojection="+"\n"+
projection+"camera=("+camera+"),\n"+
indent+"up=("+up+"),"+"\n"+
indent+"target=("+target+"),"+"\n"+
- indent+"zoom="+Zoom*initialZoom/zoom0;
+ indent+"zoom="+Zoom*W.initialZoom/W.zoom0;
- if(!orthographic)
+ if(!W.orthographic)
currentprojection += ","+"\n"
+indent+"angle="+
- 2.0*Math.atan(Math.tan(0.5*angleOfView)/Zoom)/radians;
+ 2.0*Math.atan(Math.tan(0.5*W.angleOfView)/Zoom)/radians;
if(xshift != 0 || yshift != 0)
currentprojection += ","+"\n"+
indent+"viewportshift=("+xshift+","+yshift+")";
- if(!orthographic)
+ if(!W.orthographic)
currentprojection += ","+"\n"+
indent+"autoadjust=false";
@@ -2485,7 +2825,7 @@ function handleKey(event)
if(!zoomEnabled)
enableZoom();
- if(embedded && zoomEnabled && event.keyCode == ESC) {
+ if(W.embedded && zoomEnabled && event.keyCode == ESC) {
disableZoom();
return;
}
@@ -2510,9 +2850,9 @@ function handleKey(event)
++wireframe;
if(wireframe == 3) wireframe=0;
if(wireframe != 2) {
- if(!embedded)
+ if(!W.embedded)
deleteShaders();
- initShaders(ibl);
+ initShaders(W.ibl);
}
remesh=true;
drawScene();
@@ -2553,9 +2893,9 @@ function handleMouseWheel(event)
event.preventDefault();
if(event.deltaY < 0) {
- Zoom *= zoomFactor;
+ Zoom *= W.zoomFactor;
} else {
- Zoom /= zoomFactor;
+ Zoom /= W.zoomFactor;
}
setZoom();
@@ -2599,12 +2939,12 @@ function handleTouchMove(event)
let newY=touches[0].pageY;
let dx=newX-lastMouseX;
let dy=newY-lastMouseY;
- let stationary=dx*dx+dy*dy <= shiftHoldDistance*shiftHoldDistance;
+ let stationary=dx*dx+dy*dy <= W.shiftHoldDistance*W.shiftHoldDistance;
if(stationary) {
if(!swipe && !rotate &&
- new Date().getTime()-touchStartTime > shiftWaitTime) {
+ new Date().getTime()-touchStartTime > W.shiftWaitTime) {
if(navigator.vibrate)
- window.navigator.vibrate(vibrateTime);
+ window.navigator.vibrate(W.vibrateTime);
swipe=true;
}
}
@@ -2623,9 +2963,9 @@ function handleTouchMove(event)
let distance=pinchDistance(touches);
let diff=distance-pinchStart;
zooming=true;
- diff *= zoomPinchFactor;
- if(diff > zoomPinchCap) diff=zoomPinchCap;
- if(diff < -zoomPinchCap) diff=-zoomPinchCap;
+ diff *= W.zoomPinchFactor;
+ if(diff > W.zoomPinchCap) diff=W.zoomPinchCap;
+ if(diff < -W.zoomPinchCap) diff=-W.zoomPinchCap;
zoomImage(diff/size2);
pinchStart=distance;
swipe=rotate=zooming=false;
@@ -2740,22 +3080,22 @@ function drawBuffers()
function drawScene()
{
- if(embedded) {
- offscreen.width=canvasWidth;
- offscreen.height=canvasHeight;
+ if(W.embedded) {
+ offscreen.width=W.canvasWidth;
+ offscreen.height=W.canvasHeight;
setViewport();
}
- gl.clearColor(Background[0],Background[1],Background[2],Background[3]);
+ gl.clearColor(W.background[0],W.background[1],W.background[2],W.background[3]);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
- for(let i=0; i < P.length; ++i)
- P[i].render();
+ for(const p of P)
+ p.render();
drawBuffers();
- if(embedded) {
- context.clearRect(0,0,canvasWidth,canvasHeight);
+ if(W.embedded) {
+ context.clearRect(0,0,W.canvasWidth,W.canvasHeight);
context.drawImage(offscreen,0,0);
}
@@ -2765,26 +3105,26 @@ function drawScene()
function setDimensions(width,height,X,Y)
{
let Aspect=width/height;
- xshift=(X/width+viewportShift[0])*Zoom;
- yshift=(Y/height+viewportShift[1])*Zoom;
+ xshift=(X/width+W.viewportShift[0])*Zoom;
+ yshift=(Y/height+W.viewportShift[1])*Zoom;
let Zoominv=1/Zoom;
- if(orthographic) {
- let xsize=maxBound[0]-minBound[0];
- let ysize=maxBound[1]-minBound[1];
+ if(W.orthographic) {
+ let xsize=W.maxBound[0]-W.minBound[0];
+ let ysize=W.maxBound[1]-W.minBound[1];
if(xsize < ysize*Aspect) {
let r=0.5*ysize*Aspect*Zoominv;
let X0=2*r*xshift;
let Y0=ysize*Zoominv*yshift;
viewParam.xmin=-r-X0;
viewParam.xmax=r-X0;
- viewParam.ymin=minBound[1]*Zoominv-Y0;
- viewParam.ymax=maxBound[1]*Zoominv-Y0;
+ viewParam.ymin=W.minBound[1]*Zoominv-Y0;
+ viewParam.ymax=W.maxBound[1]*Zoominv-Y0;
} else {
let r=0.5*xsize*Zoominv/Aspect;
let X0=xsize*Zoominv*xshift;
let Y0=2*r*yshift;
- viewParam.xmin=minBound[0]*Zoominv-X0;
- viewParam.xmax=maxBound[0]*Zoominv-X0;
+ viewParam.xmin=W.minBound[0]*Zoominv-X0;
+ viewParam.xmax=W.maxBound[0]*Zoominv-X0;
viewParam.ymin=-r-Y0;
viewParam.ymax=r-Y0;
}
@@ -2802,8 +3142,8 @@ function setDimensions(width,height,X,Y)
function setProjection()
{
- setDimensions(canvasWidth,canvasHeight,shift.x,shift.y);
- let f=orthographic ? mat4.ortho : mat4.frustum;
+ setDimensions(W.canvasWidth,W.canvasHeight,shift.x,shift.y);
+ let f=W.orthographic ? mat4.ortho : mat4.frustum;
f(projMat,viewParam.xmin,viewParam.xmax,
viewParam.ymin,viewParam.ymax,
-viewParam.zmax,-viewParam.zmin);
@@ -2822,37 +3162,37 @@ function showCamera()
function initProjection()
{
- H=-Math.tan(0.5*angleOfView)*maxBound[2];
+ H=-Math.tan(0.5*W.angleOfView)*W.maxBound[2];
center.x=center.y=0;
- center.z=0.5*(minBound[2]+maxBound[2]);
- lastZoom=Zoom=zoom0;
+ center.z=0.5*(W.minBound[2]+W.maxBound[2]);
+ lastZoom=Zoom=W.zoom0;
- viewParam.zmin=minBound[2];
- viewParam.zmax=maxBound[2];
+ viewParam.zmin=W.minBound[2];
+ viewParam.zmax=W.maxBound[2];
shift.x=shift.y=0;
}
function setViewport()
{
- gl.viewportWidth=canvasWidth;
- gl.viewportHeight=canvasHeight;
- gl.viewport(0.5*(canvas.width-canvasWidth),0.5*(canvas.height-canvasHeight),
- canvasWidth,canvasHeight);
- gl.scissor(0,0,canvas.width,canvas.height);
+ gl.viewportWidth=W.canvasWidth;
+ gl.viewportHeight=W.canvasHeight;
+ gl.viewport(0.5*(W.canvas.width-W.canvasWidth),0.5*(W.canvas.height-W.canvasHeight),
+ W.canvasWidth,W.canvasHeight);
+ gl.scissor(0,0,W.canvas.width,W.canvas.height);
}
function setCanvas()
{
- if(embedded) {
- canvas.width=offscreen.width=canvasWidth;
- canvas.height=offscreen.height=canvasHeight;
+ if(W.embedded) {
+ W.canvas.width=offscreen.width=W.canvasWidth;
+ W.canvas.height=offscreen.height=W.canvasHeight;
}
- size2=Math.hypot(canvasWidth,canvasHeight);
- halfCanvasWidth=0.5*canvas.width;
- halfCanvasHeight=0.5*canvas.height;
- ArcballFactor=1+8*Math.hypot(viewportMargin[0],viewportMargin[1])/size2;
+ size2=Math.hypot(W.canvasWidth,W.canvasHeight);
+ halfCanvasWidth=0.5*W.canvas.width;
+ halfCanvasHeight=0.5*W.canvas.height;
+ ArcballFactor=1+8*Math.hypot(W.viewportMargin[0],W.viewportMargin[1])/size2;
}
function setsize(w,h)
@@ -2863,11 +3203,11 @@ function setsize(w,h)
if(h > maxViewportHeight)
h=maxViewportHeight;
- shift.x *= w/canvasWidth;
- shift.y *= h/canvasHeight;
+ shift.x *= w/W.canvasWidth;
+ shift.y *= h/W.canvasHeight;
- canvasWidth=w;
- canvasHeight=h;
+ W.canvasWidth=w;
+ W.canvasHeight=h;
setCanvas();
setViewport();
@@ -2877,48 +3217,48 @@ function setsize(w,h)
function resize()
{
- zoom0=initialZoom;
+ W.zoom0=W.initialZoom;
if(window.top.asyWebApplication &&
window.top.asyWebApplication.getProjection() == "")
window.parent.asyProjection=false;
- if(absolute && !embedded) {
- canvasWidth=canvasWidth0*window.devicePixelRatio;
- canvasHeight=canvasHeight0*window.devicePixelRatio;
+ if(W.absolute && !W.embedded) {
+ W.canvasWidth=W.canvasWith0*window.devicePixelRatio;
+ W.canvasHeight=W.canvasHeight0*window.devicePixelRatio;
} else {
- let Aspect=canvasWidth0/canvasHeight0;
- canvasWidth=Math.max(window.innerWidth-windowTrim,windowTrim);
- canvasHeight=Math.max(window.innerHeight-windowTrim,windowTrim);
+ let Aspect=W.canvasWith0/W.canvasHeight0;
+ W.canvasWidth=Math.max(window.innerWidth-windowTrim,windowTrim);
+ W.canvasHeight=Math.max(window.innerHeight-windowTrim,windowTrim);
- if(!orthographic && !window.parent.asyProjection &&
- canvasWidth < canvasHeight*Aspect)
- zoom0 *= canvasWidth/(canvasHeight*Aspect);
+ if(!W.orthographic && !window.parent.asyProjection &&
+ W.canvasWidth < W.canvasHeight*Aspect)
+ W.zoom0 *= W.canvasWidth/(W.canvasHeight*Aspect);
}
- canvas.width=canvasWidth;
- canvas.height=canvasHeight;
+ W.canvas.width=W.canvasWidth;
+ W.canvas.height=W.canvasHeight;
let maxViewportWidth=window.innerWidth;
let maxViewportHeight=window.innerHeight;
- let Zoominv=1/zoom0;
- viewportShift[0] *= Zoominv;
- viewportShift[1] *= Zoominv;
+ let Zoominv=1/W.zoom0;
+ W.viewportShift[0] *= Zoominv;
+ W.viewportShift[1] *= Zoominv;
- setsize(canvasWidth,canvasHeight);
+ setsize(W.canvasWidth,W.canvasHeight);
redrawScene();
}
function expand()
{
- Zoom *= zoomFactor;
+ Zoom *= W.zoomFactor;
setZoom();
}
function shrink()
{
- Zoom /= zoomFactor;
+ Zoom /= W.zoomFactor;
setZoom();
}
@@ -2961,31 +3301,39 @@ function Tcorners(T,m,M)
return [minbound(v),maxbound(v)];
}
+function light(direction,color)
+{
+ Lights.push(new Light(direction,color));
+}
+
function material(diffuse,emissive,specular,shininess,metallic,fresnel0)
{
Materials.push(new Material(diffuse,emissive,specular,shininess,metallic,
fresnel0));
}
-function patch(controlpoints,CenterIndex,MaterialIndex,Min,Max,color)
+function patch(controlpoints,CenterIndex,MaterialIndex,color)
{
- P.push(new BezierPatch(controlpoints,CenterIndex,MaterialIndex,Min,Max,
- color));
+ P.push(new BezierPatch(controlpoints,CenterIndex,MaterialIndex,color));
}
-function curve(controlpoints,CenterIndex,MaterialIndex,Min,Max)
+function curve(controlpoints,CenterIndex,MaterialIndex)
{
- P.push(new BezierCurve(controlpoints,CenterIndex,MaterialIndex,Min,Max));
+ P.push(new BezierCurve(controlpoints,CenterIndex,MaterialIndex));
}
-function pixel(controlpoint,width,MaterialIndex,Min,Max)
+function pixel(controlpoint,width,MaterialIndex)
{
- P.push(new Pixel(controlpoint,width,MaterialIndex,Min,Max));
+ P.push(new Pixel(controlpoint,width,MaterialIndex));
}
-function triangles(CenterIndex,MaterialIndex,Min,Max)
+function triangles(CenterIndex,MaterialIndex)
{
- P.push(new Triangles(CenterIndex,MaterialIndex,Min,Max));
+ P.push(new Triangles(CenterIndex,MaterialIndex));
+ window.Positions=Positions=[];
+ window.Normals=Normals=[];
+ window.Colors=Colors=[];
+ window.Indices=Indices=[];
}
// draw a sphere of radius r about center
@@ -3066,7 +3414,7 @@ function sphere(center,r,CenterIndex,MaterialIndex,dir)
for(let k=s; k <= 1; k += 2) {
rz=k*r;
for(let m=0; m < 2; ++m)
- P.push(new BezierPatch(T(octant[m]),CenterIndex,MaterialIndex,
+ P.push(new BezierPatch(T(octant[m]),CenterIndex,MaterialIndex,null,
Min,Max));
}
}
@@ -3114,7 +3462,8 @@ function disk(center,r,CenterIndex,MaterialIndex,dir)
}
let v=Tcorners(A.T.bind(A),[-r,-r,0],[r,r,0]);
- P.push(new BezierPatch(T(unitdisk),CenterIndex,MaterialIndex,v[0],v[1]));
+ P.push(new BezierPatch(T(unitdisk),CenterIndex,MaterialIndex,null,
+ v[0],v[1]));
}
// draw a cylinder with circular base of radius r about center and height h
@@ -3162,7 +3511,7 @@ function cylinder(center,r,h,CenterIndex,MaterialIndex,dir,core)
rx=i*r;
for(let j=-1; j <= 1; j += 2) {
ry=j*r;
- P.push(new BezierPatch(T(unitcylinder),CenterIndex,MaterialIndex,
+ P.push(new BezierPatch(T(unitcylinder),CenterIndex,MaterialIndex,null,
Min,Max));
}
}
@@ -3286,7 +3635,7 @@ function rmf(z0,c0,c1,z1,t)
}
// draw a tube of width w using control points v
-function tube(v,w,CenterIndex,MaterialIndex,Min,Max,core)
+function tube(v,w,CenterIndex,MaterialIndex,core)
{
let Rmf=rmf(v[0],v[1],v[2],v[3],[0,1/3,2/3,1]);
@@ -3320,7 +3669,7 @@ function tube(v,w,CenterIndex,MaterialIndex,Min,Max,core)
T8*x+T9*y+w2];
}
}
- P.push(new BezierPatch(s,CenterIndex,MaterialIndex,Min,Max));
+ P.push(new BezierPatch(s,CenterIndex,MaterialIndex));
}
f(1,0,0,1);
@@ -3329,7 +3678,7 @@ function tube(v,w,CenterIndex,MaterialIndex,Min,Max,core)
f(0,1,-1,0);
if(core)
- P.push(new BezierCurve(v,CenterIndex,MaterialIndex,Min,Max));
+ P.push(new BezierCurve(v,CenterIndex,MaterialIndex));
}
async function getReq(req)
@@ -3358,7 +3707,7 @@ function createTexture(image, textureNumber, fmt=gl.RGB16F)
async function initIBL()
{
- let imagePath=imageURL+image+'/';
+ let imagePath=W.imageURL+W.image+'/';
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
@@ -3371,7 +3720,7 @@ async function initIBL()
}
promises=[
- getReq(imageURL+'refl.exr').then(obj => {
+ getReq(W.imageURL+'refl.exr').then(obj => {
let img=new Module.EXRLoader(obj);
IBLbdrfMap=createTexture(img,0);
}),
@@ -3415,8 +3764,8 @@ async function initIBL()
function webGLStart()
{
- canvas=document.getElementById("Asymptote");
- embedded=window.top.document != document;
+ W.canvas=document.getElementById("Asymptote");
+ W.embedded=window.top.document != document;
initGL();
@@ -3425,22 +3774,22 @@ function webGLStart()
gl.enable(gl.DEPTH_TEST);
gl.enable(gl.SCISSOR_TEST);
- canvas.onmousedown=handleMouseDown;
+ W.canvas.onmousedown=handleMouseDown;
document.onmouseup=handleMouseUpOrTouchEnd;
document.onmousemove=handleMouseMove;
- canvas.onkeydown=handleKey;
+ W.canvas.onkeydown=handleKey;
- if(!embedded)
+ if(!W.embedded)
enableZoom();
- canvas.addEventListener("touchstart",handleTouchStart,false);
- canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,false);
- canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,false);
- canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,false);
- canvas.addEventListener("touchmove",handleTouchMove,false);
+ W.canvas.addEventListener("touchstart",handleTouchStart,false);
+ W.canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,false);
+ W.canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,false);
+ W.canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,false);
+ W.canvas.addEventListener("touchmove",handleTouchMove,false);
document.addEventListener("keydown",handleKey,false);
- canvasWidth0=canvasWidth;
- canvasHeight0=canvasHeight;
+ W.canvasWith0=W.canvasWidth;
+ W.canvasHeight0=W.canvasHeight;
mat4.identity(rotMat);
@@ -3449,6 +3798,24 @@ function webGLStart()
window.addEventListener("resize",resize,false);
- if(ibl)
+ if(W.ibl)
initIBL().then(SetIBL).then(redrawScene);
}
+
+ window.webGLStart=webGLStart;
+ window.light=light;
+ window.material=material;
+ window.patch=patch;
+ window.curve=curve;
+ window.pixel=pixel;
+ window.triangles=triangles;
+ window.sphere=sphere;
+ window.disk=disk;
+ window.cylinder=cylinder;
+ window.tube=tube;
+ window.Positions=Positions;
+ window.Normals=Normals;
+ window.Colors=Colors;
+ window.Indices=Indices;
+
+})();
diff --git a/Build/source/utils/asymptote/xstream.h b/Build/source/utils/asymptote/xstream.h
index 4c550fe5a0d..c2c2f4cdeb3 100644
--- a/Build/source/utils/asymptote/xstream.h
+++ b/Build/source/utils/asymptote/xstream.h
@@ -134,7 +134,7 @@ private:
protected:
XDR xdri;
public:
- ixstream(bool singleprecision=false): singleprecision(singleprecision) {}
+ ixstream(bool singleprecision=false) : singleprecision(singleprecision) {}
virtual void open(const char *filename, open_mode=in) {
clear();
@@ -156,8 +156,10 @@ public:
buf=nullptr;
}
}
- ixstream(const char *filename) {open(filename);}
- ixstream(const char *filename, open_mode mode) {open(filename,mode);}
+ ixstream(const char *filename, bool singleprecision=false) :
+ singleprecision(singleprecision) {open(filename);}
+ ixstream(const char *filename, open_mode mode, bool singleprecision=false) :
+ singleprecision(singleprecision) {open(filename,mode);}
virtual ~ixstream() {close();}
typedef ixstream& (*imanip)(ixstream&);
@@ -226,9 +228,10 @@ public:
}
}
- oxstream(const char *filename, bool singleprecision=false): singleprecision(singleprecision) {open(filename);}
- oxstream(const char *filename, open_mode mode, bool singleprecision=false): singleprecision(singleprecision)
- {
+ oxstream(const char *filename, bool singleprecision=false) :
+ singleprecision(singleprecision) {open(filename);}
+ oxstream(const char *filename, open_mode mode, bool singleprecision=false) :
+ singleprecision(singleprecision) {
open(filename,mode);
}
virtual ~oxstream() {closefile();}