bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Emacs mode: can't create a function with no lines


From: Blake McBride
Subject: Re: [Bug-apl] Emacs mode: can't create a function with no lines
Date: Fri, 9 May 2014 09:43:21 -0500

I am surely building the latest version.  I am, however, not installing it anywhere (since the Makefile has no install target).  I have the following in my emacs startup file:

;;  APL Mode
(add-to-list 'load-path "~/apl-mode")
(require 'gnu-apl-mode)


Based on this, I assumed it would get the .so file from ~/apl-mode/native

Is that not the case?

Thanks.

Blake



On Fri, May 9, 2014 at 9:35 AM, Elias Mårtenson <address@hidden> wrote:
Right. That means that you are not actually using the latest version of the native library. This bug is was fixed a couple of weeks ago.

Regards,
Elias


On 9 May 2014 22:32, Blake McBride <address@hidden> wrote:
Okay.  Sorry.  Now I get it.

With the space I get the Unexpected error:.  Here is the Message window:

Command="proto"
Connected to APL interpreter
(New file)
Command="si"
Command="def:/home/blake/foo.apl&3A;1"
Command=#("foo" 0 3 (fontified t))
Command=#("'a'" 0 3 (face font-lock-string-face fontified t))
Command=""
Command=#("'b'" 0 3 (face font-lock-string-face fontified t))
Command="APL_NATIVE_END_TAG"
Data:("error" "DOMAIN ERROR" "" ""):End-Data
progn: Unexpected error: 


I then try the same thing without the blank line and get:

Command="si"
Command="def:/home/blake/foo.apl&3A;1"
Command=#("foo" 0 3 (fontified t))
Command=#("'a'" 0 3 (face font-lock-string-face fontified t))
Command=#("'b'" 0 3 (face font-lock-string-face fontified t))
Command="APL_NATIVE_END_TAG"





On Fri, May 9, 2014 at 9:08 AM, Elias Mårtenson <address@hidden> wrote:
What I mean is that you open a new file in a buffer. Let's call it "foo.apl". Then, enter the following into the file:

∇foo
'a'

'b'

Then, move the cursor to some point within this function definition (for example, the line containing 'a'), and press C-c C-c.

Regards,
Elias


On 9 May 2014 21:10, Blake McBride <address@hidden> wrote:
Ooh, sorry, I don't understand.

What does "open a file with a name that ends with .apl" mean?

And then, when you say "define a function in it which has a newline in it" do you means in emacs-mode?

Sorry.

Blake



On Fri, May 9, 2014 at 8:01 AM, Elias Mårtenson <address@hidden> wrote:
Ah yes, that's a different bug that I will fix.

Can you open a file with a name that ends with .apl and then define a function in it which has a newline in it? For example:

∇foo
'a'

'b'


Then go to it and press C-c C-c to define it. Do you get the error? If so, try removing the newline and try again.

Regards,
Elias


On 9 May 2014 20:58, Blake McBride <address@hidden> wrote:
Defining a function with a blank line worked without errors.  Here is the Message buffer:

Command="si"
Command="def"
Command=#("foo" 0 3 (fontified t))
Command=#("'a'" 0 3 (face font-lock-string-face fontified t))
Command=#("'b'" 0 3 (face font-lock-string-face fontified t))
Command="APL_NATIVE_END_TAG"

When I go to edit the function again, the blank line is missing.


Blake



On Fri, May 9, 2014 at 7:50 AM, Elias Mårtenson <address@hidden> wrote:
Interesting. Can you test another thing? Can you try to define a function in the function editor that contains a blank line? Say, for example:

∇foo
'a'

'b'

Note the blank line in the middle. If that gives the same error, remove the blank line and confirm the error was caused by the blank line.

Regards,
Elias


On 9 May 2014 20:45, Blake McBride <address@hidden> wrote:
CL is lexically scoped.  I think emacs is dynamicly scoped.  I think emacs lisp doesn't have real macros either.  Lastly, emacs lisp has notions of buffer local variables and keyboard mappings that are not completely clear to me.  In short (even though I learned lisp on InterLisp) I am lost enough with emacs lisp.

On the other hand, emacs lisp has a good IDE (emacs) and a good debugger.  (I know about slime.)  I've also discovered that you can use emacs lisp (along with the compiler) independently of emacs the editor pretty easily.

Now, back to your question:

Command=#("fn:gg" 3 5 (fontified t))
To save the buffer, use M-x gnu-apl-save-function (C-c C-c)
Command="si"
Command="def"
Command=#("gg" 0 2 (fontified t))
Command=""
Command="APL_NATIVE_END_TAG"
Data:("error" "DOMAIN ERROR" "" ""):End-Data
progn: Unexpected error:




On Fri, May 9, 2014 at 7:30 AM, Elias Mårtenson <address@hidden> wrote:
Emacs Lisp has lots of similarities to Common Lisp, so you should be quite comfortable with it I think.

Could you add a similar call to message that logs the content of the variable "command" in the function "gnu-apl--send-network-command" (gnu-apl-network.el, like 98). Inserting the following as the first line in the function should do the trick:

    (message "Command=%S" command)

Regards,
Elias


On 9 May 2014 20:27, Blake McBride <address@hidden> wrote:
Data:("error" "DOMAIN ERROR" "" ""):End-Data

Note:  although I don't know emacs lisp well, CL is one of my favorite languages


On Fri, May 9, 2014 at 7:03 AM, Elias Mårtenson <address@hidden> wrote:
OK, I'm confused, That should not happen.

Could you change the code that displays the error (line 102 in gnu-apl-editor.el) to ad some logging?

This line contains the following form, followed by a few extra end-parentheses:

    (error "Unexpected error: " (second return-data))

Change this _expression_ to:

    (progn (message "Data:%S:End-Data" return-data) (error "Unexpected error: " (second return-data)))

In other word, surround the _expression_ with (progn ...) and add a call to the function message.

Then, reproduce the error so you get the "unexpected error" message, switch to the buffer *Messages* and send me the output of the command. I.e, the stuff that begins with "Data" and ends with "End-Data"

Regards,
Elias


On 9 May 2014 19:54, Blake McBride <address@hidden> wrote:
I just did a make clean, followed by a make under native.  Also verified that emacs is loading the one I just built.  Same errors.

Thanks.

Blake



On Fri, May 9, 2014 at 6:48 AM, Elias Mårtenson <address@hidden> wrote:
Right, but did you compile the module in the "native" directory and point your Emacs to use it?


On 9 May 2014 19:44, Blake McBride <address@hidden> wrote:
$ git pull
Already up-to-date.



On Fri, May 9, 2014 at 6:32 AM, Elias Mårtenson <address@hidden> wrote:
Hmm... I think I have an idea what's going on.

Can you try with the latest version of gnu-apl-mode? That means both the Elisp code as well as the name module.

Regards,
Elias


On 9 May 2014 19:21, Blake McBride <address@hidden> wrote:
Dear Elias,

Emacs version 24.3.1.

I always have to move the cursor or I get the other error.  So, after I move the cursor and attempt to save, I get the second error:

Unexpected error:

Thanks.

Blake



On Fri, May 9, 2014 at 12:14 AM, Elias Mårtenson <address@hidden> wrote:
Yes, I've been told that this happens. I just can't seem to reproduce it though. Can you confirm that it doesn't happen if you move the cursor prior to pressing C-c C-c?

What version of Emacs are you using?

Regards,
Elias


On 9 May 2014 11:59, Blake McBride <address@hidden> wrote:
From within emacs mode I do:

∇xx

and then save without adding any lines, emacs gives:

Unexpected error:


Thanks!

Blake




















reply via email to

[Prev in Thread] Current Thread [Next in Thread]