rename octastd to libostd
parent
36332dff40
commit
62676f4222
|
@ -1,4 +1,4 @@
|
|||
OctaSTD is licensed under the University of Illinois/NCSA Open Source License,
|
||||
Libostd is licensed under the University of Illinois/NCSA Open Source License,
|
||||
a permissive, non-copyleft, BSD style license. The license text goes as follows:
|
||||
|
||||
Copyright (c) 2015 Daniel "q66" Kolesa. All rights reserved.
|
||||
|
@ -17,7 +17,7 @@ so, subject to the following conditions:
|
|||
this list of conditions and the following disclaimers in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the names of OctaSTD developers nor any contributors may be
|
||||
* Neither the names of libostd developers nor any contributors may be
|
||||
used to endorse or promote products derived from this Software without
|
||||
specific prior written permission.
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# octastd
|
||||
# libostd
|
||||
|
||||
**Work in progress, not ready for production use.**
|
||||
|
||||
OctaSTD is an extension of the C++17 standard library which mainly provides
|
||||
Libostd is an extension of the C++17 standard library which mainly provides
|
||||
ranges (to replace iterators) but also various other utilities like proper
|
||||
streams, string formatting, coroutines, concurrency utilities and others. It's
|
||||
meant to replace the more poorly designed parts of the C++ standard library to
|
||||
|
@ -10,7 +10,7 @@ make the language easier and more convenient to use.
|
|||
|
||||
It is not feature complete right now, as most things are still being worked on.
|
||||
|
||||
Documentation for OctaSTD can be found at https://docs.octaforge.org/octastd.
|
||||
Documentation for libostd can be found at https://docs.octaforge.org/libostd.
|
||||
Please refer to it for further information (the main page should be answer
|
||||
some more of your questions). You can also read `doc/main_page.md` and other
|
||||
files in there directly if you don't need the API documentation.
|
|
@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
|
|||
# title of most generated pages and in a few other places.
|
||||
# The default value is: My Project.
|
||||
|
||||
PROJECT_NAME = "OctaSTD"
|
||||
PROJECT_NAME = "libostd"
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# OctaSTD Documentation {#index}
|
||||
# Libostd Documentation {#index}
|
||||
|
||||
## What is OctaSTD?
|
||||
## What is libostd?
|
||||
|
||||
OctaSTD is an extension library for C++17. It enhances the standard library
|
||||
Libostd is an extension library for C++17. It enhances the standard library
|
||||
to make the language easier and more convenient to use. It's based on the
|
||||
idea is that everything should do what one would expect it to; it strives
|
||||
to aid programmers in writing clean and readable code.
|
||||
|
@ -21,20 +21,20 @@ to aid programmers in writing clean and readable code.
|
|||
|
||||
### Ranges
|
||||
|
||||
OctaSTD started as a range library. Ranges replace iterators; you no longer
|
||||
Libostd started as a range library. Ranges replace iterators; you no longer
|
||||
need two objects to represent a range and ranges themselves have a clean
|
||||
interface that is easy to adapt for your own thing. Additionally, there is
|
||||
backwards compatibility with iterators, so you can create ranges out of
|
||||
iterator pairs and even turn a range into an iterator! However, the primary
|
||||
way of creating ranges is using native range types. The compatibility stuff
|
||||
is there mostly so that OctaSTD can work with existing libraries. Additionally,
|
||||
is there mostly so that libostd can work with existing libraries. Additionally,
|
||||
a large library of generic range algorithms is provided.
|
||||
|
||||
For more on ranges, see [Ranges](@ref ranges).
|
||||
|
||||
### Concurrency
|
||||
|
||||
OctaSTD is a complete concurrency framework, implementing a clean and
|
||||
Libostd is a complete concurrency framework, implementing a clean and
|
||||
extensible system for working with logical tasks. It allows for custom
|
||||
schedulers and by default implements several scheduling approaches (1:1,
|
||||
N:1, M:N). It also implements stackful coroutines (on which the latter
|
||||
|
@ -55,9 +55,9 @@ things.
|
|||
|
||||
### Strings and formatting
|
||||
|
||||
Thanks to ranges, OctaSTD provides very lightweight string slices. The
|
||||
Thanks to ranges, libostd provides very lightweight string slices. The
|
||||
slices are not zero terminated, so creating sub-slices is fast and avoids
|
||||
tons of potential heap allocations. None of the OctaSTD string APIs ever
|
||||
tons of potential heap allocations. None of the libostd string APIs ever
|
||||
assumes termination.
|
||||
|
||||
Additionally, a completely type-safe string formatting system with C-like
|
||||
|
@ -72,7 +72,7 @@ All of this is zero-allocation, it lets the output range take care of that.
|
|||
|
||||
There are other APIs, too, including environment variable handling, simple
|
||||
platform specific checks, a signal-slot event system or vector math. The
|
||||
amount is expected to grow in the future, as OctaSTD is still a work in
|
||||
amount is expected to grow in the future, as libostd is still a work in
|
||||
progress.
|
||||
|
||||
## Why C++17?
|
||||
|
@ -80,7 +80,7 @@ progress.
|
|||
C++17 includes several things that remove previous blockers, such as being
|
||||
able to hash string range types sanely. Additionally, there are several
|
||||
language features (such as `if constexpr`) that greatly simplify the code.
|
||||
OctaSTD does not make full use of the standard, so it works with current
|
||||
Libostd does not make full use of the standard, so it works with current
|
||||
compilers.
|
||||
|
||||
## Supported compilers
|
||||
|
@ -103,7 +103,7 @@ use GCC/Clang, if you need Visual Studio, LLVM integration exists.
|
|||
|
||||
## Supported operating systems and architectures
|
||||
|
||||
OctaSTD targets POSIX compliant operating systems and Windows. Features are
|
||||
Libostd targets POSIX compliant operating systems and Windows. Features are
|
||||
written with those in mind, and other targets are currently not supported.
|
||||
|
||||
Tier 1 targets are regularly tested. Tier 2 targets are irregularly tested.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Ranges {#ranges}
|
||||
|
||||
@brief Ranges are the backbone of OctaSTD iterable objects and algorithms.
|
||||
@brief Ranges are the backbone of libostd iterable objects and algorithms.
|
||||
|
||||
## What are ranges?
|
||||
|
||||
|
@ -11,7 +11,7 @@ two iterators as an argument.
|
|||
|
||||
However, a system like this can be both hard to use and hard to deal with in
|
||||
custom objects, because you suddenly have your state split into two things.
|
||||
That's why OctaSTD introduces ranges, inspired by D's range system but largely
|
||||
That's why libostd introduces ranges, inspired by D's range system but largely
|
||||
designed from scratch for C++.
|
||||
|
||||
A range is a type that represents an interval of values. Just like with C++
|
||||
|
@ -19,7 +19,7 @@ iterators, there are several categories of ranges, with each enhancing the
|
|||
previous in some way.
|
||||
|
||||
You can use ranges with custom algorithms or standard algorithms that are
|
||||
implemented by OctaSTD. You can also iterate any input-type range directly
|
||||
implemented by libostd. You can also iterate any input-type range directly
|
||||
using the range-based for loop:
|
||||
|
||||
~~~{.cc}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Algorithms for OctaSTD.
|
||||
/* Algorithms for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_ALGORITHM_HH
|
||||
|
|
|
@ -39,7 +39,7 @@ struct channel_error: std::logic_error {
|
|||
/** @brief A thread-safe message queue.
|
||||
*
|
||||
* A channel is a kind of message queue (FIFO) that is properly synchronized.
|
||||
* It can be used standalone or it can be used as a part of OctaSTD's
|
||||
* It can be used standalone or it can be used as a part of libostd's
|
||||
* concurrency system.
|
||||
*
|
||||
* It stores its internal state in a reference counted manner, so multiple
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
*
|
||||
* @brief Concurrent/parallel task execution support and related APIs.
|
||||
*
|
||||
* OctaSTD provides an elaborate concurrency system that covers multiple
|
||||
* libostd provides an elaborate concurrency system that covers multiple
|
||||
* schedulers with different characteristics as well as different ways to
|
||||
* pass data between tasks.
|
||||
*
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* signals/slots for OctaSTD.
|
||||
/* signals/slots for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_EVENT_HH
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
/** @addtogroup Extensions
|
||||
*
|
||||
* @brief Various extensions including integration of OctaSTD with other libs.
|
||||
* @brief Various extensions including integration of libostd with other libs.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @file sdl_rwops.hh
|
||||
*
|
||||
* @brief Integration of OctaSTD streams with SDL RWops.
|
||||
* @brief Integration of libostd streams with SDL RWops.
|
||||
*
|
||||
* This provides integration of OctaSTD streams with SDL RWops so that
|
||||
* This provides integration of libostd streams with SDL RWops so that
|
||||
* various APIs that provide a generic RWops interface to deal with
|
||||
* files can use OctaSTD streams.
|
||||
* files can use libostd streams.
|
||||
*
|
||||
* Supports both SDL1 and SDL2, with SDL2 being default. If you want to
|
||||
* use SDL1 compatibility, define `OSTD_EXT_SDL_USE_SDL1` at build time
|
||||
|
@ -38,7 +38,7 @@ namespace sdl {
|
|||
* @{
|
||||
*/
|
||||
|
||||
/** @brief Create an `SDL_RWops` using an OctaSTD stream.
|
||||
/** @brief Create an `SDL_RWops` using an libostd stream.
|
||||
*
|
||||
* The resulting RWops object is created using `SDL_AllocRW()`.
|
||||
*
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*
|
||||
* @brief APIs for type safe formatting using C-style format strings.
|
||||
*
|
||||
* OctaSTD provides a powerful formatting system that lets you format into
|
||||
* libostd provides a powerful formatting system that lets you format into
|
||||
* arbitrary output ranges using C-style format strings. It's type safe
|
||||
* and supports custom object formatting without heap allocations as well
|
||||
* as formatting of ranges, tuples and more.
|
||||
|
@ -88,7 +88,7 @@ struct format_spec;
|
|||
* so for example when someone is formatting into an ostd::appender_range,
|
||||
* it will be just that.
|
||||
*
|
||||
* This may be specialized in other OctaSTD modules as well.
|
||||
* This may be specialized in other libostd modules as well.
|
||||
*/
|
||||
template<typename>
|
||||
struct format_traits {};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Windows includes.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_INTERNAL_WIN32_HH
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Standard I/O implementation for OctaSTD.
|
||||
/* Standard I/O implementation for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_IO_HH
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
*
|
||||
* @brief Abstractions for platform (OS, toolchain) specific code.
|
||||
*
|
||||
* OctaSTD is not only a simple utility library, it also aims to make writing
|
||||
* libostd is not only a simple utility library, it also aims to make writing
|
||||
* cross-platform code as simple as possible (while sticking to native features
|
||||
* and therefore not making your code feel foreign on the platform). This
|
||||
* module represents the base layer to achieve this.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Ranges for OctaSTD.
|
||||
/* Ranges for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_RANGE_HH
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Generic stream implementation for OctaSTD.
|
||||
/* Generic stream implementation for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_STREAM_HH
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* String utilities for OctaSTD.
|
||||
/* String utilities for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_STRING_HH
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Vector math for OctaSTD.
|
||||
/* Vector math for libostd.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OSTD_VECMATH_HH
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
*
|
||||
* @brief New containers and extensions to standard containers.
|
||||
*
|
||||
* OctaSTD adds various new utilities for standard containers that allow
|
||||
* libostd adds various new utilities for standard containers that allow
|
||||
* besides other things construction of those containers from ranges.
|
||||
*
|
||||
* Integration of ranges for iteration is however not necessary because
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
*Last sync: 82293a2c03ac2571aafa181ea58a67375a13ceb9.*
|
||||
|
||||
This directory contains assembly context switching code for different platforms,
|
||||
taken from the Boost.Context library and adapted to OctaSTD' needs. The files
|
||||
taken from the Boost.Context library and adapted to libostd's needs. The files
|
||||
are licensed under the Boost Software License, version 1.0, unless specified
|
||||
otherwise.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* A stub file that includes the right assembly according to the target
|
||||
* architecture and operating system, for gas only.
|
||||
*
|
||||
* This file is a part of OctaSTD, provided to you under the NCSA license.
|
||||
* This file is a part of libostd, provided to you under the NCSA license.
|
||||
* See the COPYING.md file in the main distribution for further information.
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* A stub file that includes the right assembly according to the target
|
||||
* architecture and operating system, for gas only.
|
||||
*
|
||||
* This file is a part of OctaSTD, provided to you under the NCSA license.
|
||||
* This file is a part of libostd, provided to you under the NCSA license.
|
||||
* See the COPYING.md file in the main distribution for further information.
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* A stub file that includes the right assembly according to the target
|
||||
* architecture and operating system, for gas only.
|
||||
*
|
||||
* This file is a part of OctaSTD, provided to you under the NCSA license.
|
||||
* This file is a part of libostd, provided to you under the NCSA license.
|
||||
* See the COPYING.md file in the main distribution for further information.
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Concurrency C implementation bits.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#include "ostd/concurrency.hh"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Stack allocation implementation for coroutine contexts.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
* This file is part of libostd. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#include <cstdlib>
|
||||
|
|
Loading…
Reference in New Issue