[physfs] Working towards 3.0...

Ryan C. Gordon icculus at icculus.org
Sun Jul 9 15:54:44 EDT 2017


I'm working on PhysicsFS as part of this month's Patreon work...

    https://patreon.com/icculus

...with the goal of getting this to a 3.0 release. This is a cross-post 
from Patreon, so all relevant parties see it.

Expect there to be a bunch of commits in a fairly short time.

Here's where I am so far:

- The 2.1 API (which will lock down to a 3.0 release) is almost ready. 
There are new functions, but generally you can take a program written 
for PhysicsFS 1.0 and safely compile it against 3.0 and it'll still do 
the right thing. You only need to use newer APIs if you want better 
functionality, but generally the 1.0 and 2.0 APIs are still not even 
deprecated. Bug fixes are still made to the stable-2.0 branch 
(stable-1.0 is probably done now), but since it's generally safe to 
update to the 3.0 library, you probably should, even if you don't 
specifically use 3.0 APIs, since things tend to improve behind the 
scenes beyond simple bug fixes.

- I've restored OS/2 support. I know, eye-roll, I know, but...ArcaOS 5.0 
was released, making this no-longer a "dead" OS, most of the code was 
written already in revision control anyway and I've always had a special 
place in my heart for OS/2, to be honest. I don't expect this to be a 
massive userbase or anything, but having a few OSes that aren't so Unixy 
helps clean assumptions out of the library, which makes it worthwhile in 
any case, so I cleaned it up and added Unicode support. This work is 
ready to go now and is pushed to Mercurial.

- We have a buildbot! We now automatically build every commit to 
revision control across 16 targets in about 60 seconds, so I can see if 
I broke the build right away. As the waterfall is a sea of red failure 
notices across the board right now, this was apparently a necessary tool 
to have spent the time on.

You can see the waterfall of builds here:

https://physfs-buildbot.icculus.org/waterfall

The current builds are:

* Linux/amd64
* Linux/x86
* Visual Studio 2010 (x86-32 and x86-64)
* MingW64 (x86-32 and x86-64)
* Cygwin
* Emscripten
* macOS
* Raspberry Pi
* FreeBSD (with GCC and Clang)
* Haiku (the modern BeOS)
* Debian/kFreeBSD
* OpenBSD
* OS/2

These targets will change over time; it's probably already time to drop 
FreeBSD/gcc, for example, and there are others to get in there still 
like iOS, Android, WinRT.

- Symlinks work as expected on Windows again (did you know NTFS supports 
symlinks?! Win32 has a API for this since Windows Vista. PhysicsFS uses 
it now. The library should still work back to WinNT 3.x, though, and if 
you are willing to use UNICOWS.DLL, it'll probably work on the original 
retail build of Windows 95...just no symlinks on those platforms.)

There's more to be done, but I think this will be ready this month if 
everything works out. If you have a patch or bug report pending that 
I've forgotten about (because I do that all the time), please let me know!

Thanks,
--ryan.



More information about the physfs mailing list