Is SDK 7.1.0 an April's fool joke?

I saw that SDK 7.1.0 was released (typical to Garmin it's called 7.1.0-RC2-2024-02-14 inside..., though probably it should be called 7.1.0-RC3-2024-04-01)

So I tried it again. This of course means changing all my apps one by one with changes that make them incompatible with SDK 6.4.2. This could be "OK", but nothing works in 7.1.0! I see that none of the things reported by multiple people about 7.x were fixed... 

  • OK, this was my fault, but not entirely...

    I have hacks to work around the non-backward compatibility, and I forgot to switch an excludeAnnotation...

  • Since I got no response from garmin to my email, I'll try it here as well. It's a pity we have to do this.

    ERROR: fr955: A critical error has occurred. Please re-run the Monkey C Compiler with logging enabled and file a report with the Connect IQ support team ([email protected]).
    ERROR: fr955: MyApp/source/MyModel.mc:449,8: Optimization validation failure: Cannot find register value '%tmp.41'

    code:

    function foo() as Void {
        var msg = loadString(Rez.Strings.invalidWord);
        msg = Lang.format(msg, [word]);
        showAlert(msg, Attention.TONE_ERROR, // error on this line
                VIBE ? [new Attention.VibeProfile(50, 250)] as Array<Attention.VibeProfile> : null);
    }
    
    function loadString(symbol as ResourceId) as String {
        return WatchUi.loadResource(symbol) as String;
    }
    
    function showAlert(message as String or ResourceId, tone as Tone?, vibe as Array<VibeProfile>?) as Void {
        System.println("showAlert: " + message);
    }
    

    ERROR: fr955: MyApp/source/MyView.mc:44,8: Optimization validation failure: Cannot find register value '%tmp.36'

    code (error on the line with Lang.format):

    const VERSION = "0.1";
    const BETA = true;
    const LANG_CODE = "eng";
    
    function foo() as Void {
        var titleFormat = WatchUi.loadResource(Rez.Strings.gameTitle) as String;
        self.bar = Lang.format(titleFormat, [LANG_CODE, BETA ? VERSION + "-B" : VERSION]);
    }

    update:

     I think this can help you to fix the bug:

    in the 1st error: when I replace the line:

    msg = Lang.format(msg, [word]);

    with:

    msg = Lang.format(msg, [word]);
    msg = "" + msg;
    

    then it compiles, but neither of these fixes it:

    msg = "" + Lang.format(msg, [word]);
    
    or
    
    msg = Lang.format(msg, [word]) + "";
    


    In the 2nd error: when I replace the above line with this it still fails:

    var version = VERSION;
    self.bar = Lang.format(titleFormat, [LANG_CODE, BETA ? version + "-B" : version]);
    

    but when I concatenate it to a string then it passes:

    var version = "" + VERSION;
    self.bar = Lang.format(titleFormat, [LANG_CODE, BETA ? version + "-B" : version]);
    

  • NAHHHH!

    K. Just trying to give the simplest and least obtrusive possible solution for the specific issue where the return type has changed for getInitialView() (and other functions, such as getSettingsView()) and you want to build with both old and new SDKs, as it's unlikely Garmin will reverse this change (although anything's possible).

    I'm not minimizing any of the issues you or anyone else is having, apologizing for Garmin, or claiming there aren't other problems.

  • We've triaged this issue and will be working on a fix for the next release.

  • any estimation on when this will happen? I'm sending you more and more of these critical errors in emails every day but I never hear back from you.

  • 7.1.1 is currently in the works and it should be out next week. We'll take a look at the logs you've sent in and see if those issues are already addressed or not.

  • I updated by mistake the devices and it's a mess, new devices only work with 7.11 I have to reload old devices.