Page 1 of 2

Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Mon Jan 29, 2018 12:18 pm
by Tristano
PureBASIC 5.61 uses Scintilla version 3.4.2 (2014/05/22).

This is a quite old verion of Scintilla, which has now entered v4 (still unstable) since August 2017. Scintilla v4.1.0 will be the first stable release of v4, which might still be a long way ahead before it’s ready.

It looks like Scintilal v4 will break backward compatibility with code written for v3.x.

So, I was wondering how PureBASIC will relate to the new Scintilla 4 when it’s ready: will it move on to adopt v4 exclusively, or will it allow users to choose between v3 and v4? ie: for the sake of allowing migration of pre-existing code.

In my opinion, having a period of grace (maybe a year) with the dual choice of using Scintilla lib v3 or v4 would be helpful — Scintilla 3 won’t be updated any further, so maintaince will only concern updating v4.

As for the current state of Scintilla library, it’s really far behind: latest Scintilla 3 is v3.7.6 (2017/08/08). There were many bug fixes and some improvements.

Any chances that the next PureBASIC release will update the Scintilla library to v3.7.6? It looks like there will be no more updates in v3, so this is a good moment to update PureBASIC to latest Scintilla 3, before v4 is stable and ready for use.

Scintilla Releases Since v3.4.2
Scintilla 4
  • Release 4.0.2 (26 October 2017)
  • Release 4.0.1 (23 October 2017)
  • Release 4.0.0 (16 August 2017)
Scintilla 3
  • Release 3.7.6 (8 August 2017)
  • Release 3.7.5 (26 May 2017)
  • Release 3.7.4 (21 March 2017)
  • Release 3.7.3 (19 February 2017)
  • Release 3.7.2 (30 December 2016)
  • Release 3.7.1 (4 December 2016)
  • Release 3.7.0 (16 October 2016)
  • Release 3.6.7 (4 September 2016)
  • Release 3.6.6 (24 May 2016)
  • Release 3.6.5 (26 April 2016)
  • Release 3.6.4 (13 March 2016)
  • Release 3.6.3 (18 January 2016)
  • Release 3.6.2 (6 November 2015)
  • Release 3.6.1 (15 September 2015)
  • Release 3.6.0 (3 August 2015)
  • Release 3.5.7 (20 June 2015)
  • Release 3.5.6 (26 May 2015)
  • Release 3.5.5 (17 April 2015)
  • Release 3.5.4 (8 March 2015)
  • Release 3.5.3 (20 January 2015)
  • Release 3.5.2 (2 December 2014)
  • Release 3.5.1 (30 September 2014)
  • Release 3.5.0 (13 August 2014)
  • Release 3.4.4 (3 July 2014)
  • Release 3.4.3 (27 May 2014)
  • Release 3.4.2 (22 May 2014) — currently used by PB 5.61

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Mon Jan 29, 2018 2:11 pm
by kenmo
Thanks for the good summary. I also wish the Scintilla lib was kept as up-to-date as possible.

I knew there was a v4.0 but I did not it broke backwards-compatibility... that might be tricky.

It has already been tricky since 3.5.2 when Scintilla dropped 32-bit and pre-10.7 for Macs... which PureBasic still supports...

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Mon Jan 29, 2018 8:01 pm
by davido
Excellent information. :D
Thank you for taking the trouble.

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Tue Jan 30, 2018 12:18 am
by Tenaja
Tristano wrote:PureBASIC 5.61 uses Scintilla version 3.4.2 (2014/05/22).
That is the very reason I use a separate dll...

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Tue Mar 06, 2018 2:45 pm
by Tristano
Grrrr ... for some reason I'm no longer receiving email notification when there are replies to subscribed topics, so I'm missing out lots of conversations. Must be the spam filter on the email server...
Tenaja wrote:That is the very reason I use a separate dll...
This is interesting. Do you need to include a separate header file or it just work 100% with PB's built in headers?

If I remember correctly, the DLL that can be downloaded from Scintilla website is the one build for Sciite, which also contains some additional lexers, which usually are not to be found in the library that ships with PureBASIC. Do you just use the precompiled DLL from Scintilla.org or do you compile it yourself?

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Tue Mar 06, 2018 3:08 pm
by Marc56us
Tristano wrote:Grrrr ... for some reason I'm no longer receiving email notification when there are replies to subscribed topics, so I'm missing out lots of conversations. Must be the spam filter on the email server...
Some ISPs limit the number of emails that can be sent per month (from PHP) to avoid spam. This is why some admins deactivate the subject notification function to reserve them for PM notifications.
(I don't know if Fred did it that way)

Click "View active topics" at top to see lasts posts.

:wink:

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Tue Mar 06, 2018 4:54 pm
by kenmo
Tristano wrote:Grrrr ... for some reason I'm no longer receiving email notification when there are replies to subscribed topics, so I'm missing out lots of conversations. Must be the spam filter on the email server...
I use Gmail and these forum notifications often end up in my Spam, even though I try to mark them all as "Not Spam"

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Wed Mar 07, 2018 7:24 pm
by Tenaja
Tristano wrote:Grrrr ... for some reason I'm no longer receiving email notification when there are replies to subscribed topics, so I'm missing out lots of conversations. Must be the spam filter on the email server...
Tenaja wrote:That is the very reason I use a separate dll...
This is interesting. Do you need to include a separate header file or it just work 100% with PB's built in headers?

If I remember correctly, the DLL that can be downloaded from Scintilla website is the one build for Sciite, which also contains some additional lexers, which usually are not to be found in the library that ships with PureBASIC. Do you just use the precompiled DLL from Scintilla.org or do you compile it yourself?
I use the pre-compiled dll, mostly because I haven't cared to slim it down. It has been so long I don't remember about the header, but I found the sample on this forum...sorry, I don't have time to dig one out right now.

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Sun Sep 27, 2020 3:07 am
by DoubleDutch
An update to the newer (or at least latest 3.x) of Scintilla would be good. A lot of stuff has been fixed and some useful things added.

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Sun Sep 27, 2020 12:56 pm
by Tristano
DoubleDutch wrote:An update to the newer (or at least latest 3.x) of Scintilla would be good. A lot of stuff has been fixed and some useful things added.
I believe that the Scintilla component was indeed updated since this post was created, but it couldn't be updated to the latest version (in the v3 range) due to to portability problems, because after a certain version Scintilla requires Windows users to install VS runtimes.

So, currently the Scintilla PB library has reached the latest updateable version without loosing portability. This means that, for the same reason, migration to Scintilla v4 won't happen.

But I might be wrong — I vaguely remember this discussion taking place on the GitHub repo, and in the forum somewhere. The sure thing is that migration to v4 is unlikely to happen.

See:

https://github.com/fantaisie-software/p ... /issues/59
https://github.com/fantaisie-software/purebasic/pull/71

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Sun Sep 27, 2020 2:13 pm
by Shardik
On MacOS the situation is even worse. It's currently impossible to compile a proper working PureBasic IDE on Mojave or Catalina (older versions work) because of a weird shift bug in the utilized Scintilla version which always shifts the source code in the IDE window to the left so that about 5 characters are always hidden.

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Sun Sep 27, 2020 2:46 pm
by skywalk
Bummer indeed. At some point, avoiding additional runtime dependencies creates bigger problems. Using an external scintilla dll also becomes a runtime dependency.

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Sun Sep 27, 2020 3:31 pm
by Tristano
skywalk wrote:Bummer indeed. At some point, avoiding additional runtime dependencies creates bigger problems. Using an external scintilla dll also becomes a runtime dependency.
Yes, the core PB philosophy of creating binaries that don't require end users to install third party components (e.g. VS runtimes, and similar) is starting to bear its weight on the evolution of the language, especially the need to depend on the old C RunTime on Windows. Too many things have changed on all major OSs, and these are slowly breaking ties with legacy environment and dependencies, adopting new ones instead.

My hope is that at some point (e.g. PB 6) PureBasic will see a major update in this respect, embracing the latest techs of all OSs — the Windows version assuming Win 10 as base OS. I do realize that these would be major changes, breaking backward compatibility with existing PB code, but it would be reasonable to do this in a new MAJOR PB version (for older code, end users can use older versions of the language). The problem is that this might imply a major rewrite in the language itself, replacing some modules with modern alternatives, and ensuring these changes work across all supported platforms. Definitely, not an easy task — but, on the other hand, the survival of the language might just as well depend on its resiliency and ability to embrace the changes (and this wouldn't be the first time PB has undergone a similar challenge in the past decades).

As for Scintilla, I proposed to Fred (elsewhere) that he could add dual support for both v3 and v4, thus allowing authors who need to use the latest Scintilla features to do so, at the cost of whatever dependencies the compiled app will require (this way, the original promise of PB being able to create standalone apps is not broken, but an alternative path is made available).

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Wed Oct 14, 2020 6:01 am
by Zach
Damn.. I was just thinking about writing a request for an update to the latest version..

There are things missing which would make what I'm trying to do, a lot easier... And looking at the way GoScintilla does things is making me bonkers because I just am not at that level of understanding.

I was hoping to use Scintilla as a cross platform replacement for the EditorGadget/RTF styling so that I wouldn't have to rewrite a bunch of stuff on a per platform basis. I can probably still do it, just gonna take a lot longer to learn. Hopefully I don't need to write a wrapper or anything to import the DLL version instead... lol

Can we not get a compromise? Like add a new "ScintillaCurrent" library that has to be activated intentionally or something.

Re: Scintilla Update to v3.7.6 (before migrating to v4)

Posted: Wed Oct 14, 2020 8:37 am
by DoubleDutch
On Windows PB you do have to supply the scintilla dll, I'm using 4.4.5 with a project and it works fine for me - not noticed any incompatibilities. I've not tried it as a replacement for the PB editor version though.