[vala] Drop POSIX profile



commit ca020bf04a09fe16e5583eea5a3a341e7796bff5
Author: JÃrg Billeter <j bitron ch>
Date:   Fri Aug 3 09:52:14 2012 +0200

    Drop POSIX profile

 codegen/valaccodearraymodule.vala       |   16 +--
 codegen/valaccodeattribute.vala         |   18 +--
 codegen/valaccodebasemodule.vala        |  255 ++++++++++++------------------
 codegen/valaccodecompiler.vala          |   10 +-
 codegen/valaccodecontrolflowmodule.vala |    7 +-
 codegen/valaccodemethodcallmodule.vala  |   87 +----------
 codegen/valaccodemethodmodule.vala      |   28 ++--
 codegen/valaccodestructmodule.vala      |   45 ++----
 compiler/valacompiler.vala              |   90 +++++------
 vala/valaarraytype.vala                 |    2 +-
 vala/valacatchclause.vala               |    6 +-
 vala/valacodecontext.vala               |   15 +--
 vala/valacreationmethod.vala            |    3 +-
 vala/valadatatype.vala                  |    2 +-
 vala/valaelementaccess.vala             |    2 +-
 vala/valaflowanalyzer.vala              |   49 ++-----
 vala/valaforeachstatement.vala          |    4 +-
 vala/valagenieparser.vala               |   11 +-
 vala/valamemberaccess.vala              |    2 +-
 vala/valamethodcall.vala                |    2 +-
 vala/valaobjectcreationexpression.vala  |    2 +-
 vala/valaparser.vala                    |   13 +-
 vala/valapointertype.vala               |    2 +-
 vala/valaprofile.vala                   |    1 -
 vala/valasemanticanalyzer.vala          |   24 ++--
 vala/valathrowstatement.vala            |    8 +-
 vala/valatypecheck.vala                 |    2 +-
 vala/valatypeofexpression.vala          |    2 +-
 vapi/libarchive.vapi                    |    8 -
 vapi/libdaemon.vapi                     |    8 -
 vapi/libxml-2.0.vapi                    |   28 ----
 vapi/posix.vapi                         |  263 -------------------------------
 32 files changed, 229 insertions(+), 786 deletions(-)
---
diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala
index c99d474..7bf6826 100644
--- a/codegen/valaccodearraymodule.vala
+++ b/codegen/valaccodearraymodule.vala
@@ -56,14 +56,8 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 			return;
 		}
 
-		CCodeFunctionCall gnew;
-		if (context.profile == Profile.POSIX) {
-			cfile.add_include ("stdlib.h");
-			gnew = new CCodeFunctionCall (new CCodeIdentifier ("calloc"));
-		} else {
-			gnew = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
-			gnew.add_argument (new CCodeIdentifier (get_ccode_name (expr.element_type)));
-		}
+		var gnew = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
+		gnew.add_argument (new CCodeIdentifier (get_ccode_name (expr.element_type)));
 
 		bool first = true;
 		CCodeExpression cexpr = null;
@@ -88,12 +82,6 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 		
 		gnew.add_argument (cexpr);
 
-		if (context.profile == Profile.POSIX) {
-			var csizeof = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
-			csizeof.add_argument (new CCodeIdentifier (get_ccode_name (expr.element_type)));
-			gnew.add_argument (csizeof);
-		}
-
 		var temp_var = get_temp_variable (expr.value_type, true, expr);
 		var name_cnode = get_variable_cexpression (temp_var.name);
 		int i = 0;
diff --git a/codegen/valaccodeattribute.vala b/codegen/valaccodeattribute.vala
index 523ec78..e9af7f4 100644
--- a/codegen/valaccodeattribute.vala
+++ b/codegen/valaccodeattribute.vala
@@ -606,24 +606,16 @@ public class Vala.CCodeAttribute : AttributeCache {
 		} else if (node is ErrorType) {
 			return "GError*";
 		} else if (node is GenericType) {
-			if (CodeContext.get ().profile == Profile.GOBJECT) {
-				var type = (GenericType) node;
-				if (type.value_owned) {
-					return "gpointer";
-				} else {
-					return "gconstpointer";
-				}
+			var type = (GenericType) node;
+			if (type.value_owned) {
+				return "gpointer";
 			} else {
-				return "void *";
+				return "gconstpointer";
 			}
 		} else if (node is MethodType) {
 			return "gpointer";
 		} else if (node is NullType) {
-			if (CodeContext.get ().profile == Profile.GOBJECT) {
-				return "gpointer";
-			} else {
-				return "void *";
-			}
+			return "gpointer";
 		} else if (node is PointerType) {
 			var type = (PointerType) node;
 			if (type.base_type.data_type != null && type.base_type.data_type.is_reference_type ()) {
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 2e0fded..15a4aa6 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -440,56 +440,54 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 			unichar_type = new IntegerType (unichar_struct);
 		}
 
-		if (context.profile == Profile.GOBJECT) {
-			var glib_ns = root_symbol.scope.lookup ("GLib");
-
-			gtype_type = (TypeSymbol) glib_ns.scope.lookup ("Type");
-			gobject_type = (TypeSymbol) glib_ns.scope.lookup ("Object");
-			gerror_type = new ErrorType (null, null);
-			glist_type = (Class) glib_ns.scope.lookup ("List");
-			gslist_type = (Class) glib_ns.scope.lookup ("SList");
-			gnode_type = (Class) glib_ns.scope.lookup ("Node");
-			gqueue_type = (Class) glib_ns.scope.lookup ("Queue");
-			gvaluearray_type = (Class) glib_ns.scope.lookup ("ValueArray");
-			gstringbuilder_type = (TypeSymbol) glib_ns.scope.lookup ("StringBuilder");
-			garray_type = (TypeSymbol) glib_ns.scope.lookup ("Array");
-			gbytearray_type = (TypeSymbol) glib_ns.scope.lookup ("ByteArray");
-			gptrarray_type = (TypeSymbol) glib_ns.scope.lookup ("PtrArray");
-			gthreadpool_type = (TypeSymbol) glib_ns.scope.lookup ("ThreadPool");
-			gdestroynotify_type = new DelegateType ((Delegate) glib_ns.scope.lookup ("DestroyNotify"));
-
-			gquark_type = new IntegerType ((Struct) glib_ns.scope.lookup ("Quark"));
-			gvalue_type = (Struct) glib_ns.scope.lookup ("Value");
-			gvariant_type = (Class) glib_ns.scope.lookup ("Variant");
-			mutex_type = (Struct) glib_ns.scope.lookup ("StaticRecMutex");
-
-			if (context.require_glib_version (2, 32)) {
-				gmutex_type = (Struct) glib_ns.scope.lookup ("Mutex");
-				grecmutex_type = (Struct) glib_ns.scope.lookup ("RecMutex");
-				grwlock_type = (Struct) glib_ns.scope.lookup ("RWLock");
-				gcond_type = (Struct) glib_ns.scope.lookup ("Cond");
-			}
-
-			type_module_type = (TypeSymbol) glib_ns.scope.lookup ("TypeModule");
-
-			regex_type = new ObjectType ((Class) root_symbol.scope.lookup ("GLib").scope.lookup ("Regex"));
-
-			if (context.module_init_method != null) {
-				foreach (Parameter parameter in context.module_init_method.get_parameters ()) {
-					if (parameter.variable_type.data_type == type_module_type) {
-						in_plugin = true;
-						module_init_param_name = parameter.name;
-						break;
-					}
-				}
-				if (!in_plugin) {
-					Report.error (context.module_init_method.source_reference, "[ModuleInit] requires a parameter of type `GLib.TypeModule'");
+		var glib_ns = root_symbol.scope.lookup ("GLib");
+
+		gtype_type = (TypeSymbol) glib_ns.scope.lookup ("Type");
+		gobject_type = (TypeSymbol) glib_ns.scope.lookup ("Object");
+		gerror_type = new ErrorType (null, null);
+		glist_type = (Class) glib_ns.scope.lookup ("List");
+		gslist_type = (Class) glib_ns.scope.lookup ("SList");
+		gnode_type = (Class) glib_ns.scope.lookup ("Node");
+		gqueue_type = (Class) glib_ns.scope.lookup ("Queue");
+		gvaluearray_type = (Class) glib_ns.scope.lookup ("ValueArray");
+		gstringbuilder_type = (TypeSymbol) glib_ns.scope.lookup ("StringBuilder");
+		garray_type = (TypeSymbol) glib_ns.scope.lookup ("Array");
+		gbytearray_type = (TypeSymbol) glib_ns.scope.lookup ("ByteArray");
+		gptrarray_type = (TypeSymbol) glib_ns.scope.lookup ("PtrArray");
+		gthreadpool_type = (TypeSymbol) glib_ns.scope.lookup ("ThreadPool");
+		gdestroynotify_type = new DelegateType ((Delegate) glib_ns.scope.lookup ("DestroyNotify"));
+
+		gquark_type = new IntegerType ((Struct) glib_ns.scope.lookup ("Quark"));
+		gvalue_type = (Struct) glib_ns.scope.lookup ("Value");
+		gvariant_type = (Class) glib_ns.scope.lookup ("Variant");
+		mutex_type = (Struct) glib_ns.scope.lookup ("StaticRecMutex");
+
+		if (context.require_glib_version (2, 32)) {
+			gmutex_type = (Struct) glib_ns.scope.lookup ("Mutex");
+			grecmutex_type = (Struct) glib_ns.scope.lookup ("RecMutex");
+			grwlock_type = (Struct) glib_ns.scope.lookup ("RWLock");
+			gcond_type = (Struct) glib_ns.scope.lookup ("Cond");
+		}
+
+		type_module_type = (TypeSymbol) glib_ns.scope.lookup ("TypeModule");
+
+		regex_type = new ObjectType ((Class) root_symbol.scope.lookup ("GLib").scope.lookup ("Regex"));
+
+		if (context.module_init_method != null) {
+			foreach (Parameter parameter in context.module_init_method.get_parameters ()) {
+				if (parameter.variable_type.data_type == type_module_type) {
+					in_plugin = true;
+					module_init_param_name = parameter.name;
+					break;
 				}
 			}
-
-			dbus_proxy_type = (TypeSymbol) glib_ns.scope.lookup ("DBusProxy");
+			if (!in_plugin) {
+				Report.error (context.module_init_method.source_reference, "[ModuleInit] requires a parameter of type `GLib.TypeModule'");
+			}
 		}
 
+		dbus_proxy_type = (TypeSymbol) glib_ns.scope.lookup ("DBusProxy");
+
 		header_file = new CCodeFile ();
 		header_file.is_header = true;
 		internal_header_file = new CCodeFile ();
@@ -522,12 +520,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
 		// generate C header file for public API
 		if (context.header_filename != null) {
-			bool ret;
-			if (context.profile == Profile.GOBJECT) {
-				ret = header_file.store (context.header_filename, null, context.version_header, false, "G_BEGIN_DECLS", "G_END_DECLS");
-			} else {
-				ret = header_file.store (context.header_filename, null, context.version_header, false);
-			}
+			bool ret = header_file.store (context.header_filename, null, context.version_header, false, "G_BEGIN_DECLS", "G_END_DECLS");
 			if (!ret) {
 				Report.error (null, "unable to open `%s' for writing".printf (context.header_filename));
 			}
@@ -535,12 +528,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
 		// generate C header file for internal API
 		if (context.internal_header_filename != null) {
-			bool ret;
-			if (context.profile == Profile.GOBJECT) {
-				ret = internal_header_file.store (context.internal_header_filename, null, context.version_header, false, "G_BEGIN_DECLS", "G_END_DECLS");
-			} else {
-				ret = internal_header_file.store (context.internal_header_filename, null, context.version_header, false);
-			}
+			bool ret = internal_header_file.store (context.internal_header_filename, null, context.version_header, false, "G_BEGIN_DECLS", "G_END_DECLS");
 			if (!ret) {
 				Report.error (null, "unable to open `%s' for writing".printf (context.internal_header_filename));
 			}
@@ -722,12 +710,10 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 		wrappers = new HashSet<string> (str_hash, str_equal);
 		generated_external_symbols = new HashSet<Symbol> ();
 
-		if (context.profile == Profile.GOBJECT) {
-			header_file.add_include ("glib.h");
-			internal_header_file.add_include ("glib.h");
-			cfile.add_include ("glib.h");
-			cfile.add_include ("glib-object.h");
-		}
+		header_file.add_include ("glib.h");
+		internal_header_file.add_include ("glib.h");
+		cfile.add_include ("glib.h");
+		cfile.add_include ("glib-object.h");
 
 		source_file.accept_children (this);
 
@@ -3004,7 +2990,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 	}
 
 	public CCodeExpression? get_destroy_func_expression (DataType type, bool is_chainup = false) {
-		if (context.profile == Profile.GOBJECT && (type.data_type == glist_type || type.data_type == gslist_type || type.data_type == gnode_type || type.data_type == gqueue_type)) {
+		if (type.data_type == glist_type || type.data_type == gslist_type || type.data_type == gnode_type || type.data_type == gqueue_type) {
 			// create wrapper function to free list elements if necessary
 
 			bool elements_require_free = false;
@@ -3088,17 +3074,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 				return get_variable_cexpression (func_name);
 			}
 		} else if (type is ArrayType) {
-			if (context.profile == Profile.POSIX) {
-				return new CCodeIdentifier ("free");
-			} else {
-				return new CCodeIdentifier ("g_free");
-			}
+			return new CCodeIdentifier ("g_free");
 		} else if (type is PointerType) {
-			if (context.profile == Profile.POSIX) {
-				return new CCodeIdentifier ("free");
-			} else {
-				return new CCodeIdentifier ("g_free");
-			}
+			return new CCodeIdentifier ("g_free");
 		} else {
 			return new CCodeConstant ("NULL");
 		}
@@ -3299,42 +3277,40 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 		/* set freed references to NULL to prevent further use */
 		var ccomma = new CCodeCommaExpression ();
 
-		if (context.profile == Profile.GOBJECT) {
-			if (type.data_type != null && !is_reference_counting (type.data_type) &&
-			    (type.data_type.is_subtype_of (gstringbuilder_type)
-			     || type.data_type.is_subtype_of (garray_type)
-			     || type.data_type.is_subtype_of (gbytearray_type)
-			     || type.data_type.is_subtype_of (gptrarray_type))) {
-				ccall.add_argument (new CCodeConstant ("TRUE"));
-			} else if (type.data_type == gthreadpool_type) {
-				ccall.add_argument (new CCodeConstant ("FALSE"));
-				ccall.add_argument (new CCodeConstant ("TRUE"));
-			} else if (type is ArrayType) {
-				var array_type = (ArrayType) type;
-				if (requires_destroy (array_type.element_type)) {
-					CCodeExpression csizeexpr = null;
-					if (((GLibValue) value).array_length_cvalues != null) {
-						csizeexpr = get_array_length_cvalue (value);
-					} else if (get_array_null_terminated (value)) {
-						requires_array_length = true;
-						var len_call = new CCodeFunctionCall (new CCodeIdentifier ("_vala_array_length"));
-						len_call.add_argument (cvar);
-						csizeexpr = len_call;
-					} else {
-						csizeexpr = get_array_length_cexpr (value);
-					}
+		if (type.data_type != null && !is_reference_counting (type.data_type) &&
+		    (type.data_type.is_subtype_of (gstringbuilder_type)
+		     || type.data_type.is_subtype_of (garray_type)
+		     || type.data_type.is_subtype_of (gbytearray_type)
+		     || type.data_type.is_subtype_of (gptrarray_type))) {
+			ccall.add_argument (new CCodeConstant ("TRUE"));
+		} else if (type.data_type == gthreadpool_type) {
+			ccall.add_argument (new CCodeConstant ("FALSE"));
+			ccall.add_argument (new CCodeConstant ("TRUE"));
+		} else if (type is ArrayType) {
+			var array_type = (ArrayType) type;
+			if (requires_destroy (array_type.element_type)) {
+				CCodeExpression csizeexpr = null;
+				if (((GLibValue) value).array_length_cvalues != null) {
+					csizeexpr = get_array_length_cvalue (value);
+				} else if (get_array_null_terminated (value)) {
+					requires_array_length = true;
+					var len_call = new CCodeFunctionCall (new CCodeIdentifier ("_vala_array_length"));
+					len_call.add_argument (cvar);
+					csizeexpr = len_call;
+				} else {
+					csizeexpr = get_array_length_cexpr (value);
+				}
 
-					if (csizeexpr != null) {
-						var st = array_type.element_type.data_type as Struct;
-						if (st != null && !array_type.element_type.nullable) {
-							ccall.call = new CCodeIdentifier (append_struct_array_free (st));
-							ccall.add_argument (csizeexpr);
-						} else {
-							requires_array_free = true;
-							ccall.call = new CCodeIdentifier ("_vala_array_free");
-							ccall.add_argument (csizeexpr);
-							ccall.add_argument (new CCodeCastExpression (get_destroy_func_expression (array_type.element_type), "GDestroyNotify"));
-						}
+				if (csizeexpr != null) {
+					var st = array_type.element_type.data_type as Struct;
+					if (st != null && !array_type.element_type.nullable) {
+						ccall.call = new CCodeIdentifier (append_struct_array_free (st));
+						ccall.add_argument (csizeexpr);
+					} else {
+						requires_array_free = true;
+						ccall.call = new CCodeIdentifier ("_vala_array_free");
+						ccall.add_argument (csizeexpr);
+						ccall.add_argument (new CCodeCastExpression (get_destroy_func_expression (array_type.element_type), "GDestroyNotify"));
 					}
 				}
 			}
@@ -3777,12 +3753,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 	}
 
 	public override void visit_boolean_literal (BooleanLiteral expr) {
-		if (context.profile == Profile.GOBJECT) {
-			set_cvalue (expr, new CCodeConstant (expr.value ? "TRUE" : "FALSE"));
-		} else {
-			cfile.add_include ("stdbool.h");
-			set_cvalue (expr, new CCodeConstant (expr.value ? "true" : "false"));
-		}
+		set_cvalue (expr, new CCodeConstant (expr.value ? "TRUE" : "FALSE"));
 	}
 
 	public override void visit_character_literal (CharacterLiteral expr) {
@@ -3895,9 +3866,6 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 	}
 
 	public override void visit_null_literal (NullLiteral expr) {
-		if (context.profile != Profile.GOBJECT) {
-			cfile.add_include ("stddef.h");
-		}
 		set_cvalue (expr, new CCodeConstant ("NULL"));
 
 		var array_type = expr.target_type as ArrayType;
@@ -4157,9 +4125,6 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 				dup0_func = dupid.name;
 			} else if (add_wrapper (dup0_func)) {
 				string pointer_cname = "gpointer";
-				if (context.profile == Profile.POSIX) {
-					pointer_cname = "void*";
-				}
 				var dup0_fun = new CCodeFunction (dup0_func, pointer_cname);
 				dup0_fun.add_parameter (new CCodeParameter ("self", pointer_cname));
 				dup0_fun.modifiers = CCodeModifiers.STATIC;
@@ -5010,7 +4975,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
 		var cl = expr.type_reference.data_type as Class;
 		var iface = expr.type_reference.data_type as Interface;
-		if (context.profile == Profile.GOBJECT && (iface != null || (cl != null && !cl.is_compact))) {
+		if (iface != null || (cl != null && !cl.is_compact)) {
 			// checked cast for strict subtypes of GTypeInstance
 			if (expr.is_silent_cast) {
 				var cexpr = get_cvalue (expr.inner);
@@ -5251,38 +5216,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 					set_cvalue (expr, new CCodeConstant ("%s %s".printf (left, right)));
 					return;
 				} else {
-					if (context.profile == Profile.POSIX) {
-						// convert to strcat(strcpy(malloc(1+strlen(a)+strlen(b)),a),b)
-						var strcat = new CCodeFunctionCall (new CCodeIdentifier ("strcat"));
-						var strcpy = new CCodeFunctionCall (new CCodeIdentifier ("strcpy"));
-						var malloc = new CCodeFunctionCall (new CCodeIdentifier ("malloc"));
-
-						var strlen_a = new CCodeFunctionCall (new CCodeIdentifier ("strlen"));
-						strlen_a.add_argument(cleft);
-						var strlen_b = new CCodeFunctionCall (new CCodeIdentifier ("strlen"));
-						strlen_b.add_argument(cright);
-						var newlength = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier("1"),
-							new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, strlen_a, strlen_b));
-						malloc.add_argument(newlength);
-
-						strcpy.add_argument(malloc);
-						strcpy.add_argument(cleft);
-
-						strcat.add_argument(strcpy);
-						strcat.add_argument(cright);
-						set_cvalue (expr, strcat);
-					} else {
-						// convert to g_strconcat (a, b, NULL)
-						var temp_value = create_temp_value (expr.value_type, false, expr);
+					// convert to g_strconcat (a, b, NULL)
+					var temp_value = create_temp_value (expr.value_type, false, expr);
 
-						var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_strconcat"));
-						ccall.add_argument (cleft);
-						ccall.add_argument (cright);
-						ccall.add_argument (new CCodeConstant("NULL"));
+					var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_strconcat"));
+					ccall.add_argument (cleft);
+					ccall.add_argument (cright);
+					ccall.add_argument (new CCodeConstant("NULL"));
 
-						ccode.add_assignment (get_cvalue_ (temp_value), ccall);
-						expr.target_value = temp_value;
-					}
+					ccode.add_assignment (get_cvalue_ (temp_value), ccall);
+					expr.target_value = temp_value;
 					return;
 				}
 			} else if (expr.operator == BinaryOperator.EQUALITY
@@ -5507,13 +5450,11 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 		bool unboxing = (type is ValueType && type.nullable
 		                 && target_type is ValueType && !target_type.nullable);
 
-		bool gvalue_boxing = (context.profile == Profile.GOBJECT
-		                      && target_type != null
+		bool gvalue_boxing = (target_type != null
 		                      && target_type.data_type == gvalue_type
 		                      && !(type is NullType)
 		                      && get_ccode_type_id (type) != "G_TYPE_VALUE");
-		bool gvariant_boxing = (context.profile == Profile.GOBJECT
-		                        && target_type != null
+		bool gvariant_boxing = (target_type != null
 		                        && target_type.data_type == gvariant_type
 		                        && !(type is NullType)
 		                        && type.data_type != gvariant_type);
diff --git a/codegen/valaccodecompiler.vala b/codegen/valaccodecompiler.vala
index 09ab3d6..b192760 100644
--- a/codegen/valaccodecompiler.vala
+++ b/codegen/valaccodecompiler.vala
@@ -55,12 +55,10 @@ public class Vala.CCodeCompiler {
 		if (!context.compile_only) {
 			pc += " --libs";
 		}
-		if (context.profile == Profile.GOBJECT) {
-			use_pkgconfig = true;
-			pc += " gobject-2.0";
-			if (context.thread) {
-				pc += " gthread-2.0";
-			}
+		use_pkgconfig = true;
+		pc += " gobject-2.0";
+		if (context.thread) {
+			pc += " gthread-2.0";
 		}
 		foreach (string pkg in context.get_packages ()) {
 			if (package_exists (pkg)) {
diff --git a/codegen/valaccodecontrolflowmodule.vala b/codegen/valaccodecontrolflowmodule.vala
index ea64522..91268e7 100644
--- a/codegen/valaccodecontrolflowmodule.vala
+++ b/codegen/valaccodecontrolflowmodule.vala
@@ -206,12 +206,7 @@ public abstract class Vala.CCodeControlFlowModule : CCodeMethodModule {
 	}
 
 	public override void visit_loop (Loop stmt) {
-		if (context.profile == Profile.GOBJECT) {
-			ccode.open_while (new CCodeConstant ("TRUE"));
-		} else {
-			cfile.add_include ("stdbool.h");
-			ccode.open_while (new CCodeConstant ("true"));
-		}
+		ccode.open_while (new CCodeConstant ("TRUE"));
 
 		stmt.body.emit (this);
 
diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala
index f164ae1..bd81609 100644
--- a/codegen/valaccodemethodcallmodule.vala
+++ b/codegen/valaccodemethodcallmodule.vala
@@ -48,8 +48,6 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
 				// Enum.VALUE.to_string()
 				var en = (Enum) ma.inner.value_type.data_type;
 				ccall.call = new CCodeIdentifier (generate_enum_tostring_function (en));
-			} else if (context.profile == Profile.POSIX && ma.inner != null && ma.inner.value_type != null && ma.inner.value_type.data_type == string_type.data_type && ma.member_name == "printf") {
-				ccall.call = new CCodeIdentifier (generate_string_printf_function ());
 			}
 		} else if (itype is SignalType) {
 			var sig_type = (SignalType) itype;
@@ -123,12 +121,8 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
 		}
 
 		if (m is CreationMethod && m.parent_symbol is Class) {
-			if (context.profile == Profile.GOBJECT) {
-				if (!((Class) m.parent_symbol).is_compact) {
-					ccall.add_argument (get_variable_cexpression ("object_type"));
-				}
-			} else {
-				ccall.add_argument (get_this_cexpression ());
+			if (!((Class) m.parent_symbol).is_compact) {
+				ccall.add_argument (get_variable_cexpression ("object_type"));
 			}
 
 			if (!current_class.is_compact) {
@@ -281,7 +275,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
 				param.accept (this);
 			}
 			generate_dynamic_method_wrapper ((DynamicMethod) m);
-		} else if (m is CreationMethod && context.profile == Profile.GOBJECT && m.parent_symbol is Class) {
+		} else if (m is CreationMethod && m.parent_symbol is Class) {
 			ccode.add_assignment (get_this_cexpression (), new CCodeCastExpression (ccall, CCodeBaseModule.get_ccode_name (current_class) + "*"));
 
 			if (current_method.body.captured) {
@@ -837,80 +831,5 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
 
 		return to_string_func;
 	}
-
-	private string generate_string_printf_function () {
-		if (!add_wrapper ("string_printf")) {
-			// wrapper already defined
-			return "string_printf";
-		}
-
-		// declaration
-		var function = new CCodeFunction ("string_printf", "char*");
-		function.add_parameter (new CCodeParameter ("format", "const char*"));
-		function.add_parameter (new CCodeParameter.with_ellipsis ());
-		function.modifiers = CCodeModifiers.STATIC;
-
-		// definition
-		push_context (new EmitContext ());
-		push_function (function);
-
-		ccode.add_declaration ("int", new CCodeVariableDeclarator ("length"));
-		ccode.add_declaration ("va_list", new CCodeVariableDeclarator ("ap"));
-		ccode.add_declaration ("char*", new CCodeVariableDeclarator ("result"));
-
-		var va_start = new CCodeFunctionCall (new CCodeIdentifier ("va_start"));
-		va_start.add_argument (new CCodeIdentifier ("ap"));
-		va_start.add_argument (new CCodeIdentifier ("format"));
-
-		ccode.add_expression (va_start);
-
-		var vsnprintf = new CCodeFunctionCall (new CCodeIdentifier ("vsnprintf"));
-		vsnprintf.add_argument (new CCodeConstant ("NULL"));
-		vsnprintf.add_argument (new CCodeConstant ("0"));
-		vsnprintf.add_argument (new CCodeIdentifier ("format"));
-		vsnprintf.add_argument (new CCodeIdentifier ("ap"));
-
-		ccode.add_assignment (new CCodeIdentifier ("length"), new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, vsnprintf, new CCodeConstant ("1")));
-
-		var va_end = new CCodeFunctionCall (new CCodeIdentifier ("va_end"));
-		va_end.add_argument (new CCodeIdentifier ("ap"));
-
-		ccode.add_expression (va_end);
-
-		var malloc = new CCodeFunctionCall (new CCodeIdentifier ("malloc"));
-		malloc.add_argument (new CCodeIdentifier ("length"));
-
-		ccode.add_assignment (new CCodeIdentifier ("result"), malloc);
-
-		va_start = new CCodeFunctionCall (new CCodeIdentifier ("va_start"));
-		va_start.add_argument (new CCodeIdentifier ("ap"));
-		va_start.add_argument (new CCodeIdentifier ("format"));
-
-		ccode.add_expression (va_start);
-
-		vsnprintf = new CCodeFunctionCall (new CCodeIdentifier ("vsnprintf"));
-		vsnprintf.add_argument (new CCodeIdentifier ("result"));
-		vsnprintf.add_argument (new CCodeIdentifier ("length"));
-		vsnprintf.add_argument (new CCodeIdentifier ("format"));
-		vsnprintf.add_argument (new CCodeIdentifier ("ap"));
-
-		ccode.add_expression (vsnprintf);
-
-		va_end = new CCodeFunctionCall (new CCodeIdentifier ("va_end"));
-		va_end.add_argument (new CCodeIdentifier ("ap"));
-
-		ccode.add_expression (va_end);
-
-		ccode.add_return (new CCodeIdentifier ("result"));
-
-		// append to file
-		cfile.add_include ("stdarg.h");
-		cfile.add_function_declaration (function);
-		cfile.add_function (function);
-
-		pop_context ();
-
-		return "string_printf";
-	}
 }
 
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index a784ab3..a425490 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -827,24 +827,22 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
 			cmain.add_parameter (new CCodeParameter ("argv", "char **"));
 			push_function (cmain);
 
-			if (context.profile == Profile.GOBJECT) {
-				if (context.mem_profiler) {
-					var mem_profiler_init_call = new CCodeFunctionCall (new CCodeIdentifier ("g_mem_set_vtable"));
-					mem_profiler_init_call.line = cmain.line;
-					mem_profiler_init_call.add_argument (new CCodeConstant ("glib_mem_profiler_table"));
-					ccode.add_expression (mem_profiler_init_call);
-				}
-
-				if (context.thread) {
-					var thread_init_call = new CCodeFunctionCall (new CCodeIdentifier ("g_thread_init"));
-					thread_init_call.line = cmain.line;
-					thread_init_call.add_argument (new CCodeConstant ("NULL"));
-					ccode.add_expression (thread_init_call);
-				}
+			if (context.mem_profiler) {
+				var mem_profiler_init_call = new CCodeFunctionCall (new CCodeIdentifier ("g_mem_set_vtable"));
+				mem_profiler_init_call.line = cmain.line;
+				mem_profiler_init_call.add_argument (new CCodeConstant ("glib_mem_profiler_table"));
+				ccode.add_expression (mem_profiler_init_call);
+			}
 
-				ccode.add_expression (new CCodeFunctionCall (new CCodeIdentifier ("g_type_init")));
+			if (context.thread) {
+				var thread_init_call = new CCodeFunctionCall (new CCodeIdentifier ("g_thread_init"));
+				thread_init_call.line = cmain.line;
+				thread_init_call.add_argument (new CCodeConstant ("NULL"));
+				ccode.add_expression (thread_init_call);
 			}
 
+			ccode.add_expression (new CCodeFunctionCall (new CCodeIdentifier ("g_type_init")));
+
 			var main_call = new CCodeFunctionCall (new CCodeIdentifier (function.name));
 			if (m.get_parameters ().size == 1) {
 				main_call.add_argument (new CCodeIdentifier ("argv"));
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index 75b14bd..df33939 100644
--- a/codegen/valaccodestructmodule.vala
+++ b/codegen/valaccodestructmodule.vala
@@ -53,16 +53,14 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
 			return;
 		}
 
-		if (context.profile == Profile.GOBJECT) {
-			if (get_ccode_has_type_id (st)) {
-				decl_space.add_type_declaration (new CCodeNewline ());
-				var macro = "(%s_get_type ())".printf (get_ccode_lower_case_name (st, null));
-				decl_space.add_type_declaration (new CCodeMacroReplacement (get_ccode_type_id (st), macro));
-
-				var type_fun = new StructRegisterFunction (st, context);
-				type_fun.init_from_type (false, true);
-				decl_space.add_type_member_declaration (type_fun.get_declaration ());
-			}
+		if (get_ccode_has_type_id (st)) {
+			decl_space.add_type_declaration (new CCodeNewline ());
+			var macro = "(%s_get_type ())".printf (get_ccode_lower_case_name (st, null));
+			decl_space.add_type_declaration (new CCodeMacroReplacement (get_ccode_type_id (st), macro));
+
+			var type_fun = new StructRegisterFunction (st, context);
+			type_fun.init_from_type (false, true);
+			decl_space.add_type_member_declaration (type_fun.get_declaration ());
 		}
 
 		var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (st)));
@@ -204,17 +202,10 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
 
 		ccode.add_declaration (get_ccode_name (st) + "*", new CCodeVariableDeclarator ("dup"));
 
-		if (context.profile == Profile.GOBJECT) {
-			var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
-			creation_call.add_argument (new CCodeConstant (get_ccode_name (st)));
-			creation_call.add_argument (new CCodeConstant ("1"));
-			ccode.add_assignment (new CCodeIdentifier ("dup"), creation_call);
-		} else if (context.profile == Profile.POSIX) {
-			var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("calloc"));
-			creation_call.add_argument (new CCodeConstant ("1"));
-			creation_call.add_argument (new CCodeIdentifier ("sizeof (%s*)".printf (get_ccode_name (st))));
-			ccode.add_assignment (new CCodeIdentifier ("dup"), creation_call);
-		}
+		var creation_call = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
+		creation_call.add_argument (new CCodeConstant (get_ccode_name (st)));
+		creation_call.add_argument (new CCodeConstant ("1"));
+		ccode.add_assignment (new CCodeIdentifier ("dup"), creation_call);
 
 		if (st.is_disposable ()) {
 			var copy_call = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_copy_function (st)));
@@ -257,15 +248,9 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
 			ccode.add_expression (destroy_call);
 		}
 
-		if (context.profile == Profile.GOBJECT) {
-			var free_call = new CCodeFunctionCall (new CCodeIdentifier ("g_free"));
-			free_call.add_argument (new CCodeIdentifier ("self"));
-			ccode.add_expression (free_call);
-		} else if (context.profile == Profile.POSIX) {
-			var free_call = new CCodeFunctionCall (new CCodeIdentifier ("free"));
-			free_call.add_argument (new CCodeIdentifier ("self"));
-			ccode.add_expression (free_call);
-		}
+		var free_call = new CCodeFunctionCall (new CCodeIdentifier ("g_free"));
+		free_call.add_argument (new CCodeIdentifier ("self"));
+		ccode.add_expression (free_call);
 
 		pop_function ();
 
diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala
index 830c8b9..c30614f 100644
--- a/compiler/valacompiler.vala
+++ b/compiler/valacompiler.vala
@@ -207,10 +207,7 @@ class Vala.Compiler {
 		context.thread = thread;
 		context.mem_profiler = mem_profiler;
 		context.save_temps = save_temps;
-		if (profile == "posix") {
-			context.profile = Profile.POSIX;
-			context.add_define ("POSIX");
-		} else if (profile == "gobject-2.0" || profile == "gobject" || profile == null) {
+		if (profile == "gobject-2.0" || profile == "gobject" || profile == null) {
 			// default profile
 			context.profile = Profile.GOBJECT;
 			context.add_define ("GOBJECT");
@@ -234,33 +231,26 @@ class Vala.Compiler {
 			context.add_define ("VALA_0_%d".printf (i));
 		}
 
-		if (context.profile == Profile.POSIX) {
-			if (!nostdpkg) {
-				/* default package */
-				context.add_external_package ("posix");
-			}
-		} else if (context.profile == Profile.GOBJECT) {
-			int glib_major = 2;
-			int glib_minor = 18;
-			if (target_glib != null && target_glib.scanf ("%d.%d", out glib_major, out glib_minor) != 2) {
-				Report.error (null, "Invalid format for --target-glib");
-			}
+		int glib_major = 2;
+		int glib_minor = 18;
+		if (target_glib != null && target_glib.scanf ("%d.%d", out glib_major, out glib_minor) != 2) {
+			Report.error (null, "Invalid format for --target-glib");
+		}
 
-			context.target_glib_major = glib_major;
-			context.target_glib_minor = glib_minor;
-			if (context.target_glib_major != 2) {
-				Report.error (null, "This version of valac only supports GLib 2");
-			}
+		context.target_glib_major = glib_major;
+		context.target_glib_minor = glib_minor;
+		if (context.target_glib_major != 2) {
+			Report.error (null, "This version of valac only supports GLib 2");
+		}
 
-			for (int i = 16; i <= glib_minor; i += 2) {
-				context.add_define ("GLIB_2_%d".printf (i));
-			}
+		for (int i = 16; i <= glib_minor; i += 2) {
+			context.add_define ("GLIB_2_%d".printf (i));
+		}
 
-			if (!nostdpkg) {
-				/* default packages */
-				context.add_external_package ("glib-2.0");
-				context.add_external_package ("gobject-2.0");
-			}
+		if (!nostdpkg) {
+			/* default packages */
+			context.add_external_package ("glib-2.0");
+			context.add_external_package ("gobject-2.0");
 		}
 
 		if (packages != null) {
@@ -282,11 +272,7 @@ class Vala.Compiler {
 			return quit ();
 		}
 
-		if (context.profile == Profile.GOBJECT) {
-			context.codegen = new GDBusServerModule ();
-		} else {
-			context.codegen = new CCodeDelegateModule ();
-		}
+		context.codegen = new GDBusServerModule ();
 
 		bool has_c_files = false;
 
@@ -357,29 +343,27 @@ class Vala.Compiler {
 
 		if (library != null) {
 			if (gir != null) {
-				if (context.profile == Profile.GOBJECT) {
-					long gir_len = gir.length;
-					int last_hyphen = gir.last_index_of_char ('-');
-
-					if (last_hyphen == -1 || !gir.has_suffix (".gir")) {
+				long gir_len = gir.length;
+				int last_hyphen = gir.last_index_of_char ('-');
+
+				if (last_hyphen == -1 || !gir.has_suffix (".gir")) {
+					Report.error (null, "GIR file name `%s' is not well-formed, expected NAME-VERSION.gir".printf (gir));
+				} else {
+					string gir_namespace = gir.substring (0, last_hyphen);
+					string gir_version = gir.substring (last_hyphen + 1, gir_len - last_hyphen - 5);
+					gir_version.canon ("0123456789.", '?');
+					if (gir_namespace == "" || gir_version == "" || !gir_version[0].isdigit () || gir_version.contains ("?")) {
 						Report.error (null, "GIR file name `%s' is not well-formed, expected NAME-VERSION.gir".printf (gir));
 					} else {
-						string gir_namespace = gir.substring (0, last_hyphen);
-						string gir_version = gir.substring (last_hyphen + 1, gir_len - last_hyphen - 5);
-						gir_version.canon ("0123456789.", '?');
-						if (gir_namespace == "" || gir_version == "" || !gir_version[0].isdigit () || gir_version.contains ("?")) {
-							Report.error (null, "GIR file name `%s' is not well-formed, expected NAME-VERSION.gir".printf (gir));
-						} else {
-							var gir_writer = new GIRWriter ();
-
-							// put .gir file in current directory unless -d has been explicitly specified
-							string gir_directory = ".";
-							if (directory != null) {
-								gir_directory = context.directory;
-							}
-
-							gir_writer.write_file (context, gir_directory, gir_namespace, gir_version, library);
+						var gir_writer = new GIRWriter ();
+
+						// put .gir file in current directory unless -d has been explicitly specified
+						string gir_directory = ".";
+						if (directory != null) {
+							gir_directory = context.directory;
 						}
+
+						gir_writer.write_file (context, gir_directory, gir_namespace, gir_version, library);
 					}
 				}
 
diff --git a/vala/valaarraytype.vala b/vala/valaarraytype.vala
index c190d1d..6654870 100644
--- a/vala/valaarraytype.vala
+++ b/vala/valaarraytype.vala
@@ -157,7 +157,7 @@ public class Vala.ArrayType : ReferenceType {
 	}
 
 	public override bool compatible (DataType target_type) {
-		if (CodeContext.get ().profile == Profile.GOBJECT && target_type.data_type != null) {
+		if (target_type.data_type != null) {
 			if (target_type.data_type.is_subtype_of (CodeContext.get ().analyzer.gvalue_type.data_type) && element_type.data_type == CodeContext.get ().root.scope.lookup ("string")) {
 				// allow implicit conversion from string[] to GValue
 				return true;
diff --git a/vala/valacatchclause.vala b/vala/valacatchclause.vala
index a65d749..b2f20a4 100644
--- a/vala/valacatchclause.vala
+++ b/vala/valacatchclause.vala
@@ -127,11 +127,7 @@ public class Vala.CatchClause : CodeNode {
 			}
 		} else {
 			// generic catch clause
-			if (context.profile == Profile.GOBJECT) {
-				error_type = new ErrorType (null, null, source_reference);
-			} else {
-				error_type = context.analyzer.error_type;
-			}
+			error_type = new ErrorType (null, null, source_reference);
 		}
 
 		error_type.check (context);
diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala
index 6167b55..e68cf41 100644
--- a/vala/valacodecontext.vala
+++ b/vala/valacodecontext.vala
@@ -407,17 +407,10 @@ public class Vala.CodeContext {
 			var source_file = new SourceFile (this, SourceFileType.SOURCE, rpath, null, cmdline);
 			source_file.relative_filename = filename;
 
-			if (profile == Profile.POSIX) {
-				// import the Posix namespace by default (namespace of backend-specific standard library)
-				var ns_ref = new UsingDirective (new UnresolvedSymbol (null, "Posix", null));
-				source_file.add_using_directive (ns_ref);
-				root.add_using_directive (ns_ref);
-			} else if (profile == Profile.GOBJECT) {
-				// import the GLib namespace by default (namespace of backend-specific standard library)
-				var ns_ref = new UsingDirective (new UnresolvedSymbol (null, "GLib", null));
-				source_file.add_using_directive (ns_ref);
-				root.add_using_directive (ns_ref);
-			}
+			// import the GLib namespace by default (namespace of backend-specific standard library)
+			var ns_ref = new UsingDirective (new UnresolvedSymbol (null, "GLib", null));
+			source_file.add_using_directive (ns_ref);
+			root.add_using_directive (ns_ref);
 
 			add_source_file (source_file);
 		} else if (filename.has_suffix (".vapi") || filename.has_suffix (".gir")) {
diff --git a/vala/valacreationmethod.vala b/vala/valacreationmethod.vala
index 826a0db..451dd81 100644
--- a/vala/valacreationmethod.vala
+++ b/vala/valacreationmethod.vala
@@ -122,8 +122,7 @@ public class Vala.CreationMethod : Method {
 
 			// ensure we chain up to base constructor
 			if (!chain_up && cl != null && cl.base_class != null) {
-				if (context.profile == Profile.GOBJECT
-				    && cl.base_class.default_construction_method != null
+				if (cl.base_class.default_construction_method != null
 				    && !cl.base_class.default_construction_method.has_construct_function) {
 					// directly chain up to Object
 					var old_insert_block = context.analyzer.insert_block;
diff --git a/vala/valadatatype.vala b/vala/valadatatype.vala
index e48d12d..085d321 100644
--- a/vala/valadatatype.vala
+++ b/vala/valadatatype.vala
@@ -262,7 +262,7 @@ public abstract class Vala.DataType : CodeNode {
 			return false;
 		}
 
-		if (CodeContext.get ().profile == Profile.GOBJECT && target_type.data_type != null) {
+		if (target_type.data_type != null) {
 			if (target_type.data_type.is_subtype_of (CodeContext.get ().analyzer.gvalue_type.data_type)) {
 				// allow implicit conversion to GValue
 				return true;
diff --git a/vala/valaelementaccess.vala b/vala/valaelementaccess.vala
index 8210e47..a86a077 100644
--- a/vala/valaelementaccess.vala
+++ b/vala/valaelementaccess.vala
@@ -141,7 +141,7 @@ public class Vala.ElementAccess : Expression {
 				value_type.value_owned = false;
 			} else {
 				var ma = container as MemberAccess;
-				if (context.profile == Profile.GOBJECT && ma != null && ma.symbol_reference is ArrayLengthField) {
+				if (ma != null && ma.symbol_reference is ArrayLengthField) {
 					// propagate lvalue for gobject length access
 					ma.inner.lvalue = true;
 					((MemberAccess) ma.inner).check_lvalue_access ();
diff --git a/vala/valaflowanalyzer.vala b/vala/valaflowanalyzer.vala
index 57453ee..b059bbd 100644
--- a/vala/valaflowanalyzer.vala
+++ b/vala/valaflowanalyzer.vala
@@ -847,7 +847,6 @@ public class Vala.FlowAnalyzer : CodeVisitor {
 			// exceptional control flow
 			foreach (DataType error_data_type in node.get_error_types()) {
 				var error_type = error_data_type as ErrorType;
-				var error_class = error_data_type.data_type as Class;
 				current_block = last_block;
 				unreachable_reported = true;
 
@@ -858,32 +857,19 @@ public class Vala.FlowAnalyzer : CodeVisitor {
 						mark_unreachable ();
 						break;
 					} else if (jump_target.is_error_target) {
-						if (context.profile == Profile.GOBJECT) {
-							if (jump_target.error_domain == null
-							    || (jump_target.error_domain == error_type.error_domain
-								&& (jump_target.error_code == null
-								    || jump_target.error_code == error_type.error_code))) {
-								// error can always be caught by this catch clause
-								// following catch clauses cannot be reached by this error
-								current_block.connect (jump_target.basic_block);
-								mark_unreachable ();
-								break;
-							} else if (error_type.error_domain == null
-								   || (error_type.error_domain == jump_target.error_domain
-								       && (error_type.error_code == null
-								           || error_type.error_code == jump_target.error_code))) {
-								// error might be caught by this catch clause
-								// unknown at compile time
-								// following catch clauses might still be reached by this error
-								current_block.connect (jump_target.basic_block);
-							}
-						} else if (jump_target.error_class == null || jump_target.error_class == error_class) {
+						if (jump_target.error_domain == null
+						    || (jump_target.error_domain == error_type.error_domain
+							&& (jump_target.error_code == null
+							    || jump_target.error_code == error_type.error_code))) {
 							// error can always be caught by this catch clause
 							// following catch clauses cannot be reached by this error
 							current_block.connect (jump_target.basic_block);
 							mark_unreachable ();
 							break;
-						} else if (jump_target.error_class.is_subtype_of (error_class)) {
+						} else if (error_type.error_domain == null
+							   || (error_type.error_domain == jump_target.error_domain
+							       && (error_type.error_code == null
+							           || error_type.error_code == jump_target.error_code))) {
 							// error might be caught by this catch clause
 							// unknown at compile time
 							// following catch clauses might still be reached by this error
@@ -957,13 +943,8 @@ public class Vala.FlowAnalyzer : CodeVisitor {
 		for (int i = catch_clauses.size - 1; i >= 0; i--) {
 			var catch_clause = catch_clauses[i];
 			if (catch_clause.error_type != null) {
-				if (context.profile == Profile.GOBJECT) {
-					var error_type = catch_clause.error_type as ErrorType;
-					jump_stack.add (new JumpTarget.error_target (new BasicBlock (), catch_clause, catch_clause.error_type.data_type as ErrorDomain, error_type.error_code, null));
-				} else {
-					var error_class = catch_clause.error_type.data_type as Class;
-					jump_stack.add (new JumpTarget.error_target (new BasicBlock (), catch_clause, null, null, error_class));
-				}
+				var error_type = catch_clause.error_type as ErrorType;
+				jump_stack.add (new JumpTarget.error_target (new BasicBlock (), catch_clause, catch_clause.error_type.data_type as ErrorDomain, error_type.error_code, null));
 			} else {
 				jump_stack.add (new JumpTarget.error_target (new BasicBlock (), catch_clause, null, null, null));
 			}
@@ -996,14 +977,8 @@ public class Vala.FlowAnalyzer : CodeVisitor {
 					break;
 				}
 
-				if (context.profile == Profile.GOBJECT) {
-					if (prev_target.error_domain == jump_target.error_domain &&
-					    prev_target.error_code == jump_target.error_code) {
-						Report.error (stmt.source_reference, "double catch clause of same error detected");
-						stmt.error = true;
-						return;
-					}
-				} else if (prev_target.error_class == jump_target.error_class) {
+				if (prev_target.error_domain == jump_target.error_domain &&
+				    prev_target.error_code == jump_target.error_code) {
 					Report.error (stmt.source_reference, "double catch clause of same error detected");
 					stmt.error = true;
 					return;
diff --git a/vala/valaforeachstatement.vala b/vala/valaforeachstatement.vala
index f27e303..8c65222 100644
--- a/vala/valaforeachstatement.vala
+++ b/vala/valaforeachstatement.vala
@@ -174,7 +174,7 @@ public class Vala.ForeachStatement : Block {
 			array_type.inline_allocated = false;
 
 			return check_without_iterator (context, collection_type, array_type.element_type);
-		} else if (context.profile == Profile.GOBJECT && (collection_type.compatible (context.analyzer.glist_type) || collection_type.compatible (context.analyzer.gslist_type))) {
+		} else if (collection_type.compatible (context.analyzer.glist_type) || collection_type.compatible (context.analyzer.gslist_type)) {
 			if (collection_type.get_type_arguments ().size != 1) {
 				error = true;
 				Report.error (collection.source_reference, "missing type argument for collection");
@@ -182,7 +182,7 @@ public class Vala.ForeachStatement : Block {
 			}
 
 			return check_without_iterator (context, collection_type, collection_type.get_type_arguments ().get (0));
-		} else if (context.profile == Profile.GOBJECT && collection_type.compatible (context.analyzer.gvaluearray_type)) {
+		} else if (collection_type.compatible (context.analyzer.gvaluearray_type)) {
 			return check_without_iterator (context, collection_type, context.analyzer.gvalue_type);
 		} else {
 			return check_with_iterator (context, collection_type);
diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala
index 861fe0d..fe23c5f 100644
--- a/vala/valagenieparser.vala
+++ b/vala/valagenieparser.vala
@@ -2341,11 +2341,8 @@ public class Vala.Genie.Parser : CodeVisitor {
 			if (is_root) {
 				return parse_main_method_declaration (attrs);
 			}
-			if (context.profile == Profile.GOBJECT) {
-				rollback (begin);
-				return parse_constructor_declaration (attrs);
-			}
-			break;
+			rollback (begin);
+			return parse_constructor_declaration (attrs);
 		case TokenType.DELEGATE:	
 			return parse_delegate_declaration (attrs);	
 		case TokenType.DEF:
@@ -3073,8 +3070,8 @@ public class Vala.Genie.Parser : CodeVisitor {
 						if (readonly) {
 							throw new ParseError.SYNTAX (get_error ("set block not allowed for a read only property"));
 						}
-						_construct = (context.profile == Profile.GOBJECT) && accept (TokenType.CONSTRUCT);
-					} else if (context.profile == Profile.GOBJECT && accept (TokenType.CONSTRUCT)) {
+						_construct = accept (TokenType.CONSTRUCT);
+					} else if (accept (TokenType.CONSTRUCT)) {
 						_construct = true;
 					} else if (!accept (TokenType.EOL)) {
 						throw new ParseError.SYNTAX (get_error ("expected get, set, or construct"));
diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala
index 358693e..f851d68 100644
--- a/vala/valamemberaccess.vala
+++ b/vala/valamemberaccess.vala
@@ -842,7 +842,7 @@ public class Vala.MemberAccess : Expression {
 		}
 
 		var this_access = inner.symbol_reference is Parameter && inner.symbol_reference.name == "this";
-		var struct_or_array = (inner.value_type is StructValueType && !inner.value_type.nullable) || (CodeContext.get ().profile == Profile.GOBJECT && inner.value_type is ArrayType);
+		var struct_or_array = (inner.value_type is StructValueType && !inner.value_type.nullable) || inner.value_type is ArrayType;
 
 		if (instance && struct_or_array && (symbol_reference is Method || lvalue) && ((inner is MemberAccess && inner.symbol_reference is Variable) || inner is ElementAccess) && !this_access) {
 			inner.lvalue = true;
diff --git a/vala/valamethodcall.vala b/vala/valamethodcall.vala
index 0cb8cac..5b0ba8a 100644
--- a/vala/valamethodcall.vala
+++ b/vala/valamethodcall.vala
@@ -213,7 +213,7 @@ public class Vala.MethodCall : Expression {
 
 		var mtype = call.value_type;
 
-		if (mtype is ObjectType || (context.profile == Profile.GOBJECT && call.symbol_reference == context.analyzer.object_type)) {
+		if (mtype is ObjectType || call.symbol_reference == context.analyzer.object_type) {
 			// constructor chain-up
 			var cm = context.analyzer.find_current_method () as CreationMethod;
 			if (cm == null) {
diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala
index 7384746..a4121f3 100644
--- a/vala/valaobjectcreationexpression.vala
+++ b/vala/valaobjectcreationexpression.vala
@@ -298,7 +298,7 @@ public class Vala.ObjectCreationExpression : Expression {
 				symbol_reference = st.default_construction_method;
 			}
 
-			if (context.profile == Profile.GOBJECT && st.is_simple_type () && symbol_reference == null) {
+			if (st.is_simple_type () && symbol_reference == null) {
 				error = true;
 				Report.error (source_reference, "`%s' does not have a default constructor".printf (st.get_full_name ()));
 				return false;
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 0f7d0e3..ca0022a 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2138,12 +2138,9 @@ public class Vala.Parser : CodeVisitor {
 	
 		switch (current ()) {	
 		case TokenType.CONSTRUCT:
-			if (context.profile == Profile.GOBJECT) {
-				rollback (begin);
-				parse_constructor_declaration (parent, attrs);
-				return;
-			}
-			break;
+			rollback (begin);
+			parse_constructor_declaration (parent, attrs);
+			return;
 		case TokenType.TILDE:
 			rollback (begin);
 			parse_destructor_declaration (parent, attrs);
@@ -2726,8 +2723,8 @@ public class Vala.Parser : CodeVisitor {
 					bool writable, _construct;
 					if (accept (TokenType.SET)) {
 						writable = true;
-						_construct = (context.profile == Profile.GOBJECT) && accept (TokenType.CONSTRUCT);
-					} else if (context.profile == Profile.GOBJECT && accept (TokenType.CONSTRUCT)) {
+						_construct = accept (TokenType.CONSTRUCT);
+					} else if (accept (TokenType.CONSTRUCT)) {
 						_construct = true;
 						writable = accept (TokenType.SET);
 					} else {
diff --git a/vala/valapointertype.vala b/vala/valapointertype.vala
index d0f938d..4bfaf34 100644
--- a/vala/valapointertype.vala
+++ b/vala/valapointertype.vala
@@ -83,7 +83,7 @@ public class Vala.PointerType : DataType {
 			return base_type.compatible (target_type);
 		}
 
-		if (CodeContext.get ().profile == Profile.GOBJECT && target_type.data_type != null && target_type.data_type.is_subtype_of (CodeContext.get ().analyzer.gvalue_type.data_type)) {
+		if (target_type.data_type != null && target_type.data_type.is_subtype_of (CodeContext.get ().analyzer.gvalue_type.data_type)) {
 			// allow implicit conversion to GValue
 			return true;
 		}
diff --git a/vala/valaprofile.vala b/vala/valaprofile.vala
index 677930f..8024965 100644
--- a/vala/valaprofile.vala
+++ b/vala/valaprofile.vala
@@ -21,6 +21,5 @@
  */
 
 public enum Vala.Profile {
-	POSIX,
 	GOBJECT
 }
diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala
index 3d66b56..8afe175 100644
--- a/vala/valasemanticanalyzer.vala
+++ b/vala/valasemanticanalyzer.vala
@@ -201,22 +201,20 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
 			unichar_type = new IntegerType (unichar_struct);
 		}
 
-		if (context.profile == Profile.GOBJECT) {
-			var glib_ns = root_symbol.scope.lookup ("GLib");
+		var glib_ns = root_symbol.scope.lookup ("GLib");
 
-			object_type = (Class) glib_ns.scope.lookup ("Object");
-			type_type = new IntegerType ((Struct) glib_ns.scope.lookup ("Type"));
-			gvalue_type = new StructValueType ((Struct) glib_ns.scope.lookup ("Value"));
-			gvariant_type = new ObjectType ((Class) glib_ns.scope.lookup ("Variant"));
+		object_type = (Class) glib_ns.scope.lookup ("Object");
+		type_type = new IntegerType ((Struct) glib_ns.scope.lookup ("Type"));
+		gvalue_type = new StructValueType ((Struct) glib_ns.scope.lookup ("Value"));
+		gvariant_type = new ObjectType ((Class) glib_ns.scope.lookup ("Variant"));
 
-			glist_type = new ObjectType ((Class) glib_ns.scope.lookup ("List"));
-			gslist_type = new ObjectType ((Class) glib_ns.scope.lookup ("SList"));
-			garray_type = new ObjectType ((Class) glib_ns.scope.lookup ("Array"));
-			gvaluearray_type = new ObjectType ((Class) glib_ns.scope.lookup ("ValueArray"));
+		glist_type = new ObjectType ((Class) glib_ns.scope.lookup ("List"));
+		gslist_type = new ObjectType ((Class) glib_ns.scope.lookup ("SList"));
+		garray_type = new ObjectType ((Class) glib_ns.scope.lookup ("Array"));
+		gvaluearray_type = new ObjectType ((Class) glib_ns.scope.lookup ("ValueArray"));
 
-			gerror_type = (Class) glib_ns.scope.lookup ("Error");
-			regex_type = new ObjectType ((Class) root_symbol.scope.lookup ("GLib").scope.lookup ("Regex"));
-		}
+		gerror_type = (Class) glib_ns.scope.lookup ("Error");
+		regex_type = new ObjectType ((Class) root_symbol.scope.lookup ("GLib").scope.lookup ("Regex"));
 
 		current_symbol = root_symbol;
 		context.root.check (context);
diff --git a/vala/valathrowstatement.vala b/vala/valathrowstatement.vala
index 2dbcc3d..0c30d33 100644
--- a/vala/valathrowstatement.vala
+++ b/vala/valathrowstatement.vala
@@ -79,11 +79,7 @@ public class Vala.ThrowStatement : CodeNode, Statement {
 
 		checked = true;
 
-		if (context.profile == Profile.GOBJECT) {
-			error_expression.target_type = new ErrorType (null, null, source_reference);
-		} else {
-			error_expression.target_type = context.analyzer.error_type.copy ();
-		}
+		error_expression.target_type = new ErrorType (null, null, source_reference);
 		error_expression.target_type.value_owned = true;
 
 		if (error_expression != null) {
@@ -98,7 +94,7 @@ public class Vala.ThrowStatement : CodeNode, Statement {
 				return false;
 			}
 
-			if (context.profile == Profile.GOBJECT && !(error_expression.value_type is ErrorType)) {
+			if (!(error_expression.value_type is ErrorType)) {
 				Report.error (error_expression.source_reference, "`%s' is not an error type".printf (error_expression.value_type.to_string ()));
 				error = true;
 				return false;
diff --git a/vala/valatypecheck.vala b/vala/valatypecheck.vala
index 2214733..4a49f5b 100644
--- a/vala/valatypecheck.vala
+++ b/vala/valatypecheck.vala
@@ -116,7 +116,7 @@ public class Vala.TypeCheck : Expression {
 			return false;
 		}
 
-		if (context.profile == Profile.GOBJECT && type_reference.get_type_arguments ().size > 0) {
+		if (type_reference.get_type_arguments ().size > 0) {
 			Report.warning (_data_type.source_reference, "Type argument list has no effect");
 		}
 
diff --git a/vala/valatypeofexpression.vala b/vala/valatypeofexpression.vala
index 1154016..9b0e02e 100644
--- a/vala/valatypeofexpression.vala
+++ b/vala/valatypeofexpression.vala
@@ -82,7 +82,7 @@ public class Vala.TypeofExpression : Expression {
 
 		value_type = context.analyzer.type_type;
 
-		if (context.profile == Profile.GOBJECT && type_reference.get_type_arguments ().size > 0) {
+		if (type_reference.get_type_arguments ().size > 0) {
 			Report.warning (_data_type.source_reference, "Type argument list without effect");
 		}
 
diff --git a/vapi/libarchive.vapi b/vapi/libarchive.vapi
index cb7d485..1276267 100644
--- a/vapi/libarchive.vapi
+++ b/vapi/libarchive.vapi
@@ -164,11 +164,7 @@ namespace Archive {
 		public Result open_filename (string filename, size_t _block_size);
 		public Result open_memory (void* buff, size_t size);
 		public Result open_fd (int fd, size_t block_size);
-#if POSIX
-		public Result open_FILE (Posix.FILE file);
-#else
 		public Result open_FILE (GLib.FileStream file);
-#endif
 		public Result next_header (out unowned Entry entry);
 		public int64 header_position ();
 
@@ -224,11 +220,7 @@ namespace Archive {
 		);
 		public Result open_fd (int fd);
 		public Result open_filename (string filename);
-#if POSIX
-		public Result open_FILE (Posix.FILE file);
-#else
 		public Result open_FILE (GLib.FileStream file);
-#endif
 		public Result open_memory (void* buffer, size_t buff_size, out size_t used);
 
 		[CCode (cname="archive_write_header")]
diff --git a/vapi/libdaemon.vapi b/vapi/libdaemon.vapi
index 46b4629..b50f57c 100644
--- a/vapi/libdaemon.vapi
+++ b/vapi/libdaemon.vapi
@@ -83,11 +83,7 @@ namespace Daemon {
 
 	public int exec (string dir, out int ret, string prog, ...);
 
-#if POSIX
-	public Posix.pid_t fork ();
-#else
 	public GLib.Pid fork ();
-#endif
 	public int retval_init ();
 	public void retval_done ();
 	public int retval_wait (int timeout);
@@ -115,11 +111,7 @@ namespace Daemon {
 	public unowned string pid_file_proc_default ();
 	public int pid_file_create ();
 	public int pid_file_remove ();
-#if POSIX
-	public Posix.pid_t pid_file_is_running ();
-#else
 	public GLib.Pid pid_file_is_running ();
-#endif
 	public int pid_file_kill (Sig s);
 	public int pid_file_kill_wait (Sig s, int m);
 
diff --git a/vapi/libxml-2.0.vapi b/vapi/libxml-2.0.vapi
index 1e73482..dd2fe59 100644
--- a/vapi/libxml-2.0.vapi
+++ b/vapi/libxml-2.0.vapi
@@ -354,11 +354,7 @@ namespace Xml {
 		public Dtd* create_int_subset (string name, string external_id, string system_id);
 
 		[CCode (cname = "xmlDocDump", instance_pos = -1)]
-#if POSIX
-		public int dump (Posix.FILE f);
-#else
 		public int dump (GLib.FileStream f);
-#endif
 
 		[CCode (cname = "xmlDocDumpFormatMemory")]
 		public void dump_memory_format (out string mem, out int len = null, bool format = true);
@@ -373,11 +369,7 @@ namespace Xml {
 		public void dump_memory_enc (out string mem, out int len = null, string enc = "UTF-8");
 
 		[CCode (cname = "xmlDocFormatDump", instance_pos = 1.1)]
-#if POSIX
-		public int dump_format (Posix.FILE f, bool format = true);
-#else
 		public int dump_format (GLib.FileStream f, bool format = true);
-#endif
 
 		[CCode (cname = "xmlDocGetRootElement")]
 		public Node* get_root_element();
@@ -386,11 +378,7 @@ namespace Xml {
 		public Node* set_root_element(Node* root);
 
 		[CCode (cname = "xmlElemDump", instance_pos = 1.1)]
-#if POSIX
-		public void elem_dump (Posix.FILE f, Node* cur);
-#else
 		public void elem_dump (GLib.FileStream f, Node* cur);
-#endif
 
 		[CCode (cname = "xmlGetDocCompressMode")]
 		public int get_compress_mode ();
@@ -884,11 +872,7 @@ namespace Xml {
 		public static string path_to_uri (string path);
 
 		[CCode (cname = "xmlPrintURI", instance_pos = -1)]
-#if POSIX
-		public void print (Posix.FILE stream);
-#else
 		public void print (GLib.FileStream stream);
-#endif
 
 		[CCode (cname = "xmlSaveUri")]
 		public string save ();
@@ -1740,28 +1724,16 @@ namespace Html {
 		public void dump_memory_format (out string mem, out int len = null, bool format = true);
 
 		[CCode (cname = "htmlDocDump", instance_pos = -1)]
-#if POSIX
-		public int dump (Posix.FILE f);
-#else
 		public int dump (GLib.FileStream f);
-#endif
 
 		[CCode (cname = "htmlSaveFile", instance_pos = -1)]
 		public int save_file (string filename);
 
 		[CCode (cname = "htmlNodeDumpFile", instance_pos = 1.1)]
-#if POSIX
-		public int node_dump_file (Posix.FILE file, Xml.Node* node);
-#else
 		public int node_dump_file (GLib.FileStream file, Xml.Node* node);
-#endif
 
 		[CCode (cname = "htmlNodeDumpFileFormat", instance_pos = 1.1)]
-#if POSIX
-		public int node_dump_file_format (Posix.FILE file, string enc = "UTF-8", bool format = true);
-#else
 		public int node_dump_file_format (GLib.FileStream file, string enc = "UTF-8", bool format = true);
-#endif
 
 		[CCode (cname = "htmlSaveFileEnc", instance_pos = 1.1)]
 		public int save_file_enc (string filename, string enc = "UTF-8");
diff --git a/vapi/posix.vapi b/vapi/posix.vapi
index 2e2966e..6d56e8d 100644
--- a/vapi/posix.vapi
+++ b/vapi/posix.vapi
@@ -22,269 +22,6 @@
  *  Marco Trevisan (TreviÃo) <mail 3v1n0 net>
  */
 
-#if POSIX
-[CCode (cname = "bool", cheader_filename = "stdbool.h", default_value = "false")]
-[BooleanType]
-public struct bool {
-	public inline unowned string to_string () {
-		if (this) {
-			return "true";
-		} else {
-			return "false";
-		}
-	}
-
-	public static inline bool parse (string str) {
-		if (str == "true") {
-			return true;
-		} else {
-			return false;
-		}
-	}
-}
-
-[CCode (cname = "char", default_value = "\'\\0\'")]
-[IntegerType (rank = 2, min = 0, max = 127)]
-public struct char {
-	public inline string to_string () {
-		return "%c".printf (this);
-	}
-}
-
-[CCode (cname = "unsigned char", default_value = "\'\\0\'")]
-[IntegerType (rank = 3, min = 0, max = 255)]
-public struct uchar {
-	public inline string to_string () {
-		return "%hhu".printf (this);
-	}
-}
-
-[CCode (cname = "int", default_value = "0")]
-[IntegerType (rank = 6)]
-public struct int {
-	public inline string to_string () {
-		return "%d".printf (this);
-	}
-
-	[CCode (cname = "atoi", cheader_filename = "stdlib.h")]
-	public static int parse (string str);
-}
-
-[CCode (cname = "unsigned int", default_value = "0U")]
-[IntegerType (rank = 7)]
-public struct uint {
-	public inline string to_string () {
-		return "%u".printf (this);
-	}
-}
-
-[CCode (cname = "short", default_value = "0")]
-[IntegerType (rank = 4, min = -32768, max = 32767)]
-public struct short {
-	public inline string to_string () {
-		return "%hi".printf (this);
-	}
-}
-
-[CCode (cname = "unsigned short", default_value = "0U")]
-[IntegerType (rank = 5, min = 0, max = 65535)]
-public struct ushort {
-	public inline string to_string () {
-		return "%hu".printf (this);
-	}
-}
-
-[CCode (cname = "long", default_value = "0L")]
-[IntegerType (rank = 8)]
-public struct long {
-	public inline string to_string () {
-		return "%li".printf (this);
-	}
-
-	[CCode (cname = "atol", cheader_filename = "stdlib.h")]
-	public static long parse (string str);
-}
-
-[CCode (cname = "unsigned long", default_value = "0UL")]
-[IntegerType (rank = 9)]
-public struct ulong {
-	public inline string to_string () {
-		return "%lu".printf (this);
-	}
-}
-
-[CCode (cname = "size_t", cheader_filename = "sys/types.h", default_value = "0UL")]
-[IntegerType (rank = 9)]
-public struct size_t {
-	public inline string to_string () {
-		return "%zu".printf (this);
-	}
-}
-
-[CCode (cname = "ssize_t", cheader_filename = "sys/types.h", default_value = "0L")]
-[IntegerType (rank = 8)]
-public struct ssize_t {
-	public inline string to_string () {
-		return "%zi".printf (this);
-	}
-}
-
-[CCode (cname = "int8_t", cheader_filename = "stdint.h", default_value = "0")]
-[IntegerType (rank = 1, min = -128, max = 127)]
-public struct int8 {
-	[CCode (cname = "PRIi8", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-}
-
-[CCode (cname = "uint8_t", cheader_filename = "stdint.h", default_value = "0U")]
-[IntegerType (rank = 3, min = 0, max = 255)]
-public struct uint8 {
-	[CCode (cname = "PRIu8", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-}
-
-[CCode (cname = "int16_t", cheader_filename = "stdint.h", default_value = "0")]
-[IntegerType (rank = 4, min = -32768, max = 32767)]
-public struct int16 {
-	[CCode (cname = "PRIi16", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-}
-
-[CCode (cname = "uint16_t", cheader_filename = "stdint.h", default_value = "0U")]
-[IntegerType (rank = 5, min = 0, max = 65535)]
-public struct uint16 {
-	[CCode (cname = "PRIu16", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-}
-
-[CCode (cname = "int32_t", cheader_filename = "stdint.h", default_value = "0")]
-[IntegerType (rank = 6)]
-public struct int32 {
-	[CCode (cname = "PRIi32", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-}
-
-[CCode (cname = "uint32_t", cheader_filename = "stdint.h", default_value = "0U")]
-[IntegerType (rank = 7)]
-public struct uint32 {
-	[CCode (cname = "PRIu32", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-}
-
-[CCode (cname = "int64_t", cheader_filename = "stdint.h", default_value = "0LL")]
-[IntegerType (rank = 10)]
-public struct int64 {
-	[CCode (cname = "PRIi64", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-
-	[CCode (cname = "strtoll", cheader_filename = "stdlib.h")]
-	public static int64 parse (string str, out unowned string? end = null, int base = 10);
-}
-
-[CCode (cname = "uint64_t", cheader_filename = "stdint.h", default_value = "0ULL")]
-[IntegerType (rank = 11)]
-public struct uint64 {
-	[CCode (cname = "PRIu64", cheader_filename = "inttypes.h")]
-	public const string FORMAT;
-
-	public inline string to_string () {
-		return ("%" + FORMAT).printf (this);
-	}
-
-	[CCode (cname = "strtoull", cheader_filename = "stdlib.h")]
-	public static uint64 parse (string str, out unowned string? end = null, int base = 10);
-}
-
-[CCode (cname = "float", default_value = "0.0F")]
-[FloatingType (rank = 1)]
-public struct float {
-	public inline string to_string () {
-		return "%.8g".printf (this);
-	}
-}
-
-[CCode (cname = "double", default_value = "0.0")]
-[FloatingType (rank = 2)]
-public struct double {
-	public inline string to_string () {
-		return "%.17g".printf (this);
-	}
-
-	[CCode (cname = "strtod", cheader_filename = "stdlib.h")]
-	public static double parse (string str, out unowned string? end = null);
-}
-
-[CCode (cheader_filename = "time.h")]
-[IntegerType (rank = 8)]
-public struct time_t {
-	[CCode (cname = "time")]
-	public time_t ();
-}
-
-[Compact]
-[Immutable]
-[CCode (cname = "char", const_cname = "const char", copy_function = "strdup", free_function = "free", cheader_filename = "stdlib.h,string.h")]
-public class string {
-	[Deprecated (replacement = "int.parse")]
-	[CCode (cname="atoi")]
-	public int to_int();
-	[Deprecated (replacement = "long.parse")]
-	[CCode (cname="atol")]
-	public long to_long();
-	[Deprecated (replacement = "int64.parse")]
-	[CCode (cname="atoll")]
-	public int64 to_int64();
-	[Deprecated (replacement = "string.length")]
-	[CCode (cname="strlen")]
-	public int len();
-
-	[PrintfFormat]
-	public string printf (...);
-
-	public inline unowned string to_string () {
-		return this;
-	}
-
-	public int length {
-		[CCode (cname = "strlen")]
-		get;
-	}
-}
-
-[CCode (cname="printf", cheader_filename = "stdio.h")]
-[PrintfFormat]
-public void print (string format,...);
-
-#endif
-
 [CCode (cprefix = "", lower_case_cprefix = "")]
 namespace Posix {
 	[CCode (cheader_filename = "assert.h")]



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]