pax_global_header 0000666 0000000 0000000 00000000064 14512757740 0014526 g ustar 00root root 0000000 0000000 52 comment=4e8617e6baf7d277b54354abade5703363140792
zug-0.1.1/ 0000775 0000000 0000000 00000000000 14512757740 0012332 5 ustar 00root root 0000000 0000000 zug-0.1.1/.clang-format 0000664 0000000 0000000 00000002066 14512757740 0014711 0 ustar 00root root 0000000 0000000 ---
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: 'true'
AlignEscapedNewlines: Right
AlignTrailingComments: 'true'
AllowShortFunctionsOnASingleLine: 'true'
AllowShortBlocksOnASingleLine: 'true'
AlwaysBreakTemplateDeclarations: 'true'
AccessModifierOffset: -4
BinPackArguments: 'false'
BinPackParameters: 'false'
BreakBeforeBraces: Mozilla
BreakBeforeInheritanceComma: 'true'
BreakBeforeTernaryOperators: 'true'
BreakConstructorInitializers: BeforeComma
BreakStringLiterals: 'true'
ColumnLimit: '80'
CompactNamespaces: 'false'
ConstructorInitializerAllOnOneLineOrOnePerLine: 'false'
FixNamespaceComments: 'true'
IndentCaseLabels: 'false'
IndentWidth: '4'
IndentWrappedFunctionNames: 'false'
KeepEmptyLinesAtTheStartOfBlocks: 'false'
Language: Cpp
MaxEmptyLinesToKeep: '1'
NamespaceIndentation: None
PointerAlignment: Left
ReflowComments: 'true'
SortIncludes: 'true'
SortUsingDeclarations: 'true'
SpaceAfterCStyleCast: 'true'
SpaceAfterTemplateKeyword: 'true'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeParens: ControlStatements
TabWidth: '4'
UseTab: Never
...
zug-0.1.1/.dir-locals.el 0000664 0000000 0000000 00000000347 14512757740 0014767 0 ustar 00root root 0000000 0000000 ((nil .
((indent-tabs-mode . nil)
(show-trailing-whitespace . t)
(fill-column . 80)))
(c-mode .
((mode . c++)))
(c++-mode .
((eval add-hook 'before-save-hook #'clang-format-buffer nil t))))
zug-0.1.1/.github/ 0000775 0000000 0000000 00000000000 14512757740 0013672 5 ustar 00root root 0000000 0000000 zug-0.1.1/.github/FUNDING.yml 0000664 0000000 0000000 00000000125 14512757740 0015505 0 ustar 00root root 0000000 0000000 github: arximboldi
patreon: sinusoidal
custom: ["paypal.me/sinusoidal", sinusoid.al]
zug-0.1.1/.github/workflows/ 0000775 0000000 0000000 00000000000 14512757740 0015727 5 ustar 00root root 0000000 0000000 zug-0.1.1/.github/workflows/test.yml 0000664 0000000 0000000 00000004546 14512757740 0017442 0 ustar 00root root 0000000 0000000 name: test
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: cachix/install-nix-action@v22
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v12
with:
name: arximboldi
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- run: nix-build
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: cachix/install-nix-action@v22
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v12
with:
name: arximboldi
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- run: nix-shell --run "mkdir build"
- run: nix-shell --run "cd build && cmake .."
- run: nix-shell --run "cd build && make docs"
- uses: shimataro/ssh-key-action@v2
if: github.ref == 'refs/heads/master'
with:
key: ${{ secrets.SINUSOIDES_SSH_KEY }}
known_hosts: ${{ secrets.SINUSOIDES_KNOWN_HOSTS }}
- run: nix-shell --run "cd build && make upload-docs"
if: github.ref == 'refs/heads/master'
check:
strategy:
matrix:
type: [Debug, Release]
compiler: [gcc, clang]
opts: [[]]
include:
- type: Debug
compiler: gcc
opts: ['coverage']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: cachix/install-nix-action@v22
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v12
with:
name: arximboldi
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- run: nix-shell --argstr compiler ${{ matrix.compiler }} --run "mkdir build"
- name: configure cmake
run: |
nix-shell --argstr compiler ${{ matrix.compiler }} --run "
cd build && cmake .. \
-DCMAKE_BUILD_TYPE=${{ matrix.type }} \
-DENABLE_COVERAGE=${{ contains(matrix.opts, 'coverage') }}
"
- run: nix-shell --argstr compiler ${{ matrix.compiler }} --run "cd build && make check -j`nproc`"
- run: nix-shell --argstr compiler ${{ matrix.compiler }} --run "bash <(curl -s https://codecov.io/bash)"
if: ${{ contains(matrix.opts, 'coverage') }}
zug-0.1.1/.gitignore 0000664 0000000 0000000 00000000123 14512757740 0014316 0 ustar 00root root 0000000 0000000 bazel-*/
build*
result
zug/config.hpp
doc/_build
doc/_doxygen
tools/travis/ssh-key
zug-0.1.1/.gitmodules 0000664 0000000 0000000 00000000223 14512757740 0014504 0 ustar 00root root 0000000 0000000 [submodule "tools/sinusoidal-sphinx-theme"]
path = tools/sinusoidal-sphinx-theme
url = https://github.com/arximboldi/sinusoidal-sphinx-theme.git
zug-0.1.1/BUILD 0000664 0000000 0000000 00000000317 14512757740 0013115 0 ustar 00root root 0000000 0000000 package(default_visibility = ["//visibility:public"])
cc_library(
name = "zug",
include_prefix = "zug",
strip_include_prefix =
"zug",
hdrs = glob([
"zug/**/*.hpp",
]),
)
zug-0.1.1/CMakeLists.txt 0000664 0000000 0000000 00000004176 14512757740 0015102 0 ustar 00root root 0000000 0000000 cmake_minimum_required(VERSION 3.8)
cmake_policy(SET CMP0048 NEW) # enable project VERSION
cmake_policy(SET CMP0056 NEW) # honor link flags in try_compile()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
project(zug VERSION 0.1.0)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
set(CMAKE_CXX_EXTENSIONS off)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments")
endif()
include(GNUInstallDirs)
option(DISABLE_WERROR "enable --werror")
option(zug_BUILD_TESTS "Build tests" ON)
option(zug_BUILD_EXAMPLES "Build examples" ON)
option(zug_BUILD_DOCS "Build docs" ON)
if (NOT MSVC AND NOT DISABLE_WERROR)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
endif()
# Targets
# =======
# ccache support
find_program(CCACHE ccache)
if (CCACHE)
message(STATUS "Using ccache: ${CCACHE}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
else()
message(STATUS "Could not find ccache")
endif()
# the library
add_library(zug INTERFACE)
target_include_directories(zug INTERFACE
$
$
$)
install(TARGETS zug EXPORT ZugConfig)
install(EXPORT ZugConfig DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Zug")
install(DIRECTORY zug DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
enable_testing()
add_custom_target(check
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Build and run all the tests and examples.")
# the library, local development target
if(zug_BUILD_TESTS)
find_package(Catch2 REQUIRED)
add_library(zug-dev INTERFACE)
target_link_libraries(zug-dev INTERFACE zug)
if (ENABLE_COVERAGE)
target_compile_options(zug-dev INTERFACE "--coverage")
target_link_libraries(zug-dev INTERFACE "--coverage")
endif()
add_subdirectory(test)
endif()
if(zug_BUILD_EXAMPLES)
add_subdirectory(example)
endif()
if (zug_BUILD_DOCS)
add_subdirectory(doc)
endif()
zug-0.1.1/LICENSE 0000664 0000000 0000000 00000002472 14512757740 0013344 0 ustar 00root root 0000000 0000000 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.
zug-0.1.1/README.rst 0000664 0000000 0000000 00000014704 14512757740 0014027 0 ustar 00root root 0000000 0000000 .. image:: https://github.com/arximboldi/zug/workflows/test/badge.svg
:target: https://github.com/arximboldi/zug/actions?query=workflow%3Atest+branch%3Amaster
:alt: Github Actions Badge
.. image:: https://codecov.io/gh/arximboldi/zug/branch/master/graph/badge.svg
:target: https://codecov.io/gh/arximboldi/zug
:alt: CodeCov Badge
.. image:: https://cdn.jsdelivr.net/gh/arximboldi/zug/doc/_static/sinusoidal-badge.svg
:target: https://sinusoid.al
:alt: Sinusoidal Engineering badge
:align: right
.. raw:: html
.. include:introduction/start
**zug** is a C++ library providing `transducers`_. Transducers are composable
sequential transformations independent of the source. They are extremely
lightweight, and can be used to express algorithms over pull-based sequences
(iterators, files) but also push based sequences (signals, events, asynchronous
streams) in a generic way.
.. _transducers: https://clojure.org/reference/transducers
* **Documentation** (Contents_)
* **Code** (GitHub_)
* **CppCon 2015 Talk**: *Transducers: from Clojure to C++* (`YouTube
`_, `Slides
`_)
.. _contents: https://sinusoid.es/zug/#contents
.. _github: https://github.com/arximboldi/zug
.. raw:: html
This project is part of a long-term vision helping interactive and
concurrent C++ programs become easier to write. **Help this project's
long term sustainability by becoming a patron or buying a
sponsorship package:** juanpe@sinusoid.al
.. include:index/end
Example
-------
.. code-block:: c++
auto xf = zug::filter([](int x) { return x > 0; })
| zug::map([](int x) { return std::to_string(x); });
Here ``xf`` is a *transducer*, a transformation over a sequence of integers,
resulting in a sequence of strings. Note, however, that this transformation
makes no reference to whatever it is transforming. In fact, we can apply it in
many ways.
Transforming a range
~~~~~~~~~~~~~~~~~~~~
.. code-block:: c++
auto data1 = std::vector{3, -2, 42, -10};
auto data2 = zug::into(std::vector{}, xf, data1);
assert(data2 == {"3", "42"});
As a lazy iterator
~~~~~~~~~~~~~~~~~~
.. code-block:: c++
auto data1 = std::vector{ ... };
auto data2 = zug::sequence(xf, data1);
std::copy(data2.begin(), data2.end(), ...);
Generators and sinks
~~~~~~~~~~~~~~~~~~~~
.. code-block:: c++
zug::run(zug::read(std::cin) | xf |
zug::write(std::cout));
Reads integers from the terminal and outputs back the positive ones.
Transforming cursors
~~~~~~~~~~~~~~~~~~~~
The library is used in `Lager`_, a library implementing the unidirectional
data-flow architecture for C++ interactive applications. It is used to treat
reactive values as a temporal sequence that can be transformed in arbitrary
ways. For example:
.. _Lager: https://sinusoid.es/lager
.. code-block:: c++
auto x = lager::state{42};
auto y = lager::reader{x.xform(xf)}
y.watch([] (auto&& v) { std::cout << v << std::endl; });
x.set(10); // outputs: 10
x.set(-2); // no output
Why?
----
You have learn Sean Parent's lesson: `No Raw Loops
`_. Instead of iterating over
sequences directly, you use STL algoriths like `transform`_, `filter`_, etc, or
even better, the new `ranges`_ library.
However, what if you have a *sequence* that can not be easily or efficiently
expressed as an iterator? Then, you may have to reimplement all these
algorithms again, on top of whatever sequence abstraction you have invented, for
example, see `RxCpp`_... Or you use transducers.
Transducers are generic algorithmic transformations, in a way that is completely
agnostic of the actual sequence that is being transformed. As a library author,
you can add transducer support for your library, and automatically get access to
our wide `collection of transducers`_ and allow your users to simply `write
their own`_.
.. _ranges: https://en.cppreference.com/w/cpp/ranges
.. _transform: https://en.cppreference.com/w/cpp/algorithm/transform
.. _filter: https://en.cppreference.com/w/cpp/algorithm/filter
.. _RxCpp: https://github.com/ReactiveX/RxCpp
.. _collection of transducers: https://sinusoid.es/zug/transducer.html
.. _write their own: https://sinusoid.es/zug/transducer.html
Dependencies
------------
This library is written in **C++14** and a compliant compiler is
necessary. It is `continuously tested`_ with Clang 3.8 and GCC 6, but
it might work with other compilers and versions.
If compiling with **C++14** and using `skip`_, boost variant is required.
For **C++17** and above, no external library is necessary and there are no
other requirements.
.. _continuously tested: https://travis-ci.org/arximboldi/immer
.. _skip: https://sinusoid.es/zug/state.html?#skip
Usage
-----
This is a **header only** library but to be configured correctly you need to run
`CMake`_ first::
mkdir -p build && cd build
cmake ..
Or you can just copy the ``zug`` subfolder somewhere in your *include path*.
Development
-----------
.. _nix package manager: https://nixos.org/nix
.. _cmake: https://cmake.org/
In order to develop the library, you will need to compile and run the
examples, tests and benchmarks. These require some additional tools.
The easiest way to install them is by using the `Nix package
manager`_. At the root of the repository just type::
nix-shell
This will download all required dependencies and create an isolated
environment in which you can use these dependencies, without polluting
your system.
Then you can proceed to generate a development project using `CMake`_::
mkdir build && cd build
cmake ..
From then on, one may build and run all tests by doing::
make check
License
-------
.. image:: https://upload.wikimedia.org/wikipedia/commons/c/cd/Boost.png
:alt: Boost logo
:target: http://boost.org/LICENSE_1_0.txt
:align: left
**This software is licensed under the Boost Software License 1.0**.
The full text of the license is can be accessed `via this link
`_ and is also included
in the ``LICENSE`` file of this software package.
zug-0.1.1/WORKSPACE 0000664 0000000 0000000 00000000000 14512757740 0013601 0 ustar 00root root 0000000 0000000 zug-0.1.1/codecov.yml 0000664 0000000 0000000 00000000036 14512757740 0014476 0 ustar 00root root 0000000 0000000 ignore:
- tools
- example
zug-0.1.1/default.nix 0000664 0000000 0000000 00000001240 14512757740 0014473 0 ustar 00root root 0000000 0000000 with import {};
stdenv.mkDerivation rec {
name = "zug-git";
version = "git";
src = builtins.filterSource (path: type:
baseNameOf path != ".git" &&
baseNameOf path != "build" &&
baseNameOf path != "_build" &&
baseNameOf path != "reports" &&
baseNameOf path != "tools")
./.;
buildInputs = [
cmake
boost
];
cmakeFlags = [
"-Dzug_BUILD_TESTS=OFF"
"-Dzug_BUILD_EXAMPLES=OFF"
];
meta = with lib; {
homepage = "https://github.com/arximboldi/zug";
description = "library for functional interactive c++ programs";
license = licenses.boost;
};
}
zug-0.1.1/doc/ 0000775 0000000 0000000 00000000000 14512757740 0013077 5 ustar 00root root 0000000 0000000 zug-0.1.1/doc/CMakeLists.txt 0000664 0000000 0000000 00000001050 14512757740 0015633 0 ustar 00root root 0000000 0000000
# Targets
# =======
add_custom_target(doxygen
COMMAND doxygen doxygen.config
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
add_custom_target(docs
COMMAND make html
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
add_dependencies(docs doxygen)
set(zug_ssh_method
ssh -p 5488
-o StrictHostKeyChecking=no
-i ${CMAKE_SOURCE_DIR}/tools/travis/ssh-key)
add_custom_target(upload-docs
COMMAND
rsync -av -e \"${zug_ssh_method}\"
${CMAKE_CURRENT_SOURCE_DIR}/_build/html/*
raskolnikov@sinusoid.es:public/zug/)
zug-0.1.1/doc/Makefile 0000664 0000000 0000000 00000016706 14512757740 0014551 0 ustar 00root root 0000000 0000000 # Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help
help:
@echo "Please use \`make ' where is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " epub3 to make an epub3"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
@echo " dummy to check syntax errors of document sources"
.PHONY: clean
clean:
rm -rf $(BUILDDIR)/*
.PHONY: html
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
bash sphinx-html-hack.bash
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: dirhtml
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: pickle
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
.PHONY: json
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
.PHONY: htmlhelp
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
.PHONY: qthelp
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/zug.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/zug.qhc"
.PHONY: applehelp
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
.PHONY: devhelp
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/zug"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/zug"
@echo "# devhelp"
.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
.PHONY: epub3
epub3:
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
@echo
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
.PHONY: latex
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: latexpdfja
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: text
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
.PHONY: man
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
.PHONY: texinfo
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
.PHONY: changes
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
.PHONY: linkcheck
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
.PHONY: doctest
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
.PHONY: coverage
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
.PHONY: xml
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: pseudoxml
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
.PHONY: dummy
dummy:
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
@echo
@echo "Build finished. Dummy builder generates no files."
zug-0.1.1/doc/_static/ 0000775 0000000 0000000 00000000000 14512757740 0014525 5 ustar 00root root 0000000 0000000 zug-0.1.1/doc/_static/composition-flat.svg 0000664 0000000 0000000 00000315243 14512757740 0020545 0 ustar 00root root 0000000 0000000
zug-0.1.1/doc/_static/composition.svg 0000664 0000000 0000000 00000045255 14512757740 0017624 0 ustar 00root root 0000000 0000000
zug-0.1.1/doc/_static/logo-black.svg 0000664 0000000 0000000 00000010506 14512757740 0017262 0 ustar 00root root 0000000 0000000
zug-0.1.1/doc/_static/logo-front.svg 0000664 0000000 0000000 00000010503 14512757740 0017333 0 ustar 00root root 0000000 0000000
zug-0.1.1/doc/_static/patreon.svg 0000664 0000000 0000000 00000015563 14512757740 0016730 0 ustar 00root root 0000000 0000000