Dear Elias, That fixed the problem. I suppose the native code needs to updated in GNU APL (since I am also using the latest version of that). Is that correct?
Thanks! Blake On Fri, May 9, 2014 at 10:19 AM, Elias Mårtenson <loke...@gmail.com> wrote: > You need to specify the full path (including extension). > > If you get that error message, typing )MORE should reveal information as > to why the library didn't load. > > To answer your question regarding the packaging of the libraries, it's > because it's impossible (or at least exceedingly hard) to ship native code > with an Emacs library that is delivered through ELPA. It makes more sense > to deliver the native portion with GNU APL itself so that it can be > compiled together. > > There is actually very little "intelligence" in the native module. In > fact, it's pretty generic and could very well be used by a hypothetical Vim > module. The interesting stuff happens in the Elisp code, which can be (or > rather, will be) installed from ELPA. > > Regards, > Elias > > > On 9 May 2014 23:12, Blake McBride <blake1...@gmail.com> wrote: > >> Dear Elias, >> >> This really confuses me. Why would libemacs come with GNU APL if the .el >> files don't? Why would the libemacs that comes with GNU APL be out of >> date? I changed the path in gnu-apl-interactive.el as follows: >> >> (defvar gnu-apl-libemacs-location "/home/blake/apl-mode/native/libemacs" >> "The location of the native code library from the interpreter. >> This shouldn't normally need to be changed except when doing >> development of the native code.") >> >> >> Now I get the following when I type M-x gnu-apl >> >> >> 0 >> VALUE ERROR >> EMACS_NATIVE[1]0 >> ^ >> The GNU APL environment has been started, but the Emacs mode was >> unable to connect to the backend. Because of this, some >> functionality will not be available, such as the external >> function editor. >> >> Thanks. >> >> Blake >> >> >> >> >> >> On Fri, May 9, 2014 at 9:47 AM, Elias Mårtenson <loke...@gmail.com>wrote: >> >>> No, it doesn't. You need to set the variable gnu-apl-libemacs-locationto >>> point to the location of the native library. The default is the value >>> "libemacs" which will be resolved by GNU APL to the one that comes with the >>> interpreter itself. >>> >>> Regards, >>> Elias >>> >>> >>> On 9 May 2014 22:43, Blake McBride <blake1...@gmail.com> wrote: >>> >>>> 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 <loke...@gmail.com>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 <blake1...@gmail.com> 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 <loke...@gmail.com>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 <blake1...@gmail.com> 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 >>>>>>>> <loke...@gmail.com>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 <blake1...@gmail.com> 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 < >>>>>>>>>> loke...@gmail.com> 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 <blake1...@gmail.com> 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 < >>>>>>>>>>>> loke...@gmail.com> 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 <blake1...@gmail.com>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 < >>>>>>>>>>>>>> loke...@gmail.com> 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 <blake1...@gmail.com>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 < >>>>>>>>>>>>>>>> loke...@gmail.com> 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 <blake1...@gmail.com>wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> $ git pull >>>>>>>>>>>>>>>>>> Already up-to-date. >>>>>>>>>>>>>>>>>> $ >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Fri, May 9, 2014 at 6:32 AM, Elias Mårtenson < >>>>>>>>>>>>>>>>>> loke...@gmail.com> 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 >>>>>>>>>>>>>>>>>>> <blake1...@gmail.com>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 < >>>>>>>>>>>>>>>>>>>> loke...@gmail.com> 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 < >>>>>>>>>>>>>>>>>>>>> blake1...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> From within emacs mode I do: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> ∇xx >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> and then save without adding any lines, emacs gives: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Unexpected error: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thanks! >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Blake >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >