summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* update docs for calling convention changecalling-conventionAndy Wingo2009-08-151-64/+54
| | | | * doc/ref/vm.texi: Update.
* push new frame on stack before procedure & argsAndy Wingo2009-08-154-52/+73
| | | | | | | | | | | | | | | | | * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump * libguile/vm-engine.c (vm_engine): Push a frame corresponding to the mv-call. * libguile/vm-i-system.c: Renumber ops. (new-frame): New op, pushes a frame. (call, mv-call): No need to shuffle args, though we do need to pop the frame in the non-vm call case. (goto/args): Inconsequential tweaks. (call/cc): Push a frame if needed. * module/language/tree-il/compile-glil.scm (flatten): Emit `new-frame' as appropriate.
* reorder frame layoutAndy Wingo2009-08-156-123/+85
| | | | | | | | | | | | | | | | | | | | | | | | * libguile/frames.h: Reorder the frame layout so the return address comes below the arguments.working (SCM_FRAME_SET_RETURN_ADDRESS, SCM_FRAME_SET_MV_RETURN_ADDRESS): New macros. * libguile/frames.c (scm_vm_frame_arguments): Use the macros to access the arguments. * libguile/vm-engine.c (vm_engine): Fix for new calling convention. * libguile/vm-engine.h (INIT_FRAME): New macro. Does part of what NEW_FRAME used to do. * libguile/vm-i-system.c (call, mv-call): Shuffle args up to make room for the stack, and adapt to new calling convention. (goto/args): Shuffling down is easier now. (return, return/args): Adapt to new frame layout. * libguile/vm.c (vm_mark_stack): Adapt to new frame layout, and the possibility of there being crap on the stack. (really_make_boot_program): Remove extraneous comment.
* remove dead weight from vm-i-system.cAndy Wingo2009-08-151-221/+58
| | | | | | | | | | * libguile/vm-i-system.c: Remove mark, list-mark, cons-mark, vector-mark, and list-break, as they are no longer used. (call, goto/args, mv-call): Remove bits about trampolines, which was slower, and VM continuations, which are not used (we use Guile's continuations as the applicable objects). Renumber ops.
* Update `.gitignore' for GNU Global.Ludovic Courtès2009-08-151-0/+4
|
* Switch from `guile-1.8.pc' to `guile-2.0.pc'.Ludovic Courtès2009-08-156-8/+9
| | | | | | | | | | * configure.ac: Produce guile-2.0*.pc. * meta/Makefile.am (EXTRA_DIST): Rename guile-1.8*.pc.in to guile-2.0*.pc.in. (pkgconfig_DATA): Update accordingly. * meta/guile-config (guile-module): Likewise.
* Uncomment run-time objcode alignment check.Ludovic Courtès2009-08-132-7/+7
| | | | | | | | | | | | | | This should now work thanks to the changes in 28b119ee3da0f4b14cb87e638794d22843778cda ("make sure all programs are 8-byte aligned"). This commit is a follow-up to ec99fe8ecb412e49e8e981246eb62ca46b32754b ("Add FIXMEs about misaligned objcode-metas."). * libguile/objcodes.c (scm_c_make_objcode_slice): Uncomment assertion that checks for proper alignment of PTR. * module/language/assembly/compile-bytecode.scm (write-bytecode): Update comment about META's alignment.
* Remove deprecated semi-public memoizers.Ludovic Courtès2009-08-132-67/+4
| | | | | | | | | * libguile/eval.c (scm_m_expand_body, scm_macroexp, scm_unmemocar): Remove. (scm_m_undefine): Make `static'. * libguile/eval.h (scm_m_undefine, scm_m_expand_body, scm_unmemocar, scm_macroexp): Remove declarations.
* Make the evaluator's memoizers private.Ludovic Courtès2009-08-133-128/+129
| | | | | | | | | | | | | | | | | | | | | | | | * libguile/eval.c (macroexp): Move upwards. (scm_m_quote, scm_m_begin, scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay, scm_m_generalized_set_x, scm_m_define, scm_m_letrec, scm_m_let, scm_m_at, scm_m_atat, scm_m_apply, scm_m_cont, scm_m_nil_cond, scm_m_atfop, scm_m_atbind, scm_m_atslot_ref, scm_m_atslot_set_x, scm_m_at_call_with_values, scm_m_eval_when): New static declarations; definitions made static. (s_atslot_ref, s_atslot_set_x): New, from `goops.c'. * libguile/eval.h (scm_m_quote, scm_m_begin, scm_m_if, scm_m_set_x, scm_m_vref, scm_m_vset, scm_m_and, scm_m_or, scm_m_case, scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay, scm_m_generalized_set_x, scm_m_future, scm_m_define, scm_m_letrec, scm_m_let, scm_m_at, scm_m_atat, scm_m_apply, scm_m_cont, scm_m_nil_cond, scm_m_atfop, scm_m_atbind, scm_m_atslot_ref, scm_m_atslot_set_x, scm_m_atdispatch, scm_m_at_call_with_values, scm_m_eval_when): Remove public declarations. * libguile/goops.c (s_atslot_ref, s_atslot_set_x): Remove.
* compiler.test: Enforce evaluation order.Ludovic Courtès2009-08-131-9/+11
| | | | | | * test-suite/tests/compiler.test ("psyntax")["redefinition", "compile in current module", "compile in fresh module"]: Use `begin' to enforce evaluation order. Thanks Andy!
* Allow fresh modules to be passed to `compile'.Ludovic Courtès2009-08-133-6/+34
| | | | | | | | | | | * module/ice-9/boot-9.scm (module-name): When making MOD non-anonymous, bind it in the `(%app modules)' name space. * test-suite/tests/compiler.test ("psyntax")["compile in current module", "compile in fresh module"]: New tests. * test-suite/tests/modules.test ("foundations")["modules don't remain anonymous"]: New test.
* Allow redefinitions in compiled code as in `(define round round)'.Ludovic Courtès2009-08-133-5105/+5987
| | | | | | | | | * module/ice-9/psyntax-pp.scm: Regenerate. * module/ice-9/psyntax.scm (chi-top)[define-form]: If a same-named imported variable exists, take its value instead of `#f'. * test-suite/tests/compiler.test ("psyntax")["redefinition"]: New tests.
* update docs for recent vm/compiler workAndy Wingo2009-08-123-169/+317
| | | | | | | * doc/ref/compiler.texi: * doc/ref/vm.texi: Update for recent changes. * module/language/assembly/disassemble.scm (disassemble-load-program): Don't print nops, they are distracting.
* "fix" <let>-bound lambda expressions tooAndy Wingo2009-08-124-18/+85
| | | | | | | | | | | | | | | | | * module/language/tree-il/compile-glil.scm (compile-glil): Compute warnings before optimizing, as unreferenced variables will be optimized out. * libguile/_scm.h: Fix C99 comment. * module/language/tree-il/fix-letrec.scm (partition-vars): Also analyze let-bound vars. (fix-letrec!): Fix a bug whereby a set! to an unreffed var would be called for value, not effect. Also "fix" <let>-bound lambda expressions -- really speeds up pmatch. * test-suite/tests/tree-il.test ("lexical sets", "the or hack"): Update to take into account the new optimizations.
* Don't include libunistring headers in Guile public headersMichael Gran2009-08-125-8/+29
| | | | | | | | | | | | | | | | | | | | | | | This requres the creation of a new type scm_t_string_failed_conversion_handler to replace libunistring's enum iconveh_ilseq_handler. * libguile/strings.h: don't include <uniconv.h> (scm_t_string_failed_conversion_handler): new enum type (SCM_FAILED_CONVERSION_ERROR, SCM_FAILED_CONVERSION_QUESTION_MARK): (SCM_FAILED_CONVERSION_ESCAPE_SEQUENCE): new enum type values * libguile/strings.c (scm_to_stringn): now takes type scm_t_string_failed_conversion_handler. All callers changed. * libguile/print.c: include <uniconv.h> * libguile/ports.c (scm_lfwrite_substr): use scm_t_string_conversion_handler's constants * libguile/gen-scmconfig.c (SCM_ICONVEH_ERROR): (SCM_ICONVEH_QUESTION_MARK, SCM_ICONVEH_ESCAPE_SEQUENCE): store iconveh_ilseq_hander constants as #define's
* Regression, scm_string fails to test for circular listsMichael Gran2009-08-122-2/+13
| | | | | | | * libguile/string.c (scm_string): Restores the functionality where scm_string tests for circular lists * test-suite/tests/strings.test: add test for circular lists
* Some signed/unsigned comparison and conversionsMichael Gran2009-08-122-3/+3
| | | | | | | * libguile/ports.c (scm_lfwrite_str, scm_lfwrite_substr): signed/unsigned conversion and comparison * libguile/strings.c (scm_string_append): signed/unsigned comparison
* rework the vm support for wide stringsAndy Wingo2009-08-1211-199/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump. * libguile/vm-engine.c (vm_error_bad_wide_string_length): New error case. * libguile/vm-i-loader.c (load-unsigned-integer, load-integer) (load-keyword): Remove these instructions. The former two are obsoleted by make-int64/make-uint64, the latter via make-keyword. (load-string): Only handle narrow strings. (load-symbol): Only handle narrow symbols. The wide case is handled via make-symbol. (load-wide-string): New instruction, for wide strings. * libguile/vm-i-system.c (define): Move here from loaders.c, as now it just takes a sym on the stack. (make-keyword, make-symbol): New instructions. * module/language/assembly.scm: Remove removed instructions. No more width byte in load-string etc. * module/language/assembly/compile-bytecode.scm (write-bytecode): Adapt to change in instruction set. * module/language/glil/compile-assembly.scm (glil->assembly): Compile define by pushing the sym then emitting (define). (dump-object): Dump narrow and wide strings differently. Use make-keyword and make-symbol as appropriate. * module/language/tree-il/compile-glil.scm (flatten): When compiling a ref to a primitive (not a call), first see if the primitive is actually bound in the root module. (That's not the case with e.g. bytevector-u8-ref). * module/system/xref.scm (program-callee-rev-vars): Don't parse out "nexts". * test-suite/tests/asm-to-bytecode.test ("compiler"): Adapt to bytecode format change.
* Fix disassembly of strings and symbolsMichael Gran2009-08-121-2/+22
| | | | | * module/language/assembly/decompile-bytecode.scm (decode-bytecode): fix disassembly of strings, symbols, keywords, and defines
* Quiet signed/unsigned comparison warnings in chars.[ch]Michael Gran2009-08-112-5/+5
| | | | | | | | | * libguile/chars.h (SCM_MAKE_CHAR): quiet signed/unsigned comparison warnings * libguile/chars.c (scm_i_charname): (scm_i_charname_to_char): quiet signed/unsigned comparison warnings
* Avoid unitialized and unused warnings in scm_string_appendMichael Gran2009-08-111-9/+13
| | | | * libguile/strings.c (scm_string_append): avoid warnings
* Revert to locale-dependent toupper and tolowerMichael Gran2009-08-111-2/+8
| | | | | | | | | To avoid leaving Guile in a broken state, the conversion from locale-dependent case modification to Unicode case modification should be an atomic commit * libguile/chars.c (scm_c_upcase): revert to locale-dependent toupper and tolower
* Only pass ints to tolower and toupperMichael Gran2009-08-112-9/+9
| | | | | | | * libguile/strings.c (unistring_escapes_to_guile_escapes): cast tolower's parameter to int * libguile/read.c (CHAR_DOWNCASE): cast tolower's parameter to int
* debitrot the ecmascript compilerAndy Wingo2009-08-125-565/+553
| | | | | | | | | | | | | * module/Makefile.am (ECMASCRIPT_LANG_SOURCES): * module/language/ecmascript/compile-ghil.scm: * module/language/ecmascript/compile-tree-il.scm: SOURCES): Replace the GHIL compiler with a ->tree-il compiler. Not fully functional, but the basics work. * module/language/ecmascript/spec.scm: Only include the tree-il compiler. * module/language/ecmascript/tokenize.scm (read-punctuation): Avoid mutating a constant.
* make the fallback path look less like line noiseAndy Wingo2009-08-112-3/+16
| | | | | | * libguile/_scm.h: * libguile/load.c: Rework to only include the relevant pieces in the fallback path.
* include objcode cookie in the fallback pathAndy Wingo2009-08-113-30/+30
| | | | | | | | | | | | | * libguile/_scm.h (SCM_OBJCODE_COOKIE): Move the objcode cookie define here, so that load.c can use it. This is a private header. * libguile/load.c (FALLBACK_DIR): Include the objcode cookie in the fallback path. Should fix problems when objcode changes incompatibly during the 1.9 series. * libguile/objcodes.c: Adapt to SCM_OBJCODE_COOKIE move. This should fix http://article.gmane.org/gmane.lisp.guile.devel/9059.
* More string and symbol testsMichael Gran2009-08-102-7/+317
| | | | | | * test-suite/tests/strings.test: more tests * test-suite/tests/symbols.test: more tests
* Fix %string-dump and %symbol-dump fieldsMichael Gran2009-08-101-11/+13
| | | | | | | * libguile/strings.c (scm_sys_string_dump): don't print stringbuf. Print read-only status. (scm_sys_symbol_dump): don't print stringbuf. Print interned status.
* Change `defined?' to accept a module as its second argument.Ludovic Courtès2009-08-102-41/+21
| | | | | | | | | | Reported by Daniel Kraft <d@domob.eu>. * doc/ref/api-binding.texi (Binding Reflection): Update documentation of `defined?'. * libguile/evalext.c (scm_defined_p): Expect a module as the second argument, not a lexical environment.
* Make scm_charprint and scm_i_string_wide_chars SCM_INTERNAL.Michael Gran2009-08-103-4/+4
| | | | | | | | | | | | Also, scm_charprint is renamed to scm_i_charprint. * libguile/strings.h: make scm_i_string_wide_chars internal. * libguile/print.h: rename scm_charprint to scm_i_charprint. Make internal. * libguile/print.c (scm_i_charprint): renamed from scm_charprint (scm_charprint): renamed to scm_i_charprint. All callers changed.
* Improve %string-dump and %symbol-dumpMichael Gran2009-08-102-57/+181
| | | | | | | | | | | | | | | %string-dump and %symbol-dump are modified to return assocation lists of string and symbol attributes instead of printing to stderr. They are no longer conditional on SCM_DEBUG. * libguile/strings.c (scm_sys_string_dump) (scm_sys_symbol_dump): now returns alist of properties. No longer require that SCM_DEBUG be defined. (scm_sys_stringbuf_hist): now conditional on SCM_STRING_LENGTH_HISTOGRAM * libguile/strings.h: scm_sys_string_dump and scm_sys_symbol dump are now declared as API
* More comments for string functionsMichael Gran2009-08-091-16/+59
| | | | * libguile/strings.c: comments
* Missing parentheses in SCM_MAKE_CHAR macroMichael Gran2009-08-091-3/+3
| | | | * libguile/chars.h (SCM_MAKE_CHAR): missing parentheses
* Port position macros shouldn't require enclosing bracesMichael Gran2009-08-092-22/+11
| | | | | | | | | | The port position macros incorrectly required enclosing braces when used within if statements. * libguile/ports.h (SCM_INCLINE, SCM_ZEROCOL, SCM_INCCOL) (SCM_DECCOL, SCM_TABCOL): enclose macro in do/while * libguile/ports.c (update_port_lf): remove extra braces
* Use a linker version script for libguile.Ludovic Courtès2009-08-092-1/+52
| | | | | | | | * libguile/Makefile.am (libguile_la_LDFLAGS)[HAVE_LD_VERSION_SCRIPT]: Use `libguile.map'. (EXTRA_DIST): Add `libguile.map'. * libguile/libguile.map: New file.
* Use Gnulib's `lib-symbol-versions' module.Ludovic Courtès2009-08-099-14/+77
| | | | * m4/gnulib-cache.m4: Add `lib-symbol-versions'.
* Remove bogus `configure' test for GNU libunistring.Ludovic Courtès2009-08-091-7/+1
| | | | | | * configure.ac: Remove explicit test for libunistring, which conflicted with Gnulib's own test. This fixes commit f4863880f5ef539cb545999c19b6b5c0eec9382d.
* Merge commit 'origin/master'Michael Gran2009-08-0819-410/+1107
|\
| * lambda, the ultimate gotoAndy Wingo2009-08-072-39/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * module/language/tree-il/analyze.scm (analyze-lexicals): Rework to actually determine when a fixed-point procedure may be allocated as a label. * module/language/tree-il/compile-glil.scm (emit-bindings): Always emit a <glil-bind>. Otherwise it's too hard to pair with unbindings. (flatten-lambda): Consequently, here we only `bind' if there are any vars to bind. This doesn't make any difference, given that lambdas don't have trailing unbind instructions, but it does keep the GLIL output the same for thunks -- no extraneous (bind) instructions. Keeps tree-il.test happy. (flatten): Some bugfixes. Yaaay, it works!!!
| * implement compilation of label-allocated lambda expressionsAndy Wingo2009-08-071-129/+195
| | | | | | | | | | | | * module/language/tree-il/compile-glil.scm (flatten-lambda, flatten): Implement compilation of label-allocated lambda expressions. Quite tricky, we'll see if this works when the new analyzer lands.
| * add label alist to lambda allocations in tree-il->glil compilerAndy Wingo2009-08-072-17/+47
| | | | | | | | | | | | | | | | | | | | | | * module/language/tree-il/analyze.scm: Add some more comments about something that will land in a future commit: compiling fixpoint lambdas as labels. (analyze-lexicals): Reorder a bit, and add a label alist to procedure allocations. Empty for now. * module/language/tree-il/compile-glil.scm (flatten): Adapt to the free variables being in the cddr of the allocation, not the cdr.
| * loop detection in the houseAndy Wingo2009-08-063-23/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/vm-i-scheme.c (vector-ref, vector-set): Sync registers if we call out to C. * module/language/tree-il/compile-glil.scm (flatten-lambda): Add an extra argument, the self-label, which should be the gensym under which the procedure is bound in a <fix> expression. (flatten): If we see a call to a lexical ref to the self-label in a tail position, rename and goto instead of goto/args, which will tear down the frame -- or will, in the future. It's a primitive form of loop detection. * module/language/tree-il/primitives.scm (zero?): Expand to (= x 0).
| * actually implement "fixing letrec"Andy Wingo2009-08-067-82/+252
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * module/Makefile.am (SOURCES): Reorganize so GHIL is compiled last, along with ecmascript. * module/language/scheme/spec.scm: Remove references to GHIL, as it's bitrotten and obsolete.. * module/language/tree-il.scm (make-tree-il-folder): Rework so that we only have down and up procs, and call down and up on each element. * module/language/tree-il/analyze.scm (analyze-lexicals): Fix a thinko handling let-values. * module/language/tree-il/fix-letrec.scm: Actually implement fixing letrec. The resulting code will perform better, but violations of the letrec restriction are not detected. This behavior is allowed by the spec, but it is undesirable. Perhaps that will be fixed later. * module/language/tree-il/inline.scm (inline!): Fix a case in which ((lambda args foo)) would be erroneously inlined to foo. Remove empty let, letrec, and fix statements. * module/language/tree-il/primitives.scm (effect-free-primitive?): New public predicate.
| * actually inline call-with-values to tree-il's <let-values>Andy Wingo2009-08-064-21/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * module/srfi/srfi-11.scm (let-values): In the one-clause case, avoid going through temporary variables. * module/language/tree-il/inline.scm (inline!): Add another case: (call-with-values (lambda () ...) (lambda ... ...) -> let-values. * module/language/tree-il/compile-glil.scm (flatten): Fix a bug compiling applications in "vals" context. * module/language/tree-il/analyze.scm (analyze-lexicals): Fix a couple bugs with let-values and rest arguments.
| * let-values in terms of syntax-case, add make-tree-il-folderAndy Wingo2009-08-054-189/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * module/language/tree-il.scm (tree-il-fold): Fix for let-values case. (make-tree-il-folder): New public macro, makes a multi-valued folder specific to the number of seeds that the user wants. * module/language/tree-il/optimize.scm (optimize!): Reverse the order of inline! and fix-letrec!, as the latter might expose opportunities for the former. * module/srfi/srfi-11.scm (let-values): Reimplement in terms of syntax-case, so that its expressions may reference hygienically bound variables. See the NEWS for the rationale. (let*-values): An empty let*-values still introduces a local `let' binding contour. * module/system/base/syntax.scm (record-case): Yukkkk. Reimplement in terms of syntax-case. Ug-ly, but see the NEWS again: "Lexical bindings introduced by hygienic macros may not be referenced by nonhygienic macros."
| * add <fix> tree-il construct, and compile itAndy Wingo2009-08-059-44/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/vm-i-system.c (fix-closure): New instruction, for wiring together fixpoint procedures. * module/Makefile.am (TREE_IL_LANG_SOURCES): Add fix-letrec.scm. * module/language/glil/compile-assembly.scm (glil->assembly): Reindent the <glil-lexical> case, and handle 'fix for locally-bound vars. * module/language/tree-il.scm (<fix>): Add the <fix> tree-il type and accessors, for fixed-point bindings. This IL construct is taken from the Waddell paper. (parse-tree-il, unparse-tree-il, tree-il->scheme, tree-il-fold) (pre-order!, post-order!): Update for <fix>. * module/language/tree-il/analyze.scm (analyze-lexicals): Update for <fix>. The difference here is that the bindings may not be assigned, and are not marked as such. They are not boxed. (report-unused-variables): Update for <fix>. * module/language/tree-il/compile-glil.scm (flatten): Compile <fix> to GLIL. * module/language/tree-il/fix-letrec.scm: A stub implementation of fixing letrec -- will flesh out in a separate commit. * module/language/tree-il/inline.scm: Fix license, it was mistakenly added with LGPL v2.1+. * module/language/tree-il/optimize.scm (optimize!): Run the fix-letrec! pass.
| * add a brain-dead inlinerAndy Wingo2009-08-053-11/+49
| | | | | | | | | | | | | | | | * module/Makefile.am (TREE_IL_LANG_SOURCES): * module/language/tree-il/inline.scm: Add a brain-dead inliner, to inline ((lambda () x)) => x. * module/language/tree-il/optimize.scm (optimize!): Invoke the inliner.
| * add1 and sub1 instructionsAndy Wingo2009-08-054-6/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/vm-i-scheme.c: Add add1 and sub1 instructions. * module/language/tree-il/compile-glil.scm: Compile 1+ and 1- to add1 and sub1. * module/language/tree-il/primitives.scm (define-primitive-expander): Add support for `if' statements in the consequent. (+, -): Compile (- x 1), (+ x 1), and (+ 1 x) to 1- or 1+ as appropriate. (1-): Remove this one. Seems we forgot 1+ before, but we weren't compiling it nicely anyway. * test-suite/tests/tree-il.test ("void"): Fix expected compilation of (+ (void) 1) to allow for add1.
| * perform gmp/unistring compile checks with AC_LIB_HAVE_LINKFLAGSAndy Wingo2009-08-042-14/+11
| | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Rework gmp and unistring checks to use AC_LIB_HAVE_LINKFLAGS, so that the compilation checks run with the right -L/-l flags. * libguile/Makefile.am (libguile_la_LIBADD): Adapt to need to add $(LIBGMP) and $(LIBUNISTRING) here. Hopefully this solves http://article.gmane.org/gmane.lisp.guile.bugs/4288.
| * rename configure.in to configure.acAndy Wingo2009-08-042-0/+0
| | | | | | | | | | | | * configure.ac: * guile-readline/configure.ac: Rename from configure.in, as recommended by the autoconf manual.