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

Got an idea for enhancing PureBasic? New command(s) you'd like to see?
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

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

Post 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
The PureBASIC Archives: FOSS Resources:
User avatar
kenmo
Addict
Addict
Posts: 1967
Joined: Tue Dec 23, 2003 3:54 am

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

Post 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...
davido
Addict
Addict
Posts: 1890
Joined: Fri Nov 09, 2012 11:04 pm
Location: Uttoxeter, UK

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

Post by davido »

Excellent information. :D
Thank you for taking the trouble.
DE AA EB
User avatar
Tenaja
Addict
Addict
Posts: 1948
Joined: Tue Nov 09, 2010 10:15 pm

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

Post 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...
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

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

Post 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?
The PureBASIC Archives: FOSS Resources:
Marc56us
Addict
Addict
Posts: 1477
Joined: Sat Feb 08, 2014 3:26 pm

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

Post 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:
User avatar
kenmo
Addict
Addict
Posts: 1967
Joined: Tue Dec 23, 2003 3:54 am

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

Post 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"
User avatar
Tenaja
Addict
Addict
Posts: 1948
Joined: Tue Nov 09, 2010 10:15 pm

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

Post 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.
User avatar
DoubleDutch
Addict
Addict
Posts: 3219
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

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

Post 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.
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

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

Post 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
The PureBASIC Archives: FOSS Resources:
User avatar
Shardik
Addict
Addict
Posts: 1989
Joined: Thu Apr 21, 2005 2:38 pm
Location: Germany

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

Post 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.
Last edited by Shardik on Sun Sep 27, 2020 3:39 pm, edited 1 time in total.
User avatar
skywalk
Addict
Addict
Posts: 3972
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

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

Post by skywalk »

Bummer indeed. At some point, avoiding additional runtime dependencies creates bigger problems. Using an external scintilla dll also becomes a runtime dependency.
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
User avatar
Tristano
Enthusiast
Enthusiast
Posts: 190
Joined: Thu Nov 26, 2015 6:52 pm
Location: Italy
Contact:

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

Post 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).
The PureBASIC Archives: FOSS Resources:
Zach
Addict
Addict
Posts: 1654
Joined: Sun Dec 12, 2010 12:36 am
Location: Somewhere in the midwest
Contact:

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

Post 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.
Image
User avatar
DoubleDutch
Addict
Addict
Posts: 3219
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

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

Post 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.
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
Post Reply