Re: Attn: Blake McBride: APL-Pkg issue

2021-02-26 Thread Blake McBride
Greetings,

As I commented on github, it looks as though either the original path was
wrong or they changed the path.  However, there is no need to move to a
mirror.  A path correction is all that is needed.

Thanks.

Blake


On Thu, Feb 25, 2021 at 11:56 PM Russtopia  wrote:

> Hello, in keeping with the instructions in APL-Pkg/doc/SUPPORT.md, I'm
> reaching out here on the list...
>
> I installed (after a few tweaks for path differences) the latest APL-Pkg
> from github. Attempting to load the installed demo packages I get the
> following. Any idea what I'm doing wrong?
>
> System: Linux Devuan x86_64 8.3.0-6
> BUILDTAG:
> -
> Project:GNU APL
> Version / SVN:  1.8 / 1436M
> Build Date: 2021-02-25 20:33:20 UTC
> Build OS:   Linux 5.7.0rlabs x86_64
> config.status:  'VISIBLE_MARKERS_WANTED=yes'
> 'RATIONAL_NUMBERS_WANTED=yes'
> Archive SVN:1433
>
> russtopia@rlm-devuan:~/GNUAPL$ apl
>
> __ _   __ __  _____    __
>/ // | / // / / /   /   |   / __ \ / /
>   / / __ /  |/ // / / /   / /| |  / /_/ // /
>  / /_/ // /|  // /_/ /   / ___ | / // /___
>  \//_/ |_/ \/   /_/  |_|/_//_/
>
> Welcome to GNU APL version 1.8 / 1436M
>
> Copyright (C) 2008-2020  Dr. Jürgen Sauermann
>Banner by FIGlet: www.figlet.org
>
> This program comes with ABSOLUTELY NO WARRANTY;
>   for details run: apl --gpl.
>
>  This program is free software, and you are welcome to redistribute it
>  according to the GNU Public License (GPL) version 3 or later.
>
>   )load pkg
> DUMPED 2021-02-25  20:22:27 (GMT-8)
>  User-defined command ]pkg installed.
>   ]pkg packages
>  *: top-level load; +: loaded dependency; -: expunged dependency
>   _
>  Name L  V  Prefix Path
>   -  -  -- 
>  apl-packager *  0  pkg/home/russtopia/GNUAPL/apl-pkg-repo/apl-pkg
>  apl-sha256   -  0  hash   /home/russtopia/GNUAPL/apl-pkg-repo/APL-Sha256
>  demo-p1  -  0  d1 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p1
>  demo-p2  -  0  d2 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p2
>  demo-p3  -  0  d3 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p3
>  demo-p4  -  0  d4 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p4
>  demo-p5  -  0  d5 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p5
>  demo-p6  -  0  d6 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p6
>  demo-p7  -  0  d7 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p7
>  demo-p8  -  0  d8 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p8
>  demo-p9  -  0  d9 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p9
>   ]pkg load demo-p1
> LOAD FAILED
> IN /home/russtopia/GNUAPL/apl-pkg-repo/demo-p1/_control_.apl
> RANK ERROR  AT SRC LINE 8
> ERASED ALL NAMES HAVING PREFIX d1
> LOAD FAILED
> IN /home/russtopia/GNUAPL/apl-pkg-repo/demo-p2/_control_.apl
> RANK ERROR  AT SRC LINE 8
> ERASED ALL NAMES HAVING PREFIX d2
> LOAD FAILED
> IN /home/russtopia/GNUAPL/apl-pkg-repo/demo-p3/_control_.apl
> RANK ERROR  AT SRC LINE 8
> ERASED ALL NAMES HAVING PREFIX d3
> NOTE: Execute d5⍙mut 
> 11 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p5/p5.apl
> NOTE: Execute d4⍙mut 
> 11 /home/russtopia/GNUAPL/apl-pkg-repo/demo-p4/p4.apl
> LOAD FAILED
> IN /home/russtopia/GNUAPL/apl-pkg-repo/demo-p4/_control_.apl
> RANK ERROR  AT SRC LINE 9
> ERASED ALL NAMES HAVING PREFIX d4
> ERROR DURING LOADING; PACKAGE STATE IS LIKELY INCONSISTENT
>   )libs
> Library root: /home/russtopia/GNUAPL
>
> Library reference number to (absolute) path mapping:
>
>
> ╔═══╤═╤═╤══╗
> ║Ref│Conf │State (errno)│ Path to the directory containing the workspace
> files ║
>
> ╟───┼─┼─┼──╢
> ║ 0 │PWD  │ present │ /home/russtopia/GNUAPL/workspaces
>  ║
> ║ 1 │PWD  │ missing (2) │ /home/russtopia/GNUAPL/wslib1
>  ║
> ║ 2 │PWD  │ missing (2) │ /home/russtopia/GNUAPL/wslib2
>  ║
> ║ 3 │PSYS │ present │ /usr/local/lib/apl/wslib3
>  ║
> ║ 4 │PSYS │ present │ /usr/local/lib/apl/wslib4
>  ║
> ║ 5 │PSYS │ present │ /usr/local/lib/apl/wslib5
>  ║
> ║ 6 │PWD  │ missing (2) │ /home/russtopia/GNUAPL/wslib6
>  ║
> ║ 7 │PWD  │ missing (2) │ /home/russtopia/GNUAPL/wslib7
>  ║
> ║ 8 │PWD  │ missing (2) │ /home/russtopia/GNUAPL/wslib8
>  ║
> ║ 9 │PWD  │ missing (2) │ /home/russtopia/GNUAPL/wslib9
>  ║
>
> ╚═══╧══╤══╧═╧══╝
>│
>├── NONE:  found no method to compute the library path
>├── CMD:   the path was set with )LIBS N path
>├── ENV:   the path came from environment variable $APL_LIB_ROOT
>├── PSYS:  t

Re: Gtk_server "-rdynamic" issue following APL Gtk UI tutorial

2021-02-26 Thread Dr . Jürgen Sauermann

  
  
Hi Russtopia,
  
  i have noticed in the past that -rdynamic is somewhat platform
  specific - some understand it, some complain.
  
  Some background to GTK:
  
  GTK dynamically links event handlers like those declared in the
  files
  produced by glade. That is in glade (or some other GUI definition
  file)
  you specify the name of a handler as a text string and the binary
  program
  (Gtk_server) that implements the GUI tries to find a (dynamically
  linked)
  function with that name.
  
  This mechanism requires that the function name of the handler is
  being
  exported.
  
  Exporting the function name is what -rdynamic does. According to
  man gcc:
  
     -rdynamic
     Pass the flag -export-dynamic to the ELF linker,
on targets that
     support it. This instructs the linker to add all
symbols, not only
     used ones, to the dynamic symbol table. This
option is needed for
     some uses of "dlopen" or to allow obtaining
backtraces from within
     a program.
  
  Normally ./configure does this automatically (and correctly) by
  some magic
  that is beyond what the GNU APL ./configure script can control.
  
  If it doesn't (you can check that if you look at the gcc/ld
  commands when GNU APL
  is built) then you can explicitly add extra flags needed in the
  compilation (of Gtk_server)
  like this:
  
CXXFLAGS="your-compiler-flags..." ./configure

  
  or (for linker flags):
  
LDFLAGS="your-linker-flags..." ./configure 

One of these flags should hopefully do it if you provide the flag
needed by your platform.

You should also check with ldd Gtk_server that it has found
all the libraries that it needs.

Best Regards,
Jürgen



On 2/25/21 10:05 PM, Russtopia wrote:


  
  
I was trying out the
  GNU APL ⎕GTK Cookbook tutorial and ran into this, which
  appears to cause the button's 'clicked' handler not to
  function (hanging the UI and APL itself until I kill the
  Gtk_server and/or the APL script from another shell).


I looked through the
  configure script and see some platforms define
  "export_dynamic_flag_spec=-rdynamic" but I'm not sure if or
  how to ensure this is defined in my build. Am I doing
  something dumb? I'm reasonably sure I have the button element
  named properly and defined the 'clicked' signal in the Glade
  editor.


Linux x86_64
Devuan Linux (Debian
  8.3.0-6)
gtk+3.0_3.24.5-1



---
$ ./my-application.apl
  
  Loading GUI:
  /home/russtopia/GNUAPL/workspaces/my-application.glade
  Top-level widget: window1
  See class='GtkWindow' and id='window1'
    See class='GtkGrid' and id='grid1'
      See class='GtkLabel' and id='label1'
      property name='lblEmployee
      End of object class=GtkLabel id=label1
  widget-name=lblEmployee
  
      See class='GtkLabel' and id='label2'
      property name='lblPosition
      End of object class=GtkLabel id=label2
  widget-name=lblPosition
  
      See class='GtkEntry' and id='entry1'
      property name='entryEmployee
      End of object class=GtkEntry id=entry1
  widget-name=entryEmployee
  
      See class='GtkEntry' and id='entry2'
      property name='entryPosition
      End of object class=GtkEntry id=entry2
  widget-name=entryPosition
  
      See class='GtkButton' and id='btnOK'
      property name='OK-button
      End of object class=GtkButton id=btnOK
  widget-name=OK-button
  
    End of object class=GtkGrid id=grid1 widget-name=
  
  End of object class=GtkWindow id=window1 widget-name=
  
  map glade id= 'window1' to GObject 0x55da20cb82a0
  map glade id= 'grid1' to GObject 0x55da20d43140
  map glade id= 'btnOK' to GObject 0x55da20f29180
  map glade id= 'entry2' to GObject 0x55da20d948f0
  map glade id= 'entry1' to GObject 0x55da20d94640
  map glade id= 'label2' to GObject 0x55da20c48590
  map glade id= 'label1' to GObject 0x55da20c483f0
  
  (Gtk_server:16920): Gtk-WARNING **: 12:22:32.829: Could not
  find signal handler 'clicked'.  Did you compile with
  -rdynamic?
  GUI signals connected.
  Loading CSS:
  /home/russtopia/GNUAPL/workspaces/my-application.css
  1
[I hit CTRL-C twice
  

Bug in Autoconf file

2021-02-26 Thread Gylfi
Hello,

I've encountered a minor bug in the configure script. I was trying to
enable rational number support but the configure script kept reporting that
rational numbers were not desired. It looks to me like setting
RATIONAL_NUMBERS_WANTED=yes does in fact enable this feature, it's just not
being reported. I believe the problem is in this snippet: (line 665 in
configure.ac)

# APL: support for rational numbers ?
AC_MSG_CHECKING([whether support for rational numbers is desired ])
AC_ARG_VAR(RATIONAL_NUMBERS_WANTED,
   [ enable support for rational numbers (see README-2-configure) default:
no ])
if test "x$RATIONAL_NUMBERS_WANTED" = "xyes"; then
AC_DEFINE_UNQUOTED([RATIONAL_NUMBERS_WANTED], [yes],
   [ define to have support for rational numbers
(EXPERIMENTAL!)])
else RATIONAL_NUMBERS_WANTED="no"
fi
AC_MSG_RESULT([$VISIBLE_MARKERS_WANTED])

At the bottom, the argument to AC_MSG_RESULT is $VISIBLE_MARKERS_WANTED
where it seems to me it should be $RATIONAL_NUMBERS_WANTED
(VISIBLE_MARKERS_WANTED is the previous option, maybe this block was
duplicated and the AC_MSG_RESULT line was accidentally left unchanged).
Indeed, after making these changes and generating a new configure script,
the output changes depending on RATIONAL_NUMBERS_WANTED, as expected.

Best regards,
Gylfi


Re: Bug in Autoconf file

2021-02-26 Thread Dr . Jürgen Sauermann

  
  
Hi Gylfi,
  
  thanks, fixed in SVN 1440.
  
  Please keep in mind that the rational number feature is a rarely
  used one.
  Therefore the probability of errors in their implementation is
  somewhat
  higher than for normal floating point numbers.
  
  Best Regards,
  Jürgen
  

On 2/26/21 3:43 PM, Gylfi wrote:


  
  
Hello,


I've encountered a minor bug in the configure script. I was
  trying to enable rational number support but the configure
  script kept reporting that rational numbers were not desired.
  It looks to me like setting RATIONAL_NUMBERS_WANTED=yes does
  in fact enable this feature, it's just not being reported. I
  believe the problem is in this snippet: (line 665 in configure.ac)
  
  # APL: support for rational numbers ?
  AC_MSG_CHECKING([whether support for rational numbers is
  desired ])
  AC_ARG_VAR(RATIONAL_NUMBERS_WANTED,
     [ enable support for rational numbers (see
  README-2-configure) default: no ])
  if test "x$RATIONAL_NUMBERS_WANTED" = "xyes"; then
  AC_DEFINE_UNQUOTED([RATIONAL_NUMBERS_WANTED], [yes],
                     [ define to have support for rational
  numbers (EXPERIMENTAL!)])
  else RATIONAL_NUMBERS_WANTED="no"
  fi
  AC_MSG_RESULT([$VISIBLE_MARKERS_WANTED])
  

At the bottom, the argument to AC_MSG_RESULT is
  $VISIBLE_MARKERS_WANTED where it seems to me it should be
  $RATIONAL_NUMBERS_WANTED (VISIBLE_MARKERS_WANTED is the
  previous option, maybe this block was duplicated and the
  AC_MSG_RESULT line was accidentally left unchanged). Indeed,
  after making these changes and generating a new configure
  script, the output changes depending on
  RATIONAL_NUMBERS_WANTED, as expected.


Best regards,
Gylfi

  


  




Re: Gtk_server "-rdynamic" issue following APL Gtk UI tutorial

2021-02-26 Thread Russtopia
Thank you for the response. I looked in src/Gtk/Makefile and indeed the
LDFLAGS did not specify -rdynamic. I just added it and that solved the
issue.

-Russ


On Fri, 26 Feb 2021 at 07:03, Dr. Jürgen Sauermann 
wrote:

> Hi Russtopia,
>
> i have noticed in the past that -rdynamic is somewhat platform
> specific - some understand it, some complain.
>
> Some background to GTK:
>
> GTK dynamically links event handlers like those declared in the files
> produced by glade. That is in glade (or some other GUI definition file)
> you specify the name of a handler as a text string and the binary program
> (Gtk_server) that implements the GUI tries to find a (dynamically linked)
> function with that name.
>
> This mechanism requires that the function name of the handler is being
> exported.
>
> Exporting the function name is what -rdynamic does. According to
> *man gcc*:
>
> *   -rdynamic*
> *   Pass the flag -export-dynamic to the ELF linker, on targets
> that*
> *   support it. This instructs the linker to add all symbols, not
> only*
> *   used ones, to the dynamic symbol table. This option is needed
> for*
> *   some uses of "dlopen" or to allow obtaining backtraces from
> within*
> *   a program.*
>
> Normally ./configure does this automatically (and correctly) by some magic
> that is beyond what the GNU APL ./configure script can control.
>
> If it doesn't (you can check that if you look at the gcc/ld commands when
> GNU APL
> is built) then you can explicitly add extra flags needed in the
> compilation (of Gtk_server)
> like this:
>
> *CXXFLAGS="your-compiler-flags..." ./configure**  options...>*
>
> or (for linker flags):
>
> *LDFLAGS="your-linker-flags..." ./configure *
>
> One of these flags should hopefully do it if you provide the flag needed
> by your platform.
>
> You should also check with *ldd Gtk_server* that it has found all the
> libraries that it needs.
>
> Best Regards,
> Jürgen
>
>
>
> On 2/25/21 10:05 PM, Russtopia wrote:
>
> I was trying out the GNU APL ⎕GTK Cookbook tutorial and ran into this,
> which appears to cause the button's 'clicked' handler not to function
> (hanging the UI and APL itself until I kill the Gtk_server and/or the APL
> script from another shell).
>
> I looked through the configure script and see some platforms define
> "export_dynamic_flag_spec=-rdynamic" but I'm not sure if or how to ensure
> this is defined in my build. Am I doing something dumb? I'm reasonably sure
> I have the button element named properly and defined the 'clicked' signal
> in the Glade editor.
>
> Linux x86_64
> Devuan Linux (Debian 8.3.0-6)
> gtk+3.0_3.24.5-1
>
> ---
> $ ./my-application.apl
> Loading GUI: /home/russtopia/GNUAPL/workspaces/my-application.glade
> Top-level widget: window1
> See class='GtkWindow' and id='window1'
>   See class='GtkGrid' and id='grid1'
> See class='GtkLabel' and id='label1'
> property name='lblEmployee
> End of object class=GtkLabel id=label1 widget-name=lblEmployee
>
> See class='GtkLabel' and id='label2'
> property name='lblPosition
> End of object class=GtkLabel id=label2 widget-name=lblPosition
>
> See class='GtkEntry' and id='entry1'
> property name='entryEmployee
> End of object class=GtkEntry id=entry1 widget-name=entryEmployee
>
> See class='GtkEntry' and id='entry2'
> property name='entryPosition
> End of object class=GtkEntry id=entry2 widget-name=entryPosition
>
> See class='GtkButton' and id='btnOK'
> property name='OK-button
> End of object class=GtkButton id=btnOK widget-name=OK-button
>
>   End of object class=GtkGrid id=grid1 widget-name=
>
> End of object class=GtkWindow id=window1 widget-name=
>
> map glade id= 'window1' to GObject 0x55da20cb82a0
> map glade id= 'grid1' to GObject 0x55da20d43140
> map glade id= 'btnOK' to GObject 0x55da20f29180
> map glade id= 'entry2' to GObject 0x55da20d948f0
> map glade id= 'entry1' to GObject 0x55da20d94640
> map glade id= 'label2' to GObject 0x55da20c48590
> map glade id= 'label1' to GObject 0x55da20c483f0
>
> (Gtk_server:16920): Gtk-WARNING **: 12:22:32.829: Could not find signal
> handler 'clicked'.  Did you compile with -rdynamic?
> GUI signals connected.
> Loading CSS: /home/russtopia/GNUAPL/workspaces/my-application.css
> 1
> [I hit CTRL-C twice here]
> 0
> ATTENTION
>   ⎕GTK Blocking
>   ^
> [script is still hung until I kill it from another shell]
> ---
>
>
>