Kdb+ Personal on macOS Catalina

Hi.  I’m going to upgrade my mac to the latest macOS version 10.15 Catalina.  It seems that 32-bit programs won’t run any more and I was wondering if there’s any good solution for running kdb+ personal on newer macs.  I appreciate there is the 64-bit on-demand version but would rather not be tied to internet access if possible, eg. programming on flights.

Any ideas?

John Estrada

Hi John,

Currently your only option is to run a virtual machine with an OS that is compatible with 32 bit apps. Presuming you want to continue using Kdb+ in an macOS environment this would be macOS 10.14 Mojave. You could also use Windows or a Linux flavour of your choice. There are a few options for running two different operating systems on macOS;

You could use the bootcamp utility built into macOS to dual boot your mac. This would allow you to run Catalina and Mojave on the same machine with the later having the ability to run 32 bit Kdb. The downside about this setup is that you have to reboot if you want to switch to the other operating system. You also have to completely wipe your drive in order to partition it, which can be a pain. Please see the attached link which will give you a walk through guide on how to do this method. 

https://www.macworld.co.uk/how-to/mac-software/dual-boot-mac-3659676/

The other option is to use a 3rd party virtual machine utility such as parallels (https://www.parallels.com/) the advantage being that you can run Mojave inside a window on Catalina meaning you don’t have to reboot every time you want to switch. The downside to parallels is that it costs money $80.00 or £70 for a license. There are other VM clients for mac available. Please see the link for a walk through guide using Parallels;

https://uk.pcmag.com/news-analysis/123012/how-to-run-32-bit-apps-in-macos-catalina

Also, here is Apple’s response to this issue.

https://support.apple.com/en-us/HT208436

As you mentioned you can of course use the 64bit version of Kdb+ provided you are connected to the internet. 

Lastly you could choose not to upgrade and continue using the 32bit version of Kdb+ on Mojave (not recommended)

Cheers,

Murray Mackenzie

AquaQ Analytics

Murray - Thanks for the clear answer listing all the options.  I tried installing the on-demand version and remember the issue with this, putting my laptop to sleep and then losing my setup as kdb no longer reaches the server and times out.  Sounds like users like me probably end up running a 32-bit Linux virtual box and then doing something via ports/websockets to access Linux via the Mac environment.

If I get a nice setup (i.e. small linux with 32-bit libraries) then I’ll add it to this post at a later date.

John Estrada

I just got bitten by this mess too! I just upgraded to Catalina on my Macbook Air and switched over to zsh like it said to do and now I’m getting:

erik.friis@Eriks-Air ~ % ~/q/m32/q    
zsh: bad CPU type in executable: /Users/erik.friis/q/m32/q
erik.friis@Eriks-Air ~ %

Bad CPU type??

I have used Parallels once to run Dyalog APL and it was not very good. So now 32-bit kdb+ cannot be run on Catalina? Why? Is it strictly a 64-bit OS?

Why do I need an internet connection to run 64-bit kdb+?

Thanks for any info.

Hi Erik,

>switched over to zsh  

Firstly Apple want you to use zsh instead of bash. They were using an older version of the bourne again shell 3.2.57 (released in 2007!!!)- this was the last version licenced under GPLv2. From this version onward the licence changed to GPLv3 which was/is far more restrictive and not to Apples liking hence why they refused to ship a more recent version on the shiny new macbooks. They have now migrated to zsh as it comes with an MIT-like licence - Apple have much more freedom and don’t pay!

>Bad CPU Type??

From macOS version 10.15 Catalina Apple dropped support for 32bit apps. You cannot run a 32 bit app on that operating system. It is a strictly 64-bit OS with regards to the apps it allows 3rd party developers to run - I would have to dig deeper but I am sure you’d be able to find a 32bit app somewhere in the OS.

>Why do I need an internet connection to run 64-bit kdb+?

The 64-bit kdb+ licence is an always-on licence. It requires you to have a constant internet connection to use it. As they distribute the 64-bit copy “freely”, I presume the internet connection is to catch anyone using the software for commercial purposes without a proper licence. It would be hard to run 32bit offline version in a commercial environment with the memory limits (1GB).

>I just got bitten by this mess too

The worst is yet to come!! I think the reason for the phase out of 32bit app support on Catalina is to prepare developers for the big change to ARM based CPU’s. Apple has already released that there will be a macbook with an ARM processor by the end of this year. They need developers of current apps in the macOS eco system to start rewriting/porting them for ARM architecture and to kickstart the intel x86-64 to ARM64

I suggest if you really want to run the 32bit kdb on your mac you follow one of the solutions I posted above to John.

Hope that helps,

Thanks,

Murray Mackenzie

AquaQ Analytics

https://code.kx.com/q/learn/install/

macOS Catalina (10.15) does not run 32-bit applications.

HTH

Stephen




Stephen Taylor | Librarian | Kx | +44 7713 400852 | stephen@kx.com

Thank you Stephen and Murray for the salient insight into the problem. I kinda wish I hadn’t upgraded to Catalina at this point. :D I almost always have an internet connection and require a copy of kdb+ to help finish writing my book on kdb+/q so perhaps I’ll apply for the 64 bit at this point. Thank again guys!!

I requested the 64-bit version and got a quick confirm from kx with a 1-year license–thank you kx systems! It installed perfectly and is running well on Catalina.