summary refs log tree commit diff stats
path: root/compiler/lookups.nim
/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
 * See LICENSE file for license details.
 */
#include "dwm.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>

/* extern */

void *
emallocz(unsigned int size) {
	void *res = calloc(1, size);

	if(!res)
		eprint("fatal: could not malloc() %u bytes\n", size);
	return res;
}

void
eprint(const char *errstr, ...) {
	va_list ap;

	va_start(ap, errstr);
	vfprintf(stderr, errstr, ap);
	va_end(ap);
	exit(EXIT_FAILURE);
}

void
spawn(Arg *arg) {
	static char *shell = NULL;

	if(!shell && !(shell = getenv("SHELL")))
		shell = "/bin/sh";
	if(!arg->cmd)
		return;
	/* The double-fork construct avoids zombie processes and keeps the code
	 * clean from stupid signal handlers. */
	if(fork() == 0) {
		if(fork() == 0) {
			if(dpy)
				close(ConnectionNumber(dpy));
			
Commit message (Collapse)AuthorAgeFilesLines
* Fix spellings (#12277) [backport]Federico Ceratto2019-09-271-1/+1
|
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-1/+1
| | | | | * Remove sonsLen * Use Indexable
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq
* use slashes instead of dots for pathsAndreas Rumpf2018-08-061-1/+1
|
* baby steps for incremental compilationAndreas Rumpf2018-05-301-5/+9
|
* refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-13/+13
| | | | around explicitly
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
|
* make tests green againAndreas Rumpf2018-05-181-13/+15
|
* preparations of making compiler/msgs.nim free of global variablesAndreas Rumpf2018-05-171-1/+1
|
* options.nim: no global variables anymoreAndreas Rumpf2018-05-131-4/+4
|
* lookups compiles againAndreas Rumpf2018-05-101-56/+53
|
* Cpp codegen: handling of imported exceptions. Fixes #3571 (#7360)cooldome2018-04-101-2/+0
|
* Static[T] fixes (#7333)zah2018-03-241-1/+2
| | | | | | | | | | | * fix the usage of unresolved static[T] parameters in proc signatures * fix tsametype and tmacrogenerics * Allow creating composite type classes with concepts and using them in type signatures * Allow integers to be used in ident concatenations * Support using imported C++ generic types in proc signatures * fixes #7230 * closes #7379 * re-enable some metatype tests
* fixes #6965Araq2017-12-281-3/+4
|
* fixes #1860; macro generating a wrong nkSymChoice nodeAndreas Rumpf2017-10-301-2/+10
|
* deprecated unary '<'Andreas Rumpf2017-10-291-1/+1
|
* first implementation of package level types that allow forwarding across ↵Andreas Rumpf2017-10-281-1/+1
| | | | module boundaries
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-2/+4
|
* .pure enums are much more convenient to use nowAndreas Rumpf2017-09-171-1/+3
|
* compiler: better error messages (#5613)Andreas Rumpf2017-03-261-13/+20
|
* big compiler refactoring; avoid globals for multi method dispatcher generationAndreas Rumpf2017-02-221-1/+1
|
* More progress towards a working #3691.Dominik Picheta2017-02-031-1/+1
|
* WIP: `as` with generics.Dominik Picheta2017-02-021-0/+3
|
* implements module grouping for the import statementAndreas Rumpf2016-12-211-2/+2
|
* recursive modules are only detected to improve error messagesAndreas Rumpf2016-11-241-4/+13
|
* fixes #4555Andreas Rumpf2016-08-021-7/+14
|
* compiler almost free of deprecated expr/stmt namesAndreas Rumpf2016-07-301-2/+2
|
* Locate 'attempt to redefine' errors at the import statement rather than at ↵Kier Davis2016-07-301-0/+4
| | | | the first line of the imported module. Fixes #4541.
* fixes an valid 'T' is not used hintAndreas Rumpf2016-07-201-1/+2
|
* fixes #177Andreas Rumpf2016-05-111-3/+16
|
* first implementation of the new lambda-lifting pass; barely anything worksAndreas Rumpf2015-12-261-1/+1
|
* renamed inCompilesContext to compilesContextId; added test case for #3313Araq2015-09-181-1/+1
|
* don't generate memset calls for C++ objectsAraq2015-03-181-37/+37
|