jemc changed the topic of #ponylang to: Welcome! Please check out our Code of Conduct => https://github.com/ponylang/ponyc/blob/master/CODE_OF_CONDUCT.md | Public IRC logs are available => http://irclog.whitequark.org/ponylang | Please consider participating in our mailing lists => https://pony.groups.io/g/pony
rhencke has joined #ponylang
wizeman has quit [Quit: Connection closed for inactivity]
rhencke has quit [Quit: Page closed]
kr1shnak has quit [Ping timeout: 240 seconds]
amclain has quit [Quit: Leaving]
jemc has quit [Ping timeout: 260 seconds]
deepbook5broo has joined #ponylang
deepbook5broo has left #ponylang [#ponylang]
uniquejokes has joined #ponylang
<uniquejokes> hey can anyone help me with my pony CreateProcess windows ffi issue
<uniquejokes> I have a good explanation of my issue on stackoverflow: http://stackoverflow.com/questions/42238248/ponylang-windows-createprocess-ffi
<uniquejokes> feel free to reply to stack overflow to recv credit :)
jemc has joined #ponylang
uniquejokes has quit [Ping timeout: 260 seconds]
graaff has joined #ponylang
graaff has quit [Quit: Leaving]
graaff has joined #ponylang
jemc has quit [Ping timeout: 240 seconds]
_andre has joined #ponylang
prettyvanilla has quit [Ping timeout: 260 seconds]
prettyvanilla has joined #ponylang
prettyvanilla has quit [Ping timeout: 240 seconds]
triangle345 has joined #ponylang
wizeman has joined #ponylang
prettyvanilla has joined #ponylang
kr1shnak has joined #ponylang
triangle345 has quit [Ping timeout: 260 seconds]
sjums has left #ponylang ["Leaving"]
buchanon[m] has joined #ponylang
aav has joined #ponylang
jemc has joined #ponylang
graaff has quit [Quit: Leaving]
Praetonus has joined #ponylang
<aav> is there any symbol (not alphanumeric) which can be used as a part of class/actor/type/primitive name?
amclain has joined #ponylang
prettyvanilla_ has joined #ponylang
prettyvanilla has quit [Ping timeout: 240 seconds]
Matthias247 has joined #ponylang
<jemc> aav: no, not under the current naming rules
<jemc> I believe part of the intent of those restrictions are to make it so that the mangled of functions that get compiled have sane names if you want to call them from C
<jemc> that is, I'm pretty sure LLVM supports arbitrary unicode in function names, but some users want to be able to create Pony libraries that can be called from C
<aav> jemc: makes sense. actually i have the following issue, maybe you have some suggestion on how to solve it
<aav> i'm currently working on ProtoBuf support for pony. as you maybe know, ProtoBuf supports nested messages
<aav> and i want to reflect it somehow in generated pony class names
<aav> i.e. if i have 'message Outer { message Inner {....}}' i want to generate something like 'class Outer_Inner ...'
<aav> without separator it may lead to very unreadable code. i understand the limitation, but maybe you can suggest some other solution, which will fit Pony well
<jemc> I think I remember having the same frustration when working on pony-capnp, honestly - let me look back to see what I did
<aav> jemc: thanx. and, btw, i'm re-using code_gen.pony from pony-capnp
<jemc> I think the answer is that I didn't have a very good solution :/
<jemc> where capnproto had "scoped" types, I just mashed the names together, for example `CodeGeneratorRequest::RequestedFile` in C++ became `CodeGeneratorRequestRequestedFile` in pony
<jemc> for things like enums, the solution was worse
<aav> that's what i do now
<jemc> sorry, not enums, groups, I mean
<aav> there will be enums in protobuf, and they will also sloghtly weird :)
_andre has quit [Quit: leaving]
jemc has quit [Ping timeout: 240 seconds]
triangle345 has joined #ponylang
<triangle345> hey guys i was wondering what is the process for native compiled dll's for use with ponylang packages. I was going to extend the Process package to work with windows but looks like i may need a native dll to access the ffi correctly. Is there some place native libraries are build to be used for packages?
<triangle345> i mean a custom native dll.. my own native dll
<Praetonus> triangle345: The usual way for standard library packages is to add the functions to libponyrt
aav has quit [Ping timeout: 240 seconds]
<triangle345> i see
<triangle345> thanks
<triangle345> is there a specific place in libponyrt. and also what about building the dll. would i need to include a separate makefile?
<triangle345> or build script
<triangle345> ah nm i see so i just call directly from libponyrt dll?
<SeanTAllen> im not quite sure what you are thinking
<SeanTAllen> could you step back triangle345 and explain what you want to do that requires you to add c code?
<SeanTAllen> we could probably tell you how to do what you are asking but i think its best to revisit what you are trying to do and if what you are asking about now is the correct way to go about it
Praetonus has quit [Quit: Leaving]
<triangle345> i am trying to add windows functionality to process monitor
<triangle345> currently only supports linux
<triangle345> and in order to call CreateProcess it is easier to create a native function and call from pony
<SeanTAllen> it supports more than linux, it supports any Unix.
<SeanTAllen> have you looked at how that is implemented in the runtime triangle345?
<SeanTAllen> i'd suggest looking at how the runtime c code to support process monitor is implemented
<SeanTAllen> then look at how TCPConnection support for windows and unix is done in the c runtime code
<SeanTAllen> and that should give you a good idea of how to go about it
<SeanTAllen> there would be no DLL that you would be creating and loading
<triangle345> i see ok thanks. I will take a look
<SeanTAllen> if you have questions, you can ping me here or drop me an email
<triangle345> thanks i will let you know
<triangle345> is there some documentation on how the asio event system works
<SeanTAllen> no
<SeanTAllen> but i can help you through it
<SeanTAllen> triangle345: you are going to be most interested in iocp.c
<SeanTAllen> in particular void pony_asio_event_subscribe(asio_event_t* ev)
<SeanTAllen> and
<SeanTAllen> void pony_asio_event_unsubscribe(asio_event_t* ev)
<SeanTAllen> then also
<SeanTAllen> event.c
<SeanTAllen> and the rest of the functions in that file
<SeanTAllen> asio runs in its own threads
<SeanTAllen> err
<SeanTAllen> thread
<SeanTAllen> check out `void pony_asio_event_send(asio_event_t* ev, uint32_t flags, uint32_t arg)`
<SeanTAllen> and trace before that for how things get to that point
<SeanTAllen> from there
<SeanTAllen> the event is delivered to the owning actor (which you can see in asio_event_t in event.h)
<SeanTAllen> that in turn will cause `_event_notify` to be called on the actor
<SeanTAllen> which you can see examples of in many asio handling actors in the standard library
<triangle345> thank you. i will take a look
wizeman has quit [Quit: Connection closed for inactivity]
prettyvanilla has joined #ponylang
prettyvanilla_ has quit [Ping timeout: 240 seconds]
prettyvanilla_ has joined #ponylang
prettyvanilla has quit [Ping timeout: 260 seconds]
jemc has joined #ponylang