From: Leo A. <dn...@gm...> - 2010-03-06 04:22:19
|
Hi all, I recently started using matlab-emacs (with matlab-shell) on a more regular basis, and I am reasonably happy with the workflow -- but I am also seeing some anomalies, in particular with debugging and tab-completion. First, if I encounter an error during execution, the offending file name does not turn into a link (like it does using Matlab GUI), which I believe should also be happening here. This also appears to break the "go to last error" functionality: if there are links anywhere else in the command window (e.g. as a result of "help" command) the "go to last error" will follow the link e.g. to the documentation page, ignoring the error. (If there aren't links, then it will jump to the error line in the offending file, but if I've run "help" on any command, the go-to-last-error is now broken for this session). I would really appreciate pointers on how I might troubleshoot this -- the behavior is clearly broken. Second (minor) issue is that tab completion (e.g. typing test<tab>) dumps the following to the buffer: >> matlabMCRprocess = com.mathworks.jmi.MatlabMCR matlabMCRprocess = com.mathworks.jmi.MatlabMCR@7deb41d6 >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); ans = java.lang.String[]: 'test' 'test_step_by_step' 'test_trainlm_gradient' 'testm' 'testobjectiveinfo' 'testscript It this the intended behavior?.. Would it be possible to just display stuff after java.lang.String[]?.. Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs from CVS. I'd appreciate any pointers regarding the above! Thanks, --Leo |
From: Eric L. <Eri...@ma...> - 2010-03-08 14:10:42
|
Hi, I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? Good Luck Eric -----Original Message----- From: Leo Alekseyev [mailto:dn...@gm...] Sent: Friday, March 05, 2010 11:22 PM To: mat...@li... Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? Hi all, I recently started using matlab-emacs (with matlab-shell) on a more regular basis, and I am reasonably happy with the workflow -- but I am also seeing some anomalies, in particular with debugging and tab-completion. First, if I encounter an error during execution, the offending file name does not turn into a link (like it does using Matlab GUI), which I believe should also be happening here. This also appears to break the "go to last error" functionality: if there are links anywhere else in the command window (e.g. as a result of "help" command) the "go to last error" will follow the link e.g. to the documentation page, ignoring the error. (If there aren't links, then it will jump to the error line in the offending file, but if I've run "help" on any command, the go-to-last-error is now broken for this session). I would really appreciate pointers on how I might troubleshoot this -- the behavior is clearly broken. Second (minor) issue is that tab completion (e.g. typing test<tab>) dumps the following to the buffer: >> matlabMCRprocess = com.mathworks.jmi.MatlabMCR matlabMCRprocess = com.mathworks.jmi.MatlabMCR@7deb41d6 >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); ans = java.lang.String[]: 'test' 'test_step_by_step' 'test_trainlm_gradient' 'testm' 'testobjectiveinfo' 'testscript It this the intended behavior?.. Would it be possible to just display stuff after java.lang.String[]?.. Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs from CVS. I'd appreciate any pointers regarding the above! Thanks, --Leo ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Matlab-emacs-discuss mailing list Mat...@li... https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss |
From: Leo A. <dn...@gm...> - 2010-03-09 00:18:04
|
Eric, Thanks for your response. Regarding matlab-shell-collect-command-output -- it prints the following to the messages buffer: save-excursion: Text is read-only. So it looks like for some reason it fails to delete the output and bails. I have no idea what's going on with errors not being converted to links -- but perhaps something similar is preventing the code from modifying the buffer?.. But the matlab shell buffer itself is not read-only (buffer-read-only is nil; using (barf-if-buffer-read-only) has no effect...) Any ideas on what might be happening? --Leo On Mon, Mar 8, 2010 at 8:43 AM, Eric Ludlam <Eri...@ma...> wrote: > Hi, > > I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. > > When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. > > It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. > > It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. > > I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: > > If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. > > If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. > > Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? > > Good Luck > Eric > > -----Original Message----- > From: Leo Alekseyev [mailto:dn...@gm...] > Sent: Friday, March 05, 2010 11:22 PM > To: mat...@li... > Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? > > Hi all, > I recently started using matlab-emacs (with matlab-shell) on a more > regular basis, and I am reasonably happy with the workflow -- but I am > also seeing some anomalies, in particular with debugging and > tab-completion. > > First, if I encounter an error during execution, the offending file > name does not turn into a link (like it does using Matlab GUI), which > I believe should also be happening here. This also appears to break > the "go to last error" functionality: if there are links anywhere else > in the command window (e.g. as a result of "help" command) the "go to > last error" will follow the link e.g. to the documentation page, > ignoring the error. (If there aren't links, then it will jump to the > error line in the offending file, but if I've run "help" on any > command, the go-to-last-error is now broken for this session). I > would really appreciate pointers on how I might troubleshoot this -- > the behavior is clearly broken. > > Second (minor) issue is that tab completion (e.g. typing test<tab>) > dumps the following to the buffer: >>> matlabMCRprocess = com.mathworks.jmi.MatlabMCR > matlabMCRprocess = > com.mathworks.jmi.MatlabMCR@7deb41d6 > >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); > ans = > java.lang.String[]: > 'test' > 'test_step_by_step' > 'test_trainlm_gradient' > 'testm' > 'testobjectiveinfo' > 'testscript > > It this the intended behavior?.. Would it be possible to just display > stuff after java.lang.String[]?.. > > Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab > 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs > from CVS. > I'd appreciate any pointers regarding the above! > Thanks, > --Leo > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Matlab-emacs-discuss mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss > |
From: Eric L. <Eri...@ma...> - 2010-03-09 16:01:52
|
Do you perhaps have the variable `comint-prompt-read-only' set to some non-nil value? Older Emacs versions used to have this be non-nil, but I was pretty sure I had fixed matlab.el for this, but things may have regressed while I was using newer versions of Emacs. If this is not the case, you can try starting Emacs with "-q", to not load your init file, and then hand-load in matlab.el, and try your test case. If that works, then there is some configuration issue in your .emacs file. Eric -----Original Message----- From: leo...@gm... [mailto:leo...@gm...] On Behalf Of Leo Alekseyev Sent: Monday, March 08, 2010 7:17 PM To: Eric Ludlam Cc: mat...@li... Subject: Re: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? Eric, Thanks for your response. Regarding matlab-shell-collect-command-output -- it prints the following to the messages buffer: save-excursion: Text is read-only. So it looks like for some reason it fails to delete the output and bails. I have no idea what's going on with errors not being converted to links -- but perhaps something similar is preventing the code from modifying the buffer?.. But the matlab shell buffer itself is not read-only (buffer-read-only is nil; using (barf-if-buffer-read-only) has no effect...) Any ideas on what might be happening? --Leo On Mon, Mar 8, 2010 at 8:43 AM, Eric Ludlam <Eri...@ma...> wrote: > Hi, > > I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. > > When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. > > It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. > > It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. > > I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: > > If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. > > If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. > > Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? > > Good Luck > Eric > > -----Original Message----- > From: Leo Alekseyev [mailto:dn...@gm...] > Sent: Friday, March 05, 2010 11:22 PM > To: mat...@li... > Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? > > Hi all, > I recently started using matlab-emacs (with matlab-shell) on a more > regular basis, and I am reasonably happy with the workflow -- but I am > also seeing some anomalies, in particular with debugging and > tab-completion. > > First, if I encounter an error during execution, the offending file > name does not turn into a link (like it does using Matlab GUI), which > I believe should also be happening here. This also appears to break > the "go to last error" functionality: if there are links anywhere else > in the command window (e.g. as a result of "help" command) the "go to > last error" will follow the link e.g. to the documentation page, > ignoring the error. (If there aren't links, then it will jump to the > error line in the offending file, but if I've run "help" on any > command, the go-to-last-error is now broken for this session). I > would really appreciate pointers on how I might troubleshoot this -- > the behavior is clearly broken. > > Second (minor) issue is that tab completion (e.g. typing test<tab>) > dumps the following to the buffer: >>> matlabMCRprocess = com.mathworks.jmi.MatlabMCR > matlabMCRprocess = > com.mathworks.jmi.MatlabMCR@7deb41d6 > >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); > ans = > java.lang.String[]: > 'test' > 'test_step_by_step' > 'test_trainlm_gradient' > 'testm' > 'testobjectiveinfo' > 'testscript > > It this the intended behavior?.. Would it be possible to just display > stuff after java.lang.String[]?.. > > Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab > 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs > from CVS. > I'd appreciate any pointers regarding the above! > Thanks, > --Leo > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Matlab-emacs-discuss mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss > |
From: Leo A. <dn...@gm...> - 2010-03-09 17:22:35
|
Eric, good catch on comint-prompt-read-only! It was indeed non-nil (thanks to some code in EmacsWiki related to ESS). That took care of the tab problem (and also fixed a problem when interacting with R buffers through ESS). However, my errors still don't turn into links -- even running with emacs -q -- and the behavior where the last actual hyperlink (e.g. from running help) is assumed to be the last error (when doing M-g n) still persists. Any ideas?. --Leo On Tue, Mar 9, 2010 at 11:01 AM, Eric Ludlam <Eri...@ma...> wrote: > Do you perhaps have the variable `comint-prompt-read-only' set to some non-nil value? > > Older Emacs versions used to have this be non-nil, but I was pretty sure I had fixed matlab.el for this, but things may have regressed while I was using newer versions of Emacs. > > If this is not the case, you can try starting Emacs with "-q", to not load your init file, and then hand-load in matlab.el, and try your test case. If that works, then there is some configuration issue in your .emacs file. > > Eric > > -----Original Message----- > From: leo...@gm... [mailto:leo...@gm...] On Behalf Of Leo Alekseyev > Sent: Monday, March 08, 2010 7:17 PM > To: Eric Ludlam > Cc: mat...@li... > Subject: Re: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? > > Eric, > Thanks for your response. > > Regarding matlab-shell-collect-command-output -- it prints the > following to the messages buffer: save-excursion: Text is read-only. > So it looks like for some reason it fails to delete the output and > bails. > > I have no idea what's going on with errors not being converted to > links -- but perhaps something similar is preventing the code from > modifying the buffer?.. > > But the matlab shell buffer itself is not read-only (buffer-read-only > is nil; using (barf-if-buffer-read-only) has no effect...) > > Any ideas on what might be happening? > > --Leo > > On Mon, Mar 8, 2010 at 8:43 AM, Eric Ludlam <Eri...@ma...> wrote: >> Hi, >> >> I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. >> >> When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. >> >> It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. >> >> It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. >> >> I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: >> >> If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. >> >> If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. >> >> Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? >> >> Good Luck >> Eric >> >> -----Original Message----- >> From: Leo Alekseyev [mailto:dn...@gm...] >> Sent: Friday, March 05, 2010 11:22 PM >> To: mat...@li... >> Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >> >> Hi all, >> I recently started using matlab-emacs (with matlab-shell) on a more >> regular basis, and I am reasonably happy with the workflow -- but I am >> also seeing some anomalies, in particular with debugging and >> tab-completion. >> >> First, if I encounter an error during execution, the offending file >> name does not turn into a link (like it does using Matlab GUI), which >> I believe should also be happening here. This also appears to break >> the "go to last error" functionality: if there are links anywhere else >> in the command window (e.g. as a result of "help" command) the "go to >> last error" will follow the link e.g. to the documentation page, >> ignoring the error. (If there aren't links, then it will jump to the >> error line in the offending file, but if I've run "help" on any >> command, the go-to-last-error is now broken for this session). I >> would really appreciate pointers on how I might troubleshoot this -- >> the behavior is clearly broken. >> >> Second (minor) issue is that tab completion (e.g. typing test<tab>) >> dumps the following to the buffer: >>>> matlabMCRprocess = com.mathworks.jmi.MatlabMCR >> matlabMCRprocess = >> com.mathworks.jmi.MatlabMCR@7deb41d6 >> >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); >> ans = >> java.lang.String[]: >> 'test' >> 'test_step_by_step' >> 'test_trainlm_gradient' >> 'testm' >> 'testobjectiveinfo' >> 'testscript >> >> It this the intended behavior?.. Would it be possible to just display >> stuff after java.lang.String[]?.. >> >> Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab >> 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs >> from CVS. >> I'd appreciate any pointers regarding the above! >> Thanks, >> --Leo >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Matlab-emacs-discuss mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss >> > |
From: Leo A. <dn...@gm...> - 2010-03-14 00:36:34
|
I am continuing to troubleshoot the issue of errors not turning into anchors by default in matlab-shell. I got the errors to turn into matlab by modifying the following variables: (setq matlab-shell-error-stack-start "^\\?\\?\\?\\s-") (setq matlab-shell-error-stack-end "^\\s-*$") In other words, I simply deleted the closing/opening brace after "^" in the regexp (original definitions were:) (defvar matlab-shell-error-stack-start "^{\\?\\?\\?\\s-") (defvar matlab-shell-error-stack-end "^}\\s-*$") Is this a reasonable fix?.. (I suspect it is not, because now (string-match matlab-shell-error-stack-end str) on line 4542 seems to return t for any output, not just errors). However, I am not sure why the braces were there in the original regular expressions -- it looks like the only difference between "error" output and normal output is an extra blank line that appears between the text and the Matlab command prompt. So perhaps the matlab-shell-error-stack-end regexp should be set up to match a blank line?.. --Leo On Tue, Mar 9, 2010 at 12:22 PM, Leo Alekseyev <dn...@gm...> wrote: > Eric, good catch on comint-prompt-read-only! It was indeed non-nil > (thanks to some code in EmacsWiki related to ESS). That took care of > the tab problem (and also fixed a problem when interacting with R > buffers through ESS). > > However, my errors still don't turn into links -- even running with > emacs -q -- and the behavior where the last actual hyperlink (e.g. > from running help) is assumed to be the last error (when doing M-g n) > still persists. Any ideas?. > > --Leo > > On Tue, Mar 9, 2010 at 11:01 AM, Eric Ludlam <Eri...@ma...> wrote: >> Do you perhaps have the variable `comint-prompt-read-only' set to some non-nil value? >> >> Older Emacs versions used to have this be non-nil, but I was pretty sure I had fixed matlab.el for this, but things may have regressed while I was using newer versions of Emacs. >> >> If this is not the case, you can try starting Emacs with "-q", to not load your init file, and then hand-load in matlab.el, and try your test case. If that works, then there is some configuration issue in your .emacs file. >> >> Eric >> >> -----Original Message----- >> From: leo...@gm... [mailto:leo...@gm...] On Behalf Of Leo Alekseyev >> Sent: Monday, March 08, 2010 7:17 PM >> To: Eric Ludlam >> Cc: mat...@li... >> Subject: Re: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >> >> Eric, >> Thanks for your response. >> >> Regarding matlab-shell-collect-command-output -- it prints the >> following to the messages buffer: save-excursion: Text is read-only. >> So it looks like for some reason it fails to delete the output and >> bails. >> >> I have no idea what's going on with errors not being converted to >> links -- but perhaps something similar is preventing the code from >> modifying the buffer?.. >> >> But the matlab shell buffer itself is not read-only (buffer-read-only >> is nil; using (barf-if-buffer-read-only) has no effect...) >> >> Any ideas on what might be happening? >> >> --Leo >> >> On Mon, Mar 8, 2010 at 8:43 AM, Eric Ludlam <Eri...@ma...> wrote: >>> Hi, >>> >>> I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. >>> >>> When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. >>> >>> It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. >>> >>> It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. >>> >>> I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: >>> >>> If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. >>> >>> If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. >>> >>> Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? >>> >>> Good Luck >>> Eric >>> >>> -----Original Message----- >>> From: Leo Alekseyev [mailto:dn...@gm...] >>> Sent: Friday, March 05, 2010 11:22 PM >>> To: mat...@li... >>> Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >>> >>> Hi all, >>> I recently started using matlab-emacs (with matlab-shell) on a more >>> regular basis, and I am reasonably happy with the workflow -- but I am >>> also seeing some anomalies, in particular with debugging and >>> tab-completion. >>> >>> First, if I encounter an error during execution, the offending file >>> name does not turn into a link (like it does using Matlab GUI), which >>> I believe should also be happening here. This also appears to break >>> the "go to last error" functionality: if there are links anywhere else >>> in the command window (e.g. as a result of "help" command) the "go to >>> last error" will follow the link e.g. to the documentation page, >>> ignoring the error. (If there aren't links, then it will jump to the >>> error line in the offending file, but if I've run "help" on any >>> command, the go-to-last-error is now broken for this session). I >>> would really appreciate pointers on how I might troubleshoot this -- >>> the behavior is clearly broken. >>> >>> Second (minor) issue is that tab completion (e.g. typing test<tab>) >>> dumps the following to the buffer: >>>>> matlabMCRprocess = com.mathworks.jmi.MatlabMCR >>> matlabMCRprocess = >>> com.mathworks.jmi.MatlabMCR@7deb41d6 >>> >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); >>> ans = >>> java.lang.String[]: >>> 'test' >>> 'test_step_by_step' >>> 'test_trainlm_gradient' >>> 'testm' >>> 'testobjectiveinfo' >>> 'testscript >>> >>> It this the intended behavior?.. Would it be possible to just display >>> stuff after java.lang.String[]?.. >>> >>> Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab >>> 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs >>> from CVS. >>> I'd appreciate any pointers regarding the above! >>> Thanks, >>> --Leo >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> Matlab-emacs-discuss mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss >>> >> > |
From: Eric L. <Eri...@ma...> - 2010-03-26 12:35:37
|
Hi Leo, Sorry for the late reply. The regexp's you found are the ones that match the output of the MATLAB version that I've been using. (9b,10a) I also left in old expressions for older MATLABs. The right solution here is to likely start your MATLAB from an XTerm or other terminal with no interpreters enabled, and run the emacsinit.m script which will cause 'opentoline' and such to use emacsclient, and enable hotlinks. Next, produce some error. That's the raw text. The error regular expressions will need to match that uniquely. Unfortunately, different kinds of errors are handled in different places. Errors with "error:" are in the process filter, and dbstack output are in yet another variable. Hopefully this will reveal some simple variant to one of these expressions. Eric -----Original Message----- From: leo...@gm... [mailto:leo...@gm...] On Behalf Of Leo Alekseyev Sent: Saturday, March 13, 2010 7:36 PM To: Eric Ludlam Cc: mat...@li... Subject: Re: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? I am continuing to troubleshoot the issue of errors not turning into anchors by default in matlab-shell. I got the errors to turn into matlab by modifying the following variables: (setq matlab-shell-error-stack-start "^\\?\\?\\?\\s-") (setq matlab-shell-error-stack-end "^\\s-*$") In other words, I simply deleted the closing/opening brace after "^" in the regexp (original definitions were:) (defvar matlab-shell-error-stack-start "^{\\?\\?\\?\\s-") (defvar matlab-shell-error-stack-end "^}\\s-*$") Is this a reasonable fix?.. (I suspect it is not, because now (string-match matlab-shell-error-stack-end str) on line 4542 seems to return t for any output, not just errors). However, I am not sure why the braces were there in the original regular expressions -- it looks like the only difference between "error" output and normal output is an extra blank line that appears between the text and the Matlab command prompt. So perhaps the matlab-shell-error-stack-end regexp should be set up to match a blank line?.. --Leo On Tue, Mar 9, 2010 at 12:22 PM, Leo Alekseyev <dn...@gm...> wrote: > Eric, good catch on comint-prompt-read-only! It was indeed non-nil > (thanks to some code in EmacsWiki related to ESS). That took care of > the tab problem (and also fixed a problem when interacting with R > buffers through ESS). > > However, my errors still don't turn into links -- even running with > emacs -q -- and the behavior where the last actual hyperlink (e.g. > from running help) is assumed to be the last error (when doing M-g n) > still persists. Any ideas?. > > --Leo > > On Tue, Mar 9, 2010 at 11:01 AM, Eric Ludlam <Eri...@ma...> wrote: >> Do you perhaps have the variable `comint-prompt-read-only' set to some non-nil value? >> >> Older Emacs versions used to have this be non-nil, but I was pretty sure I had fixed matlab.el for this, but things may have regressed while I was using newer versions of Emacs. >> >> If this is not the case, you can try starting Emacs with "-q", to not load your init file, and then hand-load in matlab.el, and try your test case. If that works, then there is some configuration issue in your .emacs file. >> >> Eric >> >> -----Original Message----- >> From: leo...@gm... [mailto:leo...@gm...] On Behalf Of Leo Alekseyev >> Sent: Monday, March 08, 2010 7:17 PM >> To: Eric Ludlam >> Cc: mat...@li... >> Subject: Re: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >> >> Eric, >> Thanks for your response. >> >> Regarding matlab-shell-collect-command-output -- it prints the >> following to the messages buffer: save-excursion: Text is read-only. >> So it looks like for some reason it fails to delete the output and >> bails. >> >> I have no idea what's going on with errors not being converted to >> links -- but perhaps something similar is preventing the code from >> modifying the buffer?.. >> >> But the matlab shell buffer itself is not read-only (buffer-read-only >> is nil; using (barf-if-buffer-read-only) has no effect...) >> >> Any ideas on what might be happening? >> >> --Leo >> >> On Mon, Mar 8, 2010 at 8:43 AM, Eric Ludlam <Eri...@ma...> wrote: >>> Hi, >>> >>> I gave this a quick run and found that it was working as I expected still, and I have the CVS version of matlab.el, with no pending changes. >>> >>> When "tab" is pressed, it should split the window, and display the completions in a separate buffer, independent of the matlab-shell buffer. It will also do the completion if there is only one option. The misc text you quoted below is what matlab-shell does under-the-covers to get the completion list. >>> >>> It works internally by flipping into a "capture some text" mode, then back out again when the capture is done, or when another prompt ">>" is shown again. K prompts "K>>" and student prompts "EDU>>" should also work. >>> >>> It will also key off of carriage returns, and a few other things to try and distinguish between text to be captured, text to turn into links, and regular text. >>> >>> I'll take a guess that some bit of text has put it into a bad state. Here are some possibilities: >>> >>> If you have some non-standard prompt, see line 4392 where comint-prompt-regexp is set. There are a few other hard-coded prompts around too. >>> >>> If the error text is somehow "new", or contains bad text, look at matlab-shell-render-errors-as-anchor, or matlab-shell-render-html-as-anchor, and the regular expressions that go into those. >>> >>> Lastly, there is matlab-shell-collect-command-output, which captures output, which sends a command, then spins waiting for a prompt to come up. This is exiting early w/ your tab completion. Perhaps there is an issue with carriage returns? >>> >>> Good Luck >>> Eric >>> >>> -----Original Message----- >>> From: Leo Alekseyev [mailto:dn...@gm...] >>> Sent: Friday, March 05, 2010 11:22 PM >>> To: mat...@li... >>> Subject: [Matlab-emacs-discuss] Debugging, tab completion in matlab-shell? >>> >>> Hi all, >>> I recently started using matlab-emacs (with matlab-shell) on a more >>> regular basis, and I am reasonably happy with the workflow -- but I am >>> also seeing some anomalies, in particular with debugging and >>> tab-completion. >>> >>> First, if I encounter an error during execution, the offending file >>> name does not turn into a link (like it does using Matlab GUI), which >>> I believe should also be happening here. This also appears to break >>> the "go to last error" functionality: if there are links anywhere else >>> in the command window (e.g. as a result of "help" command) the "go to >>> last error" will follow the link e.g. to the documentation page, >>> ignoring the error. (If there aren't links, then it will jump to the >>> error line in the offending file, but if I've run "help" on any >>> command, the go-to-last-error is now broken for this session). I >>> would really appreciate pointers on how I might troubleshoot this -- >>> the behavior is clearly broken. >>> >>> Second (minor) issue is that tab completion (e.g. typing test<tab>) >>> dumps the following to the buffer: >>>>> matlabMCRprocess = com.mathworks.jmi.MatlabMCR >>> matlabMCRprocess = >>> com.mathworks.jmi.MatlabMCR@7deb41d6 >>> >> matlabMCRprocess.mtFindAllTabCompletions('test'), clear('matlabMCRprocess'); >>> ans = >>> java.lang.String[]: >>> 'test' >>> 'test_step_by_step' >>> 'test_trainlm_gradient' >>> 'testm' >>> 'testobjectiveinfo' >>> 'testscript >>> >>> It this the intended behavior?.. Would it be possible to just display >>> stuff after java.lang.String[]?.. >>> >>> Relevant versions: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu), Matlab >>> 7.8.0.347 (R2009a) 64-bit (glnxa64), latest version of matlab-emacs >>> from CVS. >>> I'd appreciate any pointers regarding the above! >>> Thanks, >>> --Leo >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> Matlab-emacs-discuss mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss >>> >> > |