mulle-objc 0.17 Release
Pretty much another half year passed since the mulle-objc 0.16 release, and it’s finally time for the 0.17 release. The release is a fairly big one, in terms of new libraries. But its more of a maintenance release in terms of language and runtime features. The mulle-clang compiler is based on clang/llvm 10 now.
Highlights
- Templated sources for classes, categories, protocolclasses with the new
mulle-sde add
command. This completes the originally envisioned feature set of mulle-sde. NSCalendar
andNSCalendarDate
in the new MulleObjCCalendarFoundation- JSON support for property lists in the new MulleObjCJSMNFoundation
- Much improved
NSURL
class with a new HTTP parser in the new MulleObjCHTTPFoundation - Dependency parameters in mulle-sde sourcetrees can now be changed on a per-case basis with environment variables
- The developer guide De Re mulle-objc has undergone a significant revision and is now more accessible than ever
- The new MulleWebClient and MulleWebServer libraries help you retrieve or serve web content easily
Libraries
There has been a reorganization on the scopes of what MulleFoundation and Foundation include. Parts of MulleFoundation have
been moved to a new MulleWeb organization. They are still part of the Foundation though. These parts can always be
recognized by the MulleObjC
prefix and the Foundation
suffix. They are part of the mulle-objc release cycle. Other parts of
MulleWeb will adhere to a possibly different release cycle.
Symbols in the libraries that are part of the Foundation should conform to the OpenStep/Apple symbols. Symbols that do not conform
are prefixed mulle
or Mulle
or convenient alterations thereof. This rule does not apply outside of the Foundation though.
MulleFoundation
The MulleFoundation now contains only the data structure and OS specific parts. It does not contain internet related classes like NSURL. Here are the new additions:
Library | Description |
---|---|
MulleObjCMathFoundation | A small add on library, that moves the dependency on -lm (math) out of MulleObjCValueFoundation |
MulleObjCContainerFoundation | NSArray , NSSet , NSDictionary split off from MulleObjCStandardFoundation |
MulleObjCValueFoundation | NSNumber , NSString , NSDate , NSData split off from MulleObjCStandardFoundation |
MulleObjCCalendarFoundation | NSCalendar but there is only support for NSGregorianCalendar , loosely based on Cocotron |
Foundation
The Foundation takes part of MulleWeb and the whole of MulleFoundation to form the “what you are used to” Foundation library. It also contains extra compatibility code. Additionally Foundation now has:
Library | Description |
---|---|
MulleObjCInetOSFoundation | Marries the MulleObjCOSFoundation with the MulleObjCInetFoundation |
MulleWeb
The MulleWeb library provides HTTP server and client functionality. It is at an infancy stage, but it can already walk and talk. With the exception of MulleObjCInetFoundation these are new additions, and there will be a few more to come:
Library | Description |
---|---|
MulleObjCHTTPFoundation | provides some support for HTTP handling and a HTTP URL parser based on NGINX/node |
MulleObjCInetFoundation | NSURL and NSHost (formerly part of MulleFoundation) |
MulleObjCJSMNFoundation | provides JSON printing and parsing, based on jsmn |
MulleCurl | HTTP client library for the MulleFoundation based on libcurl |
MulleHoedown | Markdown support |
MulleZlib | Compression |
MulleCivetWeb | HTTP Server for the MulleFoundation based on civetweb |
MulleWebClient | MulleWeb client library |
MulleWebServer | MulleWeb server library |
Upgrading
The update should come with the next brew update
or apt-get dist-upgrade
.
In your own projects say mulle-sde upgrade
as mulle-env has progressed a
major version and some files need to be migrated. Also as in all releases be
sure to run mulle-sde clean cache
once and mulle-sde clean tidy
in all
your projects once, before running mulle-sde craft
.
Crystal Ball
When I look into the future, I see the following topics for mulle-objc:
- a better/working debugger based on gdb
- compiler support for current and future mulle-objc language extensions
- a MulleUI library for desktop and mobile graphics
- make Windows a first-class platform
- Better declarative support for forwarding
Release Notes
For all the releasenotes check….
mulle-c
mulle-concurrent
mulle-core
mulle-objc
- mulle-objc-compat
- mulle-objc-list
- mulle-objc-runtime
- mulle-objc-runtime-startup
- mulle-objc-developer
MulleFoundation
- Foundation
- MulleFoundation
- MulleObjCExpatFoundation
- MulleObjCInetFoundation
- MulleObjCKVCFoundation
- MulleObjCOSFoundation
- objc-compat
- MulleObjCStandardFoundation-startup
- MulleFoundation-startup
- mulle-foundation-developer
- foundation-developer
mulle-sde
- mulle-craft
- mulle-dispense
- mulle-env
- mulle-fetch
- mulle-make
- mulle-match
- mulle-monitor
- mulle-platform
- mulle-sde
- mulle-sourcetree
- mulle-sde-developer
Post a comment
All comments are held for moderation; basic HTML formatting accepted.