Add new implementation of math library (libmcs), remove math library dependency from strtod.c#460
Conversation
Summary of ChangesHello @ayoopierre, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly upgrades the project's mathematical capabilities by integrating a new, robust math library, 'libmcs'. This change not only broadens the range of supported mathematical functions and improves compliance with industry standards but also introduces a more modular and configurable approach to managing math implementations. The existing 'libphoenix' math code has been reorganized to coexist, providing flexibility for different project requirements and hardware constraints. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces the libmcs math library (v1.3.0) as an alternative implementation for critical systems and refactors the existing libphoenix math implementation into a separate directory. It also removes the math library dependency from strtod.c. The changes include a new libm/Makefile to select between implementations and a configure script for libmcs. My review identified a few critical logic errors in the libm/Makefile and the libphoenix implementation, as well as a syntax bug in the configure script.
ebb5432 to
4d39af1
Compare
4d39af1 to
6e002fe
Compare
6e002fe to
1169285
Compare
|
@ayoopierre please resolve this conflict and let's merge this |
JIRA: RTOS-1132
JIRA: RTOS-1132
1169285 to
482cf7d
Compare
| find libm/common libm/complex* libm/math* -name "*.c" | grep -v "fenv.c" > sw-quality/misra-c/files.lnt | ||
| wine ~/lint-nt.exe sw-quality/std.lnt sw-quality/misra-c/files.lnt | sed 's#\\#/#g' > sw-quality/misra-c/lint.txt || true |
There was a problem hiding this comment.
[shfmt] reported by reviewdog 🐶
| find libm/common libm/complex* libm/math* -name "*.c" | grep -v "fenv.c" > sw-quality/misra-c/files.lnt | |
| wine ~/lint-nt.exe sw-quality/std.lnt sw-quality/misra-c/files.lnt | sed 's#\\#/#g' > sw-quality/misra-c/lint.txt || true | |
| find libm/common libm/complex* libm/math* -name "*.c" | grep -v "fenv.c" >sw-quality/misra-c/files.lnt | |
| wine ~/lint-nt.exe sw-quality/std.lnt sw-quality/misra-c/files.lnt | sed 's#\\#/#g' >sw-quality/misra-c/lint.txt || true |
|
| * | ||
| * This file is part of Phoenix-RTOS. | ||
| * | ||
| * %LICENSE% |
There was a problem hiding this comment.
Please use SPDX-License-Identifier: BSD-3-Clause
kber-ps
left a comment
There was a problem hiding this comment.
Let's just apply new license name convention and we can merge
1112019 to
7b255c8
Compare
JIRA: RTOS-1132
7b255c8 to
7610e74
Compare
|
Okay, few things of note here. First off, why wasn't this consulted with the core team, nor @phoenix-rtos/phoenix-core was tagged for review. Secondly, I'm not sure that vendoring all of this stuff is the way to go around things. I'm not completely against it (monorepo ftw), but it seems to go against our current practices, meaning, submoduling the hell out of everything we can. This change prompted @dependabot to now create useless spammy Python dep-bump PR's. |
Add new implementation of math library (libmcs v1.3.0).
Description
Add new implementation of math library (libmcs), move libphoenix implementation of math library, remove dependency of strtod.c on math library. Current configuration will fail to compile on ia32 because of patches on micropython applied before compilation.
Motivation and Context
Adding complete math library implementation with extensions for critical applications
Types of changes
How Has This Been Tested?
Checklist:
Special treatment