raptop changed the topic of #principia to: READ THE FAQ: http://goo.gl/gMZF9H; The current version is Fréchet. We currently target 1.5.1, 1.6.1, and 1.7.x. <scott_manley> anyone that doubts the wisdom of retrograde bop needs to get the hell out | https://xkcd.com/323/ | <egg> calculating the influence of lamont on Pluto is a bit silly… | <egg> also 4e16 m * 2^-52 is uncomfortably large
Jesin has quit [Quit: Leaving]
Jesin has joined #principia
<discord-_> e​gg. — @neph I should have a build of Fubini for you to test tomorrow, so you can try your sounding rocket with the new angular momentum correction approach
<discord-_> e​gg. — hopefully it will spin less? who knows
<discord-_> n​eph. — This is very exciting!
<discord-_> A​gustinCaniglia. — when is next release?
Webchat307 has joined #principia
<discord-_> P​teropodidae. — @dkavolis You actually managed to get cmake builds for Principia working?
Webchat307 has quit [Quit: webchat.esper.net]
<discord-_> P​teropodidae. — I remember looking into that back when the Makefile build was introduced, but egg told me the same thing he told you and I stopped soon after
<discord-_> e​gg. — The Makefile has been satisfyingly low-maintenance in hindsight
<discord-_> e​gg. — @Pteropodidae does the new install_deps work well for you?
<discord-_> P​teropodidae. — Is there anything in the props files that aren't in the Makefile or vice-versa?
<discord-_> e​gg. — we’ll probably move the pipelines over to it immediately after releasing Fubini
<discord-_> P​teropodidae. — I actually haven't tried the new install_deps after making my changes
<discord-_> e​gg. — the props have a completely different structure, they talk to a different compiler which wants different options, and where the dependencies aren’t even built in the same way (iirc gmock is built as part of principia on *nix, but separately on Windows)
<discord-_> P​teropodidae. — The new install_deps worked back when I made the changes, for what it's worth. I'm on my Windows partition right now and can't reboot for the moment so I can't double-check
<discord-_> e​gg. — if it worked at that point then it should hopefully still work
<discord-_> P​teropodidae. — Keeping the props and Makefile in sync sounds fun
<discord-_> e​gg. — unless it is very cursed
<discord-_> e​gg. — mostly we don’t need to, though
<discord-_> e​gg. — a lot of stuff that is at the language level happens completely independently in MSVC and clang
<discord-_> e​gg. — so if we need to tweak a warning or version flag, it happens in one place or the other
<discord-_> P​teropodidae. — I mean, it's a build system. They're always cursed in some way or another 😛
<discord-_> e​gg. — the makefile is iirc also less strict/more robust (because the sanity checking matters more on the development platform than in other targets), so it makes all deps available to all targets
<discord-_> P​teropodidae. — Huh
<discord-_> e​gg. — whereas on Windows we explicitly say, e.g., that the physics test suite depends on zfp (but not the geometry one)
<discord-_> P​teropodidae. — I guess that's something that a cmake build could specify dependencies more precisely, but guess there might not be much real benefit to doing so
<discord-_> P​teropodidae. — `target_link_libraries` and such
<discord-_> e​gg. — yeah, we want it to just-work in *nix as much as possible once we have made sure the source makes some sense on windows
<discord-_> e​gg. — we had vaguely looked into using bazel but it turns out that it cannot into Unicode so screw that
<discord-_> e​gg. — (protoc also cannot into Unicode identifiers, we should fix that in our fork at some point)
<discord-_> l​pg. — why, oh, why did I make that comment about timing polar TLI being "trivial" shortly before doing my first of the career
<discord-_> n​eph. — It's not that bad 🙂
<discord-_> l​pg. — it's not. I've just lost muscle memory
<discord-_> n​eph. — You just have to get lucky with your downrange distance of your LV's lower stages
<discord-_> n​eph. — At least, for direct ascent
<discord-_> l​pg. — oh I'm not touching _that_ one
<discord-_> n​eph. — Then it's even easier! Hell, if you had the longevity on your probe you could just launch whenever and stay in LEO until you're lined up to hit the moon
<discord-_> n​eph. — With non-direct polar TLI, you've got a pair of launch windows every day
<discord-_> l​pg. — if you're under the impression I'm asking for help, you've missed the humorous intent of my initial coment
<discord-_> l​pg. — if you're under the impression I'm asking for help, you've missed the humorous intent of my initial comment (edited)
<discord-_> n​eph. — But it is trivial
<discord-_> l​pg. — I know
<discord-_> l​pg. — and yet
<discord-_> l​pg. — I can usually eyeball it without even thinking. probably my mistake has been to think about it this time
<discord-_> P​teropodidae. — What is it with new build tools and not supporting Unicode
<discord-_> P​teropodidae. — Or at least the impression
<discord-_> e​gg. — 6 bit should be enough for anyone
* discord-_ P​teropodidae. — slaps an engineer with 640KiB_
<discord-_> e​gg. — (of course those 6 bits should be used to encode https://en.wikipedia.org/wiki/GOST_10859#6-bit_code:_with_only_Cyrillic_upper-case_letters)
<discord-_> e​gg. — ⏨ is a good character that I would like to see more often :-p
* discord-_ P​teropodidae. — slaps mobile Discord with an incomplete font_
<discord-_> e​gg. — oh yeah Discord has a very bad font
<discord-_> e​gg. — looking at viet is painful, half the letters end up in a fallback font
<discord-_> P​teropodidae. — *What year is it?!*
<discord-_> l​pg. — 19120
<discord-_> e​gg. — > tiếng Việt
<discord-_> e​gg. — this should look like shit in the Discord font
<discord-_> e​gg. — well, with the set of discord fonts
<discord-_> P​teropodidae. — It definitely doesn’t look good
<discord-_> e​gg. — I am using discord with the Styler chrome extension to slap some sense into the fonts
<discord-_> P​teropodidae. — The accented “e”s have different weights and sizes
<discord-_> e​gg. — yup
<discord-_> e​gg. — ```CSS
<discord-_> e​gg. — [class^=message]{
<discord-_> e​gg. — font-family: Noto Sans, Cambria Math, CuneiformOB, Akkadian, Assyrian
<discord-_> e​gg. — }
<discord-_> e​gg. — [class^=channelTextArea]{
<discord-_> e​gg. — font-family: Noto Sans, Cambria Math, CuneiformOB, Akkadian, Assyrian
<discord-_> e​gg. — }
<discord-_> e​gg. — ```
<discord-_> e​gg. — is what I use at the moment
<discord-_> P​teropodidae. — Accents on the first e look like they might overlap too much?
<discord-_> P​teropodidae. — Does that work on iOS too?
<discord-_> e​gg. — dunno, I am on a windows desktop
<discord-_> P​teropodidae. — Or Android-only
<discord-_> P​teropodidae. — Ah
<discord-_> e​gg. — well laptop
<discord-_> e​gg. — but you get the idea
<discord-_> P​teropodidae. — I’ll take a look once I finish streaming Phantom of the Opera
<discord-_> P​teropodidae. — The Royal Albert Hall production is free for now
<discord-_> P​teropodidae. — (on YouTube)
<discord-_> P​teropodidae. — So the laptop is tied up for now
<discord-_> P​teropodidae. — I really should have watched this sooner
Mike` has quit [Ping timeout: 378 seconds]
Mike` has joined #principia
egg|cell|egg has joined #principia
egg|cell|egg has quit [Read error: Connection reset by peer]
egg|cell|egg has joined #principia
<discord-_> P​teropodidae. — Oog, yeah, that doesn't look good on macOS either
<discord-_> P​teropodidae. — Doesn't show ⏨ either
<discord-_> P​teropodidae. — In fact, it doesn't show right at all on macOS
<discord-_> S​ir Mortimer. — iOS
<discord-_> S​ir Mortimer. — macOS safari
<discord-_> S​ir Mortimer. — but it looks nothing like this -> 💩
<discord-_> P​teropodidae. — I mean, if you squint reaaallllllly hard....
egg|cell|egg has quit [Ping timeout: 378 seconds]
<discord-_> S​ir Mortimer. — btw, I think the french affinity to little small brittle all over (and under!) their characters leads to an effect that could be described as visual pollution: too much going on in the text to process at a glance. that in turn, I think, is the reason why the french have a tendency to do what germans call *plenken* (typographical term for the insertion of inappropriate spaces before a punctuati
<discord-_> d​kavolis. — > @dkavolis You actually managed to get cmake builds for Principia working?
<discord-_> d​kavolis. — @Pteropodidae Yeah, but only tested with MSVC and Clang-cl 10.0 so far, will try WSL for Unix later. Will upload to a fork Principia once I'm satisfied.
<discord-_> d​kavolis. — @egg Is it okay if I make necessary PRs needed to make everything compile with Clang-cl? And possibly other compilers, maybe Mingw
<discord-_> d​kavolis. — > @dkavolis You actually managed to get cmake builds for Principia working?
<discord-_> d​kavolis. — @Pteropodidae Yeah, but only tested with MSVC and Clang-cl 10.0 so far, will try WSL for Unix later. Will upload to a fork Principia once I'm satisfied.
<discord-_> d​kavolis. — @egg Is it okay if I make necessary PRs needed to make everything compile with Clang-cl? And possibly other compilers, maybe Mingw (edited)
<discord-_> d​kavolis. — Had to disable some tests though due to unicode issues
<discord-_> P​teropodidae. — Did you try running the benchmarks? Might be interesting to see if clang-cl optimizes better
<discord-_> P​teropodidae. — What changes did you have to make?
<discord-_> P​teropodidae. — (Assuming there were non-CMake changes made)
<discord-_> d​kavolis. — From the few benchmarks I ran, clang was very slightly faster. Had to remove vectorcall flag in clang, other changes were warning flags mostly
<discord-_> d​kavolis. — Principia benchmarks take a long time to run
<discord-_> d​kavolis. — Clang binaries are also smaller
<discord-_> d​kavolis. — Clang was complaining about
<discord-_> d​kavolis. — ```cpp
<discord-_> d​kavolis. — static constexpr ::google::protobuf::internal::InitFunc deps[1] =
<discord-_> d​kavolis. — {
<discord-_> d​kavolis. — ::AddDescriptors_google_2fprotobuf_2fdescriptor_2eproto,
<discord-_> d​kavolis. — };
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — not being constexpr initialized and it didn't like `/l0x409` in rc compile flags so I moved it inside the rc file
<discord-_> d​kavolis. — I haven't tried any clang optimization flags though
<_whitenotifier-d13c> [Principia] pleroy created tag 2020042302-Fubini - https://git.io/fpDwq
<_whitenotifier-d13c> [Principia] pleroy tagged f565241 as 2020042302-Fubini https://git.io/JfUCJ
<_whitenotifier-d13c> [Principia] pleroy labeled issue #2504: Clean up after the Frobenius fix - https://git.io/JvyhO
egg|cell|egg has joined #principia
<discord-_> e​gg. — > PRs needed to make everything compile with Clang-cl
<discord-_> e​gg. — What does that entail? We don’t want to add another build config, because it is going get in our way and to rot immediately due to disuse.
<discord-_> e​gg. — Are there source changes that are nonconformance/bugs on our part ?
<discord-_> d​kavolis. — in si.hpp:
<discord-_> d​kavolis. — `static inline constexpr double Unit<double> = 1;`
<discord-_> d​kavolis. — clang for some reason instantiates multiple copies of it
<discord-_> e​gg. — also, mingw is a gcc iirc, so I suspect it would not like our identifiers
<discord-_> d​kavolis. — and
<discord-_> d​kavolis. — ```cpp
<discord-_> d​kavolis. — #if PRINCIPIA_COMPILER_CLANG || PRINCIPIA_COMPILER_CLANG_CL
<discord-_> d​kavolis. — # define CONSTEXPR_INFINITY static inline const
<discord-_> d​kavolis. — #else
<discord-_> d​kavolis. — # define CONSTEXPR_INFINITY constexpr
<discord-_> d​kavolis. — #endif
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — that's all from principia side
<discord-_> e​gg. — uh
<discord-_> e​gg. — no but that is a misunderstanding of what this macro is for
<discord-_> e​gg. — so no
<discord-_> e​gg. — CONSTEXPR_INFINITY is for things that involve infinities, which clang pre-9 or 10 (I forget which) reject in constexpr evaluation
<discord-_> d​kavolis. — clang 10 rejects NaN
<discord-_> d​kavolis. — inf works
<discord-_> e​gg. — yes I know, I had complained to Richard Smith about it, he seems to have done something about it
<discord-_> e​gg. — (re. infinity)
<discord-_> d​kavolis. — clang-10 complained about NaN in constexpr
<discord-_> e​gg. — but we are on clang 8 on the pipelines
<discord-_> e​gg. — re. the inline variable not working with clang-cl, is it clang-cl being wrong or us here?
<discord-_> d​kavolis. — I needed to add `static inline` to make it compile
<discord-_> d​kavolis. — Though this should not matter for constexpr variables
<discord-_> e​gg. — hm
<discord-_> d​kavolis. — I reckon it's clang
<discord-_> e​gg. — though clang-not-cl is happy :-p
<discord-_> e​gg. — yeah,
<discord-_> e​gg. — > A static member variable (but not a namespace-scope variable) declared constexpr is implicitly an inline variable.
<discord-_> e​gg. — So looks like clang-cl is confused
<discord-_> d​kavolis. — `lld-link: error: duplicate symbol: double const principia::quantities::si::Unit<double>`
<discord-_> e​gg. — cppreference says
<discord-_> e​gg. — > An inline function or variable (since C++17) with external linkage (e.g. not declared static) has the following additional properties:
<discord-_> e​gg. — > There may be more than one definition of an inline function or variable (since C++17) in the program as long as each definition appears in a different translation unit and (for non-static inline functions and variables (since C++17)) all definitions are identical. For example, an inline function or an inline variable (since C++17) may be defined in a header file that is #include'd in multiple source
<discord-_> e​gg. — cppreference says
<discord-_> e​gg. — > An inline function or variable (since C++17) with external linkage (e.g. not declared static) has the following additional properties:
<discord-_> e​gg. — > There may be more than one definition of an inline function or variable (since C++17) in the program as long as each definition appears in a different translation unit and (for non-static inline functions and variables (since C++17)) all definitions are identical. For example, an inline function or an inline variable (since C++17) may be defined in a header file that is #include'd in multiple source
<discord-_> e​gg. — > It must be declared inline in every translation unit.
<discord-_> e​gg. — > It has the same address in every translation unit. (edited)
<discord-_> d​kavolis. — I assume it's a bug on clang side
<discord-_> e​gg. — that is how I would read it, yes
<discord-_> d​kavolis. — Also
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — ksp_plugin\pile_up.hpp(99,11): warning: explicitly defaulted move assignment operator is implicitly deleted [-Wdefaulted-function-deleted]
<discord-_> d​kavolis. — PileUp& operator=(PileUp&& pile_up) = default;
<discord-_> d​kavolis. — ^
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — ksp_plugin\pile_up.hpp(229,7): note: move assignment operator of 'PileUp' is implicitly deleted because field 'euler_solver_' has a deleted move assignment operator
<discord-_> d​kavolis. — euler_solver_;
<discord-_> d​kavolis. — ^
<discord-_> d​kavolis. — ```
<discord-_> e​gg. — yeah we should do a pass over those warnings at some point
<discord-_> e​gg. — I should it breakfast
<discord-_> e​gg. — I should eat breakfast (edited)
<discord-_> e​gg. — :-p
<discord-_> d​kavolis. — With clang-cl vectorcall convention:
<discord-_> d​kavolis. — `zfp\msvc\..\include\zfp.h(361,1): error : function with no prototype cannot use the vectorcall calling convention`
<discord-_> d​kavolis. — looks like it though it doesn't work in 64 bit mode as well now
<discord-_> d​kavolis. — a bug from 2016...
<discord-_> d​kavolis. — I guess I can try compiling zfp only with MSVC
<discord-_> e​gg. — on a nontrivial codebase like this every compiler will have a slightly different opinion of the language, it is probably not worth wasting too much time on these things tbh—after all, we can compile for windows so it is not like there is a problem
<discord-_> e​gg. — the fact that we continuously compile with MSVC + 2 clangs (one on mac and one on ubuntu) gives us some confidence that we don’t completely fall into MSVCisms
<discord-_> d​kavolis. — MSVC is often silly
<discord-_> e​gg. — so is clang, at times
<discord-_> e​gg. — MSVC got much better in recent years
<discord-_> d​kavolis. — Yeah, and windows dev is no longer a pain with vcpkg
<discord-_> e​gg. — there are probably some nontrivial questions of standard interpretation where MSVC and clang have the same unorthodox reading (there is one pattern in particular,
<discord-_> e​gg. — ```C++
<discord-_> e​gg. — using MyFrame = Frame<enum class MyFrameTag>;
<discord-_> e​gg. — ```
<discord-_> e​gg. — that may not be correct, but with which clang and MSVC are fine https://github.com/mockingbirdnest/Principia/blob/b3ca59f02beefbfd6bef7f3b03956769d227ff52/geometry/frame.hpp#L33
<discord-_> e​gg. — I think the intellisense compiler actually dislikes it
<discord-_> e​gg. — (I think I have a way to make it more clearly conformant but *shrug*)
egg|laptop|egg has joined #principia
<discord-_> e​gg. — (the issue is the `FrameTag tag_ = FrameTag{}` whereas the actual `MyFrameTag` is probably incomplete, but clang and MSVC are happy :-p)
egg|laptop|egg has quit [Remote host closed the connection]
egg|laptop|egg has joined #principia
<discord-_> d​kavolis. — Well, you're not really instantiating `MyFrameTag`
<discord-_> d​kavolis. — Looks like gcc might be a possibilty soon
<discord-_> e​gg. — yeah though again, what problem does that solve :-p
<discord-_> e​gg. — (in a similar vein I am pretty sure we would run into issues with libstdc++, since we only compile against either libc++ or the MSVC one)
<discord-_> d​kavolis. — curiosity
<discord-_> e​gg. — I think we only have BMP identifiers so far
<discord-_> e​gg. — we should solve that problem :D
<discord-_> e​gg. — > you're not really instantiating MyFrameTag
<discord-_> e​gg. — Well, I am using a constant expression of that type as a template parameter though
<discord-_> e​gg. — so it probably shouldn’t be incomplete
<discord-_> d​kavolis. — Ohh
<discord-_> d​kavolis. — Well, gcc doesn't complain either
<discord-_> e​gg. — hmm
<discord-_> e​gg. — when I checked that one on godbolt GCC did not like it iirc
<discord-_> d​kavolis. — geometry tests pass with mingw
<discord-_> d​kavolis. — oh wait, I had it set to clang-cl
<discord-_> e​gg. — lol
<discord-_> d​kavolis. — Yeah, gcc complains
<discord-_> e​gg. — https://gcc.godbolt.org/z/_C54Cp
<discord-_> e​gg. — so does ICC
<discord-_> d​kavolis. — I don't know anything that uses ICC
<discord-_> d​kavolis. — It doesn't fully support C++17 either
<discord-_> e​gg. — doesn’t fully support C++17 is still true of many compilers tbh
<discord-_> e​gg. — but thankfully now they are all equal again in that they do not fully support C++20 :D
<discord-_> e​gg. — I think we use some 20 features already
<discord-_> e​gg. — (designated initializers)
<discord-_> d​kavolis. — But clang still happily compiles in c++17 even with designated initializers
<discord-_> e​gg. — yeah because it had them from GCC as an extension
<discord-_> d​kavolis. — Clang-cl fails astronomy-tests with duplicate `operator!=` since it also considers `operator==` for overloads
<discord-_> d​kavolis. — Another clang bug
<discord-_> e​gg. — lolwat
<discord-_> e​gg. — ==, !=, what is even the difference
<discord-_> d​kavolis. — They're completely different to compilers pre-C++20
<discord-_> d​kavolis. — Took ages to fix that
<discord-_> e​gg. — yeah that was meant as a joke
<discord-_> e​gg. — (hopefully it does not use == directly as an overload of !=, that would generally be incorrect :D)
<discord-_> d​kavolis. — for clang-cl in c++20 == and != are duplicates even with completely same declarations
<discord-_> d​kavolis. — so many libraries break
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — D:\KSP\Principia\astronomy\lunar_orbit_test.cpp(466,49): error: use of overloaded operator '!=' is ambiguous (with operand types 'principia::physics::internal_forkable::DiscreteTrajectoryIterator<principia::geometry::internal_frame::Frame<principia::astronomy::LunarSurfaceTag, principia::geometry::internal_frame::Arbitrary, principia::geometry::internal_frame::Handedness::Right, 0> >' and 'princip
<discord-_> d​kavolis. — for (auto const& [time, degrees_of_freedom] : nodes.trajectory) {
<discord-_> d​kavolis. — ^
<discord-_> d​kavolis. — D:\KSP\Principia\physics\forkable.hpp(64,8): note: candidate function (with reversed parameter order)
<discord-_> d​kavolis. — bool operator==(It3rator const& right) const;
<discord-_> d​kavolis. — ^
<discord-_> d​kavolis. — D:\KSP\Principia\physics\forkable.hpp(65,8): note: candidate function
<discord-_> d​kavolis. — bool operator!=(It3rator const& right) const;
<discord-_> d​kavolis. — ^
<discord-_> d​kavolis. — D:\KSP\Principia\physics\forkable.hpp(64,8): note: candidate function
<discord-_> d​kavolis. — bool operator==(It3rator const& right) const;
<discord-_> d​kavolis. — ^
<discord-_> d​kavolis. — D:\KSP\Principia\astronomy\lunar_orbit_test.cpp(466,51): note: in implicit call to 'operator!=' for iterator of type 'const principia::physics::internal_discrete_trajectory::DiscreteTrajectory<principia::geometry::internal_frame::Frame<principia::astronomy::LunarSurfaceTag, principia::geometry::internal_frame::Arbitrary, principia::geometry::internal_frame::Handedness::Right, 0> >'
<discord-_> d​kavolis. — for (auto const& [time, degrees_of_freedom] : nodes.trajectory) {
<discord-_> d​kavolis. — ^~~~~
<discord-_> d​kavolis. — ```
<discord-_> d​kavolis. — Silly clang
<discord-_> e​gg. — @neph do you need a 1.7.3 and earlier or a 1.8.1 and later build to test 2519
<discord-_> d​kavolis. — Which benchmarks are the most relevant to KSP?
<discord-_> e​gg. — tricky question, it kind of depends what you are doing
<discord-_> d​kavolis. — High timewarp/long flight plans
<discord-_> d​kavolis. — Or any other bottlenecks really
<discord-_> e​gg. — continuous trajectory evaluation is probably a significant cost in a bunch of situations
<discord-_> d​kavolis. — Want to compare clang-cl with msvc
<discord-_> e​gg. — so the ephemeris benchmarks, the polynomial ones, maybe the planetarium plot method ones
<discord-_> d​kavolis. — What are the lowest vector extensions you expect? Clang should have more options than msvc for optimization
<discord-_> e​gg. — SSE2
<discord-_> e​gg. — well, SSE3 I suppose
<discord-_> e​gg. — note that most of the critical bits are written with intrinsics
<discord-_> d​kavolis. — I tried intrinsics in my code, couldn't beat GCC default generated ones
<discord-_> e​gg. — we were able to handily beat MSVC, but also we have a vague idea of what is going on because we are using some reasonably classing polynomial evaluation techniques, and also because we know what happens to our numbers where it matters (the 3d vectors almost always stay together, and for the fairly critical polynomial evaluation don’t get mixed across dimensions) so packing them (into two SSE2 registe
<discord-_> e​gg. — if we were to require FMA we would use one in the Estrin evaluator, if we required AVX we would put the entire R3Element in an AVX register
<discord-_> e​gg. — @dkavolis note that you can compare the unintrinsiced code by setting PRINCIPIA_USE_SSE3_INTRINSICS
<discord-_> d​kavolis. — Thanks
<discord-_> e​gg. — (the code in the else branch of that runs when we are in debug mode, so that it does not rot)
<discord-_> d​kavolis. — You're missing ifndef around it though
<discord-_> e​gg. — what do you mean
<discord-_> e​gg. — ah yeah we define it unconditionally
<discord-_> d​kavolis. — Fails if you pass it from command line
<discord-_> e​gg. — this is intentional, we don’t want more knobs  :-p
egg|cell|egg has quit [Ping timeout: 190 seconds]
egg|cell|egg has joined #principia
<discord-_> e​gg. — @Sir Mortimer re. typesetting, note that the french thing with spaces before punctuation is not inappropriate in french, it is mandatory :-p
<discord-_> e​gg. — @Sir Mortimer also, not entirely clear that this is linked to diacritics, e.g. Polish or Vietnamese, which have way more diacritics, do not space before :;!? as we do
<discord-_> e​gg. — These are the french punctuation spacing rules https://www.thierry-lequeu.fr/data/Livre121-p149.jpg
<discord-_> e​gg. — no space before `,` or `.`, thin nonbreaking space before `;`, `!`, or `?`, normal-sized nonbreaking space before `:`, and inside of « these »
<discord-_> S​ir Mortimer. — damint not enough batteries
* discord-_ e​gg. — gives @Sir Mortimer a solar panel_
<discord-_> e​gg. — (or a nuclear reactor maybe)
<discord-_> S​ir Mortimer. — geostationary TV satellites aren't exactly a walk in the park.
<discord-_> S​ir Mortimer. — i mean, there is the putting it there business which is tricky enough
<discord-_> e​gg. — and then keeping it there :D
<discord-_> e​gg. — hehe
<discord-_> S​ir Mortimer. — but then you cannot just stop broadcasting just because it's night
<discord-_> e​gg. — that, too
<discord-_> S​ir Mortimer. — and the thing is a bit power hungry
<discord-_> e​gg. — TV channel that stops broadcasting around midnight :-p
<discord-_> S​ir Mortimer. — that's so ... 80ies
* discord-_ e​gg. — pokes @neph with a stick_
<discord-_> e​gg. — ping me when you are back
* discord-_ e​gg. — AFK reviewing some documentation_
<discord-_> S​ir Mortimer. — but those contracts are going to be a nice challenge 🙂
<discord-_> e​gg. — yup (and if batteries are hard I guess you can go for молния
<discord-_> e​gg. — yup (and if batteries are hard I guess you can go for молния) (edited)
<discord-_> e​gg. — (though that is a somewhat different setup since it needs tracking ground stations)
<discord-_> S​ir Mortimer. — TRANSIT is surprisingly easy. just launch 3-4 satellites polar and retrograde
<discord-_> S​ir Mortimer. — (on kerbin)
<discord-_> e​gg. — huh, retrograde, interesting
<discord-_> S​ir Mortimer. — moar radial velocity, shorter periods
<discord-_> e​gg. — not sure why this figure is in de https://upload.wikimedia.org/wikipedia/commons/6/62/NNSS_%285_Polarbahnen%29.png
<discord-_> S​ir Mortimer. — with sufficient altitude you can service the polar regions with just one polar satellite
<discord-_> S​ir Mortimer. — maybe altitude should be limited somehow...
<discord-_> n​eph. — @egg
<discord-_> e​gg. — ≥ 1.8.1 or ≤ 1.7.3
<discord-_> e​gg. — @neph ≥ 1.8.1 or ≤ 1.7.3? (edited)
<discord-_> n​eph. — the former, por favor
<discord-_> e​gg. — @Sir Mortimer I think it really only is limited by transmitter power
<discord-_> e​gg. — if you want to throw a satellite into a high polar orbit, that seems like a perfectly valid solution
<discord-_> e​gg. — @neph Fubini for 1.9.1: https://bit.ly/34O0BMc
<discord-_> n​eph. — Lovely!
<discord-_> n​eph. — I will test this tomorrow. No computer right now.
<_whitenotifier-d13c> [Principia] jlNiap commented on issue #2248: Vehicle unstability if equipped with robotics parts - https://git.io/JfUag
<_whitenotifier-d13c> [Principia] jlNiap closed issue #2248: Vehicle unstability if equipped with robotics parts - https://git.io/fj1JT
<discord-_> n​eph. — What is most helpful? Same test case, check to see if it spins itself up?
<discord-_> e​gg. — yup
<discord-_> e​gg. — or if it is still doing undesirable things
<discord-_> e​gg. — it will probably do something *different*, at least
<discord-_> n​eph. — Will report on whatever it decides to do
<_whitenotifier-d13c> [Principia] jlNiap edited a comment on issue #2248: Vehicle unstability if equipped with robotics parts - https://git.io/JfUag
egg|laptop|egg has quit [Read error: Connection reset by peer]
egg|laptop|egg has joined #principia
<discord-_> d​kavolis. — Hmm? Clang-cl was significantly faster than msvc on i7-7700HQ laptop
egg|laptop|egg has quit [Remote host closed the connection]
<discord-_> d​kavolis. — Mean times
<discord-_> d​kavolis. — Mean times clang-cl/msvc (edited)
<discord-_> d​kavolis. — Mean times msvc/clang (edited)
<discord-_> e​gg. — that looks largely similar (except for the multithreading benchmark which looks like a bug)
<discord-_> d​kavolis. — Clang was usually 10-20% faster than msvc
<discord-_> d​kavolis. — First column is time, 2nd - cpu
<discord-_> e​gg. — ah
<discord-_> e​gg. — ah right, msvc divided by clang
<discord-_> d​kavolis. — Should have been more clear
<discord-_> e​gg. — that is with the default value of PRINCIPIA_USE_SSE3_INTRINSICS?
<discord-_> d​kavolis. — Yeah
<discord-_> d​kavolis. — Release build
<discord-_> d​kavolis. — Only added `-msse3` flag to clang
egg|cell|egg has quit [Read error: Connection reset by peer]
<discord-_> e​gg. — no polynomial evaluation benchmarks ?
<discord-_> d​kavolis. — not yet, ephemeris is long one
<discord-_> e​gg. — yeah it takes a bit
<discord-_> d​kavolis. — `чебышёв_series` cannot compile outside visual studio
<discord-_> e​gg. — well
<discord-_> e​gg. — it can, it compiles on *nix
<discord-_> d​kavolis. — only have wsl
<discord-_> e​gg. — perhaps it cannot compile on whatever setup you came up with, but that is your problem :-p
<discord-_> d​kavolis. — hopefully soon
<discord-_> d​kavolis. — Is чебышёв_series the only polynomial benchmark?
<discord-_> e​gg. — no, and in fact I do not think it benchmarks a thing that is used significantly at this point
<discord-_> e​gg. — this on the other hand, benchmarks polynomials, as its name indicates
<discord-_> d​kavolis. — oh, it doesn't have top comment for your benchmark_automation
<discord-_> e​gg. — yeah we should probably clean that up eventually (though tbh we rarely look at the results of that automation)
<discord-_> e​gg. — the benchmarks mostly exist to help us answer some specific question and improve some specific bit, they don’t necessarily have general-purpose relevance
<discord-_> d​kavolis. — What should I set the repetitions and min_time to for polynomial benchmark?
<discord-_> e​gg. — I don’t know
<discord-_> d​kavolis. — Is it a long benchmark?
<discord-_> e​gg. — probably not, again, I don’t remember
<discord-_> e​gg. — looks like it evaluates a polynomial 1000 times, so it should be rather on the short side
<discord-_> e​gg. — Anyway, back to reviewing documentation
<discord-_> d​kavolis. — Running benchmarks now
egg|cell|egg has joined #principia
<discord-_> d​kavolis. — Polynomial benchmark
<discord-_> e​gg. — largely the same or slower on Horner evaluation, oddly faster for some degrees on Estrin evaluation
<discord-_> e​gg. — you are in fp-model=strict, right?
<discord-_> e​gg. — then again with SSE3 you don’t get to use FMA so precise vs. strict should not matter
<discord-_> d​kavolis. — I didn't specify so it was default value but clang doesn't specify which one
<discord-_> e​gg. — the default is precise iirc
<discord-_> e​gg. — (it goes without saying that fast should not even be talked about here, since it will break many of the things we do)
<discord-_> e​gg. — slightly surprised by the difference in performance on estrin, though I suppose MSVC does tend to emit a lot of dumb moves in some circumstances so that might explain it
<discord-_> d​kavolis. — In my experience MSVC generates slower math in general
<discord-_> d​kavolis. — It's not as good at optimization
<discord-_> e​gg. — well, there are only so many things that you are allowed to do here anyway when it comes to optimizing these things—again, strict FP math, most optimizations are forbidden; there aren’t many loops or anything (and it can’t vectorize any more than we do, we choose the intrinsics already) so I think the big difference is in register allocation
<_whitenotifier-d13c> [Principia] Myshiko commented on issue #2400: History persistence lets .sfs files get very large - https://git.io/JfUPO
<_whitenotifier-d13c> [Principia] Myshiko edited a comment on issue #2400: History persistence lets .sfs files get very large - https://git.io/JfUPO
<_whitenotifier-d13c> [Principia] Myshiko edited a comment on issue #2400: History persistence lets .sfs files get very large - https://git.io/JfUPO
<discord-_> A​gustinCaniglia. — so there is already a beta version ? Can I have a link to 1.8.1? or is it too much to ask 😄
<discord-_> e​gg. — yes, by clicking on the link I gave @neph
<discord-_> A​gustinCaniglia. — oh okay I thought it was for 1.9.1 only Thanks!
<_whitenotifier-d13c> [Principia] pleroy commented on issue #2400: History persistence lets .sfs files get very large - https://git.io/JfU1S
egg|laptop|egg has joined #principia