Packages, Automation and then some
Havent had much time to tinker with my pet pascal compiler, but I got in a couple of hours after work yesterday and today – and implemented support for source packages. The system is completely abstract so the IDE doesn’t really know “where” a unit is stored. When it needs a unit it simply uses a top-level api and ask for it, and the api takes care of locating it quickly.
Source packages
Packages are normal zipfiles (same as java uses) with some clever serial-code management. When you start the IDE a splash screen displays the loading of packages and the files are hot-plugged into the file lookup system. So the IDE actually doesn’t know the difference between a normal folder, a zipfile or something lingering on the Internet. With one exception: if your zipfile is “sealed” then you wont be able to view the units. This is a good thing for component vendors that want to ship their products without revealing their secrets. It also makes resource handling much easier (images, music, style sheets, binary data).
Storage
Also took the time to write a clever unit scanning class for dwscript. All classes and generics everywhere. Now also enumerates interfaces and class inheritance (yey!). Since DWS is so fast these days there really is no need for threading. This will by far be the best IDE for DWScript development in history.
Abstract storage is also in place, at least the basic class hierarchy. Meaning: the IDE has no idea where files are stored. It simply pertains to a storage class which takes care of the rest. Which means you don’t have to keep two buffers in memory at the same time. Much faster and requires far less code than other approaches.
Events
I have already figured out event handling, which can be a bit tricky under JavaScript/typescript/ GNU C++ (depending on the windowing toolkit), but the new RTL (QTX) will make it much easier to deal with.
Fully scriptable
And yes. DWS is bolted into the system from scratch, so once the IDE api is complete it will be fully scriptable and invokable via DWScript. Utilities etc. can be written in DWScript itself and registered in the Tools menu.
Recent
The vatican vault
- March 2023
- February 2023
- December 2022
- October 2022
- January 2022
- October 2021
- March 2021
- November 2020
- September 2020
- July 2020
- June 2020
- April 2020
- March 2020
- February 2020
- January 2020
- November 2019
- October 2019
- September 2019
- August 2019
- July 2019
- June 2019
- May 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- May 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- November 2017
- October 2017
- August 2017
- July 2017
- June 2017
- May 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- October 2016
- September 2016
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- February 2013
- August 2012
- June 2012
- May 2012
- April 2012
You must be logged in to post a comment.