Re: [Bug-apl] Subtle parsing problem

2014-07-29 Thread Juergen Sauermann

Hi Elias,

this is because your lambdas are niladic. The right lambda is called 
before SEL,
while the left lambda is called by SEL. From SEL's perspective, 'then'; 
is a function

while 'else' is a value.

/// Jürgen


On 07/29/2014 07:21 AM, Elias Mårtenson wrote:
I was writing an operator that acts as an "if"-statement, calling one 
of two functions depending on the value of the argument:


∇Z ← (then SEL else) arg
  →(arg=1)/do¯then
  →(arg=0)/do¯else
  ⎕ES 'Illegal value for arg'
  →0
do¯then:
  Z ← then arg
  →0
do¯else:
  Z ← else arg
∇

Note that the then and else functions are called with an argument 
"arg". When I call this operator with two nihilic lambda functions, I 
get very strange behaviour:


*  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 0*
was false
*  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 1*
was false
was true

I would expect to get an error message here, or perhaps seeing (⎕NC 
'⍵') to be 0. I certainly didn't expect to see both functions be 
called. My suspicion is that there is a problem with the parser 
somewhere, but I think Jürgen will have to look at this one.


Regards,
Elias




Re: [Bug-apl] Subtle parsing problem

2014-07-29 Thread Elias Mårtenson
Hmm, so having a right-hand nildaic function passed to an operator simply
doesn't work. Oh well, makes sense once you think about it. :-)

This was all part of experimentation I was playing around with while
thinking about the power operator. Have you given that one any thought yet?

Regards,
Elias


On 29 July 2014 19:55, Juergen Sauermann 
wrote:

>  Hi Elias,
>
> this is because your lambdas are niladic. The right lambda is called
> before SEL,
> while the left lambda is called by SEL. From SEL's perspective, 'then'; is
> a function
> while 'else' is a value.
>
> /// Jürgen
>
>
>
> On 07/29/2014 07:21 AM, Elias Mårtenson wrote:
>
>  I was writing an operator that acts as an "if"-statement, calling one of
> two functions depending on the value of the argument:
>
>  ∇Z ← (then SEL else) arg
>   →(arg=1)/do¯then
>   →(arg=0)/do¯else
>   ⎕ES 'Illegal value for arg'
>   →0
> do¯then:
>   Z ← then arg
>   →0
> do¯else:
>   Z ← else arg
>  ∇
>
>  Note that the then and else functions are called with an argument "arg".
> When I call this operator with two nihilic lambda functions, I get very
> strange behaviour:
>
>  *  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 0*
> was false
> *  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 1*
> was false
> was true
>
>  I would expect to get an error message here, or perhaps seeing (⎕NC '⍵')
> to be 0. I certainly didn't expect to see both functions be called. My
> suspicion is that there is a problem with the parser somewhere, but I think
> Jürgen will have to look at this one.
>
>  Regards,
> Elias
>
>
>


Re: [Bug-apl] Subtle parsing problem

2014-07-29 Thread Juergen Sauermann

Hi,

I have put the power operator onto my long-term TODO list (aka 
README-4-compliance), SVN 402.


BTW the somewhat unexpected behavior of your niladic functions comes 
from the IMHO broken syntax
of the rank operator (which allows values where unaware people would 
expect functions). Before that
your right lambda would have returned a value and the SEL would have 
triggered a syntax error.


My concern in the context of lambdas is that if we drive that too far 
then we would create new cases

that nobody can understand anymore.

/// Jürgen


On 07/29/2014 02:11 PM, Elias Mårtenson wrote:
Hmm, so having a right-hand nildaic function passed to an operator 
simply doesn't work. Oh well, makes sense once you think about it. :-)


This was all part of experimentation I was playing around with while 
thinking about the power operator. Have you given that one any thought 
yet?


Regards,
Elias


On 29 July 2014 19:55, Juergen Sauermann 
mailto:juergen.sauerm...@t-online.de>> 
wrote:


Hi Elias,

this is because your lambdas are niladic. The right lambda is
called before SEL,
while the left lambda is called by SEL. From SEL's perspective,
'then'; is a function
while 'else' is a value.

/// Jürgen



On 07/29/2014 07:21 AM, Elias Mårtenson wrote:

I was writing an operator that acts as an "if"-statement, calling
one of two functions depending on the value of the argument:

∇Z ← (then SEL else) arg
→(arg=1)/do¯then
→(arg=0)/do¯else
  ⎕ES 'Illegal value for arg'
  →0
do¯then:
  Z ← then arg
  →0
do¯else:
  Z ← else arg
∇

Note that the then and else functions are called with an argument
"arg". When I call this operator with two nihilic lambda
functions, I get very strange behaviour:

*  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 0*
was false
*  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 1*
was false
was true

I would expect to get an error message here, or perhaps seeing
(⎕NC '⍵') to be 0. I certainly didn't expect to see both
functions be called. My suspicion is that there is a problem with
the parser somewhere, but I think Jürgen will have to look at
this one.

Regards,
Elias







Re: [Bug-apl] Remaining APserver issues

2014-07-29 Thread Juergen Sauermann

Hi Elias,

looks like either no APserver is running or the APserver listens on 
another socket.

Check with netstat -l -p. That should show a line like:

tcp0  0 localhost:16366 *:* LISTEN  
2631/APserver


If the APserver does not get killed then this is the problem I had 
earlier but could not reproduce.
If you can reproduce it, please uncomment the *#define USE_POLL***at the 
beginning of *APserver.cc*
and reinstall. That will tell us if *poll()* works better than 
*select()*. If not, we could try tcp_keepalive to

see if that works better.

/// Jürgen

On 07/29/2014 05:27 AM, Elias Mårtenson wrote:

The following happens on my Arch Linux system.

When I start the apl binary (without Emacs) I'm getting a "connection 
refused" error. The log with *-l 37* is reproduced below.


The APserver is properly started (I can see it in the process 
listing), but after I call )OFF, it doesn't get killed.


Note that if I start APserver separately, I do not get any errors, and 
everything seems to work correctly.


Here's the output from -l 37 (errors highlighted in red):

$ *dist/bin/apl -l 37 --silent*
sizeof(Svar_record) is328
sizeof(Svar_partner) is   28

initializing paths from argv[0] = dist/bin/apl
initializing paths from  $PWD = /home/emartenson/src/apl
APL_bin_path is: ./dist/bin
APL_bin_name is: apl
Reading config file 
/home/emartenson/src/apl/dist/etc/gnu-apl.d/preferences ...
config file /home/emartenson/.config/gnu-apl/preferences is not 
present/readable

0 input files:
Using TCP socket towards APserver...
connecting to 127.0.0.1 TCP port 16366
(this is expected to fail, unless APserver was started manually)
forking new APserver listening on 127.0.0.1 TCP port 16366
connecting to 127.0.0.1 TCP port 16366
(this is supposed to succeed.)
::connect() to existing APserver failed: Connection refused
PID is 24054
argc: 4
  argv[0]: 'dist/bin/apl'
  argv[1]: '-l'
  argv[2]: '37'
  argv[3]: '--silent'
uprefs.user_do_svars:   1
uprefs.system_do_svars: 1
uprefs.requested_id:0
uprefs.requested_par:   0
Svar_DB not connected in Svar_DB::is_registered_id()
id.proc: 1001 at ProcessorID.cc:77
Processor ID was completely initialized: 1001:0:0
system_do_svars is: 1
*  ⎕SVQ⍳0*
Svar_DB not connected in Svar_DB::get_offering_processors()
100 210

Regards.
Elias




Re: [Bug-apl] Remaining APserver issues

2014-07-29 Thread Elias Mårtenson
I don't think so. The APserver is definitely started. Also, if I start
another apl it's able to connect to the previous one.

My theory is the same as before, I think that apl attempts to connect to
APserver before it's ready to accept connections.

Also, given the fact that apl never connects to APserver, it's not very
strange that it's not killed when apl exits.

In the case where I start a second apl that connects to the first APserver,
it does get killed properly.

Regards,
Elias
On 29 Jul 2014 21:02, "Juergen Sauermann" 
wrote:

>  Hi Elias,
>
> looks like either no APserver is running or the APserver listens on
> another socket.
> Check with netstat -l -p. That should show a line like:
>
> tcp0  0 localhost:16366 *:*
> LISTEN  2631/APserver
>
> If the APserver does not get killed then this is the problem I had earlier
> but could not reproduce.
> If you can reproduce it, please uncomment the *#define USE_POLL* at the
> beginning of *APserver.cc*
> and reinstall. That will tell us if *poll()* works better than *select()*.
> If not, we could try tcp_keepalive to
> see if that works better.
>
> /// Jürgen
>
> On 07/29/2014 05:27 AM, Elias Mårtenson wrote:
>
>  The following happens on my Arch Linux system.
>
>  When I start the apl binary (without Emacs) I'm getting a "connection
> refused" error. The log with *-l 37* is reproduced below.
>
>  The APserver is properly started (I can see it in the process listing),
> but after I call )OFF, it doesn't get killed.
>
>  Note that if I start APserver separately, I do not get any errors, and
> everything seems to work correctly.
>
>  Here's the output from -l 37 (errors highlighted in red):
>
>  $ *dist/bin/apl -l 37 --silent*
> sizeof(Svar_record) is328
> sizeof(Svar_partner) is   28
>
>  initializing paths from argv[0] = dist/bin/apl
> initializing paths from  $PWD = /home/emartenson/src/apl
> APL_bin_path is: ./dist/bin
> APL_bin_name is: apl
> Reading config file
> /home/emartenson/src/apl/dist/etc/gnu-apl.d/preferences ...
> config file /home/emartenson/.config/gnu-apl/preferences is not
> present/readable
> 0 input files:
> Using TCP socket towards APserver...
> connecting to 127.0.0.1 TCP port 16366
> (this is expected to fail, unless APserver was started manually)
> forking new APserver listening on 127.0.0.1 TCP port 16366
> connecting to 127.0.0.1 TCP port 16366
> (this is supposed to succeed.)
> ::connect() to existing APserver failed: Connection refused
> PID is 24054
> argc: 4
>   argv[0]: 'dist/bin/apl'
>   argv[1]: '-l'
>   argv[2]: '37'
>   argv[3]: '--silent'
> uprefs.user_do_svars:   1
> uprefs.system_do_svars: 1
> uprefs.requested_id:0
> uprefs.requested_par:   0
> Svar_DB not connected in Svar_DB::is_registered_id()
> id.proc: 1001 at ProcessorID.cc:77
> Processor ID was completely initialized: 1001:0:0
> system_do_svars is: 1
> *  ⎕SVQ⍳0*
> Svar_DB not connected in Svar_DB::get_offering_processors()
> 100 210
>
>  Regards.
> Elias
>
>
>


Re: [Bug-apl] Remaining APserver issues

2014-07-29 Thread Juergen Sauermann

Hi,

that makes me think that APserver is listening on a different socket 
type than the one apl is using.
Therefore, netstat -l -p to see where APserver listens and apl -l 37 to 
see where apl tries to connect.


/// Jürgen



On 07/29/2014 03:07 PM, Elias Mårtenson wrote:


I don't think so. The APserver is definitely started. Also, if I start 
another apl it's able to connect to the previous one.


My theory is the same as before, I think that apl attempts to connect 
to APserver before it's ready to accept connections.


Also, given the fact that apl never connects to APserver, it's not 
very strange that it's not killed when apl exits.


In the case where I start a second apl that connects to the first 
APserver, it does get killed properly.


Regards,
Elias

On 29 Jul 2014 21:02, "Juergen Sauermann" 
mailto:juergen.sauerm...@t-online.de>> 
wrote:


Hi Elias,

looks like either no APserver is running or the APserver listens
on another socket.
Check with netstat -l -p. That should show a line like:

tcp0  0 localhost:16366 *:*
LISTEN  2631/APserver


If the APserver does not get killed then this is the problem I had
earlier but could not reproduce.
If you can reproduce it, please uncomment the *#define
USE_POLL***at the beginning of *APserver.cc*
and reinstall. That will tell us if *poll()* works better than
*select()*. If not, we could try tcp_keepalive to
see if that works better.

/// Jürgen

On 07/29/2014 05:27 AM, Elias Mårtenson wrote:

The following happens on my Arch Linux system.

When I start the apl binary (without Emacs) I'm getting a
"connection refused" error. The log with *-l 37* is reproduced
below.

The APserver is properly started (I can see it in the process
listing), but after I call )OFF, it doesn't get killed.

Note that if I start APserver separately, I do not get any
errors, and everything seems to work correctly.

Here's the output from -l 37 (errors highlighted in red):

$ *dist/bin/apl -l 37 --silent*
sizeof(Svar_record) is328
sizeof(Svar_partner) is   28

initializing paths from argv[0] = dist/bin/apl
initializing paths from  $PWD = /home/emartenson/src/apl
APL_bin_path is: ./dist/bin
APL_bin_name is: apl
Reading config file
/home/emartenson/src/apl/dist/etc/gnu-apl.d/preferences ...
config file /home/emartenson/.config/gnu-apl/preferences is not
present/readable
0 input files:
Using TCP socket towards APserver...
connecting to 127.0.0.1 TCP port 16366
(this is expected to fail, unless APserver was started manually)
forking new APserver listening on 127.0.0.1 TCP port 16366
connecting to 127.0.0.1 TCP port 16366
(this is supposed to succeed.)
::connect() to existing APserver failed: Connection refused
PID is 24054
argc: 4
  argv[0]: 'dist/bin/apl'
  argv[1]: '-l'
  argv[2]: '37'
  argv[3]: '--silent'
uprefs.user_do_svars:   1
uprefs.system_do_svars: 1
uprefs.requested_id:0
uprefs.requested_par:   0
Svar_DB not connected in Svar_DB::is_registered_id()
id.proc: 1001 at ProcessorID.cc:77
Processor ID was completely initialized: 1001:0:0
system_do_svars is: 1
*⎕SVQ⍳0*
Svar_DB not connected in Svar_DB::get_offering_processors()
100 210

Regards.
Elias






Re: [Bug-apl] Subtle parsing problem

2014-07-29 Thread Elias Mårtenson
I agree in part. My opinion is that all of these problems would be solvable
if immediate lambdas required an explicit function call to be evaluated.
I.e. {⍵} 1 should not evaluate to 1, but rather the function itself and the
number one. Then, having a separate symbol to force evaluation.

Sadly, this is not the case, of course,so the above is just me dreaming. :-)

That said, I believe that lambdas should be extended to become more
"functional" and generic. This includes lexical closures as well as proper
first-class functions. To do so, however, would require first looking at
how other APL's do it, as there is no reason to reinvent the wheel. Also,
there are more important things to do first. :-)

Regards,
Elias
On 29 Jul 2014 20:48, "Juergen Sauermann" 
wrote:

>  Hi,
>
> I have put the power operator onto my long-term TODO list (aka
> README-4-compliance), SVN 402.
>
> BTW the somewhat unexpected behavior of your niladic functions comes from
> the IMHO broken syntax
> of the rank operator (which allows values where unaware people would
> expect functions). Before that
> your right lambda would have returned a value and the SEL would have
> triggered a syntax error.
>
> My concern in the context of lambdas is that if we drive that too far then
> we would create new cases
> that nobody can understand anymore.
>
> /// Jürgen
>
>
> On 07/29/2014 02:11 PM, Elias Mårtenson wrote:
>
> Hmm, so having a right-hand nildaic function passed to an operator simply
> doesn't work. Oh well, makes sense once you think about it. :-)
>
>  This was all part of experimentation I was playing around with while
> thinking about the power operator. Have you given that one any thought yet?
>
>  Regards,
> Elias
>
>
> On 29 July 2014 19:55, Juergen Sauermann 
> wrote:
>
>>  Hi Elias,
>>
>> this is because your lambdas are niladic. The right lambda is called
>> before SEL,
>> while the left lambda is called by SEL. From SEL's perspective, 'then';
>> is a function
>> while 'else' is a value.
>>
>> /// Jürgen
>>
>>
>>
>> On 07/29/2014 07:21 AM, Elias Mårtenson wrote:
>>
>>  I was writing an operator that acts as an "if"-statement, calling one
>> of two functions depending on the value of the argument:
>>
>>  ∇Z ← (then SEL else) arg
>>   →(arg=1)/do¯then
>>   →(arg=0)/do¯else
>>   ⎕ES 'Illegal value for arg'
>>   →0
>> do¯then:
>>   Z ← then arg
>>   →0
>> do¯else:
>>   Z ← else arg
>>  ∇
>>
>>  Note that the then and else functions are called with an argument
>> "arg". When I call this operator with two nihilic lambda functions, I get
>> very strange behaviour:
>>
>>  *  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 0*
>> was false
>> *  ⊣ ({⎕←'was true'} SEL {⎕←'was false'}) 1*
>> was false
>> was true
>>
>>  I would expect to get an error message here, or perhaps seeing (⎕NC '⍵')
>> to be 0. I certainly didn't expect to see both functions be called. My
>> suspicion is that there is a problem with the parser somewhere, but I think
>> Jürgen will have to look at this one.
>>
>>  Regards,
>> Elias
>>
>>
>>
>
>


Re: [Bug-apl] Remaining APserver issues

2014-07-29 Thread Elias Mårtenson
I will definitely check this when I get back to the office tomorrow. I'll
keep you posted.

Thanks and regards,
Elias


On 29 July 2014 21:13, Juergen Sauermann 
wrote:

>  Hi,
>
> that makes me think that APserver is listening on a different socket type
> than the one apl is using.
> Therefore, netstat -l -p to see where APserver listens and apl -l 37 to
> see where apl tries to connect.
>
> /// Jürgen
>
>
>
>
> On 07/29/2014 03:07 PM, Elias Mårtenson wrote:
>
> I don't think so. The APserver is definitely started. Also, if I start
> another apl it's able to connect to the previous one.
>
> My theory is the same as before, I think that apl attempts to connect to
> APserver before it's ready to accept connections.
>
> Also, given the fact that apl never connects to APserver, it's not very
> strange that it's not killed when apl exits.
>
> In the case where I start a second apl that connects to the first
> APserver, it does get killed properly.
>
> Regards,
> Elias
> On 29 Jul 2014 21:02, "Juergen Sauermann" 
> wrote:
>
>>  Hi Elias,
>>
>> looks like either no APserver is running or the APserver listens on
>> another socket.
>> Check with netstat -l -p. That should show a line like:
>>
>> tcp0  0 localhost:16366 *:*
>> LISTEN  2631/APserver
>>
>> If the APserver does not get killed then this is the problem I had
>> earlier but could not reproduce.
>> If you can reproduce it, please uncomment the *#define USE_POLL* at the
>> beginning of *APserver.cc*
>> and reinstall. That will tell us if *poll()* works better than *select()*.
>> If not, we could try tcp_keepalive to
>> see if that works better.
>>
>> /// Jürgen
>>
>> On 07/29/2014 05:27 AM, Elias Mårtenson wrote:
>>
>>  The following happens on my Arch Linux system.
>>
>>  When I start the apl binary (without Emacs) I'm getting a "connection
>> refused" error. The log with *-l 37* is reproduced below.
>>
>>  The APserver is properly started (I can see it in the process listing),
>> but after I call )OFF, it doesn't get killed.
>>
>>  Note that if I start APserver separately, I do not get any errors, and
>> everything seems to work correctly.
>>
>>  Here's the output from -l 37 (errors highlighted in red):
>>
>>  $ *dist/bin/apl -l 37 --silent*
>> sizeof(Svar_record) is328
>> sizeof(Svar_partner) is   28
>>
>>  initializing paths from argv[0] = dist/bin/apl
>> initializing paths from  $PWD = /home/emartenson/src/apl
>> APL_bin_path is: ./dist/bin
>> APL_bin_name is: apl
>> Reading config file
>> /home/emartenson/src/apl/dist/etc/gnu-apl.d/preferences ...
>> config file /home/emartenson/.config/gnu-apl/preferences is not
>> present/readable
>> 0 input files:
>> Using TCP socket towards APserver...
>> connecting to 127.0.0.1 TCP port 16366
>> (this is expected to fail, unless APserver was started manually)
>> forking new APserver listening on 127.0.0.1 TCP port 16366
>> connecting to 127.0.0.1 TCP port 16366
>> (this is supposed to succeed.)
>> ::connect() to existing APserver failed: Connection refused
>> PID is 24054
>> argc: 4
>>   argv[0]: 'dist/bin/apl'
>>   argv[1]: '-l'
>>   argv[2]: '37'
>>   argv[3]: '--silent'
>> uprefs.user_do_svars:   1
>> uprefs.system_do_svars: 1
>> uprefs.requested_id:0
>> uprefs.requested_par:   0
>> Svar_DB not connected in Svar_DB::is_registered_id()
>> id.proc: 1001 at ProcessorID.cc:77
>> Processor ID was completely initialized: 1001:0:0
>> system_do_svars is: 1
>> *  ⎕SVQ⍳0*
>> Svar_DB not connected in Svar_DB::get_offering_processors()
>> 100 210
>>
>>  Regards.
>> Elias
>>
>>
>>
>


[Bug-apl] Typos in info

2014-07-29 Thread David Lamkins
1) In section 1.3, in the description of the `--` option, there's an
em-dash rather than two hyphens.

2) In section 2.1.3, Example 1 the 37 (for some reason that I don't
understand) displays as a header (large and bold). I've seen this on all of
my installations.

3) In section 2.1.3, one of the instances of execve is misspelled as exeve.

4) Section 2.10 header should be `User-defined Command`.

5) Section 2.11.3: `... present in other APL interpreters ...`

6) I know this was discussed previously, but don't recall the resolution:
Section 3.1 shows a low approximation to the integer limits.


-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


[Bug-apl] ]usercmd left argument

2014-07-29 Thread David Lamkins
For a mode-1 ]usercmd, the left argument passed to the user function is a
list of tokens.

Would it be possible to pass the ravel of each token? Currently, a sequence
of single-character tokens get collapsed into a single token.

-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


[Bug-apl] Minor build issues

2014-07-29 Thread David Lamkins
1) Sometimes a make complains that aclocal- is missing. It is in
fact present, but a different version. It's possible to clear this warning
by doing a make distclean followed by ./configure and make. I'm not sure
what triggers this; I suspect that the `missing` script doesn't get rebuilt
when the tools it's checking get updated.

2) Sometimes the info top page (not the APL top, but the system top) gets
corrupted and shows additional copies of the `APL` entry along with some
"random" control and high-bit characters. I have no idea what triggers
this. Here's an example from one of my installations. Note that the
presentation may be a bit different from what I see in Emacs; GMail tries
to make sense of the apparently-Unicode characters.

BTW, this seems to be an Emacs-only thing; running info in a terminal does
not list an entry for APL in the top page.

File: dir,Node: TopThis is the top of the INFO tree

  This (the Directory node) gives a menu of major topics.
  Typing "q" exits, "?" lists all Info commands, "d" returns here,
  "h" gives a primer for first-timers,
  "mEmacs" visits the Emacs manual, etc.

  In Emacs, you can click mouse button 2 on a menu item or cross reference
  to select it.

* Menu:

Programming
* APL: (apl).   (Almost) full implementation of the
  "Programming Language APL, Extended"
(aka. ISO 13751).
* Libtool: (libtool).   Generic shared library support script.
* cvsclient: (cvsclient).   The CVS client/server protocol.
* flex: (flex). Fast lexical analyzer generator (lex
  replacement).
* gdbm: (gdbm). The GNU Database.
2Z* APL: (apl).   (Almost) full implementation of the
  "Programming Language APL, Extended"
(aka. ISO 13751).
pVppVpBp"`Z``r`P2* APL: (apl).   (Almost) full
implementation of the
  "Programming Language APL, Extended"
(aka. ISO 13751).


-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


[Bug-apl] One more info issue

2014-07-29 Thread David Lamkins
I'm not sure where it'd best be noted, but the info file makes no mention
of alternatively starting a .apl file with the lamp-bang sequence.

-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


Re: [Bug-apl] Minor build issues

2014-07-29 Thread David Lamkins
To be clear w.r.t. issue #2: It's the /usr/local/share/info/dir file that
gets munged.


On Tue, Jul 29, 2014 at 10:05 AM, David Lamkins  wrote:

> 1) Sometimes a make complains that aclocal- is missing. It is in
> fact present, but a different version. It's possible to clear this warning
> by doing a make distclean followed by ./configure and make. I'm not sure
> what triggers this; I suspect that the `missing` script doesn't get rebuilt
> when the tools it's checking get updated.
>
> 2) Sometimes the info top page (not the APL top, but the system top) gets
> corrupted and shows additional copies of the `APL` entry along with some
> "random" control and high-bit characters. I have no idea what triggers
> this. Here's an example from one of my installations. Note that the
> presentation may be a bit different from what I see in Emacs; GMail tries
> to make sense of the apparently-Unicode characters.
>
> BTW, this seems to be an Emacs-only thing; running info in a terminal does
> not list an entry for APL in the top page.
>
> File: dir,Node: TopThis is the top of the INFO tree
>
>   This (the Directory node) gives a menu of major topics.
>   Typing "q" exits, "?" lists all Info commands, "d" returns here,
>   "h" gives a primer for first-timers,
>   "mEmacs" visits the Emacs manual, etc.
>
>   In Emacs, you can click mouse button 2 on a menu item or cross reference
>   to select it.
>
> * Menu:
>
> Programming
> * APL: (apl).   (Almost) full implementation of the
>   "Programming Language APL, Extended"
> (aka. ISO 13751).
> * Libtool: (libtool).   Generic shared library support script.
> * cvsclient: (cvsclient).   The CVS client/server protocol.
> * flex: (flex). Fast lexical analyzer generator (lex
>   replacement).
> * gdbm: (gdbm). The GNU Database.
> 2Z * APL: (apl).   (Almost) full implementation of the
>   "Programming Language APL, Extended"
> (aka. ISO 13751).
> p V pp V pBp"`Z ` `r `P2 * APL: (apl).   (Almost) full
> implementation of the
>   "Programming Language APL, Extended"
> (aka. ISO 13751).
>
>
> --
> "The secret to creativity is knowing how to hide your sources."
>Albert Einstein
>
>
> http://soundcloud.com/davidlamkins
> http://reverbnation.com/lamkins
> http://reverbnation.com/lcw
> http://lamkins-guitar.com/
> http://lamkins.net/
> http://successful-lisp.com/
>



-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


Re: [Bug-apl] One more info issue

2014-07-29 Thread Juergen Sauermann

Hi David,

it is not mentioned because GNU APL accepts ⍝! as a library marker (and 
makes such libraries
readable by other APL interpreters because ⍝! is just an ordinary APL 
comment) but such files

will most likely not be understood by execve.

So this is more a library convention and mentioned in the Library 
Guidelines document than a GNU APL feature.


/// Jürgen


On 07/29/2014 07:08 PM, David Lamkins wrote:
I'm not sure where it'd best be noted, but the info file makes no 
mention of alternatively starting a .apl file with the lamp-bang sequence.


--
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/





Re: [Bug-apl] One more info issue

2014-07-29 Thread David Lamkins
OK. Thanks for the pointer.


On Tue, Jul 29, 2014 at 10:32 AM, Juergen Sauermann <
juergen.sauerm...@t-online.de> wrote:

> Hi David,
>
> it is not mentioned because GNU APL accepts ⍝! as a library marker (and
> makes such libraries
> readable by other APL interpreters because ⍝! is just an ordinary APL
> comment) but such files
> will most likely not be understood by execve.
>
> So this is more a library convention and mentioned in the Library
> Guidelines document than a GNU APL feature.
>
> /// Jürgen
>
>
>
> On 07/29/2014 07:08 PM, David Lamkins wrote:
>
>> I'm not sure where it'd best be noted, but the info file makes no mention
>> of alternatively starting a .apl file with the lamp-bang sequence.
>>
>> --
>> "The secret to creativity is knowing how to hide your sources."
>>Albert Einstein
>>
>>
>> http://soundcloud.com/davidlamkins
>> http://reverbnation.com/lamkins
>> http://reverbnation.com/lcw
>> http://lamkins-guitar.com/
>> http://lamkins.net/
>> http://successful-lisp.com/
>>
>
>


-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


Re: [Bug-apl] Typos in info

2014-07-29 Thread Juergen Sauermann

Hi David,

thanks, fixed in SVN 403.

For 2) I don't know. Looks OK in my xterm when doing 'info apl'. Wrong 
editor?


/// Jürgen


On 07/29/2014 06:50 PM, David Lamkins wrote:
1) In section 1.3, in the description of the `--` option, there's an 
em-dash rather than two hyphens.


2) In section 2.1.3, Example 1 the 37 (for some reason that I don't 
understand) displays as a header (large and bold). I've seen this on 
all of my installations.


3) In section 2.1.3, one of the instances of execve is misspelled as 
exeve.


4) Section 2.10 header should be `User-defined Command`.

5) Section 2.11.3: `... present in other APL interpreters ...`

6) I know this was discussed previously, but don't recall the 
resolution: Section 3.1 shows a low approximation to the integer limits.



--
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/





[Bug-apl] Build error SVN 403 on OS X 10.8.5

2014-07-29 Thread Peter Teeson
Did a brand new checkout, ./configure, make
/Volumes/Data/Development/MyProjects/GNUAPL/apl-svn/src/FloatCell.cc:393:39: 
Call to 'pow' is ambiguous
FloatCell.cc:393:39: error: call to 'pow' is ambiguous
  const APL_Float z = pow(A->get_real_value(), b);
  ^~~
extern double pow(double, double);
  ^
  pow(double __x, int __i)
  ^
  pow(float __x, float __y)
  ^
  pow(long double __x, long double __y)
  ^
  pow(float __x, int __n)
  ^
  pow(long double __x, int __n)
  ^
1 error generated.
make[1]: *** [FloatCell.o] Error 1
make[1]: *** Waiting for unfinished jobs
mv -f .deps/ComplexCell.Tpo .deps/ComplexCell.Po
mv -f .deps/Function.Tpo .deps/Function.Po
mv -f .deps/Error.Tpo .deps/Error.Po
mv -f .deps/Id.Tpo .deps/Id.Po
mv -f .deps/DerivedFunction.Tpo .deps/DerivedFunction.Po
mv -f .deps/Executable.Tpo .deps/Executable.Po
mv -f .deps/Command.Tpo .deps/Command.Po
make: *** [all-recursive] Error 1



Re: [Bug-apl] Typos in info

2014-07-29 Thread David Lamkins
Sorry. I forgot to mention that the rendering problem of #2 is visible when
looking at the info node in Emacs. It is probably a bug somewhere in Emacs.


On Tue, Jul 29, 2014 at 11:18 AM, Juergen Sauermann <
juergen.sauerm...@t-online.de> wrote:

> Hi David,
>
> thanks, fixed in SVN 403.
>
> For 2) I don't know. Looks OK in my xterm when doing 'info apl'. Wrong
> editor?
>
> /// Jürgen
>
>
>
> On 07/29/2014 06:50 PM, David Lamkins wrote:
>
>> 1) In section 1.3, in the description of the `--` option, there's an
>> em-dash rather than two hyphens.
>>
>> 2) In section 2.1.3, Example 1 the 37 (for some reason that I don't
>> understand) displays as a header (large and bold). I've seen this on all of
>> my installations.
>>
>> 3) In section 2.1.3, one of the instances of execve is misspelled as
>> exeve.
>>
>> 4) Section 2.10 header should be `User-defined Command`.
>>
>> 5) Section 2.11.3: `... present in other APL interpreters ...`
>>
>> 6) I know this was discussed previously, but don't recall the resolution:
>> Section 3.1 shows a low approximation to the integer limits.
>>
>>
>> --
>> "The secret to creativity is knowing how to hide your sources."
>>Albert Einstein
>>
>>
>> http://soundcloud.com/davidlamkins
>> http://reverbnation.com/lamkins
>> http://reverbnation.com/lcw
>> http://lamkins-guitar.com/
>> http://lamkins.net/
>> http://successful-lisp.com/
>>
>
>


-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


[Bug-apl] ANSI escapes, readline and quote-quad

2014-07-29 Thread David Lamkins
Here's another unexpected (and doubtless unintended) side-effect of
readline.

See attached file.

-- 
"The secret to creativity is knowing how to hide your sources."
   Albert Einstein


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/


lamkins-readline-ansi-escape-bug.apl
Description: Binary data