diff options
author | rene <rene@FreeBSD.org> | 2016-07-23 22:19:05 +0800 |
---|---|---|
committer | rene <rene@FreeBSD.org> | 2016-07-23 22:19:05 +0800 |
commit | cf30caeb7c67bfd1feabe3b67061fdac6bc5d042 (patch) | |
tree | 1798d940c2bd7e82387d52f9f743b579e41e2d3d /devel | |
parent | 88d37c4451595ea05092d37082b883fe7ad909ec (diff) | |
download | freebsd-ports-gnome-cf30caeb7c67bfd1feabe3b67061fdac6bc5d042.tar.gz freebsd-ports-gnome-cf30caeb7c67bfd1feabe3b67061fdac6bc5d042.tar.zst freebsd-ports-gnome-cf30caeb7c67bfd1feabe3b67061fdac6bc5d042.zip |
Ressurect devel/omake, graphics/ocaml-images and games/freetennis [1]
- devel/omake:
- add new MASTER_SITES
- regenerate patches [1]
- graphics/ocaml-images:
- add missing LIB_DEPENDS
- pet portlint
- bump PORTREVISION
- games/freetennis:
- add missing indirect depedencies [2]
- bump PORTREVISION
PR: 210853 [1]
Submitted by: lightside@gmx.com [1]
Reported by: poudriere testport [2]
Diffstat (limited to 'devel')
30 files changed, 2439 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index 6b0d1282b83a..00f92dddfa84 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1608,6 +1608,7 @@ SUBDIR += ode SUBDIR += ois SUBDIR += okteta + SUBDIR += omake SUBDIR += omniNotify SUBDIR += omniORB SUBDIR += omniORB-4.1 diff --git a/devel/omake/Makefile b/devel/omake/Makefile new file mode 100644 index 000000000000..5ad939037c71 --- /dev/null +++ b/devel/omake/Makefile @@ -0,0 +1,67 @@ +# Created by: Stanislav Sedov <ssedov@mbsd.msk.ru> +# $FreeBSD$ + +PORTNAME= omake +DISTVERSION= 0.9.8.6-0.rc1 +PORTREVISION= 1 +CATEGORIES= devel +MASTER_SITES= http://pkgs.fedoraproject.org/repo/pkgs/ocaml-omake/omake-0.9.8.6-0.rc1.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/ \ + http://download.camlcity.org/download/ + +MAINTAINER= ports@FreeBSD.org +COMMENT= Flexible build system + +WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION:C|-.*||} +USE_OCAML= yes +NO_OCAML_RUNDEPENDS=yes +USES= ncurses readline +MAKE_ENV+= INSTALL_ROOT=${STAGEDIR} +MAKE_JOBS_UNSAFE= yes + +INFO= omake-doc + +OPTIONS_DEFINE= DOCS + +.include <bsd.port.pre.mk> + +post-patch: +# +# Dirty hack for PREFIX safety +# + @${REINPLACE_CMD} -E -e \ + 's|(getenv[[:space:]]+)LIBDIR|\1PREFLIBDIR|' ${WRKSRC}/mk/defaults + +# +# Permissions safety +# +.for f in OMakefile doc/OMakefile src/main/OMakefile + @${REINPLACE_CMD} -e \ + 's|cp -f -m 444|$$(BSD_INSTALL_DATA)| ; \ + s|cp -f -m 555|$$(BSD_INSTALL_PROGRAM)|' ${WRKSRC}/${f} +.endfor + @${REINPLACE_CMD} -e 's| -j2 | |' ${WRKSRC}/Makefile +.if ${NCURSESBASE} == "/usr" +.for f in lib/configure/ncurses.om src/libmojave-external/cutil/lm_terminfo.c + @${REINPLACE_CMD} -E -e 's|ncurses/(term\.h)|\1|' ${WRKSRC}/${f} +.endfor +.endif + +check regression-test test: build + @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE_ARGS} boot/omake check + @${FIND} -ds ${WRKSRC}/test -type f -name 'result.log' -print0 | \ + ${XARGS} -0tI @ ${CAT} @ + +bench: build + @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE_ARGS} boot/omake bench + +post-install: + @(cd ${WRKSRC}/doc/info && ${INSTALL_DATA} omake-doc.info \ + ${STAGEDIR}${PREFIX}/${INFO_PATH}) + @(cd ${WRKSRC}/doc/info && ${INSTALL_DATA} omake-doc.info-* \ + ${STAGEDIR}${PREFIX}/${INFO_PATH}) + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + @(cd ${WRKSRC}/doc/html && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) + +.include <bsd.port.post.mk> diff --git a/devel/omake/distinfo b/devel/omake/distinfo new file mode 100644 index 000000000000..1a850a445fc6 --- /dev/null +++ b/devel/omake/distinfo @@ -0,0 +1,2 @@ +SHA256 (omake-0.9.8.6-0.rc1.tar.gz) = 23c498f071723621dd5e1e29c1abefd6937c73c67bb85d223fd514b9ae005ae9 +SIZE (omake-0.9.8.6-0.rc1.tar.gz) = 3254283 diff --git a/devel/omake/files/patch-OMakefile b/devel/omake/files/patch-OMakefile new file mode 100644 index 000000000000..73ebb8ae60a1 --- /dev/null +++ b/devel/omake/files/patch-OMakefile @@ -0,0 +1,15 @@ +$NetBSD: patch-aa,v 1.2 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- OMakefile.orig 2010-10-27 00:42:37 UTC ++++ OMakefile +@@ -57,7 +57,7 @@ if $(not $(defined CAMLLIB)) + # + # OCaml options + # +-OCAMLFLAGS[] += -w Ae$(if $(OCAML_ACCEPTS_Z_WARNING), z) ++OCAMLFLAGS[] += -w Ae$(if $(OCAML_ACCEPTS_Z_WARNING), z-9-29) + if $(THREADS_ENABLED) + OCAMLFLAGS += -thread + export diff --git a/devel/omake/files/patch-lib_build_OCaml.om b/devel/omake/files/patch-lib_build_OCaml.om new file mode 100644 index 000000000000..d1d70465deaf --- /dev/null +++ b/devel/omake/files/patch-lib_build_OCaml.om @@ -0,0 +1,19 @@ +$NetBSD: patch-lib_build_OCaml.om,v 1.1 2012/11/23 22:55:22 marino Exp $ + +Omake will break in over a dozen places on gcc 4.7.x if warnings are +treated as errors. All valid but unreferenced functions and constants +are warned about in gcc 4.7, and the alternative to removing the +warn-error flag is to remove all these unreferenced functions and +constants via patches. + +--- lib/build/OCaml.om.orig 2008-03-05 01:07:25 UTC ++++ lib/build/OCaml.om +@@ -176,7 +176,7 @@ public.PREFIXED_OCAMLPACKS =\ + # + declare OCAMLDEPFLAGS + public.OCAMLPPFLAGS = +-public.OCAMLFLAGS = -warn-error A ++public.OCAMLFLAGS = + public.OCAMLCFLAGS = -g + public.OCAMLOPTFLAGS = + public.OCAMLCPPFLAGS = diff --git a/devel/omake/files/patch-src_build_omake_rule.ml b/devel/omake/files/patch-src_build_omake_rule.ml new file mode 100644 index 000000000000..626faf6877ad --- /dev/null +++ b/devel/omake/files/patch-src_build_omake_rule.ml @@ -0,0 +1,25 @@ +$NetBSD: patch-ac,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/build/omake_rule.ml.orig 2010-10-07 19:59:08 UTC ++++ src/build/omake_rule.ml +@@ -768,7 +768,7 @@ let lazy_command venv pos command = + let fv = free_vars_exp_list el in + CommandSection (eval_string_exp venv pos s, fv, el) + | ShellExp (loc, s) -> +- CommandValue (loc, ValStringExp (venv_get_env venv, s)) ++ CommandValue (loc, venv_get_env venv, s) + | _ -> + let fv = free_vars_exp command in + CommandSection (ValData "eval", fv, [command]) +@@ -1121,7 +1121,8 @@ and eval_rule venv loc target sources sl + let commands = ([], CommandEval e) :: commands in + let fv = free_vars_union fv fv' in + commands, fv +- | CommandValue (loc, v) -> ++ | CommandValue (loc, env, s) -> ++ let v = ValStringExp (env, s) in + let commands = + try + let flags, pipe = pipe_of_value venv find_alias options pos loc v in diff --git a/devel/omake/files/patch-src_builtin_omake__builtin__target.ml b/devel/omake/files/patch-src_builtin_omake__builtin__target.ml new file mode 100644 index 000000000000..3083143ef13f --- /dev/null +++ b/devel/omake/files/patch-src_builtin_omake__builtin__target.ml @@ -0,0 +1,17 @@ +$NetBSD: patch-ad,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/builtin/omake_builtin_target.ml.orig 2008-01-15 19:57:00 UTC ++++ src/builtin/omake_builtin_target.ml +@@ -221,8 +221,8 @@ let split_command venv (values1, lines1) + match line with + CommandSection (_, _, e) -> + ValBody (e, ExportNone) +- | CommandValue (_, v) -> +- v ++ | CommandValue (_, exp, v) -> ++ ValStringExp(exp,v) + in + v :: lines) lines1 lines2 + in diff --git a/devel/omake/files/patch-src_clib_omake__shell__sys.c b/devel/omake/files/patch-src_clib_omake__shell__sys.c new file mode 100644 index 000000000000..fba825a985ef --- /dev/null +++ b/devel/omake/files/patch-src_clib_omake__shell__sys.c @@ -0,0 +1,177 @@ +$NetBSD: patch-ae,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/clib/omake_shell_sys.c.orig 2007-12-01 21:32:13 UTC ++++ src/clib/omake_shell_sys.c +@@ -551,7 +551,7 @@ value omake_shell_sys_suspend(value v_pg + fflush(stderr); + #endif + if(process_group_map(suspend_process, Int_val(v_pgrp)) < 0) +- failwith("omake_shell_sys_suspend"); ++ caml_failwith("omake_shell_sys_suspend"); + CAMLreturn(Val_unit); + } + +@@ -563,7 +563,7 @@ value omake_shell_sys_resume(value v_pgr + fflush(stderr); + #endif + if(process_group_map(resume_process, Int_val(v_pgrp)) < 0) +- failwith("omake_shell_sys_resume"); ++ caml_failwith("omake_shell_sys_resume"); + CAMLreturn(Val_unit); + } + +@@ -575,7 +575,7 @@ value omake_shell_sys_kill(value v_pgrp) + fflush(stderr); + #endif + if(process_group_map(kill_process, Int_val(v_pgrp)) < 0) +- failwith("omake_shell_sys_kill"); ++ caml_failwith("omake_shell_sys_kill"); + CAMLreturn(Val_unit); + } + +@@ -600,14 +600,14 @@ value omake_shell_sys_create_thread_pid( + /* Allocate the process data */ + processp = (Process *) malloc(sizeof(Process)); + if(processp == 0) +- failwith("omake_shell_sys_create_thread_pid: out of memory"); ++ caml_failwith("omake_shell_sys_create_thread_pid: out of memory"); + memset(processp, 0, sizeof(Process)); + + /* Create an event for waiting on the thread */ + event = CreateEvent(NULL, FALSE, FALSE, NULL); + if(event == NULL) { + free(processp); +- failwith("omake_shell_sys_create_thread_pid: can't create event"); ++ caml_failwith("omake_shell_sys_create_thread_pid: can't create event"); + } + + pgrp = Int_val(v_pgrp); +@@ -645,7 +645,7 @@ value omake_shell_sys_init_thread_pid(va + break; + } + if(processp == 0) +- raise_not_found(); ++ caml_raise_not_found(); + + /* Process has terminated */ + processp->thread = GetCurrentThreadId(); +@@ -679,7 +679,7 @@ value omake_shell_sys_release_thread_pid + break; + } + if(processp == 0) +- raise_not_found(); ++ caml_raise_not_found(); + + /* Process has terminated */ + processp->changed = 1; +@@ -771,7 +771,7 @@ value omake_shell_sys_wait(value v_pgrp, + goto done; + else { + if(ncount == MAXIMUM_WAIT_OBJECTS) +- invalid_argument("omake_shell_sys_wait: too many processes"); ++ caml_invalid_argument("omake_shell_sys_wait: too many processes"); + processes[ncount] = processp->pid; + handles[ncount] = processp->handle; + ncount++; +@@ -787,11 +787,11 @@ value omake_shell_sys_wait(value v_pgrp, + /* Wait for an event */ + while(1) { + /* Perform the wait */ +- enter_blocking_section(); ++ caml_enter_blocking_section(); + index = WaitForMultipleObjects(ncount, handles, FALSE, timeout); + if(index == WAIT_FAILED) + code = GetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + + /* See if something has changed */ + if(index == WAIT_OBJECT_0) { +@@ -810,7 +810,7 @@ value omake_shell_sys_wait(value v_pgrp, + else if(index >= WAIT_ABANDONED_0 + 1 && index < WAIT_ABANDONED_0 + ncount) + index -= WAIT_ABANDONED_0; + else +- raise_not_found(); ++ caml_raise_not_found(); + + /* Adjust process */ + pid = processes[index]; +@@ -863,7 +863,7 @@ value omake_shell_sys_wait(value v_pgrp, + break; + case STATUS_RUNNING: + default: +- invalid_argument("wait_process: process is running"); ++ caml_invalid_argument("wait_process: process is running"); + break; + } + +@@ -908,7 +908,7 @@ value omake_shell_sys_create_process(val + strp = String_val(Field(v_envp, i)); + length = strlen(strp); + if(index + length + 2 > SIZEOF_ENVIRONMENT) +- failwith("omake_shell_sys_create_process: environment is too big"); ++ caml_failwith("omake_shell_sys_create_process: environment is too big"); + strcpy(env + index, strp); + index += length + 1; + } +@@ -919,7 +919,7 @@ value omake_shell_sys_create_process(val + v_argvp = Field(v_info, CREATE_PROCESS_ARGV); + count = Wosize_val(v_argvp); + if(count == 0) +- invalid_argument("omake_shell_sys_create_process: command line is empty"); ++ caml_invalid_argument("omake_shell_sys_create_process: command line is empty"); + index = 0; + for(i = 0; i != count; i++) { + /* Win32 doesn't deal well when the command name differs from the executable */ +@@ -930,7 +930,7 @@ value omake_shell_sys_create_process(val + length = strlen(argp); + white = string_escape_length(argp); + if(index + length + white + 4 >= SIZEOF_COMMAND) +- failwith("omake_shell_sys_create_process: command line is too long"); ++ caml_failwith("omake_shell_sys_create_process: command line is too long"); + if(index) + argv[index++] = ' '; + if(white) +@@ -1019,13 +1019,13 @@ value omake_shell_sys_create_process(val + if ((bufLen < 1) || (bufLen > 1024)) { + if (lpMsgBuf != NULL) + LocalFree( lpMsgBuf ); +- failwith("omake_shell_sys_create_process: process creation failed"); ++ caml_failwith("omake_shell_sys_create_process: process creation failed"); + } else { + char err[2048]; + sprintf(err, "omake_shell_sys_create_process: process creation failed: %s", (char *)lpMsgBuf); + if (lpMsgBuf != NULL) + LocalFree( lpMsgBuf ); +- failwith(err); ++ caml_failwith(err); + } + } + CloseHandle(process.hThread); +@@ -1034,7 +1034,7 @@ value omake_shell_sys_create_process(val + processp = (Process *) malloc(sizeof(Process)); + if(processp == 0) { + CloseHandle(process.hProcess); +- failwith("omake_shell_sys_create_process: out of memory"); ++ caml_failwith("omake_shell_sys_create_process: out of memory"); + } + memset(processp, 0, sizeof(Process)); + processp->pid = pid; +@@ -1129,13 +1129,13 @@ value omake_shell_sys_init(value v_unit) + /* Allocate a struct for the current process */ + processp = (Process *) malloc(sizeof(Process)); + if(processp == 0) +- failwith("Omake_shell_csys.create_state: out of memory"); ++ caml_failwith("Omake_shell_csys.create_state: out of memory"); + memset(processp, 0, sizeof(Process)); + + /* Allocate the state */ + state = (ShellState *) malloc(sizeof(ShellState)); + if(state == 0) +- failwith("Omake_shell_csys.create_state: out of memory"); ++ caml_failwith("Omake_shell_csys.create_state: out of memory"); + memset(state, 0, sizeof(ShellState)); + state->pid_counter = INIT_PID; + state->changed = CreateEvent(NULL, FALSE, FALSE, NULL); diff --git a/devel/omake/files/patch-src_clib_readline.c b/devel/omake/files/patch-src_clib_readline.c new file mode 100644 index 000000000000..c0c67e1db266 --- /dev/null +++ b/devel/omake/files/patch-src_clib_readline.c @@ -0,0 +1,127 @@ +$NetBSD: patch-af,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/clib/readline.c.orig 2007-05-15 19:03:03 UTC ++++ src/clib/readline.c +@@ -134,7 +134,7 @@ static char **readline_completion(char * + CAMLreturnT(char **, 0); + + /* The callback returns an array of strings */ +- request = copy_string(text); ++ request = caml_copy_string(text); + response = caml_callback(*callbackp, request); + + /* Copy the array of strings */ +@@ -726,9 +726,9 @@ static ProcessCode processor(ReadLine *r + + /* Input loop */ + while(1) { +- enter_blocking_section(); ++ caml_enter_blocking_section(); + status = ReadConsoleInput(readp->console_in, input, INPUT_COUNT, &count); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + if(status == 0) { + print_error("ReadConsoleInput"); + return CODE_EOF; +@@ -766,11 +766,11 @@ static void readline_cooked(ReadLine *re + { + char *s; + +- enter_blocking_section(); ++ caml_enter_blocking_section(); + s = fgets(readp->current.buffer, LINE_MAX, stdin); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + if(s == 0) +- raise_end_of_file(); ++ caml_raise_end_of_file(); + readp->current.length = strlen(readp->current.buffer); + } + +@@ -1053,7 +1053,7 @@ value omake_readline(value v_prompt) + + /* Copy it to a string */ + linep = &readp->current; +- v_str = alloc_string(linep->length); ++ v_str = caml_alloc_string(linep->length); + memcpy(String_val(v_str), linep->buffer, linep->length); + + /* Reset the current buffer */ +@@ -1105,7 +1105,7 @@ value omake_readline_init(value v_unit) + c_stdin = GetStdHandle(STD_INPUT_HANDLE); + c_stdout = GetStdHandle(STD_OUTPUT_HANDLE); + if(c_stdin == INVALID_HANDLE_VALUE || c_stdout == INVALID_HANDLE_VALUE) +- failwith("omake_readline_init: no standard channels"); ++ caml_failwith("omake_readline_init: no standard channels"); + + /* Check if it is a console */ + is_console = 1; +@@ -1179,18 +1179,18 @@ static ReadLine *AllocReadLine(int is_co + /* Allocate */ + readp = (ReadLine *) malloc(sizeof(ReadLine)); + if(readp == NULL) +- failwith("AllocReadLine: out of memory"); ++ caml_failwith("AllocReadLine: out of memory"); + memset(readp, 0, sizeof(ReadLine)); + + /* Initialize */ + readp->buffer = malloc(LINE_MAX); + if (readp->buffer == NULL) +- failwith("AllocReadLine: out of memory"); ++ caml_failwith("AllocReadLine: out of memory"); + readp->buffer_size = LINE_MAX; + + readp->prompt = malloc(MAX_PROMPT_LENGTH); + if (readp->prompt == NULL) +- failwith("AllocReadLine: out of memory"); ++ caml_failwith("AllocReadLine: out of memory"); + readp->prompt_size = MAX_PROMPT_LENGTH; + + readp->console_in = console_in; +@@ -1262,7 +1262,7 @@ static void readline_raw(ReadLine *readp + if(length >= readp->buffer_size) { + char *new_buffer = malloc(length + 1); + if(new_buffer == NULL) +- failwith("readline_raw: out of memory"); ++ caml_failwith("readline_raw: out of memory"); + free(readp->buffer); + readp->buffer = new_buffer; + readp->buffer_size = length + 1; +@@ -1307,7 +1307,7 @@ static void do_readline(ReadLine *readp, + readp->prompt = malloc(new_size); + if (readp->prompt == NULL) { + readp->prompt = old_prompt; +- failwith("do_readline: out of memory"); ++ caml_failwith("do_readline: out of memory"); + } else { + memcpy(readp->prompt, old_prompt, i); + free(old_prompt); +@@ -1545,7 +1545,7 @@ value omake_readline(value v_prompt) + do_readline(readp, String_val(v_prompt)); + + /* Copy it to the buffer */ +- v_str = alloc_string(readp->length); ++ v_str = caml_alloc_string(readp->length); + memcpy(String_val(v_str), readp->buffer, readp->length); + + /* Reset the current buffer */ +@@ -1609,7 +1609,7 @@ value omake_rl_prompt_wrappers(value v_u + CAMLlocal2(s1, s2); + s1 = caml_copy_string(begin); + s2 = caml_copy_string(end); +- buf = alloc_tuple(2); ++ buf = caml_alloc_tuple(2); + Field(buf, 0) = s1; + Field(buf, 1) = s2; + } +@@ -1617,7 +1617,7 @@ value omake_rl_prompt_wrappers(value v_u + { + CAMLlocal1(emptystr); + emptystr = caml_copy_string(""); +- buf = alloc_tuple(2); ++ buf = caml_alloc_tuple(2); + Field(buf, 0) = emptystr; + Field(buf, 1) = emptystr; + } diff --git a/devel/omake/files/patch-src_env_omake__env.ml b/devel/omake/files/patch-src_env_omake__env.ml new file mode 100644 index 000000000000..f50dc40081dd --- /dev/null +++ b/devel/omake/files/patch-src_env_omake__env.ml @@ -0,0 +1,45 @@ +$NetBSD: patch-ag,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/env/omake_env.ml.orig 2008-01-15 19:57:00 UTC ++++ src/env/omake_env.ml +@@ -404,8 +404,8 @@ let rec pp_print_command buf command = + match command with + CommandSection (arg, fv, e) -> + fprintf buf "@[<hv 3>section %a@ %a@]" pp_print_value arg pp_print_exp_list e +- | CommandValue (_, v) -> +- pp_print_value buf v ++ | CommandValue (_, _, v) -> ++ pp_print_string_exp buf v + + and pp_print_commands buf commands = + List.iter (fun command -> fprintf buf "@ %a" pp_print_command command) commands +@@ -1928,6 +1928,14 @@ let venv_save_explicit_rules venv loc er + let venv_add_wild_match venv v = + venv_add_var venv wild_var v + ++let command_add_wild venv wild command = ++ match command with ++ CommandSection _ -> ++ command ++ | CommandValue(loc, env, s) -> ++ let env = venv_get_env (venv_add_wild_match (venv_with_env venv env) wild) in ++ CommandValue(loc, env, s) ++ + (* + * This is the standard way to add results of a pattern match. + *) +@@ -2699,8 +2707,10 @@ let venv_find_implicit_rules_inner venv + let scanner_args = List.map (subst_source venv target_dir subst) irule.irule_scanners in + let scanners = node_set_of_list scanner_args in + let core = wild_core subst in +- let venv = venv_add_wild_match venv (ValData core) in +- let commands = make_command_info venv source_args irule.irule_values irule.irule_body in ++ let core_val = ValData core in ++ let venv = venv_add_wild_match venv core_val in ++ let commands = List.map (command_add_wild venv core_val) irule.irule_body in ++ let commands = make_command_info venv source_args irule.irule_values commands in + let effects = + List.fold_left (fun effects pattern -> + let effect = wild_subst_in subst pattern in diff --git a/devel/omake/files/patch-src_ir_omake__value__type.ml b/devel/omake/files/patch-src_ir_omake__value__type.ml new file mode 100644 index 000000000000..69fac6b050d5 --- /dev/null +++ b/devel/omake/files/patch-src_ir_omake__value__type.ml @@ -0,0 +1,15 @@ +$NetBSD: patch-ah,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/ir/omake_value_type.ml.orig 2010-10-07 19:59:08 UTC ++++ src/ir/omake_value_type.ml +@@ -162,7 +162,7 @@ type path = + *) + type command = + CommandSection of value * free_vars * exp list (* Name of the section, its free variables, and the expression *) +- | CommandValue of loc * value ++ | CommandValue of loc * env * string_exp + + (* + * Kinds of rules. diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_fam__pseudo.h b/devel/omake/files/patch-src_libmojave-external_cutil_fam__pseudo.h new file mode 100644 index 000000000000..fed44692507d --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_fam__pseudo.h @@ -0,0 +1,15 @@ +$NetBSD: patch-src_libmojave-external_cutil_fam__pseudo.h,v 1.1 2012/11/16 00:46:04 joerg Exp $ + +--- src/libmojave-external/cutil/fam_pseudo.h.orig 2006-07-15 17:23:37 UTC ++++ src/libmojave-external/cutil/fam_pseudo.h +@@ -43,7 +43,10 @@ + /* + * Maximum file name length. + */ ++#include <limits.h> ++#ifndef NAME_MAX + #define NAME_MAX 1024 ++#endif + + /* + * Possible events. diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__channel.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__channel.c new file mode 100644 index 000000000000..335cf9ffda74 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__channel.c @@ -0,0 +1,24 @@ +$NetBSD: patch-ai,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_channel.c.orig 2006-07-15 17:23:37 UTC ++++ src/libmojave-external/cutil/lm_channel.c +@@ -57,7 +57,7 @@ value omake_shell_peek_pipe(value v_fd) + &total, // Total number of bytes available + NULL); // Number of bytes in the next message + if(status == 0) +- failwith("Not a pipe"); ++ caml_failwith("Not a pipe"); + return total ? Val_int(1) : Val_int(0); + } + +@@ -83,7 +83,7 @@ value omake_shell_pipe_kind(value v_fd) + + value omake_shell_peek_pipe(value v_fd) + { +- failwith("omake_shell_peek_pipe: not available on Unix systems"); ++ caml_failwith("omake_shell_peek_pipe: not available on Unix systems"); + return Val_unit; + } + diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__ctype.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__ctype.c new file mode 100644 index 000000000000..e928c25b41b7 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__ctype.c @@ -0,0 +1,15 @@ +$NetBSD: patch-aj,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_ctype.c.orig 2006-12-01 21:13:14 UTC ++++ src/libmojave-external/cutil/lm_ctype.c +@@ -59,7 +59,7 @@ static value get_chars(int (*f)(int)) + if(f(i)) + *p++ = (char) i; + } +- s = alloc_string(p - buf); ++ s = caml_alloc_string(p - buf); + memcpy(String_val(s), buf, p - buf); + return s; + } diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__notify.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__notify.c new file mode 100644 index 000000000000..ffcd6e628f2a --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__notify.c @@ -0,0 +1,90 @@ +$NetBSD: patch-ak,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_notify.c.orig 2007-07-27 17:58:13 UTC ++++ src/libmojave-external/cutil/lm_notify.c +@@ -74,13 +74,13 @@ typedef struct { + + #define CheckCode(fmt, expr) \ + do { \ +- enter_blocking_section(); \ ++ caml_enter_blocking_section(); \ + code = expr; \ +- leave_blocking_section(); \ ++ caml_leave_blocking_section(); \ + if(code < 0) { \ + char buffer[256]; \ + ErrFmt(buffer, fmt); \ +- failwith(buffer); \ ++ caml_failwith(buffer); \ + } \ + } while(0) + +@@ -145,11 +145,11 @@ value om_notify_open(value v_unit) + FAMInfo *info; + int code; + +- v = alloc_custom(&fam_connection_ops, sizeof(FAMInfo), 0, 1); ++ v = caml_alloc_custom(&fam_connection_ops, sizeof(FAMInfo), 0, 1); + info = FAMInfo_val(v); + fc = malloc(sizeof(FAMConnection)); + if(fc == 0) +- invalid_argument("om_notify_open: out of memory"); ++ caml_invalid_argument("om_notify_open: out of memory"); + info->fc = fc; + CheckCode("om_notify_open", FAMOpen(fc)); + #ifdef HAVE_FAMNOEXISTS +@@ -180,7 +180,7 @@ value om_notify_fd(value v_fc) + fc = FAMConnection_val(v_fc); + return Val_int(fc->id); + #else /* FAM_PSEUDO && !FAM_INOTIFY */ +- failwith("No file descriptors in pseudo-FAM"); ++ caml_failwith("No file descriptors in pseudo-FAM"); + return Val_unit; + #endif /* FAM_INOTIFY */ + #else /* FAM_PSEUDO */ +@@ -209,7 +209,7 @@ value om_notify_monitor_directory(value + #ifdef WIN32 + CheckCode("om_notify_monitor_directory", FAMMonitorDirectoryTree(fc, name, &request, 0)); + #else /* WIN32 */ +- failwith("om_notify_monitor_directory: recursive monitoring is not allowed"); ++ caml_failwith("om_notify_monitor_directory: recursive monitoring is not allowed"); + #endif /* !WIN32 */ + } + else +@@ -294,13 +294,13 @@ value om_notify_next_event(value v_fc) + CheckCode("om_notify_next_event", FAMNextEvent(fc, &event)); + code = event.code; + if(code < 1 || code > 10) +- failwith("om_notify_next_event: code out of bounds"); ++ caml_failwith("om_notify_next_event: code out of bounds"); + + /* Allocate the string name */ +- v_name = copy_string(event.filename); ++ v_name = caml_copy_string(event.filename); + + /* Allocate the tuple */ +- v_tuple = alloc_tuple(3); ++ v_tuple = caml_alloc_tuple(3); + Field(v_tuple, 0) = Val_int(event.fr.reqnum); + Field(v_tuple, 1) = v_name; + Field(v_tuple, 2) = Val_int(code - 1); +@@ -330,7 +330,7 @@ value om_notify_open(value v_unit) + */ + value om_notify_fd(value v_fc) + { +- invalid_argument("FAM not enabled"); ++ caml_invalid_argument("FAM not enabled"); + return Val_unit; + } + +@@ -389,7 +389,7 @@ value om_notify_pending(value v_fc) + */ + value om_notify_next_event(value v_fc) + { +- invalid_argument("FAM not enabled"); ++ caml_invalid_argument("FAM not enabled"); + return Val_unit; + } + diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__printf.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__printf.c new file mode 100644 index 000000000000..8081874fa3e9 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__printf.c @@ -0,0 +1,96 @@ +$NetBSD: patch-al,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_printf.c.orig 2009-02-06 16:41:21 UTC ++++ src/libmojave-external/cutil/lm_printf.c +@@ -61,12 +61,12 @@ value ml_print_char(value v_fmt, value v + char c = (char) Int_val(v_char); + #ifdef HAVE_SNPRINTF + if(snprintf(buffer, sizeof(buffer), fmt, c) < 0) +- failwith("ml_print_char"); ++ caml_failwith("ml_print_char"); + #else + if(sprintf(buffer, fmt, c) < 0) +- failwith("ml_print_char"); ++ caml_failwith("ml_print_char"); + #endif +- return copy_string(buffer); ++ return caml_copy_string(buffer); + } + + /* +@@ -79,12 +79,12 @@ value ml_print_int(value v_fmt, value v_ + int i = Int_val(v_int); + #ifdef HAVE_SNPRINTF + if(snprintf(buffer, sizeof(buffer), fmt, i) < 0) +- failwith("ml_print_int"); ++ caml_failwith("ml_print_int"); + #else + if(sprintf(buffer, fmt, i) < 0) +- failwith("ml_print_int"); ++ caml_failwith("ml_print_int"); + #endif +- return copy_string(buffer); ++ return caml_copy_string(buffer); + } + + +@@ -98,12 +98,12 @@ value ml_print_float(value v_fmt, value + double x = Double_val(v_float); + #ifdef HAVE_SNPRINTF + if(snprintf(buffer, sizeof(buffer), fmt, x) < 0) +- failwith("ml_print_float"); ++ caml_failwith("ml_print_float"); + #else + if(sprintf(buffer, fmt, x) < 0) +- failwith("ml_print_float"); ++ caml_failwith("ml_print_float"); + #endif +- return copy_string(buffer); ++ return caml_copy_string(buffer); + } + + /* +@@ -132,7 +132,7 @@ value ml_print_string(value v_fmt, value + size = len * 2; + bufp = malloc(size); + if(bufp == 0) +- failwith("ml_print_string"); ++ caml_failwith("ml_print_string"); + } + + #ifdef HAVE_SNPRINTF +@@ -143,9 +143,9 @@ value ml_print_string(value v_fmt, value + if(code < 0) { + if(bufp != buffer) + free(bufp); +- failwith("ml_print_string"); ++ caml_failwith("ml_print_string"); + } +- v_result = copy_string(bufp); ++ v_result = caml_copy_string(bufp); + if(bufp != buffer) + free(bufp); + return v_result; +@@ -180,7 +180,7 @@ value ml_print_string2(value v_width, va + size = len * 2; + bufp = malloc(size); + if(bufp == 0) +- failwith("ml_print_string"); ++ caml_failwith("ml_print_string"); + } + + #ifdef HAVE_SNPRINTF +@@ -191,9 +191,9 @@ value ml_print_string2(value v_width, va + if(code < 0) { + if(bufp != buffer) + free(bufp); +- failwith("ml_print_string"); ++ caml_failwith("ml_print_string"); + } +- v_result = copy_string(bufp); ++ v_result = caml_copy_string(bufp); + if(bufp != buffer) + free(bufp); + return v_result; diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__terminfo.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__terminfo.c new file mode 100644 index 000000000000..920c11177868 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__terminfo.c @@ -0,0 +1,18 @@ +$NetBSD: patch-am,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_terminfo.c.orig 2007-05-15 19:03:32 UTC ++++ src/libmojave-external/cutil/lm_terminfo.c +@@ -75,9 +75,9 @@ value caml_tgetstr(value id) { + + /* Note that tigetstr will return either 0 or -1 on error. */ + if(termdata == NULL || termdata == (char *)(-1)) { +- result = copy_string(""); ++ result = caml_copy_string(""); + } else { +- result = copy_string(termdata); ++ result = caml_copy_string(termdata); + /* apparently we're not supposed to free termdata here */ + /* TEMP: I cannot find specs on this! */ + //free(termdata); diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__termsize.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__termsize.c new file mode 100644 index 000000000000..9f113de1b463 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__termsize.c @@ -0,0 +1,33 @@ +$NetBSD: patch-an,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_termsize.c.orig 2008-03-19 00:44:12 UTC ++++ src/libmojave-external/cutil/lm_termsize.c +@@ -45,7 +45,7 @@ value caml_term_size(value arg) + CAMLlocal1(buf); + + /* Return a pair of numbers */ +- buf = alloc_small(2, 0); ++ buf = caml_alloc_small(2, 0); + + /* Get the terminal size, return None on failure */ + #ifdef WIN32 +@@ -53,7 +53,7 @@ value caml_term_size(value arg) + HANDLE fd = *(HANDLE *)Data_custom_val(arg); + CONSOLE_SCREEN_BUFFER_INFO ConsoleInfo; + if (! GetConsoleScreenBufferInfo(fd, &ConsoleInfo)) +- failwith("lm_termsize.c: caml_term_size: GetConsoleScreenBufferInfo failed"); ++ caml_failwith("lm_termsize.c: caml_term_size: GetConsoleScreenBufferInfo failed"); + + Field(buf, 0) = Val_int(ConsoleInfo.dwSize.Y); + Field(buf, 1) = Val_int(ConsoleInfo.dwSize.X); +@@ -65,7 +65,7 @@ value caml_term_size(value arg) + struct winsize ws; + + if(ioctl(fd, TIOCGWINSZ, &ws) < 0) +- failwith("lm_termsize.c: caml_term_size: not a terminal"); ++ caml_failwith("lm_termsize.c: caml_term_size: not a terminal"); + + /* Return the pair of numbers */ + Field(buf, 0) = Val_int(ws.ws_row); diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__uname__ext.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__uname__ext.c new file mode 100644 index 000000000000..53098946504c --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__uname__ext.c @@ -0,0 +1,35 @@ +$NetBSD: patch-ao,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_uname_ext.c.orig 2006-12-08 19:21:40 UTC ++++ src/libmojave-external/cutil/lm_uname_ext.c +@@ -147,21 +147,21 @@ value lm_uname(value x) + + /* Get sysinfo */ + if(uname(&name) < 0) +- failwith("uname"); ++ caml_failwith("uname"); + + /* Copy data */ +- result = alloc_tuple(5); ++ result = caml_alloc_tuple(5); + Field(result, 0) = Val_unit; + Field(result, 1) = Val_unit; + Field(result, 2) = Val_unit; + Field(result, 3) = Val_unit; + Field(result, 4) = Val_unit; + +- Field(result, 0) = copy_string(name.sysname); +- Field(result, 1) = copy_string(name.nodename); +- Field(result, 2) = copy_string(name.release); +- Field(result, 3) = copy_string(name.version); +- Field(result, 4) = copy_string(name.machine); ++ Field(result, 0) = caml_copy_string(name.sysname); ++ Field(result, 1) = caml_copy_string(name.nodename); ++ Field(result, 2) = caml_copy_string(name.release); ++ Field(result, 3) = caml_copy_string(name.version); ++ Field(result, 4) = caml_copy_string(name.machine); + + /* Return it */ + CAMLreturn(result); diff --git a/devel/omake/files/patch-src_libmojave-external_cutil_lm__unix__cutil.c b/devel/omake/files/patch-src_libmojave-external_cutil_lm__unix__cutil.c new file mode 100644 index 000000000000..020f6c50a634 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_cutil_lm__unix__cutil.c @@ -0,0 +1,117 @@ +$NetBSD: patch-ap,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/cutil/lm_unix_cutil.c.orig 2007-07-18 17:42:32 UTC ++++ src/libmojave-external/cutil/lm_unix_cutil.c +@@ -87,9 +87,9 @@ value home_win32(value v_unit) + TCHAR path[MAX_PATH]; + + if(SUCCEEDED(CompatSHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, path))) +- CAMLreturn(copy_string(path)); ++ CAMLreturn(caml_copy_string(path)); + +- failwith("home_win32"); ++ caml_failwith("home_win32"); + return Val_unit; + } + +@@ -138,7 +138,7 @@ value lockf_win32(value v_fd, value v_ki + flags = LOCKFILE_FAIL_IMMEDIATELY; + break; + default: +- invalid_argument("lockf_win32"); ++ caml_invalid_argument("lockf_win32"); + break; + } + +@@ -147,11 +147,11 @@ value lockf_win32(value v_fd, value v_ki + overlapped.Offset = pos; + + /* Perform the lock */ +- enter_blocking_section(); ++ caml_enter_blocking_section(); + code = LockFileEx(fd, flags, 0, len, 0, &overlapped); + if(code == 0) + error = GetLastError(); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + + /* Fail if the lock was not successful */ + if(code == 0) { +@@ -165,14 +165,14 @@ value lockf_win32(value v_fd, value v_ki + * XXX: HACK: this exception is being caught + * Do not change the string w/o changing the wrapper code. + */ +- failwith("lockf_win32: already locked"); ++ caml_failwith("lockf_win32: already locked"); + break; + case ERROR_POSSIBLE_DEADLOCK: + /* + * XXX: HACK: this exception is being caught + * Do not change the string w/o changing the wrapper code. + */ +- failwith("lockf_win32: possible deadlock"); ++ caml_failwith("lockf_win32: possible deadlock"); + break; + default: + FormatMessage( +@@ -187,7 +187,7 @@ value lockf_win32(value v_fd, value v_ki + sprintf(szBuf, "lockf_win32 failed with error %d: %s", error, lpMsgBuf); + LocalFree(lpMsgBuf); + +- failwith(szBuf); ++ caml_failwith(szBuf); + break; + } + } +@@ -289,7 +289,7 @@ value caml_registry_find(value v_hkey, v + #endif + + /* Got the value */ +- return copy_string(buffer); ++ return caml_copy_string(buffer); + } + + #else /* WIN32 */ +@@ -381,9 +381,9 @@ value lm_flock(value v_fd, value v_op) + op = Int_val(v_op); + #if defined(FLOCK_ENABLED) + cmd = flock_of_flock[op]; +- enter_blocking_section(); ++ caml_enter_blocking_section(); + code = flock(fd, cmd); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + #elif defined(FCNTL_ENABLED) + { + struct flock info; +@@ -392,9 +392,9 @@ value lm_flock(value v_fd, value v_op) + info.l_whence = SEEK_SET; + info.l_start = 0; + info.l_len = FLOCK_LEN; +- enter_blocking_section(); ++ caml_enter_blocking_section(); + code = fcntl(fd, cmd, &info); +- leave_blocking_section(); ++ caml_leave_blocking_section(); + } + #elif defined(LOCKF_ENABLED) + cmd = lockf_of_flock[op]; +@@ -457,12 +457,12 @@ value lm_getpwents(value v_unit) + Store_field(entry, 2, Val_int(entryp->pw_uid)); + Store_field(entry, 3, Val_int(entryp->pw_gid)); + #ifdef __BEOS__ +- Store_field(entry, 4, copy_string("")); ++ Store_field(entry, 4, caml_copy_string("")); + #else +- Store_field(entry, 4, copy_string(entryp->pw_gecos)); ++ Store_field(entry, 4, caml_copy_string(entryp->pw_gecos)); + #endif +- Store_field(entry, 5, copy_string(entryp->pw_dir)); +- Store_field(entry, 6, copy_string(entryp->pw_shell)); ++ Store_field(entry, 5, caml_copy_string(entryp->pw_dir)); ++ Store_field(entry, 6, caml_copy_string(entryp->pw_shell)); + cons = caml_alloc_tuple(2); + Store_field(cons, 0, entry); + Store_field(cons, 1, users); diff --git a/devel/omake/files/patch-src_libmojave-external_stdlib_lm__debug.ml b/devel/omake/files/patch-src_libmojave-external_stdlib_lm__debug.ml new file mode 100644 index 000000000000..897e373d2c20 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_stdlib_lm__debug.ml @@ -0,0 +1,58 @@ +$NetBSD: patch-aq,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/stdlib/lm_debug.ml.orig 2006-08-03 22:51:52 UTC ++++ src/libmojave-external/stdlib/lm_debug.ml +@@ -173,11 +173,10 @@ let create_debug + *) + let load_debug name = + let rec search = function +- { info_name = name'; info_flag = flag } :: t -> +- if name' = name then +- flag +- else +- search t ++ info :: _ when info.info_name = name -> ++ info.info_flag ++ | _ :: t -> ++ search t + | [] -> + raise (Failure (sprintf "Lm_debug.load_debug: variable '%s' has not been created" name)) + in +@@ -189,11 +188,10 @@ let load_debug name = + let set_debug name flag = + let rec search = function + h :: t -> +- let { info_name = name'; info_flag = flag' } = h in +- if name' = name then +- flag' := flag +- else +- search t ++ if h.info_name = name then ++ h.info_flag := flag ++ else ++ search t + | [] -> + (* + (* Try a C function *) +@@ -227,9 +225,8 @@ let get_debug name = + let rec search = function + h :: t -> + if h.info_name = name then +- let { info_info = description; info_flag = flag } = h in + let description = +- match description with ++ match h.info_info with + Some desc -> + desc + | None -> +@@ -237,7 +234,7 @@ let get_debug name = + in + { debug_name = name; + debug_description = description; +- debug_value = !flag ++ debug_value = !(h.info_flag) + } + else + search t diff --git a/devel/omake/files/patch-src_libmojave-external_stdlib_lm__string__util.ml b/devel/omake/files/patch-src_libmojave-external_stdlib_lm__string__util.ml new file mode 100644 index 000000000000..738e8ed19f43 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_stdlib_lm__string__util.ml @@ -0,0 +1,125 @@ +$NetBSD: patch-ar,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/stdlib/lm_string_util.ml.orig 2008-06-28 01:21:34 UTC ++++ src/libmojave-external/stdlib/lm_string_util.ml +@@ -613,18 +613,13 @@ let tokens_create wrap group = + * Get the tokens list. + *) + let tokens_flush info = +- let { tokens_group = group; +- tokens_list = tokens; +- tokens_prefix = prefix +- } = info +- in + let tokens = +- match prefix with ++ match info.tokens_prefix with + NoPrefix -> +- tokens ++ info.tokens_list + | WordPrefix prefix + | QuotePrefix (_, prefix) -> +- group prefix :: tokens ++ info.tokens_group prefix :: info.tokens_list + in + List.rev tokens + +@@ -632,38 +627,29 @@ let tokens_flush info = + * End the current word. + *) + let tokens_break info = +- let { tokens_group = group; +- tokens_list = tokens; +- tokens_prefix = prefix +- } = info +- in +- match prefix with +- NoPrefix -> +- info +- | WordPrefix prefix +- | QuotePrefix (_, prefix) -> +- { info with tokens_list = group prefix :: tokens; +- tokens_prefix = NoPrefix +- } ++ match info.tokens_prefix with ++ NoPrefix -> ++ info ++ | WordPrefix prefix ++ | QuotePrefix (_, prefix) -> ++ { info with tokens_list = info.tokens_group prefix :: info.tokens_list; ++ tokens_prefix = NoPrefix ++ } + + (* + * Add a value directly. + * This also performs a break. + *) + let tokens_atomic info x = +- let { tokens_group = group; +- tokens_list = tokens; +- tokens_prefix = prefix +- } = info +- in +- match prefix with ++ let tokens = info.tokens_list in ++ match info.tokens_prefix with + NoPrefix -> + { info with tokens_list = x :: tokens; + tokens_prefix = NoPrefix + } + | WordPrefix prefix + | QuotePrefix (_, prefix) -> +- { info with tokens_list = x :: group prefix :: tokens; ++ { info with tokens_list = x :: info.tokens_group prefix :: tokens; + tokens_prefix = NoPrefix + } + +@@ -758,11 +744,8 @@ let tokens_string info s = + if len = 0 then + info + else +- let { tokens_list = tokens; +- tokens_prefix = prefix +- } = info +- in +- match prefix with ++ let tokens = info.tokens_list in ++ match info.tokens_prefix with + NoPrefix -> + scan_white tokens 0 + | WordPrefix prefix -> +@@ -809,13 +792,11 @@ let buffer_get_token lexer s i len = + BufChar + + let tokens_lex info s = +- let { tokens_lexer = lexer; +- tokens_wrap_string = wrap_string; +- tokens_wrap_data = wrap_data; +- tokens_wrap_token = wrap_token; +- tokens_group = group +- } = info +- in ++ let lexer = info.tokens_lexer in ++ let wrap_string = info.tokens_wrap_string in ++ let wrap_data = info.tokens_wrap_data in ++ let wrap_token = info.tokens_wrap_token in ++ let group = info.tokens_group in + let len = String.length s in + + (* Don't add empty strings *) +@@ -902,11 +883,8 @@ let tokens_lex info s = + if len = 0 then + info + else +- let { tokens_list = tokens; +- tokens_prefix = prefix +- } = info +- in +- match prefix with ++ let tokens = info.tokens_list in ++ match info.tokens_prefix with + NoPrefix -> + scan_white tokens 0 + | WordPrefix prefix -> diff --git a/devel/omake/files/patch-src_libmojave-external_unix_lm__notify.ml b/devel/omake/files/patch-src_libmojave-external_unix_lm__notify.ml new file mode 100644 index 000000000000..a088f4837334 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_unix_lm__notify.ml @@ -0,0 +1,127 @@ +$NetBSD: patch-as,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/unix/lm_notify.ml.orig 2007-07-19 21:06:05 UTC ++++ src/libmojave-external/unix/lm_notify.ml +@@ -153,10 +153,8 @@ let is_path_prefix (root1, path1) (root2 + let is_monitored_name requests name = + let new_path = path_of_name name in + IntTable.exists (fun _ job -> +- let { job_path = path; +- job_recursive = recursive +- } = job +- in ++ let path = job.job_path in ++ let recursive = job.job_recursive in + new_path = path || (recursive && is_path_prefix path new_path)) requests + + (************************************************************************ +@@ -215,18 +213,16 @@ let close notify = + (* + * Get the file descriptor. + *) +-let file_descr { notify_fd = fd } = +- fd ++let file_descr notify = ++ notify.notify_fd + + (* + * Monitoring. + *) + let monitor notify dir recursive = +- let { notify_info = info; +- notify_dirs = dirs; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let dirs = notify.notify_dirs in ++ let requests = notify.notify_requests in + let name = name_of_dir dir in + if not (is_monitored_name requests name) then begin + if !debug_notify then +@@ -250,11 +246,9 @@ let monitor notify dir recursive = + * Suspend notifications. + *) + let suspend notify dir = +- let { notify_info = info; +- notify_dirs = dirs; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let dirs = notify.notify_dirs in ++ let requests = notify.notify_requests in + let dir = name_of_dir dir in + let request = + try StringTable.find dirs dir with +@@ -269,10 +263,8 @@ let suspend notify dir = + end + + let suspend_all notify = +- let { notify_info = info; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let requests = notify.notify_requests in + IntTable.iter (fun _ job -> + if job.job_running then + begin +@@ -281,11 +273,9 @@ let suspend_all notify = + end) requests + + let resume notify dir = +- let { notify_info = info; +- notify_dirs = dirs; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let dirs = notify.notify_dirs in ++ let requests = notify.notify_requests in + let dir = name_of_dir dir in + let request = + try StringTable.find dirs dir with +@@ -300,10 +290,8 @@ let resume notify dir = + end + + let resume_all notify = +- let { notify_info = info; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let requests = notify.notify_requests in + IntTable.iter (fun _ job -> + if not job.job_running then + begin +@@ -315,11 +303,9 @@ let resume_all notify = + * Cancel a request. + *) + let cancel notify dir = +- let { notify_info = info; +- notify_dirs = dirs; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let dirs = notify.notify_dirs in ++ let requests = notify.notify_requests in + let dir = name_of_dir dir in + let request = + try StringTable.find dirs dir with +@@ -332,10 +318,8 @@ let cancel notify dir = + notify.notify_requests <- IntTable.remove requests request + + let cancel_all notify = +- let { notify_info = info; +- notify_requests = requests +- } = notify +- in ++ let info = notify.notify_info in ++ let requests = notify.notify_requests in + IntTable.iter (fun request _ -> notify_cancel info request) requests; + notify.notify_dirs <- StringTable.empty; + notify.notify_requests <- IntTable.empty diff --git a/devel/omake/files/patch-src_libmojave-external_util_lm__channel.ml b/devel/omake/files/patch-src_libmojave-external_util_lm__channel.ml new file mode 100644 index 000000000000..b5d390c5cb7a --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_util_lm__channel.ml @@ -0,0 +1,364 @@ +$NetBSD: patch-at,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/util/lm_channel.ml.orig 2007-07-16 21:10:43 UTC ++++ src/libmojave-external/util/lm_channel.ml +@@ -337,12 +337,10 @@ let of_string s = + of_string string_sym 1 0 (String.copy s) + + let info channel = +- let { channel_id = id; +- channel_kind = kind; +- channel_mode = mode; +- channel_binary = binary +- } = channel +- in ++ let id = channel.channel_id in ++ let kind = channel.channel_kind in ++ let mode = channel.channel_mode in ++ let binary = channel.channel_binary in + id, kind, mode, binary + + let name channel = +@@ -468,13 +466,11 @@ let squash_text buffer off amount = + * Get the line/char for a particular point in the input buffer. + *) + let line_of_index info buffer index = +- let { start_line = start_line; +- start_char = start_char; +- middle_index = middle_index; +- middle_line = middle_line; +- middle_char = middle_char +- } = info +- in ++ let start_line = info.start_line in ++ let start_char = info.start_char in ++ let middle_index = info.middle_index in ++ let middle_line = info.middle_line in ++ let middle_char = info.middle_char in + let rec search line char i = + if i = index then + begin +@@ -509,12 +505,10 @@ let reset_input_buffer info = + info.lex_index <- 0 + + let shift_input_buffer info = +- let { in_buffer = in_buffer; +- in_index = in_index; +- lex_index = lex_index; +- in_max = in_max +- } = info +- in ++ let in_buffer = info.in_buffer in ++ let in_index = info.in_index in ++ let lex_index = info.lex_index in ++ let in_max = info.in_max in + let line, char = line_of_index info in_buffer in_index in + String.blit in_buffer in_index in_buffer 0 (in_max - in_index); + info.start_line <- line; +@@ -562,10 +556,8 @@ let reset_output_buffer info = + * flushing. + *) + let expand_output info = +- let { out_buffer = buffer; +- out_max = max +- } = info +- in ++ let buffer = info.out_buffer in ++ let max = info.out_max in + if max = String.length buffer then begin + let buffer2 = String.create (max * 2) in + String.blit buffer 0 buffer2 0 max; +@@ -575,10 +567,8 @@ let expand_output info = + end + + let to_string info = +- let { out_buffer = buffer; +- out_max = max +- } = info +- in ++ let buffer = info.out_buffer in ++ let max = info.out_max in + String.sub buffer 0 max + + (************************************************************************ +@@ -614,12 +604,10 @@ let setup_write_buffer info = + *) + let flush_output_once info = + setup_write_buffer info; +- let { write_index = off; +- write_max = max; +- write_buffer = buf; +- write_fun = write +- } = info +- in ++ let off = info.write_index in ++ let max = info.write_max in ++ let buf = info.write_buffer in ++ let write = info.write_fun in + let count = write buf off (max - off) in + let off' = off + count in + if off' = max then +@@ -632,17 +620,13 @@ let flush_output_once info = + *) + let flush_aux info = + setup_write_buffer info; +- let { write_buffer = buf; +- write_fun = writer +- } = info +- in ++ let buf = info.write_buffer in ++ let writer = info.write_fun in + + (* Now write the data directly *) + let rec write () = +- let { write_index = index; +- write_max = max +- } = info +- in ++ let index = info.write_index in ++ let max = info.write_max in + let len = max - index in + if len <> 0 then + let count = writer buf index len in +@@ -701,10 +685,8 @@ let close info = + * Print a byte. + *) + let rec output_char info c = +- let { out_max = max; +- out_buffer = buffer +- } = info +- in ++ let max = info.out_max in ++ let buffer = info.out_buffer in + flush_input info; + if max = String.length buffer then + begin +@@ -724,10 +706,8 @@ let output_byte info c = + * Write a substring. + *) + let rec output_buffer info buf off len = +- let { out_max = max; +- out_buffer = buffer +- } = info +- in ++ let max = info.out_max in ++ let buffer = info.out_buffer in + let avail = String.length buffer - max in + flush_input info; + if len <> 0 then +@@ -758,21 +738,17 @@ let write info buf off len = + * Check if there is input already in the buffer. + *) + let poll info = +- let { in_index = index; +- in_max = max +- } = info +- in ++ let index = info.in_index in ++ let max = info.in_max in + index <> max + + (* + * Get data when the buffer is empty. + *) + let fillbuf info = +- let { channel_binary = binary; +- in_buffer = buf; +- read_fun = reader +- } = info +- in ++ let binary = info.channel_binary in ++ let buf = info.in_buffer in ++ let reader = info.read_fun in + let count = reader buf 0 buf_size in + let count = + if count = 0 then +@@ -797,11 +773,9 @@ let fillbuf info = + * Get a single char. + *) + let rec input_char info = +- let { in_index = index; +- in_max = max; +- in_buffer = buf; +- } = info +- in ++ let index = info.in_index in ++ let max = info.in_max in ++ let buf = info.in_buffer in + flush_output info; + if index = max then + begin +@@ -823,11 +797,9 @@ let input_byte info = + * Read data into a buffer. + *) + let rec input_buffer info s off len = +- let { in_index = index; +- in_max = max; +- in_buffer = buf +- } = info +- in ++ let index = info.in_index in ++ let max = info.in_max in ++ let buf = info.in_buffer in + let avail = max - index in + flush_output info; + if len <> 0 then +@@ -884,12 +856,10 @@ let input_entire_line info = + * Read allows for partial reading. + *) + let read info s off len = +- let { in_index = index; +- in_max = max; +- in_buffer = buf; +- read_fun = reader +- } = info +- in ++ let index = info.in_index in ++ let max = info.in_max in ++ let buf = info.in_buffer in ++ let reader = info.read_fun in + let avail = max - index in + flush_output info; + if avail = 0 then +@@ -925,13 +895,11 @@ let seek info pos whence = + * Get the current location. + *) + let loc info = +- let { out_max = out_max; +- in_index = in_index; +- in_buffer = in_buffer; +- out_buffer = out_buffer; +- channel_file = file +- } = info +- in ++ let out_max = info.out_max in ++ let in_index = info.in_index in ++ let in_buffer = info.in_buffer in ++ let out_buffer = info.out_buffer in ++ let file = info.channel_file in + let line, char = + if out_max <> 0 then + line_of_index info out_buffer out_max +@@ -1132,10 +1100,8 @@ struct + * Start lex mode. + *) + let lex_start channel = +- let { in_index = index; +- in_buffer = buffer +- } = channel +- in ++ let index = channel.in_index in ++ let buffer = channel.in_buffer in + let prev = + if index = 0 then + bof +@@ -1149,10 +1115,8 @@ struct + * Restart at a previous position. + *) + let lex_restart channel pos = +- let { in_max = max; +- in_index = index +- } = channel +- in ++ let max = channel.in_max in ++ let index = channel.in_index in + assert (pos >= 0 && pos <= max - index); + channel.lex_index <- index + pos + +@@ -1168,20 +1132,16 @@ struct + * Get the string matched by the lexer. + *) + let lex_string channel pos = +- let { in_index = start; +- in_buffer = buffer +- } = channel +- in ++ let start = channel.in_index in ++ let buffer = channel.in_buffer in + String.sub buffer start pos + + (* + * Get the string matched by the lexer. + *) + let lex_substring channel off len = +- let { in_index = start; +- in_buffer = buffer +- } = channel +- in ++ let start = channel.in_index in ++ let buffer = channel.in_buffer in + String.sub buffer (start + off) len + + (* +@@ -1189,13 +1149,11 @@ struct + * We can't discard any of the existing data. + *) + let rec lex_fill channel = +- let { in_max = max; +- in_buffer = buffer; +- in_index = start; +- read_fun = reader; +- channel_binary = binary +- } = channel +- in ++ let max = channel.in_max in ++ let buffer = channel.in_buffer in ++ let start = channel.in_index in ++ let reader = channel.read_fun in ++ let binary = channel.channel_binary in + let len = String.length buffer in + let amount = len - max in + (* If we have space, fill it *) +@@ -1245,11 +1203,9 @@ struct + * Get the next character in lex mode. + *) + let lex_next channel = +- let { in_max = max; +- in_buffer = buffer; +- lex_index = index +- } = channel +- in ++ let max = channel.in_max in ++ let buffer = channel.in_buffer in ++ let index = channel.lex_index in + if index = max then + lex_fill channel + else +@@ -1267,14 +1223,12 @@ struct + * Get the location of the buffer. + *) + let lex_loc channel off = +- let { start_line = line; +- start_char = char; +- channel_file = file; +- lex_index = index; +- in_buffer = buffer; +- in_max = max +- } = channel +- in ++ let line = channel.start_line in ++ let char = channel.start_char in ++ let file = channel.channel_file in ++ let index = channel.lex_index in ++ let buffer = channel.in_buffer in ++ let max = channel.in_max in + let line1, char1 = + if index > max then + line, char +@@ -1293,11 +1247,9 @@ struct + * Add any remaining buffered text to a buffer. + *) + let lex_buffer channel buf = +- let { in_max = max; +- in_buffer = buffer; +- in_index = start +- } = channel +- in ++ let max = channel.in_max in ++ let buffer = channel.in_buffer in ++ let start = channel.in_index in + Buffer.add_substring buf buffer start (max - start); + channel.in_index <- max + end diff --git a/devel/omake/files/patch-src_libmojave-external_util_lm__filename__util.ml b/devel/omake/files/patch-src_libmojave-external_util_lm__filename__util.ml new file mode 100644 index 000000000000..24901baeb175 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_util_lm__filename__util.ml @@ -0,0 +1,24 @@ +$NetBSD: patch-au,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/util/lm_filename_util.ml.orig 2007-01-29 20:14:42 UTC ++++ src/libmojave-external/util/lm_filename_util.ml +@@ -48,12 +48,11 @@ let groups = + let unix_is_executable s = + let flag = + try +- let { Unix.LargeFile.st_kind = kind; +- Unix.LargeFile.st_perm = perm; +- Unix.LargeFile.st_uid = uid; +- Unix.LargeFile.st_gid = gid +- } = Unix.LargeFile.stat s +- in ++ let st = Unix.LargeFile.stat s in ++ let kind = st.Unix.LargeFile.st_kind in ++ let perm = st.Unix.LargeFile.st_perm in ++ let uid = st.Unix.LargeFile.st_uid in ++ let gid = st.Unix.LargeFile.st_gid in + (kind = Unix.S_REG) + && ((perm land 0o001) <> 0 + || (List.mem gid groups && (perm land 0o010) <> 0) diff --git a/devel/omake/files/patch-src_libmojave-external_util_lm__glob.ml b/devel/omake/files/patch-src_libmojave-external_util_lm__glob.ml new file mode 100644 index 000000000000..00086345bbfb --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_util_lm__glob.ml @@ -0,0 +1,20 @@ +$NetBSD: patch-av,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/util/lm_glob.ml.orig 2007-09-04 16:12:33 UTC ++++ src/libmojave-external/util/lm_glob.ml +@@ -157,11 +157,8 @@ let home_dir = + let getusers () = + let users = Lm_unix_util.getpwents () in + List.map (fun entry -> +- let { Unix.pw_name = name; +- Unix.pw_dir = dir +- } = entry +- in +- tilde_insert dir name; ++ let name = entry.Unix.pw_name in ++ tilde_insert entry.Unix.pw_dir name; + name) users + + (************************************************************************ diff --git a/devel/omake/files/patch-src_libmojave-external_util_lm__lexer.ml b/devel/omake/files/patch-src_libmojave-external_util_lm__lexer.ml new file mode 100644 index 000000000000..bd4a5b48a019 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_util_lm__lexer.ml @@ -0,0 +1,343 @@ +$NetBSD: patch-aw,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/util/lm_lexer.ml.orig 2007-01-25 18:31:18 UTC ++++ src/libmojave-external/util/lm_lexer.ml +@@ -1325,10 +1325,8 @@ struct + * Expressions. + *) + let pp_print_exp buf exp = +- let { exp_clauses = clauses; +- exp_id = id +- } = exp +- in ++ let clauses = exp.exp_clauses in ++ let id = exp.exp_id in + fprintf buf "Id: %d" id; + List.iter (fun (action, id, regex) -> + fprintf buf "@ @[<hv 3>Clause:@ id = %d@ action = %a@ @[<hv 3>regex =@ %a@]@]" (**) +@@ -1370,10 +1368,8 @@ struct + let add_clause_exp exp action s = + let regex = regex_of_string s in + let arity = regex_arg_count 0 regex in +- let { exp_clauses = clauses; +- exp_id = id +- } = exp +- in ++ let clauses = exp.exp_clauses in ++ let id = exp.exp_id in + let exp = + { exp_clauses = (action, id, regex) :: clauses; + exp_id = succ id +@@ -1395,11 +1391,9 @@ struct + * Take the union of two expression lists. + *) + let union_exp exp1 exp2 = +- let { exp_clauses = clauses1; +- exp_id = id1 +- } = exp1 +- in +- let { exp_clauses = clauses2 } = exp2 in ++ let clauses1 = exp1.exp_clauses in ++ let id1 = exp1.exp_id in ++ let clauses2 = exp2.exp_clauses in + let actions = + List.fold_left (fun actions (action, _, _) -> + ActionSet.add actions action) ActionSet.empty clauses1 +@@ -1474,20 +1468,16 @@ struct + counter min final max start + + let pp_print_nfa_state buf nfa_state = +- let { nfa_state_index = index; +- nfa_state_action = action +- } = nfa_state +- in ++ let index = nfa_state.nfa_state_index in ++ let action = nfa_state.nfa_state_action in + fprintf buf "@[<hv 3>NFA state %d:@ action %a@]" index pp_print_nfa_action action + + let pp_print_nfa buf nfa = +- let { nfa_hash = hash; +- nfa_start = start; +- nfa_search_start = search; +- nfa_search_states = search_states; +- nfa_table = table +- } = nfa +- in ++ let hash = nfa.nfa_hash in ++ let start = nfa.nfa_start in ++ let search = nfa.nfa_search_start in ++ let search_states = nfa.nfa_search_states in ++ let table = nfa.nfa_table in + fprintf buf "@[<hv 3>NFA:@ start = %a@ search = %a@ @[<b 3>search-states =%a@]" (**) + (pp_print_nfa_id hash) start + (pp_print_nfa_id hash) search +@@ -1500,7 +1490,7 @@ struct + * Construct a new state. + *) + let nfa_state accum action = +- let { nfa_index = index } = accum in ++ let index = accum.nfa_index in + let state = + { nfa_state_index = index; + nfa_state_action = action +@@ -1582,7 +1572,7 @@ struct + in + accum, info, start, start1 :: final1 :: states + | RegexInterval (regex, min, max) -> +- let { nfa_counter = counter } = accum in ++ let counter = accum.nfa_counter in + let accum, start1 = nfa_state accum NfaActionNone in + let accum, final1 = + nfa_state accum (NfaActionIncrCounter (counter, min, final.nfa_state_index, max, start1.nfa_state_index)) +@@ -1605,11 +1595,11 @@ struct + + (* Arguments *) + | RegexArg regex -> +- let { nfa_arg_index = argindex } = accum in ++ let argindex = accum.nfa_arg_index in + let accum, final1 = nfa_state accum (NfaActionArgStop (argindex, final.nfa_state_index)) in + let accum, start1 = nfa_state accum NfaActionNone in + let start = set_action start (NfaActionArgStart (argindex, start1.nfa_state_index)) in +- let { nfa_arg_number = argnumber } = info in ++ let argnumber = info.nfa_arg_number in + let accum = { accum with nfa_arg_index = succ argindex } in + let info = { info with nfa_arg_number = succ argnumber } in + let accum, info, start1, states = +@@ -1783,10 +1773,8 @@ struct + fprintf buf "search-stop at %d" off + + let pp_print_dfa_actions nfa_hash buf action = +- let { dfa_action_final = final; +- dfa_action_actions = actions +- } = action +- in ++ let final = action.dfa_action_final in ++ let actions = action.dfa_action_actions in + let () = + fprintf buf "@[<hv 3>(action" + in +@@ -1798,20 +1786,16 @@ struct + () + in + NfaStateTable.iter (fun dst action -> +- let { dfa_action_src = src; +- dfa_action_args = args +- } = action +- in ++ let src = action.dfa_action_src in ++ let args = action.dfa_action_args in + fprintf buf "@ @[<hv 3>(%a -> %a" (pp_print_nfa_id nfa_hash) src (pp_print_nfa_id nfa_hash) dst; + List.iter (fun action -> fprintf buf "@ %a" pp_print_dfa_arg_action action) args; + fprintf buf ")@]") actions; + fprintf buf ")@]" + + let pp_print_pre_actions buf action = +- let { pre_action_final = final; +- pre_action_args = args +- } = action +- in ++ let final = action.pre_action_final in ++ let args = action.pre_action_args in + let () = + fprintf buf "@[<hv 3>(pre-action@ " + in +@@ -1897,10 +1881,10 @@ struct + * DFA actions. + *) + let dfa_action_is_empty action = +- match action with +- { dfa_action_final = None; dfa_action_actions = actions } -> +- NfaStateTable.is_empty actions +- | { dfa_action_final = Some _ } -> ++ match action.dfa_action_final with ++ None -> ++ NfaStateTable.is_empty action.dfa_action_actions ++ | Some _ -> + false + + (* +@@ -1920,21 +1904,15 @@ struct + ArgTable.add args ArgSearch pos + + let dfa_eval_action dfa info action = +- let { dfa_channel = channel; +- dfa_args = args_table +- } = info +- in +- let { dfa_action_final = final; +- dfa_action_actions = actions +- } = action +- in ++ let channel = info.dfa_channel in ++ let args_table = info.dfa_args in ++ let final = action.dfa_action_final in ++ let actions = action.dfa_action_actions in + let pos = Input.lex_pos channel in + let args_table = + NfaStateTable.map (fun action -> +- let { dfa_action_src = src; +- dfa_action_args = actions +- } = action +- in ++ let src = action.dfa_action_src in ++ let actions = action.dfa_action_args in + let args = + try NfaStateTable.find args_table src with + Not_found -> +@@ -2140,10 +2118,8 @@ struct + * the DFA state. + *) + let close_state dfa table nids c = +- let { dfa_search_states = search_states; +- dfa_nfa_hash = nfa_hash +- } = dfa +- in ++ let search_states = dfa.dfa_search_states in ++ let nfa_hash = dfa.dfa_nfa_hash in + let final, actions = + List.fold_left (fun final_actions nid -> + let frontier = +@@ -2152,10 +2128,8 @@ struct + if !debug_lexgen then + eprintf "@[<v 3>Frontier:@ %a@]@." (pp_print_frontier nfa_hash) frontier; + NfaStateTable.fold (fun (final', actions) id action -> +- let { pre_action_final = final; +- pre_action_args = args +- } = action +- in ++ let final = action.pre_action_final in ++ let args = action.pre_action_args in + let final = + match final', final with + Some (clause_id', _nid'), Some clause_id -> +@@ -2264,11 +2238,9 @@ struct + extend_args ("" :: args) (succ len1) len2 + + let dfa_args dfa_info lexeme = +- let { dfa_start_pos = start; +- dfa_stop_pos = stop; +- dfa_stop_args = args +- } = dfa_info +- in ++ let start = dfa_info.dfa_start_pos in ++ let stop = dfa_info.dfa_stop_pos in ++ let args = dfa_info.dfa_stop_args in + + (* Get the pairs of argument info *) + let info, start_pos = +@@ -2326,11 +2298,9 @@ struct + * Add a state to the DFA. It is initially empty. + *) + let dfa_find_state dfa nids = +- let { dfa_map = map; +- dfa_length = dfa_id; +- dfa_states = states +- } = dfa +- in ++ let map = dfa.dfa_map in ++ let dfa_id = dfa.dfa_length in ++ let states = dfa.dfa_states in + try DfaStateTable.find map nids with + Not_found -> + (* Make a new state *) +@@ -2362,14 +2332,10 @@ struct + * an entry in the transition table yet. + *) + let create_entry dfa dfa_state c = +- let { dfa_dfa_hash = dfa_hash; +- dfa_table = table +- } = dfa +- in +- let { dfa_state_set = nids; +- dfa_state_delta = delta +- } = dfa_state +- in ++ let dfa_hash = dfa.dfa_dfa_hash in ++ let table = dfa.dfa_table in ++ let nids = dfa_state.dfa_state_set in ++ let delta = dfa_state.dfa_state_delta in + let frontier, actions = close_next_state dfa table (DfaState.get dfa_hash nids) c in + if frontier = [] && dfa_action_is_empty actions then + dfa_state.dfa_state_delta <- TransTable.add delta c DfaNoTransition +@@ -2437,10 +2403,8 @@ struct + let () = loop dfa_state c in + + (* Now figure out what happened *) +- let { dfa_stop_clause = clause; +- dfa_stop_pos = stop; +- } = dfa_info +- in ++ let clause = dfa_info.dfa_stop_clause in ++ let stop = dfa_info.dfa_stop_pos in + (* + * If we did not get a match, return the channel to + * the starting position, and raise an exception. +@@ -2489,10 +2453,8 @@ struct + let () = loop dfa_state c in + + (* Now figure out what happened *) +- let { dfa_stop_clause = clause; +- dfa_stop_pos = stop; +- } = dfa_info +- in ++ let clause = dfa_info.dfa_stop_clause in ++ let stop = dfa_info.dfa_stop_pos in + (* + * If we did not get a match, return the channel to + * the starting position, and raise an exception. +@@ -2551,10 +2513,8 @@ struct + let () = loop dfa_state c in + + (* Now figure out what happened *) +- let { dfa_stop_clause = clause; +- dfa_stop_pos = stop; +- } = dfa_info +- in ++ let clause = dfa_info.dfa_stop_clause in ++ let stop = dfa_info.dfa_stop_pos in + (* + * If we did not get a match, return all the text to + * the end of the channel. +@@ -2610,14 +2570,12 @@ struct + if !debug_lexgen || !debug_lex then + eprintf "%a@." pp_print_nfa nfa + in +- let { nfa_hash = nfa_hash; +- nfa_table = nfa_table; +- nfa_start = nfa_start; +- nfa_actions = actions; +- nfa_search_start = nfa_search_start; +- nfa_search_states = nfa_search_states +- } = nfa +- in ++ let nfa_hash = nfa.nfa_hash in ++ let nfa_table = nfa.nfa_table in ++ let nfa_start = nfa.nfa_start in ++ let actions = nfa.nfa_actions in ++ let nfa_search_start = nfa.nfa_search_start in ++ let nfa_search_states = nfa.nfa_search_states in + let dfa_hash = DfaState.create_state () in + let nfa_start = DfaState.create dfa_hash [nfa_start] in + let start = +@@ -2673,8 +2631,8 @@ struct + * then we have seen all the rest of the clauses too. + *) + let union info1 info2 = +- let { lex_exp = exp1 } = info1 in +- let { lex_exp = exp2 } = info2 in ++ let exp1 = info1.lex_exp in ++ let exp2 = info2.lex_exp in + (* Catch degenerate cases first *) + match exp1.exp_clauses, exp2.exp_clauses with + [], _ -> info2 +@@ -2711,7 +2669,7 @@ struct + ignore (dfa_of_info info) + + let pp_print_lexer buf info = +- let { lex_exp = exp } = info in ++ let exp = info.lex_exp in + let dfa = dfa_of_info info in + fprintf buf "@[<v 0>@[<hv 3>Lexer:@ %a@]" pp_print_exp exp; + fprintf buf "@ @[<hv 3>NFA:"; diff --git a/devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml b/devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml new file mode 100644 index 000000000000..40845a9de863 --- /dev/null +++ b/devel/omake/files/patch-src_libmojave-external_util_lm__parser.ml @@ -0,0 +1,366 @@ +$NetBSD: patch-ax,v 1.1 2010/12/17 09:40:14 wiz Exp $ + +From upstream SVN. + +--- src/libmojave-external/util/lm_parser.ml.orig 2007-01-25 18:31:18 UTC ++++ src/libmojave-external/util/lm_parser.ml +@@ -282,15 +282,11 @@ struct + let debug = "ProdItem" + + let hash item = +- let { prod_item_name = name; +- prod_item_left = left; +- prod_item_right = right; +- prod_item_action = action +- } = item +- in ++ let name = item.prod_item_name in ++ let action = item.prod_item_action in + let hash = hash_combine (IVar.hash name) (IAction.hash action) in +- let hash = ivar_list_hash hash left in +- let hash = ivar_list_hash hash right in ++ let hash = ivar_list_hash hash item.prod_item_left in ++ let hash = ivar_list_hash hash item.prod_item_right in + hash + + let compare item1 item2 = +@@ -657,18 +653,12 @@ struct + fprintf buf "@ %a: %a" (pp_print_ivar info) v (pp_print_pda_action info) action) actions + + let pp_print_prod_item_core info buf item = +- let { prod_item_action = action; +- prod_item_name = name; +- prod_item_left = left; +- prod_item_right = right +- } = item +- in + let hash = info.info_hash in + fprintf buf "%a ::=%a .%a (%a)" (**) +- (pp_print_ivar hash) name +- (pp_print_ivars hash) (List.rev left) +- (pp_print_ivars hash) right +- (pp_print_iaction hash) action ++ (pp_print_ivar hash) item.prod_item_name ++ (pp_print_ivars hash) (List.rev item.prod_item_left) ++ (pp_print_ivars hash) item.prod_item_right ++ (pp_print_iaction hash) item.prod_item_action + + let pp_print_prod_item info buf item = + pp_print_prod_item_core info buf (ProdItem.get info.info_hash.hash_prod_item_state item) +@@ -678,40 +668,27 @@ struct + fprintf buf "@ %a" (pp_print_prod_item info) item) items + + let pp_print_state info buf state = +- let { info_state_items = items } = State.get info.info_hash.hash_state_state state in ++ let items = (State.get info.info_hash.hash_state_state state).info_state_items in + eprintf "@[<v 3>State %d" (State.hash state); + pp_print_prod_item_set info buf items; + eprintf "@]" + + let pp_print_info_item info buf info_item = +- let { info_hash = hash; +- info_hash_state_item = hash_state_item +- } = info +- in +- let { info_item_index = index; +- info_item_entries = entries +- } = info_item +- in +- fprintf buf "@[<v 3>State %d:" index; ++ let hash = info.info_hash in ++ let hash_state_item = info.info_hash_state_item in ++ fprintf buf "@[<v 3>State %d:" info_item.info_item_index; + Array.iter (fun entry -> +- let { prop_state_item = state_item; +- prop_vars = lookahead +- } = entry +- in ++ let state_item = entry.prop_state_item in ++ let lookahead = entry.prop_vars in + let _, prod_item = StateItem.get hash_state_item state_item in +- fprintf buf "@ @[<hv 3>%a@ @[<b 2>#%a@]@]" (pp_print_prod_item info) prod_item (pp_print_ivar_set hash) lookahead) entries; ++ fprintf buf "@ @[<hv 3>%a@ @[<b 2>#%a@]@]" (pp_print_prod_item info) prod_item (pp_print_ivar_set hash) lookahead) info_item.info_item_entries; + fprintf buf "@]" + + let pp_print_info buf info = +- let { info_grammar = gram; +- info_nullable = nullable; +- info_first = first; +- info_hash = hash +- } = info +- in +- fprintf buf "@[<v 0>%a" pp_print_grammar gram; +- fprintf buf "@ @[<b 3>Nullable:%a@]" (pp_print_ivar_set hash) nullable; +- fprintf buf "@ @[<v 3>First:%a@]" (pp_print_ivar_table hash) first; ++ let hash = info.info_hash in ++ fprintf buf "@[<v 0>%a" pp_print_grammar info.info_grammar; ++ fprintf buf "@ @[<b 3>Nullable:%a@]" (pp_print_ivar_set hash) info.info_nullable; ++ fprintf buf "@ @[<v 3>First:%a@]" (pp_print_ivar_table hash) info.info_first; + fprintf buf "@]" + + let pp_print_lookahead hash buf look = +@@ -917,16 +894,11 @@ struct + let changed, prods = + VarMTable.fold_all (fun (changed, prods) _ prodlist -> + List.fold_left (fun (changed, prods) prod -> +- let { prod_action = action; +- prod_name = name; +- prod_prec = pre +- } = prod +- in +- if ActionSet.mem actions action then +- changed, prods +- else +- let prod = { prod with prod_prec = PrecTable.find prec_translate pre } in +- true, VarMTable.add prods name prod) (changed, prods) prodlist) (false, prod1) prod2 ++ if ActionSet.mem actions prod.prod_action then ++ changed, prods ++ else ++ let prod = { prod with prod_prec = PrecTable.find prec_translate prod.prod_prec } in ++ true, VarMTable.add prods prod.prod_name prod) (changed, prods) prodlist) (false, prod1) prod2 + in + + (* Union of the start symbols *) +@@ -1012,12 +984,10 @@ struct + let step first prods = + IVarTable.fold (fun (first, changed) _ prods -> + List.fold_left (fun (first, changed) prod -> +- let { prod_item_name = x; +- prod_item_right = rhs +- } = ProdItem.get prod_state prod +- in ++ let prod_item = ProdItem.get prod_state prod in ++ let x = prod_item.prod_item_name in + let set = IVarTable.find first x in +- let set' = first_rhs nullable first set rhs in ++ let set' = first_rhs nullable first set prod_item.prod_item_right in + let set, changed = + if changed || IVarSet.cardinal set' <> IVarSet.cardinal set then + set', true +@@ -1059,10 +1029,8 @@ struct + * Get the set of first symbols that can begin a list. + *) + let lookahead info rhs = +- let { info_first = first; +- info_nullable = nullable +- } = info +- in ++ let first = info.info_first in ++ let nullable = info.info_nullable in + let rec search set rhs = + match rhs with + v :: rhs -> +@@ -1274,14 +1242,10 @@ struct + let hash = info.info_hash.hash_prod_item_state in + ProdItemSet.fold (fun delta prod_item -> + let core = ProdItem.get hash prod_item in +- let { prod_item_left = left; +- prod_item_right = right +- } = core +- in +- match right with ++ match core.prod_item_right with + v :: right -> + let core = +- { core with prod_item_left = v :: left; ++ { core with prod_item_left = v :: core.prod_item_left; + prod_item_right = right + } + in +@@ -1517,11 +1481,7 @@ struct + let goto_table = StateTable.find shift_table state in + let prod_item_hash = info.info_hash.hash_prod_item_state in + let prod_item_core = ProdItem.get prod_item_hash prod_item in +- let { prod_item_left = left; +- prod_item_right = right +- } = prod_item_core +- in +- match right with ++ match prod_item_core.prod_item_right with + v :: right -> + (* If v is a nonterminal, then also propagate to initial items *) + let prop_items = +@@ -1534,7 +1494,7 @@ struct + (* Propagate directly to the next state *) + let next_state = IVarTable.find goto_table v in + let next_item_core = +- { prod_item_core with prod_item_left = v :: left; ++ { prod_item_core with prod_item_left = v :: prod_item_core.prod_item_left; + prod_item_right = right + } + in +@@ -1833,8 +1793,8 @@ struct + item :: items -> + let core = ProdItem.get hash item in + let empty_flag = +- match core with +- { prod_item_left = []; prod_item_right = [] } -> ++ match core.prod_item_left, core.prod_item_right with ++ [], [] -> + true + | _ -> + false +@@ -1865,14 +1825,12 @@ struct + look) + + let reduce_actions info empties prop_table = +- let { info_head_lookahead = look_table } = info in ++ let look_table = info.info_head_lookahead in + let hash = info.info_hash.hash_prod_item_state in + let hash_state_item = info.info_hash_state_item in + Array.fold_left (fun actions entry -> +- let { prop_state_item = state_item; +- prop_vars = look3 +- } = entry +- in ++ let state_item = entry.prop_state_item in ++ let look3 = entry.prop_vars in + let state, item = StateItem.get hash_state_item state_item in + let core = ProdItem.get hash item in + match core.prod_item_right with +@@ -1902,8 +1860,8 @@ struct + * Error messages. + *) + let shift_reduce_conflict info state v shift_state reduce_item = +- let { info_hash = hash } = info in +- let { hash_prod_item_state = hash_prod_item } = hash in ++ let hash = info.info_hash in ++ let hash_prod_item = hash.hash_prod_item_state in + let pp_print_ivar = pp_print_ivar hash in + let pp_print_iaction = pp_print_iaction hash in + let reduce_core = ProdItem.get hash_prod_item reduce_item in +@@ -1917,8 +1875,8 @@ struct + raise (Invalid_argument "Lm_parser.shift_reduce_conflict\n\tset MP_DEBUG=parse_conflict_is_warning to ignore this error") + + let reduce_reduce_conflict info state v reduce_item action = +- let { info_hash = hash } = info in +- let { hash_prod_item_state = hash_prod_item } = hash in ++ let hash = info.info_hash in ++ let hash_prod_item = hash.hash_prod_item_state in + let pp_print_ivar = pp_print_ivar hash in + let pp_print_iaction = pp_print_iaction hash in + let reduce_core = ProdItem.get hash_prod_item reduce_item in +@@ -1936,24 +1894,18 @@ struct + * This is finally the stage where we check for conflicts. + *) + let process_reduce_actions info reduce_actions action_table = +- let { info_grammar = gram; +- info_prec = var_prec_table; +- info_hash = { hash_prod_item_state = hash_prod_item } +- } = info +- in +- let { gram_prec_table = prec_table } = gram in ++ let gram = info.info_grammar in ++ let var_prec_table = info.info_prec in ++ let hash_prod_item = info.info_hash.hash_prod_item_state in ++ let prec_table = gram.gram_prec_table in + let state_item_hash = info.info_hash_state_item in + StateItemTable.fold (fun action_table state_item look -> + let look = lookahead_set look in + let state, item = StateItem.get state_item_hash state_item in +- let { prod_item_name = name; +- prod_item_action = action; +- prod_item_left = left; +- prod_item_prec = prec_name +- } = ProdItem.get hash_prod_item item +- in ++ let prod_item = ProdItem.get hash_prod_item item in ++ let prec_name = prod_item.prod_item_prec in + let assoc = Precedence.assoc prec_table prec_name in +- let reduce = ReduceAction (action, name, List.length left) in ++ let reduce = ReduceAction (prod_item.prod_item_action, prod_item.prod_item_name, List.length prod_item.prod_item_left) in + let actions = StateTable.find action_table state in + let actions = + IVarSet.fold (fun actions v -> +@@ -2006,7 +1958,8 @@ struct + { prod_item_right = []; + prod_item_action = action; + prod_item_name = name; +- prod_item_left = left ++ prod_item_left = left; ++ prod_item_prec = _ + } -> + let state_item = StateItem.create info.info_hash_state_item (state, item) in + let lookahead = prop_table.(StateItem.hash state_item).prop_vars in +@@ -2027,18 +1980,14 @@ struct + * Flatten a production state to a pda description. + *) + let pda_info_of_items info prop_table state items = +- let { info_first = first; +- info_hash_state_item = hash_state_item; +- info_hash = { hash_prod_item_state = hash_prod_item } +- } = info +- in ++ let first = info.info_first in ++ let hash_state_item = info.info_hash_state_item in ++ let hash_prod_item = info.info_hash.hash_prod_item_state in + let items, next = + ProdItemSet.fold (fun (items, next) prod_item -> + let core = ProdItem.get hash_prod_item prod_item in +- let { prod_item_left = left; +- prod_item_right = right +- } = core +- in ++ let left = core.prod_item_left in ++ let right = core.prod_item_right in + let item = + { pda_item_left = left; + pda_item_right = right +@@ -2094,7 +2043,7 @@ struct + (* Build the PDA states *) + let table = + State.map_array (fun state core -> +- let { info_state_items = items } = core in ++ let items = core.info_state_items in + { pda_delta = pda_delta (StateTable.find trans_table state); + pda_reduce = reduce_early info prop_table state items; + pda_info = pda_info_of_items info prop_table state items +@@ -2155,7 +2104,7 @@ struct + * Exceptions. + *) + let parse_error loc hash run _stack state (v : ivar) = +- let { pda_info = { pda_items = items; pda_next = next } } = run.run_states.(state) in ++ let { pda_items = items; pda_next = next } = run.run_states.(state).pda_info in + let pp_print_ivar = pp_print_ivar hash in + let buf = stdstr in + fprintf buf "@[<v 0>Syntax error on token %a" pp_print_ivar v; +@@ -2188,7 +2137,7 @@ struct + + let pda_loop hash run arg start = + let rec pda_lookahead arg stack state tok = +- let { pda_delta = delta } = run.run_states.(state) in ++ let delta = run.run_states.(state).pda_delta in + let v, loc, x = tok in + match + (try IVarTable.find delta v with +@@ -2323,24 +2272,24 @@ struct + let prec_max = Precedence.prec_max + + let add_assoc info pre assoc = +- let { parse_grammar = gram } = info in +- let { gram_prec_table = prec_table } = gram in ++ let gram = info.parse_grammar in ++ let prec_table = gram.gram_prec_table in + let prec_table = Precedence.add_assoc prec_table pre assoc in + let gram = { gram with gram_prec_table = prec_table } in + let info = { parse_grammar = gram; parse_pda = None } in + info + + let create_prec_lt info pre assoc = +- let { parse_grammar = gram } = info in +- let { gram_prec_table = prec_table } = gram in ++ let gram = info.parse_grammar in ++ let prec_table = gram.gram_prec_table in + let prec_table, pre = Precedence.create_prec_lt prec_table pre assoc in + let gram = { gram with gram_prec_table = prec_table } in + let info = { parse_grammar = gram; parse_pda = None } in + info, pre + + let create_prec_gt info pre assoc = +- let { parse_grammar = gram } = info in +- let { gram_prec_table = prec_table } = gram in ++ let gram = info.parse_grammar in ++ let prec_table = gram.gram_prec_table in + let prec_table, pre = Precedence.create_prec_gt prec_table pre assoc in + let gram = { gram with gram_prec_table = prec_table } in + let info = { parse_grammar = gram; parse_pda = None } in diff --git a/devel/omake/pkg-descr b/devel/omake/pkg-descr new file mode 100644 index 000000000000..b19758de8242 --- /dev/null +++ b/devel/omake/pkg-descr @@ -0,0 +1,5 @@ +OMake is a build system designed for scalability and portability. It uses +a syntax similar to make utilities you may have used, but it features +many additional enhancements. + +WWW: http://omake.metaprl.org/ diff --git a/devel/omake/pkg-plist b/devel/omake/pkg-plist new file mode 100644 index 000000000000..8b6a2b886304 --- /dev/null +++ b/devel/omake/pkg-plist @@ -0,0 +1,54 @@ +bin/cvs_realclean +bin/omake +bin/osh +lib/omake/OMakefile.default +lib/omake/OMakeroot.default +lib/omake/OMakeroot.om +lib/omake/Pervasives.om +lib/omake/build/C.om +lib/omake/build/Common.om +lib/omake/build/LaTeX.om +lib/omake/build/OCaml.om +lib/omake/build/svn_realclean.om +lib/omake/configure/Configure.om +lib/omake/configure/X.om +lib/omake/configure/fam.om +lib/omake/configure/fs_case_sensitive.om +lib/omake/configure/ncurses.om +lib/omake/configure/readline.om +lib/omake/configure/snprintf.om +lib/omake/parse/C/Lex.om +lib/omake/parse/C/Parse.om +lib/omake/parse/LaTeX/Lex.om +lib/omake/parse/LaTeX/Macros.om +lib/omake/parse/LaTeX/Parse.om +lib/omake/parse/LaTeX/Spell.om +lib/omake/web/simple-xml.om +%%PORTDOCS%%%%DOCSDIR%%/omake-all-index.html +%%PORTDOCS%%%%DOCSDIR%%/omake-autoconf.html +%%PORTDOCS%%%%DOCSDIR%%/omake-base.html +%%PORTDOCS%%%%DOCSDIR%%/omake-build-examples.html +%%PORTDOCS%%%%DOCSDIR%%/omake-build.html +%%PORTDOCS%%%%DOCSDIR%%/omake-contents.html +%%PORTDOCS%%%%DOCSDIR%%/omake-detail.html +%%PORTDOCS%%%%DOCSDIR%%/omake-doc.css +%%PORTDOCS%%%%DOCSDIR%%/omake-doc.html +%%PORTDOCS%%%%DOCSDIR%%/omake-fun-index.html +%%PORTDOCS%%%%DOCSDIR%%/omake-grammar.html +%%PORTDOCS%%%%DOCSDIR%%/omake-language-examples.html +%%PORTDOCS%%%%DOCSDIR%%/omake-language-naming.html +%%PORTDOCS%%%%DOCSDIR%%/omake-language.html +%%PORTDOCS%%%%DOCSDIR%%/omake-obj-index.html +%%PORTDOCS%%%%DOCSDIR%%/omake-option-index.html +%%PORTDOCS%%%%DOCSDIR%%/omake-options.html +%%PORTDOCS%%%%DOCSDIR%%/omake-pervasives.html +%%PORTDOCS%%%%DOCSDIR%%/omake-quickstart.html +%%PORTDOCS%%%%DOCSDIR%%/omake-references.html +%%PORTDOCS%%%%DOCSDIR%%/omake-rules.html +%%PORTDOCS%%%%DOCSDIR%%/omake-shell.html +%%PORTDOCS%%%%DOCSDIR%%/omake-system.html +%%PORTDOCS%%%%DOCSDIR%%/omake-target-index.html +%%PORTDOCS%%%%DOCSDIR%%/omake-toc.html +%%PORTDOCS%%%%DOCSDIR%%/omake-var-index.html +%%PORTDOCS%%%%DOCSDIR%%/omake.html +%%PORTDOCS%%%%DOCSDIR%%/osh.html |