I’d like this channel to be a place for me to ask you questions. To get opinions on feature direction if you will.
First topic has to do with Sockets.
Having done the first draft of TCPSocket, UDPSocket, IPCSocket and ServerSocket yesterday, it occurred to me that the TCPSocket.Listen() functionality was implemented in two different classes. Once in TCPSocket itself and once in ServerSocket. I was thinking of consolidating those so that a developer would always use ServerSocket so that if they wanted scalability later, they’d just need to increase the maximum connection count.
Note: ServerSocket in Buoy has two major differences from its namesake. It can serve IPCSockets and it can serve sockets on preemptive threads.
Discuss…
New topic.
In an attempt to keep the binary delivery m size to a minimum, if at all possible, features will be delivered as Packages. That is, compiled plugin-like zips that you can add on a project-by-project basis so people who don’t need SerialPort at all, don’t need to incur any size hit. There are of course things that can’t follow this pattern, or at least, not yet.
I’m also considering having a global place to put packages where the linker will always look so the things you use in all or most of your projects don’t need to be duplicated over and over.
Any Thoughts?
I’m assuming that if the project doesn’t actually use the package it gets ignored?
The impact of an unused package is minimal. The linker strips it out but when I looked the last time you end up with a single unused byte in the app for some reason that I’m not 100% sure of yet. As you can imagine, it’s not very high on the “fix me” list at the moment.
yeah a global place to look would be nice
Esp if it can / will across versions of buoy
I really don’t see why that would be a problem. They’re just .dylib, .dll and .so libraries + one or two .bui files for the interface. Unless the language were to drastically change ( API1 vs API2 ) they should just continue to work.
The common pattern today seems to be to put things into a dot file in the user’s home, but I really don’t like that. Hidden away and easy to forget.