SenasOzys has quit [Read error: Connection reset by peer]
inoas has joined #ponylang
SenasOzys has joined #ponylang
codec1 has quit [Quit: Leaving.]
alxs has joined #ponylang
inoas has quit [Ping timeout: 246 seconds]
codec1 has joined #ponylang
inoas has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
inoas has quit [Quit: inoas]
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
kolb has left #ponylang [#ponylang]
dipin has joined #ponylang
khan has joined #ponylang
khan has quit [Client Quit]
khan has joined #ponylang
inoas has joined #ponylang
alxs has joined #ponylang
jemc has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
gokr has quit [Ping timeout: 256 seconds]
alxs has joined #ponylang
aturley has quit [Quit: aturley]
aturley has joined #ponylang
aturley has quit [Read error: Connection reset by peer]
aturley_ has joined #ponylang
khan has quit [Quit: khan]
khan has joined #ponylang
khan has quit [Client Quit]
khan has joined #ponylang
inoas has quit [Quit: inoas]
patroclos has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
khan has quit [Quit: khan]
khan has joined #ponylang
khan has quit [Client Quit]
khan has joined #ponylang
user10032 has joined #ponylang
aturley_ has quit [Quit: aturley_]
codec1 has quit [Read error: Connection reset by peer]
aturley has joined #ponylang
codec1 has joined #ponylang
alxs has joined #ponylang
kal has joined #ponylang
kal has quit [Client Quit]
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
xllndr has joined #ponylang
khan has quit [Quit: khan]
khan has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
khan has quit [Client Quit]
khan has joined #ponylang
alxs has joined #ponylang
alxs has quit [Ping timeout: 240 seconds]
<strmpnk>
Are there good examples for the AmbientAuth being used with a more specific capability?
<strmpnk>
I see it in places like HTTPClient but I'm not sure I see the intention there.
<strmpnk>
It seems like it could have interesting limits on the runtime expression of an API but I wonder why it was applied here is all.
<strmpnk>
I guess I could ask a more pointed question: are object capabilities intended to be used here to create certain guarantees around API expression, including security?
<strmpnk>
Theoretically meaning I could have a pony library that can't to random IO without explicit passing of one kind of authority or another which can build the required authority.
alxs has joined #ponylang
<jemc>
yes, I think that's a reasonable understanding of the intention
<jemc>
basically, creating a tree of primitives that can only be accessed if you have one of the permissions higher up the tree
<jemc>
so that capabilities can only decay, and never escalate, as enforced by the type system
<strmpnk>
Cool. I've read about E and I've built capability based APIs but the static guarantees are interesting so I wasn't sure if there were more reasons for this feature.
<strmpnk>
Random second question, since classes allocate space for a descriptor, I assume there is no way to allocate a collection of classes without the descriptor. With that assumption, is it frowned upon to use structs outside of the FFI when I might want more specific memory layout?
<strmpnk>
Ah. I like the FilePath example.
<jemc>
I'm curious - what context outside of FFI do you want a specific memory layout?
alxs has quit [Ping timeout: 264 seconds]
<strmpnk>
Well, not entirely free of the FFI but it'd be useful to have contiguous memory for structs for things which are lazily serialized.
<strmpnk>
The lack of tags unfortunately monomorphize the structs but an example where this is handy is an mmaped file with relative offsets for data (lets say, a big graph).
<jemc>
hm, I may be misremembering, but I *think* that an Array of structs will give you a contiguous memory of struct *pointers*, but the struct members themselves won't be in contiguous memory
<strmpnk>
Yeah. I've been told they work like "in C".
<strmpnk>
sidenote: Though I do see some problems with the FFI on windows (set aside for now since I have other things to look into). I'll work on getting something here but I think LLVM is generating invalid calls even though the 64bit calling convention should be compatible.
<strmpnk>
(lldb is unfortunately not very capable on windows, so I need to find another way to debug that issue)
alxs has joined #ponylang
<strmpnk>
On linux though, it works like I've been told.
<jemc>
ah, interesting
<jemc>
if you can file a ticket with more info, we can ask somebody from the windows side of our community to help you take a look
<jemc>
meanwhile, if your goal is to have a specific memory layout, I don't think it's an anti-pattern to use structs
<jemc>
it's usually an anti-pattern when someone wants to do so for a different reason
<jemc>
but just remember that with structs you miss out on a few type system features
alxs has quit [Ping timeout: 264 seconds]
<strmpnk>
Yeah. Lots of polymorphism goes out the window since safety is required.