Comments (4)
There was some initial discussion about this at the sync call. The primary concern is around making sure that use of such a "C union" type in a package would qualify as FFI use, for the purposes of Pony's security feature of allowing the user calling the compiler to limit FFI calls (which are inherently memory-unsafe operations) to specific whitelisted packages. Any use of a C union field would be inherently memory-unsafe in the same way, so we'd want to limit it as well, but there are some technical questions about how exactly that would be done.
from rfcs.
Not sure if this is the right issue, but it seems that some C libraries requires support for C unions. SDL2 for example won't work in pony, as it uses a union for its events (SDL_events.h).
It would be nice to use unsafe C unions for FFI, but somehow disallow it for regular pony code. E.g. by prefixing it with @ to indicate that it is an unsafe FFI feature.
from rfcs.
Has there been any progress regarding this issue? I wanted to use SFML for some simulations and UI, but it turned that Pony's FFI can't handle C unions and returning a struct from a C function, thus forcing me to write a lot (really, a lot) of C code to hide all of that from Pony. And this meant that using Pony wasn't an option anymore.
from rfcs.
No one has written an RFC for this at this time @KoczurekK.
from rfcs.
Related Issues (20)
- Request: Use primitives methods as lambda calls HOT 3
- Request: Add pipeline operator HOT 11
- Hung TCPConnection can interfere with Pony runtime shutdown HOT 1
- Possibly remove current source directory from default package path HOT 3
- Implement BigDecimal and BigInteger HOT 4
- Let CommandSpec not bail out on Unknown Option + have it consume parsed args HOT 2
- When Multiple Signal Handlers Register, They Step on One another HOT 10
- Unsound matches with unconstrainted type parameters of different caps. HOT 14
- Changes to Auth implementation HOT 7
- Mark RFC repository as a release with any implemented features HOT 1
- Expand or extract logging package from stdlib HOT 3
- Missing mechanism to pass/receive struct values into/from FFI C functions HOT 9
- [stdlib] Add an option for thousands separator to package "format"
- Syntax sugar to assigning a constructor argument to an instance variable and to add the keyword this (or self) HOT 3
- implement cond from Elixir as clean alternative to if / elseif / else HOT 9
- Incorrect division by 0 (1 / 0 -> ∞, in Pony 1 / 0 == 0) HOT 1
- Improve Range and Reverse
- Add StdStream error reporting mechanism HOT 3
- access symbol of private fields is wrong HOT 1
- proposal syntax else ... then for else keyword in conditional branches HOT 10
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 rfcs.