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
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to