Comments (7)
Especially since libdispatch is leveraged heavily by all iOS frameworks and applications. The WinObjC implementation is completely incorrect- not just incomplete, but entirely wrong conceptually. At least use the open source libdispatch as a reference to understand the purpose of the library.
from winobjc.
+1
from winobjc.
They took a very different approach by turning libdispatch and core foundation into something existing over the Foundation, and I'm not sure why. I think I have already seen something like that on GNUStep. Still, this seems wrong in so many ways...
Anyone knows how this is done on cocotron (which is also licensed as MIT)?
+1 for implementing libdispatch over pthreads and pure C (+blocks extension).
from winobjc.
If they did it the reverse (the Apple) way, it would also reduce the amount of code they have to maintain in their Obj-C objects. Building CoreFoundation on Foundation is going to slow down development and make the API less in sync with Apple's work.
I remember when I looked into libDispatch a while ago on Windows it required kernel support, which Windows lacked. Obviously Apple is shipping libDispatch on Windows now, so maybe that's been resolved.
from winobjc.
LibDispatch can be implemented over pthread or even directly over winthreads (I'm not sure about the complications though). There is at least two open source projects that brings libdispatch to windows (https://github.com/DrPizza/libdispatch/tree/master/libdispatch and http://opensource.mlba-team.de/xdispatch/docs/current/index.html ), all implemented in pure C and even extending the functionality to work with C++ lambda syntax.
from winobjc.
A "proper" libdispatch is high on our list of TODOs.
WinObjC implementation is completely incorrect- not just incomplete, but entirely wrong conceptually
Yes, this "implementation" was for a very particular and very narrow use case.
from winobjc.
Thanks for all the suggestions:
We have a new runtime (Gnustep libobjc2) for a while.
We have the DrPizza fork of libdispatch and are evaluating other options as well to support more recent versions of libdispatch.
We are in the process of using Apple CF.
Even with all of these, we will still not have 100% compatibility. Ex: file paths are different between iOS and UWPs. Our goal is to have sufficient compatibility to allow apps to be easily port to UWPs and these changes will drive towards that.
I am closing this issue given that we are making traction on all of those fronts.
from winobjc.
Related Issues (20)
- What versions of Windows are supported? HOT 2
- Unable to activate Windows store app. HOT 4
- Switch to `__objc_msg_forward2` for better forwarding efficiency HOT 1
- Can not install winobjc with win10 HOT 1
- -[NSObject conformsToProtocol:] does not work.
- clang hangs when compiling using optimisation flag -Os HOT 2
- Does Windows Bridge supports Metal Framework? HOT 1
- Does Windows Bridge supports OpenGL? HOT 1
- G HOT 1
- On running ios project(in Objective-C) throws error
- c sharp
- Ggg
- hhh HOT 3
- Bring WinObjC to WSLg, either exclusive to CUDA and DX12, or for all Linux with Vulkan. HOT 1
- ()R
- This repo is missing important files HOT 1
- has anyone tried newer versions of VStudio w/ this project? HOT 6
- nugetizer-2017 online package is missing HOT 2
- Need some updated instructions re installation in newer VS versions (2019 and up) HOT 4
- 使用vs2019 编译错误,什么时候改为#include <typeinfo> HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winobjc.