4 ms·
Be interesting to see if they support @objc on Linux, the Apple runtime is difficult to support because it requires the dynamic linker to notify libobjc when an
by lukeh 11y ago
Be interesting to see if they support @objc on Linux, the Apple runtime is difficult to support because it requires the dynamic linker to notify libobjc when an image is loaded.
- astrodust 11y agoThe Objective-C support on Linux is already great, the compiler handles it well. The problem is the Foundation library isn't ported so you're left using old, unsupported relics from the OpenSTEP project.
- david-given 11y agoIs Apple's dialect supported, or only the NeXT version? (Which, TBF, has absolutely nothing wrong with it and is a great language; but it's not what people are writing these days.)
- bri3d 11y agoObjective-C 2.0 via Clang and the GNUStep ObjC2 runtime supports blocks, GCD, fast enumeration, declared properties, introspection.
- lukeh 11y agoIt's always just a SMOP, but my hunch is that Swift is way too integrated with the Apple runtime to not use it. I wouldn't be surprised if they have limited support for ObjC in their Swift Linux port, but happy to be proven wrong. (I started porting the Apple runtime to Linux last year but ran into the aforementioned linker issue. A way around it is to change the Apple runtime ABI on Linux of course.)
- gsnedders 11y agoCoreFoundation has a MakefileLinux[1] for versions since 635 (corresponding to 10.7, if I'm not mistaken) — anybody know the status of that? It obviously relies on Clang (as it uses various extensions), but does it build, is it useful? [1]: http://www.opensource.apple.com/source/CF/CF-1151.16/MakefileLinux http://www.opensource.apple.com/source/CF/CF-1151.16/Makefil...
- lukeh 11y agoIt's not all of CF and some of the ObjC glue is missing, particularly in the last few drops. Apportable put most of if back in though.
- biturd 11y agoWhat language is that link written in? It looks like bash sort of but not really?
- stephenr 11y agoIt's a Makefile.. for.. Make.
- notduncansmith 11y agoI feel like this reply could have been much more helpful and less snarky. Some people are still learning - we all were, at one point.
- keeganpoppen 11y agoeveryone is always learning (hopefully) ;D
- 72deluxe 11y agoSome people aren't learning to be helpful or less snarky though.... :-)
- johnmaguire2013 11y agoIt's a Makefile[1]. They are quite simple really. They're defined like this: target: dependencies command The command is run by a shell (e.g. bash!) when the target is called to be run. For example... all: hello world echo "!" hello: echo "Hello" world: echo "World" Now if you run "make", you will see each command being run. By default, if you call "make" with no arguments, the "all" target will be run. You can also call "make world" for example, to have it only run the "world" target. As you can see, first the dependencies of the target are called, then the command of the target is run. It's often used by C/C++ projects in order to manage dependencies, but can be used for anything really. Here's a short tutorial you can walk through if you're interested in how it works and why it's useful: http://mrbook.org/blog/tutorials/make/ http://mrbook.org/blog/tutorials/make/ 1. https://en.wikipedia.org/wiki/Makefile https://en.wikipedia.org/wiki/Makefile