Community
    • Login

    Notepad++ 7.7 breaking change of SCNotification definition in x64 build

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    17 Posts 8 Posters 3.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dinkumoilD
      dinkumoil @PeterJones
      last edited by dinkumoil

      @PeterJones said:

      Waiting until users start complaining (“I have Notepad++ v7.8, and suddenly it’s downloading plugins that claim they aren’t compatible with v7.8”) to fix it might be harder than getting it implemented now.

      Yeah, do it right at the right time and not when foreseeable issues arise.

      1 Reply Last reply Reply Quote 5
      • PeterJonesP
        PeterJones
        last edited by

        @PeterJones said:

        Implementing @pndev’s suggestion

        /me notices he misspelled @pnedev’s user name. Sorry. (Username links are one of the things that doesn’t render in the PREVIEW window when editing a post, so it’s harder to notice. :-( )

        1 Reply Last reply Reply Quote 4
        • PredelnikP
          Predelnik @dinkumoil
          last edited by

          @dinkumoil said:

          AFAICS there are even more members of the SCNotification struct which have been changed from int to Sci_Position, namely

          Good point! But change of the size of the second argument is already enough to make access by previous definition incorrect in almost all of the cases unfortunately.

          1 Reply Last reply Reply Quote 1
          • pnedevP
            pnedev
            last edited by pnedev

            Hi @Meta-Chuh ,

            I didn’t know that, thanks.

            Does this mean that if I have Notepad++ v 7.6.6 and never change it I won’t get any plugin updates or newly released plugins ever?

            BR

            Meta ChuhM 1 Reply Last reply Reply Quote 2
            • Meta ChuhM
              Meta Chuh moderator @pnedev
              last edited by

              @pnedev

              yes, correct.

              even if a newer plugin version has been submitted to the current pluginlist, 7.6.6 will only use the one it was shipped with, inside nppPluginList.dll.

              same for all older versions since 7.6.
              it’s a cool thing for testing though, as i have every portable npp version, and i can download exactly the old versions of a plugin available at that time (as long as the author doesn’t remove the older release downloads from his repo)

              best regards.

              1 Reply Last reply Reply Quote 1
              • dinkumoilD
                dinkumoil
                last edited by

                @all

                I’ve filed an issue, see >>> here <<<.

                1 Reply Last reply Reply Quote 2
                • pnedevP
                  pnedev
                  last edited by

                  @Meta-Chuh ,

                  OK, thanks.

                  Its cool for testing and support but not quite flexible for the user.
                  If you want your plugins updated (or get newly released plugins) via PluginsAdmin you are forced to update Notepad++ itself.

                  1 Reply Last reply Reply Quote 0
                  • pnedevP
                    pnedev
                    last edited by

                    @dinkumoil ,

                    I have added this suggestion. I think it is the better approach.

                    1 Reply Last reply Reply Quote 0
                    • Alan KilbornA
                      Alan Kilborn
                      last edited by

                      It didn’t seem quite right to mention this in the github issue, but this forum is more tolerant if you get off topic…

                      Thinking about these proposed Plugin attributes and the recent changes (and then change-back) in core Notepad++ security/authentication, what assurances do we have that plugins are coming across from untampered-with files?

                      1 Reply Last reply Reply Quote 1
                      • gstaviG
                        gstavi
                        last edited by

                        Sci_Position is used in lots of places. For example LexAccessor. It should break plugins binary compatibility left and right.
                        This kind of demonstrates the difference between Windows mindset that holds binary compatibility sacred and Linux mindset that assume that packages are always built from sources and no binary should ever interact with different versions.

                        Somewhat surprising that Scintilla developers allowed this incompatibility so easily. I wonder if they realized the impact.

                        Plugin manager may mitigate the affect in case plugin developers will cooperate but in it is a real pity if newer plugins will not work with older Notepad++.

                        Depending of the amount of plugin breakdown that will occur @donho should consider if Notepad++ user base will not be served better by temporary rolling back Notepad++ to the older Scintilla and announce some 6 month to plugin developers to get ready for the change.

                        dailD 1 Reply Last reply Reply Quote 0
                        • dailD
                          dail @gstavi
                          last edited by

                          @gstavi

                          Somewhat surprising that Scintilla developers allowed this incompatibility so easily

                          The Scintilla developers are not at fault. This is the entire reason they changed from the 3.x to 4.x version.

                          1 Reply Last reply Reply Quote 2
                          • gstaviG
                            gstavi
                            last edited by

                            @dail said:

                            The Scintilla developers are not at fault. This is the entire reason they changed from the 3.x to 4.x version.

                            It is very much in dispute whether a library should ever allow itself a major compatibility breaking change to its API. Changing the library’s major version does not magically justifies it. This is definitely the Linux mindset with its advantages and shortcomings.
                            A responsible developer should go through all possible hoops to extend the API rather than change it before going this path. Maybe they did, I don’t know.

                            Specifically for this change, I would challenge, the need to support 64 bit position within a document. Opening a text file over 1GB is such a bad user experience that I doubt that you can find 0.01% within your user base that do it routinely. Your guess is good as mine for the amount of users that will be pissed by the compatibility break.

                            Still need to audit plugins to see how many are actually broken. Maybe I am overly pessimistic.
                            But it is possible that 32 bit version of Notepad++ just became much more attractive.

                            1 Reply Last reply Reply Quote 2
                            • First post
                              Last post
                            The Community of users of the Notepad++ text editor.
                            Powered by NodeBB | Contributors