HP Forums

Full Version: (Free42) nonexistent variable bug DSE/ISG
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
If you do RCL "AAA", and "AAA" does not exist, you get a 'Nonexistent' error.
But if you do DSE "AAA", the app crashes. Yet DSE IND "AAA" throws the 'Nonexistent' error again. Same for ISG.
Free42 2.5.19 iOS13.5.1

Cheers, Werner
(07-13-2020 11:51 AM)Werner Wrote: [ -> ]If you do RCL "AAA", and "AAA" does not exist, you get a 'Nonexistent' error.
But if you do DSE "AAA", the app crashes. Yet DSE IND "AAA" throws the 'Nonexistent' error again. Same for ISG.

Confirmed. After RCLing a named loop control variable, the check that it is null (i.e. does not exist) is missing. This does not affect the IND case because that uses a different check. Will fix in the next release.
Another problem (I only verified it on a 41, not a 42S):
-1.00001 ISG ST X -> -0.00001 on Free42
That should be 0.00001. Same for any increment.
Cheers, Werner
(07-14-2020 11:50 AM)Werner Wrote: [ -> ]Another problem (I only verified it on a 41, not a 42S):
-1.00001 ISG ST X -> -0.00001 on Free42
That should be 0.00001. Same for any increment.
Cheers, Werner

Thanks! Also fixed.
While I am not planning on releasing a new version soon, anyone interested in testing the latest fixes can get the latest source code from GitHub. I could upload test builds to my web site if desired.
(07-15-2020 12:49 AM)Thomas Okken Wrote: [ -> ]While I am not planning on releasing a new version soon, anyone interested in testing the latest fixes can get the latest source code from GitHub. I could upload test builds to my web site if desired.
I'm trying to build the Android version but I get stuck.

I'm doing:
  1. git clone -s https://github.com/thomasokken/free42
    (just downloading the zipfile gave me an invalid vcs root error)
  2. Change applicationId in app\build.gradle so I can install it alongside the normal Free42.
  3. open free42\android as existing Android Studio project
  4. select signing key and build release apk

Result:
Android NDK: ERROR:C:\S\free42-master-6d56450\free42\android\app\src\main\cpp\Android.mk:gcc111libbid: LOCAL_SRC_FILES points to a missing file
Android NDK: Check that C:/S/free42-master-6d56450/free42/android/app/src/main/cpp/libgcc111libbid-armv7.a exists or that its path is correct

This file libgcc111libbid-armv7.a is not there. The name suggests I should install gcc?

Maybe you know immediately what is going wrong here, otherwise I'd have to dig into it.
(07-15-2020 09:14 AM)johanw Wrote: [ -> ]
(07-15-2020 12:49 AM)Thomas Okken Wrote: [ -> ]While I am not planning on releasing a new version soon, anyone interested in testing the latest fixes can get the latest source code from GitHub. I could upload test builds to my web site if desired.
I'm trying to build the Android version but I get stuck.

[...]

Start by taking a look at the build-android script -- that is what I use to build the release apk. It performs three steps: 1. create symbolic links in free42/android/app/src/main/cpp pointing to the native source files in free42/common; 2. build the Intel decimal floating-point library by running the build-intel-lib.sh script; 3. build the apk by running gradle.

There are hard-coded assumptions about the build environment in all of these steps. One by one:

1. In Windows, you won't be able to create the symlimks like that. Work-around: just copy the files from common to android/app/src/main/cpp instead. Check the link-files.sh script to see which files to copy; you don't need everything from common.

2. This one will require the most work. First of all, since it's a shell script, you'll need Cygwin. The Windows command prompt can't run this script. Next, the script contains several paths and names that are specific to the OS (MacOS in my case) and the NDK version and where it is installed. If you can't figure this out, contact me via email.

3. Since you want to build the apk with a different app id, you need to change it in two places: in the top-level build.gradle file, which you already did, but also in the AndroidManifest.xml file, in the android:authorities attribute of the provider element.
Reference URL's