Hello, I finally got around to investigating this issue a little further.
The floating point exception appears to be a result of ⎕PW being set to 0
at startup.

Applying the following changes allow GNU APL to start up, where one may
confirm that ⎕PW is 0, and evaluate expressions properly again, but
obviously this is not a proper fix.

I am not yet sure why it is getting an invalid term width from cygwin64;
r1807's commit message mentions using TIOCGWINSZ if it's available so
perhaps r1807 isn't accounting for cygwin64 builds properly, or current
cygwin64 versions don't report back the proper term values.

I had no luck getting gdb going in cygwin64 so I only narrowed it down to
this point via 'debug by printf()'. Apologies for not finding the root
cause itself.


Index: src/PrintContext.hh
===================================================================
--- src/PrintContext.hh (revision 1870)
+++ src/PrintContext.hh (working copy)
@@ -61,7 +61,7 @@
    int get_PP() const { return precision; }

    /// return the print width to be used
-   int get_PW() const { return width; }
+   int get_PW() const { return 80 /*width*/; }

 protected:
    /// the print style to be used
Index: src/Workspace.hh
===================================================================
--- src/Workspace.hh    (revision 1870)
+++ src/Workspace.hh    (working copy)
@@ -119,7 +119,7 @@

    /// return the current ⎕PW
    static int get_PW()
-      { return the_workspace.v_Quad_PW.current(); }
+      { return 80 /*the_workspace.v_Quad_PW.current()*/; }

    /// set the current ⎕PW
    static void set_PW(int PW, const char * loc)



On Mon, Feb 24, 2025 at 6:17 AM Dr. Jürgen Sauermann <
mail@jürgen-sauermann.de> wrote:

> Hi,
>
> I guess that running GNU APL in gdb might find the place where this occurs.
> Also: apl -l 37 to see how far the start-up comes. Unlike other logging
> levels
> -l 37 should work even if dynamic logging is  not configured.
>
> Best Regards,
> Jürgen
>
>
> On 2/23/25 19:00, Russtopia wrote:
>
> Hi all,
>
> has anyone rebuilt gnu-apl on Win11 under cygwin64 recently? It worked
> fine a few months ago, but this past week I tried rebuilding it and now it
> just gives a Floating Point exception message right after the GNU APL
> banner and exits.
>
> I tried rewinding back a few version (to r1835), no difference.
>
> $ apl --cfg
>
> configurable options:
> ---------------------
>     ASSERT_LEVEL_WANTED=1 (default)
>     SECURITY_LEVEL_WANTED=0 (default)
>     APSERVER_PATH=/tmp/GNU-APL/APserver (default)
>     APSERVER_PORT=16366 (default)
>     APSERVER_TRANSPORT=0 (default)
>     CORE_COUNT_WANTED=0  (= sequential) (default)
>     DYNAMIC_LOG_WANTED=no (default)
>     MAX_RANK_WANTED=8 (default)
>     RATIONAL_NUMBERS_WANTED=no (default)
>     SHORT_VALUE_LENGTH_WANTED=12, therefore:
>         sizeof(Value)       : 464 bytes
>         sizeof(Cell)        :  24 bytes
>         sizeof(Value header): 176 bytes
>
>     VALUE_CHECK_WANTED=no (default)
>     VALUE_HISTORY_WANTED=no (default)
>     VF_TRACING_WANTED=no (default)
>     VISIBLE_MARKERS_WANTED=no (default)
>
> how ./configure was (probably) called:
> --------------------------------------
>     ./configure
>
> BUILDTAG:
> ---------
>     Project:        GNU APL
>     Version / SVN:  1.9 / SVN: 1842
>     Build Date:     2025-02-23 17:45:58 UTC
>     Build OS:       CYGWIN_NT-10.0-22631 3.5.4-1.x86_64 x86_64
>     config.status:  default ./configure options
>     Archive SVN:    1831
>
>
>

Reply via email to