From d4a24169c5091f48a6dd7a2359dcbdac0afceea6 Mon Sep 17 00:00:00 2001 From: fincs Date: Sat, 5 Dec 2015 13:29:34 +0100 Subject: [PATCH] Bump version to 1.0.0 - with changelog --- Changelog.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 16 +++++++-------- exportdoc.sh | 2 +- libctru/Doxyfile | 4 ++-- libctru/Makefile | 8 ++++---- 5 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 Changelog.md diff --git a/Changelog.md b/Changelog.md new file mode 100644 index 0000000..42469e5 --- /dev/null +++ b/Changelog.md @@ -0,0 +1,52 @@ +# Changelog + +## Version 1.0.0 + +* New features: + - libctru documentation is now available at http://smealum.github.io/ctrulib/ + - Added the NDSP API, which allows the use of the DSP (audio). + - Added Inter Process Communication helpers. + - Added Result code helpers. + - Added support for lightweight synchronization primitives. + - Added support for making the C/C++ standard libraries thread safe. + - Added support for thread-local objects, with the use of standard C and C++ constructs (or GCC extensions). + - Added a new threading API that properly manages internal state. Direct usage of svcCreateThread is deprecated. + - Added a mappable address space allocator. Services which need to map shared memory blocks now use this allocator. + - Added support for embedded RomFS, embedded SMDH and GPU shader building in the template Makefiles. + +* Changes and additions to the GPU code: + - Stateless wrapper functions (GPU_*) that merely masked GPU register usage were deprecated, in favour of external GPU wrapper libraries such as citro3d. A future release of libctru may remove them. + - The API set has therefore been simplified down to command list management. + - Synchronized register names with the 3dbrew Wiki. + - Added fragment lighting registers and enums. + - Added procedural texture registers and enums. + - Added shaderProgramSetGshInputPermutation, for configuring the wiring between the vertex shader and the geometry shader. + - Added shaderProgramSetGshMode, for configuring the geometry shader operation mode. + - Added shaderProgramConfigure, intended to be used by GPU wrapper libraries. + - SHBIN/shaderProgram code now correctly computes and sets the values of the GPUREG_SH_OUTATTR_MODE/CLOCK registers. + - GX function naming has been improved, and the initial GX command buffer parameter has been removed. + +* Major changes and miscellaneous additions: + - Sweeping changes to make function/structure/enum naming more consistent across the whole library. This affects a lot of code. + - Compiler/linker flags have been tweaked to increase performance and reduce code size, through the garbage collection of unused functions. + - Service initialization is now reference counted in order to properly manage dependencies. + - Initial service handle parameters have been removed, since they were nearly always set to NULL. + - Completed coverage of srv and FSUSER service calls. + - Added fsUseSession and fsEndUseSession for overriding the FSUSER session used in commands in the current thread. + - Added osGet3DSliderState, osSetSpeedupEnable, osGetSystemVersionData and osGetSystemVersionDataString. + - Refactored the MICU service. + - NCCH versions of applications now detect the maximum amount of available memory on startup. + +* Miscellaneous changes and bug fixes: + - Commits and pull requests are now built on travis to check that the library compiles, and to generate the documentation. + - General changes and improvements to overall code quality. + - Added the missing struct and functions for Y2R. + - Added srvGetServiceHandleDirect for bypassing the handle override mechanism. + - Usage of the CSND service in new applications is not recommended, however it is not deprecated. The usage of NDSP instead is advised. + - Usage of the HB service in new applications is not recommended due to its necessary removal in hax 2.x, however it is not deprecated. + - Several bugs affecting APT were fixed. + - Several bugs affecting C++ were fixed. + +## Version 0 through 0.6.0 + +No changelog available. diff --git a/README.md b/README.md index e5d6234..5d6c7f7 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,17 @@ -# ctrulib +# libctru - CTR User Library -CTR User Library +Library for writing user mode ARM11 code for the 3DS (CTR) -Library for writing user mode arm11 code for the 3DS (CTR) - -The goal with this is to create a very straightforward interface with the 3DS's OS. -It is not meant to provide higher level functions; to put things in perspective, the purpose of ctrulib would be to sit between the OS and a possible port of SDL rather than replace it. +This library aims to provide the foundations necessary to write 3DS Homebrew, and straightforwardly access the different functionalities provided by the 3DS operating system. +It is not meant to provide higher level functions; to put things in perspective, the purpose of libctru would be to sit between the OS and a possible port of SDL rather than replace it. # Setup -ctrulib is just a library and needs a toolchain to function. We built ctrulib to be used in conjunction with devkitARM. You may find instructions on how to install devkitARM on [the devkitPro Wiki](http://devkitpro.org/wiki/Getting_Started). +libctru is just a library and needs a toolchain to function. devkitARM (created by [devkitPro](http://devkitpro.org)) is the officially supported ARM cross compiling toolchain, which provides the framework necessary to supply a usable POSIX-like environment, with working C and C++ standard libraries; as well as the tools required to compile homebrew in the 3DSX format, and assemble GPU shaders. The use of other ARM toolchains is severely discouraged. -The most recent devkitARM (r44) includes 3DS support and a prebuilt libctru. +The most recent version of devkitARM (r45 at the time of writing) is always recommended. The installers/setup scripts supplied by devkitPro install a prebuilt copy of the latest stable version of libctru, which is recommended for general use. Please note that devkitPro has a policy of keeping legacy code to a minimum, so a library upgrade may result in older code failing to compile or behave properly. Developers are encouraged to keep their code working with the latest versions of the tools and libraries. -To keep up to date with the most recent changes you'll want to checkout ctrulib, build it and install it. +You may find instructions on how to install devkitARM on [the devkitPro Wiki](http://devkitpro.org/wiki/Getting_Started). # License diff --git a/exportdoc.sh b/exportdoc.sh index 414bab1..b70a992 100644 --- a/exportdoc.sh +++ b/exportdoc.sh @@ -1,5 +1,5 @@ #!/bin/sh -if [ "$TRAVIS_REPO_SLUG" = "smealum/ctrulib" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_BRANCH" = "great-refactor" ]; then +if [ "$TRAVIS_REPO_SLUG" = "smealum/ctrulib" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ -n "$TRAVIS_TAG" ]; then git clone --branch=gh-pages --single-branch --depth 1 https://${GH_TOKEN}@github.com/$TRAVIS_REPO_SLUG docs git rm -rf docs/* cd libctru diff --git a/libctru/Doxyfile b/libctru/Doxyfile index cc072ed..dd8acd7 100644 --- a/libctru/Doxyfile +++ b/libctru/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "libctru" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "" +PROJECT_NUMBER = "$(TRAVIS_TAG)" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -743,7 +743,7 @@ WARN_LOGFILE = # spaces. # Note: If this tag is empty the current directory is searched. -INPUT = include ../README.md +INPUT = include ../README.md ../Changelog.md # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/libctru/Makefile b/libctru/Makefile index bf53ac7..dad4a56 100644 --- a/libctru/Makefile +++ b/libctru/Makefile @@ -8,8 +8,8 @@ endif include $(DEVKITARM)/base_rules -export LIBCTRU_MAJOR := 0 -export LIBCTRU_MINOR := 6 +export LIBCTRU_MAJOR := 1 +export LIBCTRU_MINOR := 0 export LIBCTRU_PATCH := 0 @@ -105,10 +105,10 @@ export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ all: $(BUILD) dist-bin: all - @tar -cjf libctru-$(VERSION).tar.bz2 include lib default_icon.png + @tar --exclude=*~ -cjf libctru-$(VERSION).tar.bz2 include lib default_icon.png dist-src: - @tar -cjf libctru-src-$(VERSION).tar.bz2 include source data Makefile Doxyfile Doxyfile.internal default_icon.png + @tar --exclude=*~ -cjf libctru-src-$(VERSION).tar.bz2 include source data Makefile Doxyfile Doxyfile.internal default_icon.png dist: dist-src dist-bin