Prateek Machiraju
8f386f6bb3
wpilibc: Add unit-safety to C++ geometry classes ( #1811 )
2019-08-16 22:00:32 -07:00
Peter Johnson
f1d71da8a9
Move GetStackTrace and Demangle to wpiutil, add Windows support ( #1819 )
...
For Windows, import the StackWalker source (https://github.com/JochenKalmbach/StackWalker )
plus PR 35 in that repo, with a few simplifications to StackWalker.h.
2019-08-12 23:45:45 -07:00
Redrield
c98ca7310f
Add EJML dependency to wpiutil ( #1769 )
...
Add EJML as the Java library for linear algebra for use in wpilib. This is equivalent to Eigen for C++.
The EJML dependency is downloaded in cmake and pulled in via maven in the gradle build.
2019-08-03 14:24:14 -07:00
Austin Shalit
df12fc2a86
Java cleanups ( #1776 )
...
* Remove extra ';'s
* Remove unnecessary conversions to String
* Use StandardCharsets object
* Replace infinite while with check for interrupted thread
* Remove redundant local vars
* Remove redundant throws clause
* Remove redundant primitive wrapping
* Fix malformed Nested class test
* Remove unnecessary unboxing
* Remove unnecessary explicit type argument
* Replace lambdas with method references
* Replace statement lambdas with expression lambdas
* Replace null check with method call
* Replace number comparison with method call
* Fix broken javadoc comments
* Replace Arrays.asList with singletonLists
* Remove excessive lambda usage
* Remove redundant string operation
* Remove redundant type casts
* Remove unnecessary returns
* Remove redundant suppressions
* Fix unresolved file reference
* static analysis fixes
2019-07-31 22:19:48 -07:00
Tyler Veness
37d316aa09
Add C++20 std::math constants shim ( #1788 )
...
Based on http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r7.pdf
2019-07-31 22:15:22 -07:00
Tyler Veness
37c6952663
Squelch -Wdeprecated-copy for Eigen with GCC >= 9
2019-07-30 00:39:47 -07:00
Tyler Veness
04c9b000ff
Revert "Fix build of Eigen 3.3.7 with GCC 9"
...
-Wextra adds -Wdeprecated-copy, which Eigen emits. We're going to
squelch the warning instead to minimize changes to Eigen's upstream
sources.
2019-07-30 00:39:47 -07:00
Peter Johnson
ca3e71e214
wpiutil: Fix Process::Spawn() ( #1778 )
...
Was broken due to removal of ArrayRef initializer_list constructor.
2019-07-26 11:22:23 -07:00
Prateek Machiraju
d946d5a2bb
Fix Eigen compilation errors and add tests ( #1777 )
2019-07-24 20:51:33 -07:00
Tyler Veness
8b1b9ac75a
Fix build of Eigen 3.3.7 with GCC 9
2019-07-24 00:03:18 -07:00
Tyler Veness
2f680ba990
Add Eigen linear algebra library
...
This imports Eigen 3.3.7, which will be used by the wpilibc implementation of
state-space control and mecanum/swerve forward kinematics (the forward
kinematics requires least-squares solutions via a matrix pseudoinverse).
While Eigen has parts licensed under BSD, MINPACK, and MPL2, the files we need
are only MPL2.
2019-07-24 00:03:18 -07:00
Peter Johnson
dff58c87f4
Fix unused warning in release build ( #1771 )
2019-07-21 22:17:42 -07:00
Peter Johnson
10731f3d6b
Update uv Udp wrapper for latest features
2019-07-15 20:15:37 -05:00
Peter Johnson
89f7b72b6e
Update libuv to 1.30.1 release
2019-07-15 20:15:37 -05:00
Peter Johnson
85f2f87400
wpiutil: Add unique_function ( #1761 )
...
This is a move-only variant of std::function to support move-only captures.
Imported from LLVM with some small tweaks (changed to 4 pointer internal storage, warnings fixes).
2019-07-15 20:13:57 -05:00
Tyler Veness
62be0392b6
Replace std::lock_guard and std::lock with std::scoped_lock ( #1758 )
...
std::scoped_lock was introduced in C++17 and is strictly better than
std::lock_guard as it supports locking any number of mutexes safely.
It's also easier to use than std::lock for locking multiple mutexes at
once.
2019-07-08 22:58:39 -07:00
Tyler Veness
841ef5d739
Remove template types from lock RAII wrapper usages ( #1756 )
...
C++17 has template type autodeduction. These wrappers include
std::lock_guard and std::unique_lock.
2019-07-07 19:17:14 -07:00
Peter Johnson
8757bc471b
Remove pre-C++17 shims ( #1752 )
...
Now that all compilers support C++17, remove some old C++14/C++17 shims.
2019-07-07 15:44:43 -07:00
Tyler Veness
118e9d29d5
Add C++14 units library ( #1749 )
2019-06-30 19:44:51 -07:00
Peter Johnson
eedb3a1adc
Fix GCC 9 warnings ( #1730 )
2019-06-30 00:28:32 -07:00
Peter Johnson
60dce66a4f
Remove wpi::ArrayRef std::initializer_list constructor ( #1745 )
...
This can be dangerous as it refers to a temporary, and GCC 9.0 warns about
its use. Instead add std::initializer_list overloads to common places it
was used in an initializer_list sense.
2019-06-29 23:54:02 -07:00
Peter Johnson
4b1b92bb74
Replace wpi::optional with C++17 std::optional ( #1732 )
...
Keep wpi/optional.h as a shim with deprecated warnings.
2019-06-29 11:20:22 -07:00
Peter Johnson
0fbb0d989e
Update to 2020 compilers ( #1733 )
...
Also link to libatomic in cmake and for Raspbian only in gradle.
2019-06-29 09:28:28 -07:00
Austin Shalit
f7cfdd7cee
Replace crlf line endings with lf ( #1731 )
2019-06-28 20:55:14 -07:00
Thad House
3dfb01d45b
Update to new Native Utils ( #1696 )
...
Also update to azure 2019 windows image
2019-06-28 14:09:10 -07:00
Peter Johnson
372ca4f456
cmake: Enable googletest unit tests ( #1720 )
...
Also don't inherit compile warnings from wpiutil
There's not a good way to disable inherited compiler flags.
2019-06-23 12:44:28 -07:00
Peter Johnson
55cb683db4
Change compiler flags to C++17 ( #1723 )
...
The current versions of the RoboRIO and Raspbian compilers support the flag but have
minimal actual C++17 support. Changing the flag is the first step.
2019-06-20 22:32:50 -07:00
Peter Johnson
ee8a33c568
wpiutil: SafeThread: Add thread id, support getting shared_ptr ( #1722 )
...
Rename base class function from GetThread to GetThreadSharedPtr.
2019-06-20 19:51:09 -07:00
Peter Johnson
61426d08de
wpiutil: Signal: make operator() const ( #1721 )
...
This enables const-ness in uv::Handle ReportError() and Invoke() as well.
2019-06-20 17:51:32 -07:00
Peter Johnson
f07569df19
Fix newer GCC/clang compiler warnings ( #1718 )
2019-06-14 18:32:27 -07:00
Tyler Veness
27b697b084
Remove frc directory include shims ( #1714 )
2019-06-10 22:03:52 -07:00
Tyler Veness
9e45373a74
Remove functions and classes deprecated for 2018 season ( #1059 )
2019-06-10 22:03:15 -07:00
Thad House
bc6f1e2469
Windows compiler options improvements ( #1709 )
...
- Use generators to set options only during build
- Add ZcThrowingNew
- Disable 4996
Fixes #1699
2019-06-10 20:09:39 -07:00
Thad House
bb48ae391e
cmake: Move example programs into folders ( #1654 )
...
This looks cleaner in VS.
2019-06-10 20:04:34 -07:00
Thad House
221011494d
Update for C++17 and fix MSVC warnings ( #1694 )
...
* Update MSVC arguments
* Fix json allocator
* Fix simulation diamond
* Bump gtest
* Remove empty varargs in unit tests
* Replace test case with test suite
* Remove deprecation warning in optional
* Remove need for NOMIXMAX to be defined in wpilib headers
2019-05-31 15:43:32 -05:00
Thad House
90957aeea4
Move libuv to its own subfolder in build ( #1661 )
...
Allows using system libuv
* Fix Gradle Build and include dirs
* Update cmake find to support vcpkg libuv
2019-05-30 15:59:26 -07:00
Tyler Veness
f432f65bef
Update copyright year in license to 2019 ( #1524 )
...
Also update clang-format to 6.0.
2019-05-17 17:35:09 -07:00
Thad House
1726b77ac5
wpiutil: uv: Remove copy from SimpleBufferPool ( #1680 )
2019-05-07 20:55:58 -07:00
Thad House
620bec9cae
wpiutil: uv: Add LoopClosing status to Handle ( #1647 )
...
Useful for EventLoopRunner to know if a stop is requested, or close is happening for another reason.
2019-05-05 17:38:56 -07:00
Peter Johnson
2de3bf7f58
Update LLVM from stable upstream ( #1653 )
...
Replace CheckedMalloc with upstream safe_malloc.
2019-04-27 20:33:08 -07:00
Thad House
12ab035aad
Fix receive side of LabVIEW USB streams ( #1621 )
...
LabView only accepts %20 instead of + for parameters, only sends '\n' at the boundaries,
and includes the -- when sending the initial boundary. This solves those parts.
This is not fully enough to fix shuffleboard and others, as the NT format for paths is not the correct path.
2019-03-03 11:20:43 -08:00
Thad House
76d9e26633
uv: Add reuse to pipe ( #1577 )
...
Needed for a reconnection API
2019-02-09 00:09:22 -08:00
Thad House
f156a00117
wpiutil uv: Pass IPC value of listening pipe to accepted pipe ( #1576 )
...
Otherwise, the acception fails.
2019-01-30 20:37:28 -08:00
Austin Shalit
8ac4b113a5
Fix build on macOS 10.14.2 ( #1509 )
2018-12-25 22:58:04 -06:00
Thad House
f163216a4c
Add support for raspbian extraction ( #1494 )
...
This is how I did it in C#, and it was the most reliable way I could find.
2018-12-24 15:15:15 -06:00
Thad House
ce1367a115
Make JNI library not found message clearer ( #1495 )
...
Closes #1472
2018-12-21 00:26:53 -08:00
Peter Johnson
d528a77963
wpiutil: Fix resources build ( #1476 )
2018-12-09 11:45:11 -08:00
Peter Johnson
608d82423d
wpiutil: Use scoped connections to ensure cleanup ( #1474 )
2018-12-09 01:36:36 -08:00
Peter Johnson
e0e15eafeb
wpiutil: Add shared resources for http servers
...
Files are named only with major.minor versions. Full versions are:
* bootstrap 4.1.3
* coreui 2.1.8
* feather 4.8.0
* jquery 3.3.1
* popper 1.14.4
2018-12-09 00:58:04 -08:00
Peter Johnson
0fb24538a7
wpiutil: HttpServerConnection: add SendStaticResponse
...
This function is intended for use when the content is a static const variable.
It allows gzipped static data, but doesn't provide the functionality to ungzip
it if the client doesn't support gzip. This is because it would add a
dependency on zlib and basically all clients support gzip.
Change extraHeader on all Send functions to include the final newline,
this makes it easier to build up extra headers incrementally.
Expose sig::Connection for messageComplete and headerConn to allow them to
be disconnected by users of the class. This is commonly needed for things
like WebSocket upgrades.
2018-12-09 00:58:04 -08:00