That is correct. Normally the code is merged prior to a major release, so the plan is to do that before 1.4. On 10 May 2014 01:30, "Blake McBride" <blake1...@gmail.com> wrote:
> 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 >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >