The road to 64-bit took another step forward today with the release of Xojo 2017 R1. This important release let’s you do 64-bit Remote Debugging for some targets with some important caveats. It also adds the ability to Remote Debug Raspberry Pi applications. And, as with every Xojo release there are a mix of new features and important bug fixes.
64-bit Remote Debugging
2017 R1 lets you remote debug 64 desktop, console, and web applications on macOS and Linux assuming that neither one uses XojoScript. 64-bit XojoScript is still missing in action which is preventing the IDE itself from being 64-bit. I believe this is scheduled for Release 2.
Missing is the ability to remote debug 64-bit iOS, and 64-bit Windows applications. Presumably iOS shouldn’t take long since macOS is already working. From what I gather the LLVM compiler for Windows isn’t as far along as macOS and Linux so it’s taking longer to get working.
The Remote Debugger Stub has been updated to version 2.1 and now has 32-bit and 64-bit versions for Mac, Windows, and Linux, and a Linux ARM version for the Raspberry Pi. The 64-bit version can switch between 32-bit and 64-bit correctly depending on the target setting in the IDE.
The web framework now allows developers to use HTML in many of the controls. WebLabel, RadioGroup, Listbox, Toolbar items, and SegmentedControl can use HTML tags in their captions. Example: Label1.Text = “This is a line with <raw><b>bold</b></raw> text in it.”
The Listbox has been updated for all desktop targets and now allows you to customize the disclosure widget. This seems like an odd change. Could this be prep work for something in a future release?
SSLv3 on Xojo Cloud services is deprecated and will be disabled on all servers in summer of 2017.
One of the new options in the Preferences is to force Standardized Format after every line. This mirrors the contextual menu command Standardize Format which looks at the current selection and changes the case of every Xojo keyword to match it’s default. So if you typed ‘recordset’ it will change the case to ‘RecordSet’. It does nothing for your own variables (which would be more useful, in my opinion, and it looks like a future release may allow for that).
Also new in the preferences is the ability to change the keyboard shortcuts of all of the menus in Xojo. If you don’t like the Remote Debugging key combination you can change it to something else. One that I think I will change is the Build (command/control B) to something (perhaps command-option-B) since I often accidentally build once or twice a week when simply trying to paste code.
A number of Windows framework bugs were fixed. Probably one of the more important ones is with Xojo.Net.HTTPSocket. The socket events are now called when it is created within a thread.
Another big Windows bug fix is in Direct2D printing (broken in 2016 R4). Font sizes were incorrectly reported by the graphics object and thus caused all printing to be messed up. BKS Shorts (our reporting tool for Xojo) works properly in 2017 R1 when printing in Windows.
Windows received a number of important HiDPI updates. Note that the application icon for 64-bit builds is still not being set. One workaround is to set the associated icon via your installer. If you want an example of how to set this via an Innosetup script, let me know and I’ll share it with you.
The IDE received a really big batch of bug fixes in R1. The amount of them makes it impossible to list them all here, but one that’s been around for a long time is that ellipses (…) are no longer saved when creating the method signature. That bug hits me every now and then. For the entire list of IDE bug fixes, please see the release notes.
The road to full 64-bit compatibility is happening incrementally. R1 is another step in the journey and it’s nice to see progress. It is my hope that 2017 R2 will have Windows and iOS 64-bit remote debugging (in the iOS Simulator – I doubt remote debugging on an actual iOS device will ever happen).
Xojo has said that the Windows IDE will require 64-bit at some point in the future (even though it will still be able to build 32-bit Windows apps) and that future might be sooner than we expect. I’m curious on how many people think this is a good or bad?
This release has some nice goodies in it. The remote debugging for the Raspberry Pi has been awesome. I’m working on a project right now that advanced in a number of days what had taken me months of work to do before. The work in Windows to correct the Direct2D printing issues is most welcome and the number of HiDPI fixes is nice too.
I’ve been using R1 in regular production work for a number of weeks for macOS, Windows, Raspberry Pi, and iOS development and I’ve been pretty happy with it. It’s been stable and I have no complaints with it. The only thing I didn’t spend any time on in this release cycle was web.
Anything new in 2017 R1 that you are happy about? Anything that disappointed you?