* Helping with MPS @ 2024-08-20 15:37 Jonathon McKitrick via Emacs development discussions. 2024-08-20 15:52 ` Pip Cet 2024-08-20 16:05 ` Helmut Eller 0 siblings, 2 replies; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-20 15:37 UTC (permalink / raw) To: emacs-devel I'm going to run MPS on my personal and work machines, and I'll report back here if I have any issues. I'm also happy to help with coding and docs if needed. First question: Since the build succeeded and emacs is running smoothly, what's the easiest way to confirm that my executable definitely has MPS running? Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 15:37 Helping with MPS Jonathon McKitrick via Emacs development discussions. @ 2024-08-20 15:52 ` Pip Cet 2024-08-20 20:41 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 6:31 ` Helmut Eller 2024-08-20 16:05 ` Helmut Eller 1 sibling, 2 replies; 33+ messages in thread From: Pip Cet @ 2024-08-20 15:52 UTC (permalink / raw) To: Jonathon McKitrick via "Emacs development discussions." Cc: Jonathon McKitrick "Jonathon McKitrick via \"Emacs development discussions.\"" <emacs-devel@gnu.org> writes: > I'm going to run MPS on my personal and work machines, Thank you, that's great to hear! May I ask which operating system and CPU architecture they use? > and I'll report back here if I have any issues. Please do! Any feedback is appreciated. > I'm also happy to help with coding and docs if needed. Well, it's time to fix the remaining stability issue: signal handlers and MPS. I've been running a workaround for weeks now, and I've attributed all the remaining crashes to other causes, so I think it's stable, but it's not particularly clean. The problem is signal handlers may interrupt MPS, and then we must not touch any Lisp data, so we must (usually) delay running the signal handler until we've left MPS code. The problem is MPS code may be entered transparently by another thread, and then we don't know that we're leaving MPS code... My current workaround is to have a flag for each signal, plus a global flag, and set them when the signal arrives at an inopportune time. We check them when we know we just left MPS code, and that part usually works, but sometimes we miss the exit, and then we have to wait until the next 'maybe_quit' to handle the signal, and that strikes me as potentially too long a delay. So, if you're using GNU/Linux machines, you might run into crashes we already know about. I can provide a temporary fix, but it doesn't feel quite good enough for scratch/igc yet. Any comments or advice would be welcome, of course. > First question: Since the build succeeded and emacs is running > smoothly, what's the easiest way to confirm that my executable > definitely has MPS running? Attach gdb and wait for a segfault. If you can continue and Emacs keeps running, you're running MPS. 'M-x igc-stats RET s' should also work, and show a snapshot of MPS allocations. Just leaning on 'c' for a while in that buffer (which triggers a collection) has produced crashes in the past... Thanks again Pip ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 15:52 ` Pip Cet @ 2024-08-20 20:41 ` Jonathon McKitrick via Emacs development discussions. 2024-08-20 20:44 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 6:31 ` Helmut Eller 1 sibling, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-20 20:41 UTC (permalink / raw) To: Pip Cet; +Cc: Jonathon McKitrick via "Emacs development discussions." On Tue, Aug 20, 2024 at 03:52:01PM +0000, Pip Cet wrote: : "Jonathon McKitrick via \"Emacs development discussions.\"" <emacs-devel@gnu.org> writes: : Thank you, that's great to hear! May I ask which operating system and : CPU architecture they use? MacOS on arm64 : 'M-x igc-stats RET s' should also work, and show a snapshot of MPS : allocations. Just leaning on 'c' for a while in that buffer (which : triggers a collection) has produced crashes in the past... I'm not getting igc stats, and (featurep 'mps) returns nil. So I thought this build was mps enabled, but apparently it's not. I'm building again, and this time egrep finds 'with.mps' throughout the configure script and a couple of other non-source code files. I assume this is a source-built feature and not a linked library, right? I don't understand why I don't see any references in .c files. Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 20:41 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-20 20:44 ` Jonathon McKitrick via Emacs development discussions. 0 siblings, 0 replies; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-20 20:44 UTC (permalink / raw) To: Jonathon McKitrick via Emacs development discussions.; +Cc: Pip Cet On Tue, Aug 20, 2024 at 08:41:28PM +0000, Jonathon McKitrick via Emacs development discussions. wrote: : On Tue, Aug 20, 2024 at 03:52:01PM +0000, Pip Cet wrote: : : "Jonathon McKitrick via \"Emacs development discussions.\"" <emacs-devel@gnu.org> writes: : : Thank you, that's great to hear! May I ask which operating system and : : CPU architecture they use? : I assume this is a source-built feature and not a linked library, : right? I don't understand why I don't see any references in .c files. N/M I just discovered 'with-mps' needs to be passed a value 'yes' Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 15:52 ` Pip Cet 2024-08-20 20:41 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 6:31 ` Helmut Eller 2024-08-21 6:56 ` Gerd Möllmann ` (2 more replies) 1 sibling, 3 replies; 33+ messages in thread From: Helmut Eller @ 2024-08-21 6:31 UTC (permalink / raw) To: Pip Cet; +Cc: Gerd Möllmann, emacs-devel, Jonathon McKitrick On Tue, Aug 20 2024, Pip Cet wrote: > My current workaround is to have a flag for each signal, plus a global > flag, and set them when the signal arrives at an inopportune time. We > check them when we know we just left MPS code, and that part usually > works, but sometimes we miss the exit, and then we have to wait until > the next 'maybe_quit' to handle the signal, and that strikes me as > potentially too long a delay. > > So, if you're using GNU/Linux machines, you might run into crashes we > already know about. I can provide a temporary fix, but it doesn't feel > quite good enough for scratch/igc yet. > > Any comments or advice would be welcome, of course. What would you think about creating fork of MPS (on GitHub) that includes: a) fixes for known problems: https://github.com/Ravenbrook/mps/issues/285 https://github.com/Ravenbrook/mps/pull/257 https://github.com/Ravenbrook/mps/pull/38 https://github.com/Ravenbrook/mps/pull/83 b) removes the instruction emulation on protection faults in the AWL pool. For us, this adds a lot of complexity with questionable gains: The weak hash tables implementation is, well, complicated and for the marker-vector it's ineffective because there we use tagged pointers (apparently without problems). c) blocks signals. Not my preferred solution, but some people seem to think that that is the emacsy way to do things. ? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 6:31 ` Helmut Eller @ 2024-08-21 6:56 ` Gerd Möllmann 2024-08-21 8:02 ` Pip Cet 2024-08-21 13:53 ` Eli Zaretskii 2 siblings, 0 replies; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 6:56 UTC (permalink / raw) To: Helmut Eller; +Cc: Pip Cet, emacs-devel, Jonathon McKitrick Helmut Eller <eller.helmut@gmail.com> writes: > b) removes the instruction emulation on protection faults in the AWL > pool. For us, this adds a lot of complexity with questionable gains: > The weak hash tables implementation is, well, complicated and for the > marker-vector it's ineffective because there we use tagged pointers > (apparently without problems). I can't express how much I'm in favor of getting rid of that wart :-) ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 6:31 ` Helmut Eller 2024-08-21 6:56 ` Gerd Möllmann @ 2024-08-21 8:02 ` Pip Cet 2024-08-21 9:23 ` Helmut Eller 2024-08-21 13:53 ` Eli Zaretskii 2 siblings, 1 reply; 33+ messages in thread From: Pip Cet @ 2024-08-21 8:02 UTC (permalink / raw) To: Helmut Eller; +Cc: Gerd Möllmann, emacs-devel, Jonathon McKitrick "Helmut Eller" <eller.helmut@gmail.com> writes: > On Tue, Aug 20 2024, Pip Cet wrote: > >> My current workaround is to have a flag for each signal, plus a global >> flag, and set them when the signal arrives at an inopportune time. We >> check them when we know we just left MPS code, and that part usually >> works, but sometimes we miss the exit, and then we have to wait until >> the next 'maybe_quit' to handle the signal, and that strikes me as >> potentially too long a delay. >> >> So, if you're using GNU/Linux machines, you might run into crashes we >> already know about. I can provide a temporary fix, but it doesn't feel >> quite good enough for scratch/igc yet. >> >> Any comments or advice would be welcome, of course. > > What would you think about creating fork of MPS (on GitHub) > that includes: I'm not a huge fan of GitHub, to be honest. There's already https://codeberg.org/pipcet/mps, so maybe we can use that and mirror to a GitHub repo if that's desirable? > a) fixes for known problems: > https://github.com/Ravenbrook/mps/issues/285 > https://github.com/Ravenbrook/mps/pull/257 > https://github.com/Ravenbrook/mps/pull/38 > https://github.com/Ravenbrook/mps/pull/83 I'll have to look through these. > b) removes the instruction emulation on protection faults in the AWL > pool. For us, this adds a lot of complexity with questionable gains: I don't think it's questionable at all: There is no advantage for us. > The weak hash tables implementation is, well, complicated and for the > marker-vector it's ineffective because there we use tagged pointers > (apparently without problems). Hmm. I suspect the reason we're not seeing any problems is that few people test on i386, and that only certain instructions are emulated: in particular, there has to be a nonzero offset in a load instruction for it to be emulated. Using a tagged pointer in a weak object with the single access emulation is definitely not okay... > c) blocks signals. Not my preferred solution, but some people seem to > think that that is the emacsy way to do things. I'm not sure whether we should block signals or add "this thread is trying to lock the arena"/"this thread is unlocking the arena" callbacks, but that's an implementation detail. It does feel like I've been trying to hammer in a screw here :-) d) adds support for Windows/GCC builds. I think this is the right way forward (so you've convinced me; I've previously expressed the opposite opinion), for these reasons: 1. it's the only sensible way of supporting i386, because the single access restrictions are too much of a problem, and virtually untestable because they trigger so rarely 2. it supports Windows/GCC configurations 3. I don't see a way to avoid delaying signal handlers until the next maybe_quit(), at least some of the time, without it. Pip ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 8:02 ` Pip Cet @ 2024-08-21 9:23 ` Helmut Eller 0 siblings, 0 replies; 33+ messages in thread From: Helmut Eller @ 2024-08-21 9:23 UTC (permalink / raw) To: Pip Cet; +Cc: Gerd Möllmann, emacs-devel, Jonathon McKitrick On Wed, Aug 21 2024, Pip Cet wrote: >> What would you think about creating fork of MPS (on GitHub) >> that includes: > > I'm not a huge fan of GitHub, to be honest. There's already > https://codeberg.org/pipcet/mps, so maybe we can use that and mirror to > a GitHub repo if that's desirable? It think that at least something should be on GitHub, because Ravenbrook puts MPS there. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 6:31 ` Helmut Eller 2024-08-21 6:56 ` Gerd Möllmann 2024-08-21 8:02 ` Pip Cet @ 2024-08-21 13:53 ` Eli Zaretskii 2024-08-21 14:36 ` Helmut Eller 2 siblings, 1 reply; 33+ messages in thread From: Eli Zaretskii @ 2024-08-21 13:53 UTC (permalink / raw) To: Helmut Eller; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm > From: Helmut Eller <eller.helmut@gmail.com> > Cc: Gerd Möllmann <gerd.moellmann@gmail.com>, > emacs-devel@gnu.org, Jonathon McKitrick <jcm@SDF.ORG> > Date: Wed, 21 Aug 2024 08:31:50 +0200 > > What would you think about creating fork of MPS (on GitHub) > that includes: How intensive is the development of MPS? how many commits did they have for, say, the last year? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 13:53 ` Eli Zaretskii @ 2024-08-21 14:36 ` Helmut Eller 2024-08-21 14:44 ` Eli Zaretskii 0 siblings, 1 reply; 33+ messages in thread From: Helmut Eller @ 2024-08-21 14:36 UTC (permalink / raw) To: Eli Zaretskii; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm On Wed, Aug 21 2024, Eli Zaretskii wrote: > How intensive is the development of MPS? Looks quite dormant at the moment. Maybe they only work on it if a customer requests something. Dunno. > how many commits did they > have for, say, the last year? git log | grep '^Date:.* 2024 '|wc -l => 0 git log | grep '^Date:.* 2023 '|wc -l => 343 git log | grep '^Date:.* 2022 '|wc -l => 7 git log | grep '^Date:.* 2021 '|wc -l => 27 ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 14:36 ` Helmut Eller @ 2024-08-21 14:44 ` Eli Zaretskii 2024-08-21 15:10 ` Helmut Eller 0 siblings, 1 reply; 33+ messages in thread From: Eli Zaretskii @ 2024-08-21 14:44 UTC (permalink / raw) To: Helmut Eller; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm > From: Helmut Eller <eller.helmut@gmail.com> > Cc: pipcet@protonmail.com, gerd.moellmann@gmail.com, emacs-devel@gnu.org, > jcm@SDF.ORG > Date: Wed, 21 Aug 2024 16:36:49 +0200 > > On Wed, Aug 21 2024, Eli Zaretskii wrote: > > > How intensive is the development of MPS? > > Looks quite dormant at the moment. Maybe they only work on it if a > customer requests something. Dunno. > > > how many commits did they > > have for, say, the last year? > > git log | grep '^Date:.* 2024 '|wc -l => 0 > git log | grep '^Date:.* 2023 '|wc -l => 343 > git log | grep '^Date:.* 2022 '|wc -l => 7 > git log | grep '^Date:.* 2021 '|wc -l => 27 Thanks. Yes, looks quite dormant. My point was that if they are actively developing the library, we'll have hard time keeping up. But it doesn't seem it will be a problem, so forking does seem practical. But if we fork, why not simply add it to the Emacs Git repository? why do we need a separate repository on GitHub? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 14:44 ` Eli Zaretskii @ 2024-08-21 15:10 ` Helmut Eller 2024-08-21 15:34 ` Eli Zaretskii 0 siblings, 1 reply; 33+ messages in thread From: Helmut Eller @ 2024-08-21 15:10 UTC (permalink / raw) To: Eli Zaretskii; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm On Wed, Aug 21 2024, Eli Zaretskii wrote: > But if we fork, why not simply add it to the Emacs Git repository? why > do we need a separate repository on GitHub? Putting a fork on GitHub seems like the courteous thing to do IMO. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 15:10 ` Helmut Eller @ 2024-08-21 15:34 ` Eli Zaretskii 2024-08-21 17:44 ` Helmut Eller 0 siblings, 1 reply; 33+ messages in thread From: Eli Zaretskii @ 2024-08-21 15:34 UTC (permalink / raw) To: Helmut Eller; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm > From: Helmut Eller <eller.helmut@gmail.com> > Cc: pipcet@protonmail.com, gerd.moellmann@gmail.com, emacs-devel@gnu.org, > jcm@SDF.ORG > Date: Wed, 21 Aug 2024 17:10:22 +0200 > > On Wed, Aug 21 2024, Eli Zaretskii wrote: > > > But if we fork, why not simply add it to the Emacs Git repository? why > > do we need a separate repository on GitHub? > > Putting a fork on GitHub seems like the courteous thing to do IMO. Not sure I understand: courteous to whom? If we are going to make Emacs-specific changes in the library, who else will find this fork useful except people that build and develop Emacs? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 15:34 ` Eli Zaretskii @ 2024-08-21 17:44 ` Helmut Eller 2024-08-21 18:06 ` Eli Zaretskii 0 siblings, 1 reply; 33+ messages in thread From: Helmut Eller @ 2024-08-21 17:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm On Wed, Aug 21 2024, Eli Zaretskii wrote: >> > But if we fork, why not simply add it to the Emacs Git repository? why >> > do we need a separate repository on GitHub? >> >> Putting a fork on GitHub seems like the courteous thing to do IMO. > > Not sure I understand: courteous to whom? If we are going to make > Emacs-specific changes in the library, who else will find this fork > useful except people that build and develop Emacs? Maybe Ravenbrook would like to see what does and doesn't work with MPS. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 17:44 ` Helmut Eller @ 2024-08-21 18:06 ` Eli Zaretskii 0 siblings, 0 replies; 33+ messages in thread From: Eli Zaretskii @ 2024-08-21 18:06 UTC (permalink / raw) To: Helmut Eller; +Cc: pipcet, gerd.moellmann, emacs-devel, jcm > From: Helmut Eller <eller.helmut@gmail.com> > Cc: pipcet@protonmail.com, gerd.moellmann@gmail.com, emacs-devel@gnu.org, > jcm@SDF.ORG > Date: Wed, 21 Aug 2024 19:44:31 +0200 > > On Wed, Aug 21 2024, Eli Zaretskii wrote: > > >> > But if we fork, why not simply add it to the Emacs Git repository? why > >> > do we need a separate repository on GitHub? > >> > >> Putting a fork on GitHub seems like the courteous thing to do IMO. > > > > Not sure I understand: courteous to whom? If we are going to make > > Emacs-specific changes in the library, who else will find this fork > > useful except people that build and develop Emacs? > > Maybe Ravenbrook would like to see what does and doesn't work with MPS. If they want it, yes. Maybe we should try talking to them before we decide to fork. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 15:37 Helping with MPS Jonathon McKitrick via Emacs development discussions. 2024-08-20 15:52 ` Pip Cet @ 2024-08-20 16:05 ` Helmut Eller 2024-08-20 21:42 ` Jonathon McKitrick via Emacs development discussions. 1 sibling, 1 reply; 33+ messages in thread From: Helmut Eller @ 2024-08-20 16:05 UTC (permalink / raw) To: Jonathon McKitrick; +Cc: emacs-devel On Tue, Aug 20 2024, Jonathon McKitrick wrote: > First question: Since the build succeeded and emacs is running > smoothly, what's the easiest way to confirm that my executable > definitely has MPS running? (featurep 'mps) should return t. There should also exist some functions like igc-info, igc--collect, igc-stats. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 16:05 ` Helmut Eller @ 2024-08-20 21:42 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 3:46 ` Gerd Möllmann 0 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-20 21:42 UTC (permalink / raw) To: Helmut Eller; +Cc: emacs-devel On Tue, Aug 20, 2024 at 06:05:48PM +0200, Helmut Eller wrote: : On Tue, Aug 20 2024, Jonathon McKitrick wrote: : : > First question: Since the build succeeded and emacs is running : > smoothly, what's the easiest way to confirm that my executable : > definitely has MPS running? : : (featurep 'mps) should return t. There should also exist some functions : like igc-info, igc--collect, igc-stats. That makes sense. However, after checking out the branch and then running configure with '--with-mps=yes' followed by make bootstrap, running src/emacs and checking for the igc stats and feature returns negative results. Not sure how to proceed at this point. Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-20 21:42 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 3:46 ` Gerd Möllmann 2024-08-21 5:59 ` Helmut Eller ` (2 more replies) 0 siblings, 3 replies; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 3:46 UTC (permalink / raw) To: Jonathon McKitrick via Emacs development discussions. Cc: Helmut Eller, Jonathon McKitrick Jonathon McKitrick via "Emacs development discussions." <emacs-devel@gnu.org> writes: > On Tue, Aug 20, 2024 at 06:05:48PM +0200, Helmut Eller wrote: > : On Tue, Aug 20 2024, Jonathon McKitrick wrote: > : > : > First question: Since the build succeeded and emacs is running > : > smoothly, what's the easiest way to confirm that my executable > : > definitely has MPS running? > : > : (featurep 'mps) should return t. There should also exist some functions > : like igc-info, igc--collect, igc-stats. > > That makes sense. However, after checking out the branch and then running > configure with '--with-mps=yes' followed by make bootstrap, running > src/emacs and checking for the igc stats and feature returns negative > results. Not sure how to proceed at this point. Hi Jonathan. First step is to build and install the MPS library. (The "mps" that Homebrew has in something completely different.) Clone https://github.com/Ravenbrook/mps Apply the patch from here https://github.com/Ravenbrook/mps/issues/281 Then something like ./configure --prefix=/Users/gerd/.local gmake install which I use to install MPS in ~/.local. Then set up your system to find include files and libs in ~/.local. I have in my ~/.zshenv # For own libs, like -lmps. Note that clang uses LIBRARY_PATH, not # LD_LIBRARY_PATH. export C_INCLUDE_PATH="$HOME/.local/include" export OBJC_INCLUDE_PATH="$HOME/.local/include" export CPLUS_INCLUDE_PATH="$HOME/.local/include" export LIBRARY_PATH="$HOME/.local/lib" export LD_LIBRARY_PATH="$HOME/.local/lib" And then Emacs' ./configure --with-mps should print that it found -lmps and is using it. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 3:46 ` Gerd Möllmann @ 2024-08-21 5:59 ` Helmut Eller 2024-08-21 6:28 ` Arash Esbati 2024-08-21 14:10 ` Jonathon McKitrick via Emacs development discussions. 2 siblings, 0 replies; 33+ messages in thread From: Helmut Eller @ 2024-08-21 5:59 UTC (permalink / raw) To: Jonathon McKitrick; +Cc: Gerd Möllmann, emacs-devel On Wed, Aug 21 2024, Gerd Möllmann wrote: >> That makes sense. However, after checking out the branch and then running >> configure with '--with-mps=yes' followed by make bootstrap, running >> src/emacs and checking for the igc stats and feature returns negative >> results. Not sure how to proceed at this point. Read your config.log, there must be a line like #define HAVE_MPS 1 If it's not there, then search "checking for mps.h" and look clues. > Then something like > > ./configure --prefix=/Users/gerd/.local On Linux or FreeBSD, also add "CFLAGS=-fno-omit-frame-pointer". (Or use the patch: https://github.com/Ravenbrook/mps/pull/38) ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 3:46 ` Gerd Möllmann 2024-08-21 5:59 ` Helmut Eller @ 2024-08-21 6:28 ` Arash Esbati 2024-08-21 6:54 ` Gerd Möllmann 2024-08-21 14:10 ` Jonathon McKitrick via Emacs development discussions. 2 siblings, 1 reply; 33+ messages in thread From: Arash Esbati @ 2024-08-21 6:28 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller, Jonathon McKitrick Guten Morgen Gerd, Gerd Möllmann <gerd.moellmann@gmail.com> writes: > First step is to build and install the MPS library. (The "mps" that > Homebrew has in something completely different.) Maybe 'libmps' from Homebrew fits the bill better: https://formulae.brew.sh/formula/libmps It was added recently, I think. Best, Arash ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 6:28 ` Arash Esbati @ 2024-08-21 6:54 ` Gerd Möllmann 0 siblings, 0 replies; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 6:54 UTC (permalink / raw) To: Arash Esbati Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller, Jonathon McKitrick Arash Esbati <arash@gnu.org> writes: > Guten Morgen Gerd, > > Gerd Möllmann <gerd.moellmann@gmail.com> writes: > >> First step is to build and install the MPS library. (The "mps" that >> Homebrew has in something completely different.) > > Maybe 'libmps' from Homebrew fits the bill better: > > https://formulae.brew.sh/formula/libmps > > It was added recently, I think. Yeah thanks, I didn't notice that. Should work, I guess. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 3:46 ` Gerd Möllmann 2024-08-21 5:59 ` Helmut Eller 2024-08-21 6:28 ` Arash Esbati @ 2024-08-21 14:10 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 14:48 ` Gerd Möllmann 2 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 14:10 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller On Wed, Aug 21, 2024 at 05:46:06AM +0200, Gerd Mllmann wrote: : Then something like : : ./configure --prefix=/Users/gerd/.local : gmake install : : which I use to install MPS in ~/.local. I got the patch installed and re-ran autoconf and then configure. But when running make I get this: xcrun xcodebuild -project code/mps.xcodeproj -config Debug xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH make: *** [build-via-xcode] Error 72 I have xcode command line tools installed, and when building emacs itself, the xcrun/xcodebuild commands work fine. What am I missing? Sorry if it's an obvious fix, I'm more a BSD guy than GNU/Linux.... Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 14:10 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 14:48 ` Gerd Möllmann 2024-08-21 15:08 ` Jonathon McKitrick via Emacs development discussions. 0 siblings, 1 reply; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 14:48 UTC (permalink / raw) To: Jonathon McKitrick Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller Jonathon McKitrick <jcm@SDF.ORG> writes: > On Wed, Aug 21, 2024 at 05:46:06AM +0200, Gerd Mllmann wrote: > : Then something like > : > : ./configure --prefix=/Users/gerd/.local > : gmake install > : > : which I use to install MPS in ~/.local. > > I got the patch installed and re-ran autoconf and then configure. > > But when running make I get this: > > xcrun xcodebuild -project code/mps.xcodeproj -config Debug > xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH > make: *** [build-via-xcode] Error 72 > > I have xcode command line tools installed, and when building emacs itself, > the xcrun/xcodebuild commands work fine. Building Emacs just uses clang and gmake, so that can work without xcrun working. Are you using clang from Xcode? > What am I missing? Something is wrong with your Xcode installation, I'd say, but I don't know what that could be. What does xcode-select --print-path say? It should print the path under which the developer tools are found. See also man xcode-select > Sorry if it's an obvious fix, I'm more a BSD guy than GNU/Linux.... (I'm also not a Linux user, on my own computers, never have been. Always FreeBSD until I switched to OSX/macOS because I needed a working laptop for work :-)). ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 14:48 ` Gerd Möllmann @ 2024-08-21 15:08 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 15:40 ` Gerd Möllmann 0 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 15:08 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller On Wed, Aug 21, 2024 at 04:48:19PM +0200, Gerd Mllmann wrote: : Jonathon McKitrick <jcm@SDF.ORG> writes: : > I got the patch installed and re-ran autoconf and then configure. : > : > But when running make I get this: : > : > xcrun xcodebuild -project code/mps.xcodeproj -config Debug : > xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH : > make: *** [build-via-xcode] Error 72 : > : > I have xcode command line tools installed, and when building emacs itself, : > the xcrun/xcodebuild commands work fine. : : Building Emacs just uses clang and gmake, so that can work without xcrun : working. Are you using clang from Xcode? I believe so, yes. Not sure it's relevant, but that patch I applied for arm-apple-darwin has BUILD_TARGET=build-via-xcode And the error message above indicates it's using the mps.xcodeproj file, so wouldn't that require xcode rather than clang and gmake? I just don't know enough about autotools. : > What am I missing? : : Something is wrong with your Xcode installation, I'd say, but I don't : know what that could be. What does : : xcode-select --print-path : : say? It should print the path under which the developer tools are found. : See also : : man xcode-select Yep, that's the first thing I explored, and got this: ~/p/mps â¯â¯â¯ xcode-select -p /Library/Developer/CommandLineTools So xcode tools *are* there, I use them with brew and other tools all the time. : (I'm also not a Linux user, on my own computers, never have been. Always : FreeBSD until I switched to OSX/macOS because I needed a working laptop : for work :-)). That's exactly the path I followed as well! Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 15:08 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 15:40 ` Gerd Möllmann 2024-08-21 15:46 ` Jonathon McKitrick via Emacs development discussions. 0 siblings, 1 reply; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 15:40 UTC (permalink / raw) To: Jonathon McKitrick Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller Jonathon McKitrick <jcm@SDF.ORG> writes: > : Building Emacs just uses clang and gmake, so that can work without xcrun > : working. Are you using clang from Xcode? > > I believe so, yes. Not sure it's relevant, but that patch I applied for > arm-apple-darwin has > > BUILD_TARGET=build-via-xcode > > And the error message above indicates it's using the mps.xcodeproj file, > so wouldn't that require xcode rather than clang and gmake? I just don't > know enough about autotools. That's the same here. Building MPS uses xcodebuild with that Xcode project. > > : > What am I missing? > : > : Something is wrong with your Xcode installation, I'd say, but I don't > : know what that could be. What does > : > : xcode-select --print-path > : > : say? It should print the path under which the developer tools are found. > : See also > : > : man xcode-select > > Yep, that's the first thing I explored, and got this: > > ~/p/mps â%9d¯â%9d¯â%9d¯ xcode-select -p > /Library/Developer/CommandLineTools That's different here: /Users/gerd % xcode-select --print-path /Applications/Xcode.app/Contents/Developer And xcrun and xcodebuild are found in /usr/bin. > So xcode tools *are* there, I use them with brew and other tools all > the time. I'm afraid I can't help much here. It "just worked" for me, and I haven't done any config for Xcode or its command line tools, except installing them, a long time ago. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 15:40 ` Gerd Möllmann @ 2024-08-21 15:46 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 16:23 ` Gerd Möllmann 0 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 15:46 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller On Wed, Aug 21, 2024 at 05:40:17PM +0200, Gerd Mllmann wrote: : Jonathon McKitrick <jcm@SDF.ORG> writes: : : > : Building Emacs just uses clang and gmake, so that can work without xcrun : > : working. Are you using clang from Xcode? : > : > I believe so, yes. Not sure it's relevant, but that patch I applied for : > arm-apple-darwin has : > : > BUILD_TARGET=build-via-xcode : > : > And the error message above indicates it's using the mps.xcodeproj file, : > so wouldn't that require xcode rather than clang and gmake? I just don't : > know enough about autotools. : : That's the same here. Building MPS uses xcodebuild with that Xcode project. So I deleted a few choice lines from configure.ac which selected the xcode build, and re-ran everything. It got much farther this time, only stopping here: gnumake -C code -f xca6ll.gmk EXTRA_TARGETS="mpseventcnv mpseventpy mpseventtxt mpseventsql" xca6ll: xca6ll/cool/trans.o trans.c:154:9: error: variable 'added' set but not used [-Werror,-Wunused-but-set-variable] Count added = 0; ^ Seems like progress, unless it's all going to fail later because I'm not using xcodebuild lol. Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 15:46 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 16:23 ` Gerd Möllmann 2024-08-21 18:00 ` Jonathon McKitrick via Emacs development discussions. 0 siblings, 1 reply; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 16:23 UTC (permalink / raw) To: Jonathon McKitrick Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller Jonathon McKitrick <jcm@SDF.ORG> writes: > gnumake -C code -f xca6ll.gmk EXTRA_TARGETS="mpseventcnv mpseventpy mpseventtxt mpseventsql" > xca6ll: xca6ll/cool/trans.o > trans.c:154:9: error: variable 'added' set but not used [-Werror,-Wunused-but-set-variable] > Count added = 0; > ^ That could be https://github.com/Ravenbrook/mps/issues/279 see patch there. Sorry, I forgot about that. > Seems like progress, unless it's all going to fail later because I'm > not using xcodebuild lol. Don't know if that's a supported build method on macOS, but what do i know :-)? It should work though with the Xcode project... Alternatively, brew install libmps is now an option, as others have said. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 16:23 ` Gerd Möllmann @ 2024-08-21 18:00 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 18:04 ` Gerd Möllmann 0 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 18:00 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller On Wed, Aug 21, 2024 at 06:23:36PM +0200, Gerd Mllmann wrote: : Jonathon McKitrick <jcm@SDF.ORG> writes: : : > gnumake -C code -f xca6ll.gmk EXTRA_TARGETS="mpseventcnv mpseventpy mpseventtxt mpseventsql" : > xca6ll: xca6ll/cool/trans.o : > trans.c:154:9: error: variable 'added' set but not used [-Werror,-Wunused-but-set-variable] : > Count added = 0; : > ^ : : That could be : : https://github.com/Ravenbrook/mps/issues/279 : : see patch there. Sorry, I forgot about that. : : > Seems like progress, unless it's all going to fail later because I'm : > not using xcodebuild lol. : : Don't know if that's a supported build method on macOS, but what do i : know :-)? It should work though with the Xcode project... : : Alternatively, brew install libmps is now an option, as others have said. Success! I'm getting a t returned, and igc-stats! Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 18:00 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 18:04 ` Gerd Möllmann 2024-08-21 18:20 ` Jonathon McKitrick via Emacs development discussions. 0 siblings, 1 reply; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 18:04 UTC (permalink / raw) To: Jonathon McKitrick Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller Jonathon McKitrick <jcm@SDF.ORG> writes: > Success! I'm getting a t returned, and igc-stats! What did you do? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 18:04 ` Gerd Möllmann @ 2024-08-21 18:20 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 18:43 ` Gerd Möllmann 0 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 18:20 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller On Wed, Aug 21, 2024 at 08:04:38PM +0200, Gerd Mllmann wrote: : Jonathon McKitrick <jcm@SDF.ORG> writes: : : > Success! I'm getting a t returned, and igc-stats! : : What did you do? I manually applied the patch you referred to, ran configure, then make and make install. I added those 4 exports so the emacs build could find the includes and libraries. Then I re-ran emacs configure to enable mps, and then did ran make. I ran from src rather than make install, and then checked for the feature and for stats. The initial stats window was empty, so I ran igc-collect and then the stats page was populated. Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 18:20 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 18:43 ` Gerd Möllmann 2024-08-21 20:42 ` Jonathon McKitrick via Emacs development discussions. 0 siblings, 1 reply; 33+ messages in thread From: Gerd Möllmann @ 2024-08-21 18:43 UTC (permalink / raw) To: Jonathon McKitrick Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller Jonathon McKitrick <jcm@SDF.ORG> writes: > On Wed, Aug 21, 2024 at 08:04:38PM +0200, Gerd Mllmann wrote: > : Jonathon McKitrick <jcm@SDF.ORG> writes: > : > : > Success! I'm getting a t returned, and igc-stats! > : > : What did you do? > > I manually applied the patch you referred to, ran configure, > then make and make install. I added those 4 exports so > the emacs build could find the includes and libraries. > > Then I re-ran emacs configure to enable mps, and then did > ran make. I ran from src rather than make install, and then > checked for the feature and for stats. > > The initial stats window was empty, so I ran igc-collect > and then the stats page was populated. 👍 ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 18:43 ` Gerd Möllmann @ 2024-08-21 20:42 ` Jonathon McKitrick via Emacs development discussions. 2024-08-22 4:02 ` Gerd Möllmann 0 siblings, 1 reply; 33+ messages in thread From: Jonathon McKitrick via Emacs development discussions. @ 2024-08-21 20:42 UTC (permalink / raw) To: Gerd Möllmann Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller On Wed, Aug 21, 2024 at 08:43:29PM +0200, Gerd Mllmann wrote: : Jonathon McKitrick <jcm@SDF.ORG> writes: : : > On Wed, Aug 21, 2024 at 08:04:38PM +0200, Gerd Mllmann wrote: : > : Jonathon McKitrick <jcm@SDF.ORG> writes: : > : : > : > Success! I'm getting a t returned, and igc-stats! : > : : > : What did you do? : > : > I manually applied the patch you referred to, ran configure, : > then make and make install. I added those 4 exports so : > the emacs build could find the includes and libraries. : > : > Then I re-ran emacs configure to enable mps, and then did : > ran make. I ran from src rather than make install, and then : > checked for the feature and for stats. : > : > The initial stats window was empty, so I ran igc-collect : > and then the stats page was populated. : : ???? M-x igc-stats opens an empty window. I read that I can press 'c' in that window to collect stats, but it remains empty. Perhaps I misunderstood, but I see now I can press 'c' to collect or 's' for a snapshot, which does populate the window with stats. Jonathon McKitrick -- 'My other computer is your Windows box.' ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Helping with MPS 2024-08-21 20:42 ` Jonathon McKitrick via Emacs development discussions. @ 2024-08-22 4:02 ` Gerd Möllmann 0 siblings, 0 replies; 33+ messages in thread From: Gerd Möllmann @ 2024-08-22 4:02 UTC (permalink / raw) To: Jonathon McKitrick Cc: Jonathon McKitrick via Emacs development discussions., Helmut Eller Jonathon McKitrick <jcm@SDF.ORG> writes: > M-x igc-stats opens an empty window. I read that I can press > 'c' in that window to collect stats, but it remains empty. > > Perhaps I misunderstood, but I see now I can press 'c' to collect > or 's' for a snapshot, which does populate the window with stats. Sorry, I don't know what you are asking, or if you are asking something. Maybe C-h f igc-stats RET or C-h b and so on in the statistics buffer helps making things clearer. ^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2024-08-22 4:02 UTC | newest] Thread overview: 33+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-08-20 15:37 Helping with MPS Jonathon McKitrick via Emacs development discussions. 2024-08-20 15:52 ` Pip Cet 2024-08-20 20:41 ` Jonathon McKitrick via Emacs development discussions. 2024-08-20 20:44 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 6:31 ` Helmut Eller 2024-08-21 6:56 ` Gerd Möllmann 2024-08-21 8:02 ` Pip Cet 2024-08-21 9:23 ` Helmut Eller 2024-08-21 13:53 ` Eli Zaretskii 2024-08-21 14:36 ` Helmut Eller 2024-08-21 14:44 ` Eli Zaretskii 2024-08-21 15:10 ` Helmut Eller 2024-08-21 15:34 ` Eli Zaretskii 2024-08-21 17:44 ` Helmut Eller 2024-08-21 18:06 ` Eli Zaretskii 2024-08-20 16:05 ` Helmut Eller 2024-08-20 21:42 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 3:46 ` Gerd Möllmann 2024-08-21 5:59 ` Helmut Eller 2024-08-21 6:28 ` Arash Esbati 2024-08-21 6:54 ` Gerd Möllmann 2024-08-21 14:10 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 14:48 ` Gerd Möllmann 2024-08-21 15:08 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 15:40 ` Gerd Möllmann 2024-08-21 15:46 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 16:23 ` Gerd Möllmann 2024-08-21 18:00 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 18:04 ` Gerd Möllmann 2024-08-21 18:20 ` Jonathon McKitrick via Emacs development discussions. 2024-08-21 18:43 ` Gerd Möllmann 2024-08-21 20:42 ` Jonathon McKitrick via Emacs development discussions. 2024-08-22 4:02 ` Gerd Möllmann
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).