-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various improvements #211
Various improvements #211
Conversation
This allows building/testing Vibe programs/components without having to specify the .lib files on the compiler command line every time.
The old setup required that, for every component requiring a server (e.g. a DB driver), the user had ALL components installed and running on their development system (thus, wasn't very scalable).
This is to allow debuggers to break on an uncaught exception.
This removes the dependency to HTTP code in vibe.core.args. Related changes: - Refactor out UID/GID stuff to its own module, which is activated by importing it (done in vibe.vibe) - Fix: Vibe will not ignore --uid/--gid if it's not running as root, and will print error messages accordingly - Settings in vibe.conf and the command line use the same names - Added test
Notably, remove the vibe.http.server import.
The Win32 driver does NOT use I/O completion ports.
Some comments:
|
Well, I don't want to install Redis or MongoDB in order to run or write tests. I suppose version blocks would be nicer. However, first I would tackle the performance problems head-on. The tests import vibe.vibe, for a start.
Yes, with ld. Is it a matter of just library search paths, or varying file names too?
I don't know. I doubt it produces an error. Phobos uses pragma(lib) for curl, and it hasn't caused any issues that I know of. |
Sorry, I missed that the current app.d just stupidly runs all tests sequentially. The idea is that the test to run can be selected (e.g. by command line switch or using a system similar to OpenAutomate). So no need to install dependencies for unused tests.
Usually just paths, but I think I got also different names sometimes in the past (on FreeBSD), plus it can be that multiple library files are needed or just a single one. And then there is the problem with "--as-needed" on newer Ubuntu versions (and probably others) that requires libraries with interdependencies to be passed in the right order to the linker. But of course that may not be an issue for the specific libraries in question here - I'd like to be reasonably sure about that, though. |
I've now merged everything and wrapped the libevent and openssl |
…move privilege lowering code to vibe.core.core. Privilege lowering was broken as it happened before any calls to listenTCP() or similar functions. It is now executed explicitly using lowerPrivileges(). Also processCommandLineArgs() is now fixed to at least perform in a reasonably similar way to how it used to do so that compatibility is not silently broken. See also #211.
Hi, thanks! In the future, please feel free to be specific on what needs to be changed for pull requests to be merged without fixups on your part, so I don't steal too much of your time.
|
Yes, I didn't look close enough and didn't realize at first that the privilege lowering was broken - but it was quick to fix and most of the code is really just the new help screen functionality. So no problem. The |
Of note is the new vibe.core.args, which no longer needs to import every module that wants to parse command-line / configuration file options.