summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2009-06-20 14:54:57 +0000
committerAlexis Ballier <aballier@gentoo.org>2009-06-20 14:54:57 +0000
commitf705a2f6835cc2e0db1289c8083e704cf5d0c0bb (patch)
tree2a6f541e408dbfc078ecca6aeb850367afd0c8ec /dev-lang
parentDon't install modules specific for other versions of Python (bug #274499). (diff)
downloadhistorical-f705a2f6835cc2e0db1289c8083e704cf5d0c0bb.tar.gz
historical-f705a2f6835cc2e0db1289c8083e704cf5d0c0bb.tar.bz2
historical-f705a2f6835cc2e0db1289c8083e704cf5d0c0bb.zip
Make a tarball from the various patches
Package-Manager: portage-2.2_rc33/cvs/Linux x86_64
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/ocaml/ChangeLog8
-rw-r--r--dev-lang/ocaml/Manifest14
-rw-r--r--dev-lang/ocaml/files/ocaml-3.11.0_beta1-configure.patch38
-rw-r--r--dev-lang/ocaml/files/ocaml-3.11.0_beta1-exec-stack-fixes.patch237
-rw-r--r--dev-lang/ocaml/files/ocaml-3.11.0_beta1-yaccldflags.patch15
-rw-r--r--dev-lang/ocaml/ocaml-3.11.1.ebuild22
6 files changed, 18 insertions, 316 deletions
diff --git a/dev-lang/ocaml/ChangeLog b/dev-lang/ocaml/ChangeLog
index 238ec46c29b2..c8e0e1c27084 100644
--- a/dev-lang/ocaml/ChangeLog
+++ b/dev-lang/ocaml/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-lang/ocaml
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ChangeLog,v 1.166 2009/06/19 21:55:06 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ChangeLog,v 1.167 2009/06/20 14:54:57 aballier Exp $
+
+ 20 Jun 2009; Alexis Ballier <aballier@gentoo.org>
+ -files/ocaml-3.11.0_beta1-configure.patch,
+ -files/ocaml-3.11.0_beta1-exec-stack-fixes.patch,
+ -files/ocaml-3.11.0_beta1-yaccldflags.patch, ocaml-3.11.1.ebuild:
+ Make a tarball from the various patches
19 Jun 2009; Alexis Ballier <aballier@gentoo.org> -ocaml-3.11.0.ebuild:
remove old
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index c87c0f4062be..46bf842885d8 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -6,20 +6,18 @@ AUX ocaml-3.10.0-call-ld-with-proper-ldflags.patch 1497 RMD160 7eef667019e79f287
AUX ocaml-3.10.0-configure.patch 5644 RMD160 1a63847a6e632f59fef8ff448b96bc45da15eae5 SHA1 6a030e48dd5fc399b985dd99e21b6c0e6b95a12e SHA256 f42e11db2d184532aa561b0b117f7ce5850bb50981ea997d08eee34f826360ac
AUX ocaml-3.10.0-exec-stack-fixes.patch 9395 RMD160 00d5e1ac85a090baeaf9b9cba2e277c72bef5792 SHA1 15bc9692307f4781c3d01db7724869f7e9a401d7 SHA256 a260416a0fc1cf05ff3b2dceac83bd00043ee7ad6a8f2487934723f5b9f406da
AUX ocaml-3.10.2-tk85.patch 2414 RMD160 1b8dc94de1c90264684a300f5f31ffce02e94cec SHA1 98c7a48c167500d3e7d8c34e79124dc0cedc315d SHA256 ba539578fbec539ff481b5fc786612d5e85b01cc2d6eee22a2f9ed340d2d0fd3
-AUX ocaml-3.11.0_beta1-configure.patch 1379 RMD160 88d927738686dfe566e53568bc921ff74d45cb51 SHA1 819a2de1e30c9e55af245ccd11483e100b7a2641 SHA256 734b7ede6f22bfb48e46bf7b10c9e7b448d15c62f5b5087104c3a1b34ad920b7
-AUX ocaml-3.11.0_beta1-exec-stack-fixes.patch 7262 RMD160 1a3d125b775494bf8e0f8d9b85edb101447d5756 SHA1 a0f762f089679f8f273ea0e44998a9c5e364ded7 SHA256 e8d7cded5ebc494df8be81764e80982cba0192d1e010472690ccff75e5d0e03b
-AUX ocaml-3.11.0_beta1-yaccldflags.patch 554 RMD160 2135a729520499211c23dcfc99ddd3df79d660e9 SHA1 631a80a40a2c721e35e04fc141f76c41ea15506a SHA256 56d5472fe7962308a388e3ddf07a20de942d282c3581e5476045c19aef5943c9
AUX ocaml-rebuild.sh 1055 RMD160 a75f61820cfdc262912cc5af1241779bf900d4d7 SHA1 a673a51e05d6103863061109c4d5956ca6efdf2b SHA256 446aab21ab2d757d37666c28a634f5d0da5f690f2694354d77cdb73b202a37ae
DIST ocaml-3.10.2.tar.bz2 2284860 RMD160 f631230b090dbd9bf9a9f71631cd0347c033cbb1 SHA1 f604580bf2943891d8faf265eeb900bbe90abce0 SHA256 3755a32da1a7490d47fff7838c12c754d3fcfe69d7c9ff2358704259dc477c58
DIST ocaml-3.11.1.tar.gz 2859411 RMD160 7a48021e80602917cc91f7cc3305d5f3ab92b0bc SHA1 05ccb525bb53f8676e238de31209713ec38ae63a SHA256 70bf4ec660b07c9119123eb8ef2a5d9e5e98fac8c4082cca33b2622e91386b53
+DIST ocaml-patches-1.tar.bz2 3108 RMD160 ad56f8be4b15347794f3167be82124fcdbf6f6dc SHA1 542ae4c2b1515730fe0c9050b6658106ef69ad19 SHA256 ad1c252cba7cc50f70d19049fcd78aa359672e436ab9906424548229a04afa49
EBUILD ocaml-3.10.2.ebuild 4483 RMD160 4ff4c804896a2fd8541061219e46ca1612ecffa8 SHA1 3e1aeb9f1471392431f9ea9283feac2290e467f4 SHA256 eca3f4782ca03e663acde9062231367c248624d0a655cf0200f24aeb8fa47da4
-EBUILD ocaml-3.11.1.ebuild 4273 RMD160 b12eabd8784a71456ff4266be2348238a176618c SHA1 1f5a14f71701fee46cb1531f8411d38bc847fb39 SHA256 33d06cea8012452a2b48f80904c719effc76b4b9233f4690163e38a53a299279
-MISC ChangeLog 26340 RMD160 094cc4f8020d63e27d44e588f9c3978a2f2737fe SHA1 9cf307976785fdfc9e78e7638993e72f2ea5918f SHA256 721e208653f3f772ea347b74049433139eb5a3cebb82cea4339b7ff019895bf6
+EBUILD ocaml-3.11.1.ebuild 3756 RMD160 0e379e55e393f87539ad30fb82dad947a21631a9 SHA1 03a4e237aa73f9e19215f5d68d52623b61e09606 SHA256 ddaf9abd9140973ff3213e9ec3a671dc5e6b2efe2c6fc447b3c254ba61967371
+MISC ChangeLog 26600 RMD160 2bc7fb3e3de9bb3f33f292feb76be81569e3a74a SHA1 a41abcae1b1273fe7c49523436a47d35456439d1 SHA256 fa1bbcee412873d054c64d7314416db8e4dc60445f74bc1777f9fe5de381dde2
MISC metadata.xml 155 RMD160 dfaa057e679b01302a807c75a32a910098b26809 SHA1 94024f83dcacbb53e92be090dd0f994ec93dc90d SHA256 118048376ebb76f57628b0819f3de4856e73959c2578c88715d37ea2d1e0af81
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (GNU/Linux)
-iEYEARECAAYFAko8CUEACgkQvFcC4BYPU0rg6wCfRBeiZ2wam9RKnl4geT7i9exT
-qisAn3WBgrRl3P7uk0008Jf62kBRGAYz
-=QRDd
+iEYEARECAAYFAko8+EgACgkQvFcC4BYPU0p0jgCeI/yVX35DJZTw6fLWKmsKiQga
+u7UAn1auGi4+6vid7J003wOzi4NawV7W
+=3tyZ
-----END PGP SIGNATURE-----
diff --git a/dev-lang/ocaml/files/ocaml-3.11.0_beta1-configure.patch b/dev-lang/ocaml/files/ocaml-3.11.0_beta1-configure.patch
deleted file mode 100644
index 67f68d6ff76c..000000000000
--- a/dev-lang/ocaml/files/ocaml-3.11.0_beta1-configure.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Index: ocaml-3.11.0+beta1/configure
-===================================================================
---- ocaml-3.11.0+beta1.orig/configure
-+++ ocaml-3.11.0+beta1/configure
-@@ -245,7 +245,7 @@ esac
- # Configure the bytecode compiler
-
- bytecc="$cc"
--mkexe="\$(BYTECC)"
-+mkexe="\$(BYTECC) \$(BYTECCLINKOPTS)"
- bytecccompopts=""
- bytecclinkopts=""
- dllccompopts=""
-@@ -1500,7 +1500,15 @@ fi
-
- # Final twiddling of compiler options to work around known bugs
-
-+bytecccompopts="$CFLAGS $bytecccompopts"
-+bytecclinkopts="$LDFLAGS $bytecclinkopts"
-+natdynlinkopts="$LDFLAGS $natdynlinkopts"
-+nativeccrawlinkopts="$RAW_LDFLAGS $nativecclinkopts"
-+nativecclinkopts="$LDFLAGS $nativecclinkopts"
-+nativecccompopts="$CFLAGS $nativecccompopts"
- nativeccprofopts="$nativecccompopts"
-+mksharedlib="$mksharedlib $LDFLAGS"
-+mkmaindll="$mkmaindll $LDFLAGS"
- case "$buggycc" in
- gcc.2.96)
- bytecccompopts="$bytecccompopts -fomit-frame-pointer"
-@@ -1548,7 +1556,7 @@ echo "DEBUGGER=$debugger" >> Makefile
- echo "CC_PROFILE=$cc_profile" >> Makefile
- echo "SYSTHREAD_SUPPORT=$systhread_support" >> Makefile
- echo "PARTIALLD=$partialld" >> Makefile
--echo "PACKLD=\$(PARTIALLD) \$(NATIVECCLINKOPTS) -o " >> Makefile
-+echo "PACKLD=\$(PARTIALLD) $nativeccrawlinkopts -o " >> Makefile
- echo "DLLCCCOMPOPTS=$dllccompopts" >> Makefile
- echo "IFLEXDIR=$iflexdir" >> Makefile
- echo "O=o" >> Makefile
diff --git a/dev-lang/ocaml/files/ocaml-3.11.0_beta1-exec-stack-fixes.patch b/dev-lang/ocaml/files/ocaml-3.11.0_beta1-exec-stack-fixes.patch
deleted file mode 100644
index 4b15a35e123d..000000000000
--- a/dev-lang/ocaml/files/ocaml-3.11.0_beta1-exec-stack-fixes.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-Index: ocaml-3.10.0/asmcomp/alpha/emit.mlp
-===================================================================
---- ocaml-3.10.0.orig/asmcomp/alpha/emit.mlp
-+++ ocaml-3.10.0/asmcomp/alpha/emit.mlp
-@@ -811,6 +811,11 @@ let data l =
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -843,6 +848,7 @@ let begin_assembly() =
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly () =
-+ nx_stack();
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .text\n`;
- ` .globl {emit_symbol lbl_end}\n`;
-Index: ocaml-3.10.0/asmrun/alpha.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/alpha.S
-+++ ocaml-3.10.0/asmrun/alpha.S
-@@ -438,3 +438,7 @@ caml_system__frametable:
- .word -1 /* negative frame size => use callback link */
- .word 0 /* no roots here */
- .align 3
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-Index: ocaml-3.10.0/asmrun/arm.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/arm.S
-+++ ocaml-3.10.0/asmrun/arm.S
-@@ -337,3 +337,7 @@ caml_system__frametable:
- .short -1 /* negative frame size => use callback link */
- .short 0 /* no roots */
- .align 2
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-Index: ocaml-3.10.0/asmrun/hppa.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/hppa.S
-+++ ocaml-3.10.0/asmrun/hppa.S
-@@ -532,3 +532,8 @@ G(caml_system__frametable):
- .long L104 + 3 /* return address into callback */
- .short -1 /* negative frame size => use callback link */
- .short 0 /* no roots */
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-Index: ocaml-3.10.0/asmrun/ia64.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/ia64.S
-+++ ocaml-3.10.0/asmrun/ia64.S
-@@ -528,3 +528,8 @@ caml_system__frametable:
-
- .common caml_saved_bsp#, 8, 8
- .common caml_saved_rnat#, 8, 8
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-Index: ocaml-3.10.0/asmrun/m68k.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/m68k.S
-+++ ocaml-3.10.0/asmrun/m68k.S
-@@ -242,3 +242,8 @@ _caml_system__frametable:
- .long L107 | return address into callback
- .word -1 | negative frame size => use callback link
- .word 0 | no roots here
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-Index: ocaml-3.10.0/asmrun/power-elf.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/power-elf.S
-+++ ocaml-3.10.0/asmrun/power-elf.S
-@@ -419,3 +419,7 @@ caml_system__frametable:
- .short -1 /* negative size count => use callback link */
- .short 0 /* no roots here */
-
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-Index: ocaml-3.10.0/asmrun/sparc.S
-===================================================================
---- ocaml-3.10.0.orig/asmrun/sparc.S
-+++ ocaml-3.10.0/asmrun/sparc.S
-@@ -405,3 +405,8 @@ Caml_system__frametable:
- .type Caml_raise_exception, #function
- .type Caml_system__frametable, #object
- #endif
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-Index: ocaml-3.10.0/asmcomp/arm/emit.mlp
-===================================================================
---- ocaml-3.10.0.orig/asmcomp/arm/emit.mlp
-+++ ocaml-3.10.0/asmcomp/arm/emit.mlp
-@@ -642,6 +642,13 @@ let data l =
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -661,6 +668,7 @@ let begin_assembly() =
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly () =
-+ nx_stack();
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .text\n`;
- ` .global {emit_symbol lbl_end}\n`;
-Index: ocaml-3.10.0/asmcomp/hppa/emit.mlp
-===================================================================
---- ocaml-3.10.0.orig/asmcomp/hppa/emit.mlp
-+++ ocaml-3.10.0/asmcomp/hppa/emit.mlp
-@@ -994,6 +994,12 @@ let data l =
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -1022,6 +1028,7 @@ let begin_assembly() =
-
-
- let end_assembly() =
-+ nx_stack();
- ` .code\n`;
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- declare_global lbl_end;
-Index: ocaml-3.10.0/asmcomp/ia64/emit.mlp
-===================================================================
---- ocaml-3.10.0.orig/asmcomp/ia64/emit.mlp
-+++ ocaml-3.10.0/asmcomp/ia64/emit.mlp
-@@ -1306,6 +1306,11 @@ let data l =
- ` .align 8\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -1315,6 +1320,7 @@ let begin_assembly() =
- emit_define_symbol (Compilenv.make_symbol (Some "code_begin"))
-
- let end_assembly () =
-+ nx_stack();
- ` .data\n`;
- emit_define_symbol (Compilenv.make_symbol (Some "data_end"));
- ` .text\n`;
-Index: ocaml-3.10.0/asmcomp/power/emit.mlp
-===================================================================
---- ocaml-3.10.0.orig/asmcomp/power/emit.mlp
-+++ ocaml-3.10.0/asmcomp/power/emit.mlp
-@@ -916,6 +916,12 @@ let data l =
- emit_string data_space;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "elf" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -932,6 +938,7 @@ let begin_assembly() =
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly() =
-+ nx_stack();
- if pic_externals then
- (* Emit the pointers to external functions *)
- StringSet.iter emit_external !external_functions;
-Index: ocaml-3.10.0/asmcomp/sparc/emit.mlp
-===================================================================
---- ocaml-3.10.0.orig/asmcomp/sparc/emit.mlp
-+++ ocaml-3.10.0/asmcomp/sparc/emit.mlp
-@@ -741,6 +741,12 @@ let data l =
- ` .data\n`;
- List.iter emit_item l
-
-+(* Mark stack as non executable *)
-+let nx_stack() =
-+ if Config.system = "linux" then
-+ ` .section .note.GNU-stack,\"\",%progbits\n`
-+
-+
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-@@ -754,6 +760,7 @@ let begin_assembly() =
- `{emit_symbol lbl_begin}:\n`
-
- let end_assembly() =
-+ nx_stack();
- ` .text\n`;
- let lbl_end = Compilenv.make_symbol (Some "code_end") in
- ` .global {emit_symbol lbl_end}\n`;
diff --git a/dev-lang/ocaml/files/ocaml-3.11.0_beta1-yaccldflags.patch b/dev-lang/ocaml/files/ocaml-3.11.0_beta1-yaccldflags.patch
deleted file mode 100644
index 2bd64e0372a3..000000000000
--- a/dev-lang/ocaml/files/ocaml-3.11.0_beta1-yaccldflags.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-http://caml.inria.fr/mantis/view.php?id=4698
-
-Index: ocaml-3.11.0+beta1/yacc/Makefile
-===================================================================
---- ocaml-3.11.0+beta1.orig/yacc/Makefile
-+++ ocaml-3.11.0+beta1/yacc/Makefile
-@@ -25,7 +25,7 @@ OBJS= closure.o error.o lalr.o lr0.o mai
- all: ocamlyacc$(EXE)
-
- ocamlyacc$(EXE): $(OBJS)
-- $(CC) $(CFLAGS) $(CCLINKFLAGS) -o ocamlyacc $(OBJS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) $(CCLINKFLAGS) -o ocamlyacc $(OBJS)
-
- version.h : ../VERSION
- echo "#define OCAML_VERSION \"`head -1 ../VERSION`\"" >version.h
diff --git a/dev-lang/ocaml/ocaml-3.11.1.ebuild b/dev-lang/ocaml/ocaml-3.11.1.ebuild
index d71d6ab92417..9bd975e9c29d 100644
--- a/dev-lang/ocaml/ocaml-3.11.1.ebuild
+++ b/dev-lang/ocaml/ocaml-3.11.1.ebuild
@@ -1,15 +1,17 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ocaml-3.11.1.ebuild,v 1.1 2009/06/15 22:53:03 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ocaml-3.11.1.ebuild,v 1.2 2009/06/20 14:54:57 aballier Exp $
EAPI="1"
inherit flag-o-matic eutils multilib versionator toolchain-funcs
+PATCHLEVEL="1"
MY_P="${P/_/+}"
DESCRIPTION="Fast modern type-inferring functional programming language descended from the ML family"
HOMEPAGE="http://www.ocaml.org/"
-SRC_URI="ftp://ftp.inria.fr/INRIA/cristal/ocaml/ocaml-$( get_version_component_range 1-2)/${MY_P}.tar.gz"
+SRC_URI="ftp://ftp.inria.fr/INRIA/cristal/ocaml/ocaml-$( get_version_component_range 1-2)/${MY_P}.tar.gz
+ mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2"
LICENSE="QPL-1.0 LGPL-2"
SLOT="0"
@@ -40,21 +42,7 @@ pkg_setup() {
src_unpack() {
unpack ${A}
cd "${S}"
-
- # Fix the EXEC_STACK in ocaml compiled binaries (#153382)
- epatch "${FILESDIR}"/${PN}-3.11.0_beta1-exec-stack-fixes.patch
-
- # The configure script doesn't inherit previous defined variables,
- # overwriting previous declarations of bytecccompopts, bytecclinkopts,
- # nativecccompopts and nativecclinkopts. Reported upstream as issue 0004267.
- epatch "${FILESDIR}"/${PN}-3.11.0_beta1-configure.patch
-
- # ocaml has automagics on libX11 and gdbm
- # http://caml.inria.fr/mantis/view.php?id=4278
- epatch "${FILESDIR}/${PN}-3.10.0-automagic.patch"
-
- # Respect LDFLAGS for ocamlyacc
- epatch "${FILESDIR}"/${PN}-3.11.0_beta1-yaccldflags.patch
+ EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
}
src_compile() {