Seeking advice on cross-platform Island: Linux and Windows

I have an existing Island/Windows code base, and would like to make it work on Island/Linux

I am not an experienced Linux user. I am seeking expert advice, so I can avoid any pitfalls, and be aware of any good lessons to learn in advance.

Any inputs are greatly appreciated on this matter.

P. S. In the existing Island/Windows code, I used some global memory manipulation functions such as memcpy, memcmp, but the use of Windows-specific RTL is minimal.

Wuping,

I must admit my Owen experience with Linux specifically is limited as well (especially native), but from my experiences with sharing code between (or rather not worrying about code being shared between) Windows/.NET and native macOS (which is also Unix, so neat the same :joy:), I’d say this:

  • Try to rely on functionality provided by Island RTL or Elements RTL, wherever possible, over platform-specific APIs.
  • Make no assumption about hardcoded paths, and use the path manipulation APIS in Elements RTL (Path class, and members on String) for all work with file paths.

and

  • if you find anything that cant be accomplished without falling back to platform specific code, then (a) encapsulate that in small here you create yourself (rather than ifdef’ing everywhere you need to do that thing) and (b)= let us know so we can consider adding a wrapper in Island RTL or Elements RTL (depending on the scope).

It should be pretty smooth sailing from there.

hth,
marc

1 Like

Is Island/Linux dependent on any specific glibc version (or minimum version requirement)?

Hm, I don’t know, to be honest. I’ll have two defer this to @ck.

Seems 2.19 because the folder Island/Linux/Ubuntu 2.19

Probably, yes. Is that a valid base, or do you have the need for a lower version compatibility?

Hi marc - glibc v2.19 is a valid base. As I learned, GNU C Lib has very good backward compatibility. I am mostly concerned with TensorFlow Linux which uses glibc < 2.6, and is supposed to be fully compatible with 2.19

1 Like

Should be fine yes. We do use 2.19 yes.