-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update ngspice to 43 #25041
Update ngspice to 43 #25041
Conversation
my first foray into git and commiting an update. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- [X ] followed our Commit Message Guidelines?
You haven't followed the commit message guidelines.
This PR conflicts with master. Somehow you have based your changes off of the January 2022 commit instead of the November 2022 commit.
Getting ngspice to build was surprisingly finicky. We might not actually
need those. It was sort of all a blur reading everything and trying to
get it correct.
This is my first time at this, so I expect that I probably botched it as
that's the nature of things. We can reject the request and I can start
over. (first day on git as well <shrug>)
…On Wed, Jul 24, 2024 at 1:54 PM Ryan Carsten Schmidt < ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In science/ngspice/Portfile
<#25041 (comment)>
:
> + port:automake \
+ port:bison \
I didn't see you add anything to the port that would cause it to actually
use autoconf or automake. Are you sure those dependencies are needed?
Usually, projects that use autoconf and/or automake have already run those
programs and shipped tarballs that include the generated files so that the
user (or MacPorts) need not run those programs.
—
Reply to this email directly, view it on GitHub
<#25041 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AC5MKZJ3HEX535SLCCYKGUDZN7S4VAVCNFSM6AAAAABLMYKDAKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDCOJXGQYDSOJVHE>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
@bpdegnan Do you think you could address the comments above? |
I think that I got it all sorted out. |
@bpdegnan Why did you close the pull request? |
i did not mean too.
i was attempting too change things.
this is my first time doing this and between reading the documentation, and
not understanding completely how git works, i made some sort of error.
…On Sun, Jul 28, 2024 at 11:47 Perry E. Metzger ***@***.***> wrote:
@bpdegnan <https://github.com/bpdegnan> Why did you close the pull
request?
—
Reply to this email directly, view it on GitHub
<#25041 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AC5MKZOYJFCPAO6NKEOARFTZOUHBBAVCNFSM6AAAAABLMYKDAKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJUGU3DEMJTGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Well, then re-open the request. |
I reopened it.
…On Sun, Jul 28, 2024 at 12:25 PM Perry E. Metzger ***@***.***> wrote:
Well, then re-open the request.
—
Reply to this email directly, view it on GitHub
<#25041 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AC5MKZJSIUOZAWTJWAXA4YDZOULPLAVCNFSM6AAAAABLMYKDAKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJUGU3TEMZTHA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
reopening is fine but did you take care of all the review comments? |
I believe that I did address everything, but we might want to just scrap it. As a user of ngspice, most of the tickets are related to how ancient the supported version is in macports, and I thought to solve that as I've solved all of it internally (I have patches too for GCD over openmp). It was a bit of an arduous journey for someone who is not in software to figure out the nuances of what is expected during a pull request, and I believe that it might be better to just scrap the whole thing as I don't want to cause undo stress to people. I read the documentation and still didn't get it right (the linters didn't work when I was using Japanese MacOS for instance, don't know why). I'm going to say that if things look good, we can go with it and if not, let's just scrap it and I'll stick with physics. |
@reneeotten Do you think you could help get this over the hump? |
What's left? Fixing the commit messages and seeing if one of the OpenMP compilers works? |
Fixing the commit messages will get you to a functional package that gives the correct results. I have not tested the actual functionality of ngspice-43 with OpenMP because we use the stock compiler that comes with our Macs. The ngspice team has done a great job of making ngspice as good HSPICE and it works on my commercial semiconductor models; however, like with all SPICE, there's some quirks that can exist and we test "the hell out of it". ngspice-43 without OpenMP gives the correct simulation results, even if it's not as fast. |
Conflicts have to be resolved. Having an OpenMP variant is harmless to those who build without it; we will not get an opportunity to check if it works if there is no easy way to build it. |
I kinda want to help get this over the line as I would love a modern version of ngspice. Does the MP Clang-18, etc support OpenMP out of the box? I know apples does not, but the notes in the repo show that it can be compiled with OpenMP on a mac using the right compiler. @bpdegnan are you still interested in maintaining this? If so, would you be open to me as a co-maintainer? |
@markemer I'm totally up for having a co-maintainer. My value is that I actually use the software and know when things aren't correct as we have a suite of circuits that we test. I'm mostly interested in getting a modern ngspice into the ports tree. |
Conflicts need to be resolved btw. |
I don't understand what the conflicts are honestly as the port file is based on how I was compiling it locally, and I don't consider the lack of openmp a conflict. The openmp issue would require to check things against an openmp compiled ngspice, which I have not done. If someone can suggest one, I can try it out. ngspice is something that I am careful with as older versions very finicky with results. For instance, ngspice-31 doesn't handle the transitions regions well and would give you incorrect results unless you were very careful, and as a reviewer of papers, I can say many were not careful. I realize that openmp should only speed up the solver, but still, I'd like to try it against my commercial models and results. I'm not sure what to do, which i'm willing to help in any way that I can. |
So looking into this, OpenMP is now enabled by default upstream, so I think we should too. Should I make it a default variant that can be turned off if clang whatever fails to build, or do we a no-openmp variant, do you think? Also, I have no idea how far up the spec we need - the wiki is a bit out of date which I need to fix, as OpenMP version goes up to like 5.something these days. Do I just keep increasing the number until it compiles? I've only ever done OpenMP for my own stuff, so I just always used the latest. |
The meaning of "This branch cannot be rebased due to conflicts" is that some part of the code has been updated in-tree since the pull request was made and conflicts with the changes in the pull request. It has nothing to do with whether you can compile it locally. The pull needs to be updated to accommodate the changes in the in-tree file(s) that changed. |
@pmetzger I see. I appreciate the detailed description. Let me see if I can sort it out. |
I'm cool with that too - I've had trouble with this port myself. I cut my teeth on 0.18 micron at IBM back in '01 and I've been using ngspice on linux for eFabless 0.13 micron (which is very retro for me) but I've slowly been trying to move the whole workflow including PDKs to MacPorts. |
I've got a version on OpenMP running using clang17, because that's the earliest I can build on my Apple Silicon machine. What's a good way to require whatever openmp you have? Is is just the open mpversion? Mine seemed to try and install clang 16 at one version, but maybe because I didn't have any OpenMP installed? |
@pmetzger I believe that I've addressed everything that was pointed out by you and @ryandesign. I'm glad to report that I'm getting better at GIT. |
Looks like you checked in the conflicts. This stuff:
|
@markemer oh sheesh. Let me track that down. |
@markemer That was me just being an idiot. I pushed the correct one. I had two copies of the trees. I have too many machines, and I lost track of where I was. |
Cool, I think this is ready to go, lets get this merged as I figure out getting OpenMP working with one of our clangs. I'd be more reluctant, but this version of ngspice is so ancient, I doubt anyone is using it. Been on my list to fix for a while, because I had to build by hand. cc: @pmetzger let me know what you think - after a timeout, I'll probably just merge it. |
The file now seems mangled. I think a bad commit happened. |
I don't know how to unmangle this, and I'm not sure what to do. As I obviously cannot figure this out, I say we just scrap the whole thing. @markemer would be a better maintainer as he's obviously up on git, whereas I just cannot get out of my own way. I should just stick with physics. Any thoughts here? Should we just scrap this all and wait for Mark to get the openmp version working? |
Is it mangled? The latest seems fine to me and it builds on CI. |
@pmetzger I pushed a change, see if there is still an issue. I don't see anything on my end. |
Doesn't look mangled any more. |
to whoever merges this when all issues are resolved: make sure to squash the commits as the history is a mess now 😉 |
Someone needs to squash and rebase before anything proceeds anyway. |
I will attempt to squash and rebase. I figure, it can get any worse than I previously made it. |
I did some squashing and rebasing and if I did it right, i squashed everything up to just be a single update. It looks like it might have pulled it off. I read a summary of squashing so I'm hoping things didn't go sideways as this was my first foray into fixing problems that I caused. it all appears to have gone swimmingly, but let me know please. |
Looks good to me - letting it run now. Edit: Actually my one commit got dropped, probably because you didn't have it since it was the last one. I'll add that back in, squash and merge this evening. |
How was this even supposed to work, forget fixing tickets? :) |
Why was the patch removed? Nothing has been fixed in the codebase, it still fails:
|
Description
This update brings ngspice from 36 to 43. I also made myself the maintainer.
Type(s)
Tested on
macOS 14.5 23F79 x86_64
Xcode 15.4 15F31d
Verification
Have you
port lint --nitpick
?sudo port test
?sudo port -vst install
?