From 055725a2e65fa8d8956bf251be50454e5cb8d178 Mon Sep 17 00:00:00 2001 From: Jens Alfke Date: Thu, 12 Oct 2023 15:27:26 -0700 Subject: [PATCH] CI fixes --- README.md | 8 ++++---- crouton.xcodeproj/project.pbxproj | 2 +- docs/README.md | 4 ++-- include/util/Relation.hh | 25 ++++++++++++------------- 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index de3791c..ad1fab6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Async/await gives you concurrency without the pitfalls of multithreading. You ca How is that better than threads? It's safer and easier to reason about. The only places where concurrency happens are well-marked by the `co_await` and `co_yield` keywords. You don't need mutexes or atomic variables, and there are far fewer opportunities for race conditions or deadlocks. (There are performance benefits too: no expensive context switches, less stack usage.) -[Detailed documentation](docs/README.md) is being written. +[**Detailed documentation**](docs/README.md) is being written. ## Features @@ -90,7 +90,7 @@ See also [demo_server.cc][tests/demo_server.cc], a simple HTTP and WebSocket ser [![Build](https://github.com/couchbaselabs/crouton/actions/workflows/build.yml/badge.svg)](https://github.com/couchbaselabs/crouton/actions/workflows/build.yml) -This is new code, under heavy development! So far, it builds with Clang (Xcode 15) on macOS, GCC 12 on Ubuntu, and Visual Studio 17 2022 on Windows. +This is new code, under heavy development! So far, it builds with Clang (Xcode 14) on macOS, GCC 12 on Ubuntu, and Visual Studio 17 2022 on Windows. The tests run regularly on macOS, and occasionally on Ubuntu (though not in CI.) Test coverage is very limited. @@ -104,12 +104,12 @@ APIs are still in flux. Things get refactored a lot. ### Prerequisites: - CMake -- Clang 15, Xcode 15, or GCC 12 +- Clang 15, Xcode 14, or GCC 12 - zlib (aka libz) #### on macOS: -- Install Xcode 15 or later, or at least the command-line tools. +- Install Xcode 14 or later, or at least the command-line tools. - Install CMake; this is most easily done with [HomeBrew](https://brew.sh), by running `brew install cmake` #### on Ubuntu Linux diff --git a/crouton.xcodeproj/project.pbxproj b/crouton.xcodeproj/project.pbxproj index d3d3cb4..c409917 100644 --- a/crouton.xcodeproj/project.pbxproj +++ b/crouton.xcodeproj/project.pbxproj @@ -1678,7 +1678,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which missing_includes.rb >/dev/null\nthen\n cd \"$SRCROOT\"\n missing_includes.rb -w --base include/Base.hh include src\nelse\n echo \"Script missing_includes.rb not found.\"\n echo \"You can get it from https://gist.github.com/snej/2672fe996d39752e23c471f6ed789958\"\nfi\n"; + shellScript = "if which missing_includes.rb >/dev/null\nthen\n cd \"$SRCROOT\"\n missing_includes.rb -w --base include/util/Base.hh include src\nelse\n echo \"Script missing_includes.rb not found.\"\n echo \"You can get it from https://gist.github.com/snej/2672fe996d39752e23c471f6ed789958\"\nfi\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/docs/README.md b/docs/README.md index bfa842b..d0b793c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,8 +8,8 @@ * [Errors](Errors.md) * [Results](Results.md) * Basic Coroutine Types - * [Coroutine Types](Coroutine Types.md) - * [Awaitable Types](Awaitable Types.md) + * [Coroutine Types](Coroutine%20Types.md) + * [Awaitable Types](Awaitable%20Types.md) * Scheduling and Event Loops * Logging * [Publish And Subscribe](PubSub.md) diff --git a/include/util/Relation.hh b/include/util/Relation.hh index ad125ad..812abb0 100644 --- a/include/util/Relation.hh +++ b/include/util/Relation.hh @@ -128,7 +128,6 @@ namespace crouton::util { class ToMany : private LinkedList>, private Child { public: using super = LinkedList>; - using ToOne = ToOne; /// Initializes an unconnected Child. This should be a member initializer of Self. explicit ToMany(Self* self) :Child(self) { } @@ -151,35 +150,35 @@ namespace crouton::util { class iterator { public: - explicit iterator(super::iterator i) :_i(i) { } + explicit iterator(typename super::iterator i) :_i(i) { } Other& operator*() const {return *(_i->self());} Other* operator->() const {return _i->self();} iterator& operator++() {++_i; return *this;} friend bool operator==(iterator const& a, iterator const& b) {return a._i == b._i;} private: - super::iterator _i; + typename super::iterator _i; }; - iterator begin() {return iterator(super::begin());} - iterator end() {return iterator(super::end());} + iterator begin() {return iterator(super::begin());} + iterator end() {return iterator(super::end());} - void push_front(ToOne& link) {super::push_front(link); link._parent = this;} - void push_back(ToOne& link) {super::push_back(link); link._parent = this;} - void erase(ToOne& link) {super::erase(link); link._parent = nullptr;} + void push_front(ToOne& link) {super::push_front(link); link._parent = this;} + void push_back(ToOne& link) {super::push_back(link); link._parent = this;} + void erase(ToOne& link) {super::erase(link); link._parent = nullptr;} - void clear() {deAdopt(); super::clear();} + void clear() {deAdopt(); super::clear();} - ~ToMany() {deAdopt();} + ~ToMany() {deAdopt();} private: - friend ToOne; + friend ToOne; void adopt() { - for (ToOne& child : (super&)*this) + for (ToOne& child : (super&)*this) child._parent = this; } void deAdopt() { - for (ToOne& child : (super&)*this) + for (ToOne& child : (super&)*this) child._parent = nullptr; } };