Re: Attn: Blake McBride: APL-Pkg issue
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
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
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
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
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] > --- > > >