4140 Commits

Author SHA1 Message Date
8293f023dd Update apple-clang compiler support info for std::format 2024-12-19 14:10:21 -05:00
7af8f7ecc8 Update apple-clang job matrix
Specify that `std::format` is supported for Xcode 16.1.
2024-12-19 14:10:21 -05:00
43729c6190 Enable use of std::format for AppleClang / Xcode 16
Specified the minimum apple-clang version to support `std::format` to 16
for _connanfile.py_.  Xcode 16 does include the `<format>` header but
does not seem to have the __cpp_lib_format compatibility macro defined
so a similar override was needed as we had for Clang 17.

To be able to use `std::format` with Xcode 16 I had to pass
`-DMP_UNITS_API_STD_FORMAT=AUTO` when calling `cmake`.  Is this expected
or is this a sign I missed something in my changes to _CMakeLists.txt_?
2024-12-19 12:54:55 -05:00
d9c39112df Merge pull request #651 from rothmichaels/feature/update-apple-clang-test-matrix
Update Xcode versions for apple-clang builds
2024-12-19 18:53:20 +01:00
b70ded5b82 Drop 15.4 support from PR discussion 2024-12-19 12:17:55 -05:00
bf8dc4ac81 Update Xcode versions for apple-clang builds
Since mp-units requires at least Xcode 15 we should have coverage on the
latest compilers for operating system versions for macOS 13 (Ventura)
and macOS 14 (Sequoia) as those are the operating systems with necessary
compilers that our users would be using.

Now build with Xcode 15.2 instead of 15.0.1 which last version supported
on macOS 13.

Add a build for Xcode 15.4 and Xcode 16.1 for testing macOS 14 builds.
Since Xcode 16.1 is new most of our clients using macOS 14 would might
more likely be using Xcode 15.4.

There might not be much C++ changes between Xcode 15.2 and Xcode 15.4 so
perhaps we should drop 15.4 if adding three apple-clang builds is not
worth the resources.
2024-12-19 12:17:21 -05:00
75ae652bc2 Merge pull request #655 from rothmichaels/bugfix/apple-clang-crash
Fixes for apple-clang crashes and performance issues
2024-12-19 17:40:56 +01:00
90aa52a6cc Update src/core/include/mp-units/framework/representation_concepts.h
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-12-19 11:21:17 -05:00
ada508a683 Do not use WeaklyRegular with Xcode 15 for type detection
Removing the `WeaklyRegular` requirement from the `Scalar`, `Complex`,
and `Vector` concepts seems to address compiler crashes or long
compilation times with apple-clang included in Xcode 15.

I thought I had previously tried removing the `WeaklyRegular`
requirement and it had not solved the problem but either I made a
mistake with this test or some other changes after rebasing this work
changed the situation.
2024-12-19 11:19:09 -05:00
0c3bb98c6d Update src/core/include/mp-units/framework/representation_concepts.h
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-12-09 18:11:03 +01:00
ec3f000050 Update src/core/include/mp-units/framework/representation_concepts.h
Co-authored-by: Mateusz Pusz <mateusz.pusz@gmail.com>
2024-12-09 18:10:56 +01:00
d30f5a668c clang-format fixes 2024-12-09 18:01:27 +01:00
c3e45088a6 Fixes for apple-clang crashes and performance issues
The source of the crash with the latest changes seemed to be from the
`IsOfCharacter` concept.  This concept was refactored to use some type
traits and more simple concepts although with less strict requirements.

A new macro, `MP_UNITS_APPLE_CLANG_HACKS` was added to
mp-units/bits/hacks.h to enable work arounds for pre-Xcode 16.1 apple-clang.

Some tests were not passing and were removed with the preprocessor macro
for apple-clang hacks is defined.

Adding `ComplexFunctionsAvailable` and `VectorFunctionsAvailable` fixed
some test failures in concepts_test.cpp but not all.
2024-12-09 17:39:21 +01:00
09488409d2 refactor: QuantitySpec convertibility concepts replaced with direct function calls 2024-12-09 15:55:21 +01:00
6d93f7385a Merge pull request #628 from JohelEGP/ref_docs
docs(ref): document most of `mp_units.core`
2024-12-08 09:51:40 +01:00
ea93287b58 docs(ref): document most of mp_units.core 2024-12-07 16:21:20 -04:00
7eab29c40a fix: gcc-12 compilation workaround 2024-12-04 21:14:17 +01:00
4f75a48ba3 refactor: WeaklyRegular removed from ScalableWith 2024-12-04 21:14:02 +01:00
054e28671c refactor: implicit expression variations used in quantity and quantity_point constraints 2024-12-04 20:21:32 +01:00
b98c640450 feat: missing precondition added for quantity::op/ 2024-12-04 20:10:47 +01:00
29ba8e6f7c refactor: preconditions for quantity operations now use is_neq_zero 2024-12-04 20:10:18 +01:00
971197b9e5 refactor: quantity constructor refactored to use another constructor with the result of sudo_cast 2024-12-04 20:08:02 +01:00
7e789bc1f1 refactor: std::assignable_from used in ValuePreservingTo concept 2024-12-04 19:57:58 +01:00
6cd7d388b1 refactor: WeaklyRegular moved to the end of the representation constraints 2024-12-04 19:57:16 +01:00
db64534f34 test: tests to check if quantity satisfies Scalar 2024-12-01 14:15:56 +01:00
e44bb7ed55 style: small cleanup of representation concepts 2024-12-01 14:14:19 +01:00
a444c53fe7 refactor: representation concepts refactored to properly support implicit expression variations 2024-12-01 14:13:41 +01:00
c582801d84 feat: ScalableWith isolated from Scalar and added as a constraint to Complex and Vector 2024-12-01 14:08:05 +01:00
4831928802 refactor: Scalar concept refactored to give it a chance to preserve the input type for types simliar to quantity 2024-12-01 14:00:52 +01:00
c7006f8813 refactor: repeated concept checks removed from get_common_reference 2024-12-01 13:45:34 +01:00
e585fd9e37 refactor: reference now returns explicit types for inverse, pow, sqrt, and cbrt 2024-12-01 13:39:14 +01:00
e5a2d4b9e8 docs: "an" replaced with "a" 2024-12-01 10:19:02 +01:00
19a2019204 feat: proper constraints for kind_of 2024-11-29 21:20:37 +01:00
b5f54a6749 docs: Wrocław 2024 meeting report 2024-11-29 13:45:06 +01:00
0cc26f4f46 feat: abs(quantity) exposed for conforming freestanding implementations 2024-11-29 13:21:34 +01:00
51bc3ea5bd fix: IWYU 2024-11-29 13:19:54 +01:00
4280e54081 fix: get_quantity_spec compilation fixed on MSVC 2024-11-29 13:19:25 +01:00
f0885f8027 feat: scaled units are now enclosed in parenthesis (...) instead of brackets [...] 2024-11-29 12:17:53 +01:00
52e95f9b2e test: a few more natural units tests added 2024-11-29 11:11:13 +01:00
9c4671790e refactor: all_are_kinds removed and get_associated_quantity simplified 2024-11-29 11:10:20 +01:00
a223c08a39 refactor: multiplication and division by scalars was a bad idea for Complex and Vector 2024-11-28 23:02:11 +01:00
f99a73a75f refactor: "expression templates" renamed to "symbolic expressions" 2024-11-28 15:34:52 +01:00
1c4f744eac fix: compilation fixed again (stupid modules build does not recompile properly and the local build has passed twice with errors in the code :-() 2024-11-26 22:48:56 +01:00
6883e38573 fix: compilation fixed after the previous commit 2024-11-26 22:38:44 +01:00
6bfcc3a8ba feat: precondition added to to_u8string 2024-11-26 22:32:09 +01:00
d6002ce419 refactor: 💥 quantity_values renamed to representation values 2024-11-26 18:36:37 +01:00
81e83dba71 Merge pull request #649 from mpusz/cpo_refactor
refactor: CPOs refactored to be more constrained
2024-11-26 18:03:08 +01:00
52b003e6ea fix: std::abs freestanding compilation issue fixed 2024-11-26 16:54:05 +01:00
781aa84a82 refactor: inline replaced with MP_UNITS_INLINE 2024-11-26 16:52:36 +01:00
41a803d025 fix: header dependency fixed in complex.h 2024-11-26 15:42:03 +01:00