bpt/guile.git
14 years agoAvoid unpacking symbols in GOOPS
Michael Gran [Sun, 23 Aug 2009 17:40:44 +0000 (10:40 -0700)]
Avoid unpacking symbols in GOOPS

* libguile/goops.c (scm_make_extended_class_from_symbol): new function
  (scm_class_of): don't unpack symbol chars
  (wrap_init): don't unpack symbol chars
  (make_class_from_symbol): new function
  (make_struct_class): don't unpack symbol chars

14 years agoModify socket and time functions for wide strings
Michael Gran [Sun, 23 Aug 2009 13:50:45 +0000 (06:50 -0700)]
Modify socket and time functions for wide strings

* libguile/socket.c (scm_recv): receive the message without holding the
  stringbuf writing lock
  (scm_send): try to narrow a string before using it

* libguile/stime.c (strftime): convert string to UTF-8 so that it can
  be safely passed to strftime
  (strptime): convert input string to UTF-8 so that it can be safely
  passed through strptime

* libguile/strings.c (narrow_stringbuf): new function
  (scm_i_try_narrow_string): new function

* libguile/strings.h: new declaration for scm_i_try_narrow_string

14 years agoUse string and symbol accessors in struct, throw, and array funcs
Michael Gran [Sat, 22 Aug 2009 17:15:53 +0000 (10:15 -0700)]
Use string and symbol accessors in struct, throw, and array funcs

* libguile/struct.c (scm_make_struct_layout, scm_struct_init)
  (scm_struct_vtable_p, scm_struct_ref, scm_struct_set_x): use string
  and symbol accessors and avoid unpacking strings and symbols

* libguile/throw.c (scm_ithrow): allow wide symbols in the error message

* libguile/unif.c (scm_enclose_array, scm_istr2bve): use string
  accessors and avoid unpacking strings

14 years agoAvoid type-punning warning in scm_gentemp
Michael Gran [Sat, 22 Aug 2009 13:30:34 +0000 (06:30 -0700)]
Avoid type-punning warning in scm_gentemp

Int and size_t may not have the same storage size

* libguile/deprecated.c (scm_gentemp): use size_t for string length

14 years agoUpdate NEWS
Neil Jerram [Fri, 21 Aug 2009 21:31:09 +0000 (22:31 +0100)]
Update NEWS

14 years agoAvoid clash with system setjmp/longjmp on IA64
Neil Jerram [Wed, 5 Aug 2009 15:13:28 +0000 (16:13 +0100)]
Avoid clash with system setjmp/longjmp on IA64

Problem was that if an application includes both libguile.h and the
system's setjmp.h, and is compiled on IA64, it gets compile errors
because of jmp_buf, setjmp and longjmp being multiply defined.

* libguile/__scm.h (__ia64__): Define scm_i_jmp_buf, SCM_I_SETJMP and
  SCM_I_LONGJMP instead of jmp_buf, setjmp and longjmp.

  (all other platforms): Map scm_i_jmp_buf, SCM_I_SETJMP and
  SCM_I_LONGJMP to jmp_buf, setjmp and longjmp.

* libguile/continuations.c (scm_make_continuation): Use `SCM_I_SETJMP'
  instead of `setjmp'.
  (copy_stack_and_call): Use `SCM_I_LONJMP' instead of `longjmp'.
  (scm_ia64_longjmp): Use type `scm_i_jmp_buf' instead of `jmp_buf'.

* libguile/continuations.h (scm_t_contregs): Use type `scm_i_jmp_buf'
  instead of `jmp_buf'.

* libguile/threads.c (suspend): Use `SCM_I_SETJMP' instead of
  `setjmp'.

* libguile/threads.h (scm_i_thread): Use type `scm_i_jmp_buf' instead
  of `jmp_buf'.

* libguile/throw.c (JBJMPBUF, make_jmpbuf, jmp_buf_and_retval): Use
  type `scm_i_jmp_buf' instead of `jmp_buf'.
  (scm_c_catch): Use `SCM_I_SETJMP' instead of `setjmp'.
  (scm_ithrow): Use `SCM_I_LONGJMP' instead of `longjmp'.

14 years agoRemove trailing whitespace
Neil Jerram [Tue, 4 Aug 2009 18:11:21 +0000 (19:11 +0100)]
Remove trailing whitespace

14 years agoFix set-source-properties so that the special source properties work
Neil Jerram [Tue, 4 Aug 2009 17:57:18 +0000 (18:57 +0100)]
Fix set-source-properties so that the special source properties work

* libguile/srcprop.c (scm_set_source_properties_x): Look for the special
  source properties, save them off, and then construct a srcprops object
  using them.

14 years agoIn srcprop.c change all occurrences of "plist" to "alist"
Neil Jerram [Tue, 4 Aug 2009 17:54:50 +0000 (18:54 +0100)]
In srcprop.c change all occurrences of "plist" to "alist"

As with the previous commit, this is to avoid any suggestion that
the source properties API uses the property list format, i.e.
(key1 value1 key2 value2 ...).

Also remove scm_srcprops_to_plist () from the API.  It doesn't have any
external usefulness and has never documented.

14 years agoMinor improvements to doc on source properties
Neil Jerram [Tue, 4 Aug 2009 14:40:06 +0000 (15:40 +0100)]
Minor improvements to doc on source properties

In particular avoid any suggestion that the API uses the
property list format, i.e. (key1 value1 key2 value2 ...),
as opposed to the alist format that it actually does use.

14 years agoMerge branch 'wip-manual' of ssh://ossau@git.sv.gnu.org/srv/git/guile
Neil Jerram [Fri, 21 Aug 2009 21:04:03 +0000 (22:04 +0100)]
Merge branch 'wip-manual' of ssh://ossau@git.sv.gnu.org/srv/git/guile

Conflicts:

doc/ref/autoconf.texi
doc/ref/vm.texi

14 years agoUse uc_tolower in number conversion
Michael Gran [Fri, 21 Aug 2009 16:30:53 +0000 (09:30 -0700)]
Use uc_tolower in number conversion

* libguile/numbers.c (XDIGIT2UINT): use uc_tolower

14 years agoUse string accessors for string->number conversion
Michael Gran [Fri, 21 Aug 2009 16:18:30 +0000 (09:18 -0700)]
Use string accessors for string->number conversion

* libguile/numbers.c (scm_i_print_fraction): use string accessors
  (XDIGIT2UINT): use libunistring function
  (mem2uinteger, mem2integer, mem2decimal_from_point, mem2ureal)
  (mem2complex): take scheme string instead of c string; use accessors
  (scm_i_string_to_number): new function
  (scm_c_locale_string_to_number): use scm_i_string_to_number

* libguile/numbers.h: declaration for scm_i_string_to_number

* libguile/strings.c (scm_i_string_strcmp): new function

* libguile/strings.h: declaration for scm_i_string_strcmp

14 years agoAdd initial support for wide symbols
Michael Gran [Fri, 21 Aug 2009 15:57:35 +0000 (08:57 -0700)]
Add initial support for wide symbols

* libguile/hash.c (scm_i_string_hash): new function
  (scm_hasher): don't unpack string: use scm_i_string_hash

* libguile/hash.h: new declaration for scm_i_string_hash

* libguile/print.c (quote_keywordish_symbol): use symbol accessors
  (scm_i_print_symbol_name): new function
  (scm_print_symbol_name): call scm_i_print_symbol_name
  (iprin1): use scm_i_print_symbol_name to print symbols

* libguile/print.h: new declaration for scm_i_print_symbol_name

* libguile/symbols.c (lookup_interned_symbol): now takes scheme string
  instead of c string; callers changed
  (lookup_interned_symbol): add wide symbol support
  (scm_i_c_mem2symbol): removed
  (scm_i_mem2symbol): removed and replaced with scm_i_str2symbol
  (scm_i_str2symbol): new function
  (scm_i_mem2uninterned_symbol): removed and replaced with
  scm_i_str2uninterned_symbol
  (scm_i_str2uninterned_symbol): new function
  (scm_make_symbol, scm_string_to_symbol, scm_from_locale_symbol)
  (scm_from_locale_symboln): use scm_i_str2symbol

* test-suite/tests/symbols.test: new tests

14 years agoUse symbol accessors in scm_gc_mark_dependencies
Michael Gran [Fri, 21 Aug 2009 05:41:12 +0000 (22:41 -0700)]
Use symbol accessors in scm_gc_mark_dependencies

* libguile/gc-mark.c (scm_gc_mark_dependencies): don't unpack symbols.
  Use symbol accessors.

14 years agoUse string accessors in scm_basename and scm_dirname
Michael Gran [Fri, 21 Aug 2009 05:40:15 +0000 (22:40 -0700)]
Use string accessors in scm_basename and scm_dirname

* libguile/filesys.c (basename, dirname): don't unpack strings.
  Use string accessor functions.

14 years agoAvoid type-limits warning in SCM_TO_TYPE_PROTO
Michael Gran [Fri, 21 Aug 2009 04:33:49 +0000 (21:33 -0700)]
Avoid type-limits warning in SCM_TO_TYPE_PROTO

* libguile/conv-uinteger.i.c (SCM_TO_TYPE_PROTO): avoid a comparison
  that is always true due to the limited range of the data type

14 years agoType-limits error in GC environment initialization
Michael Gran [Fri, 21 Aug 2009 04:31:58 +0000 (21:31 -0700)]
Type-limits error in GC environment initialization

* libguile/gc-malloc.c (scm_gc_init_malloc): GUILE_INIT_MALLOC_LIMIT
  is cast to unsigned then tested as if it were still signed

14 years agoAvoid accessing symbol internals in call_dsubr_1 and DEVAL
Michael Gran [Fri, 21 Aug 2009 03:30:12 +0000 (20:30 -0700)]
Avoid accessing symbol internals in call_dsubr_1 and DEVAL

The symbol's characters are only accessed in case they are needed
for an error message.  This can be avoided by passing the symbol
all the way to a error message function.

* libguile/__scm.h (SCM_WTA_DISPATCH_1_SUBR): new macro

* libguile/error.c (scm_i_wrong_type_arg_symbol): new error function

* libguile/error.h: declaration of scm_i_wrong_type_arg_symbol

* libguile/eval.c (call_dsubr_1): use new macro SCM_WTA_DISPATCH_1_SUBR
  to avoid having to unpack the symbol's chars

* libguile/eval.i.c: use new macro SCM_WTA_DISPATCH_1_SUBR

14 years agoUse string and symbol accessors with obarrays and keyword-dash-symbols
Michael Gran [Thu, 20 Aug 2009 16:42:38 +0000 (09:42 -0700)]
Use string and symbol accessors with obarrays and keyword-dash-symbols

* libguile/deprecated.c (intern_obarray_soft): new function
  (scm_intern_obarray_soft, scm_string_to_obarray_symbol): use
  intern_obarray_soft
  (scm_gentemp): don't unpack string chars, use intern_obarray_soft

* libguile/discouraged.c (scm_make_keyword_from_dash_symbol): use
  symbol accessor

14 years agoAggregate `guile-readline' makefiles.
Ludovic Courtès [Thu, 20 Aug 2009 23:33:16 +0000 (01:33 +0200)]
Aggregate `guile-readline' makefiles.

* configure.ac: Don't produce `guile-readline/ice-9/Makefile'.

* guile-readline/Makefile.am (SUBDIRS): Remove.
  (ice9dir, nobase_ice9_DATA): New, formerly under `ice-9'.
  (ETAGS_ARGS, EXTRA_DIST): Augment.
  (DEFS): Move outside of `if'.
  (MKDEP): Remove.

* guile-readline/ice-9/Makefile.am: Remove.

14 years agoDon't use a sub-`configure' for `guile-readline'.
Ludovic Courtès [Thu, 20 Aug 2009 23:18:20 +0000 (01:18 +0200)]
Don't use a sub-`configure' for `guile-readline'.

* acinclude.m4 (GUILE_READLINE): New macro, based on the former
  `guile-readline/configure.ac'.

* configure.ac: Remove `AC_CONFIG_SUBDIRS' invocation.  Add
  `GUILE_READLINE' invocation.  Produce files under `guile-readline'.

* guile-readline/Makefile.am: Conditionalize the meat under
  `HAVE_READLINE'.
  (INCLUDES): Rename to...
  (AM_CPPFLAGS): this.  Users updates.
  (AM_CFLAGS): New variable.
  (libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LIBADD): Add
  $(READLINE_LIBS).

* guile-readline/readline.c: Include <config.h>.

* guile-readline/configure.ac, guile-readline/autogen.sh: Remove.

14 years agoeval is actually compile
Andy Wingo [Thu, 20 Aug 2009 12:33:38 +0000 (14:33 +0200)]
eval is actually compile

* module/ice-9/boot-9.scm (eval): Here at the tail of boot-9, replace
  the root definition of `eval' with a procedure that will call
  `compile'.

* test-suite/tests/syntax.test ("top-level define"):
  ("internal define"): Run unmemoization tests in the interpreter, using
  primitive-eval.

14 years agoprograms have their own tc7 now
Andy Wingo [Thu, 20 Aug 2009 12:27:38 +0000 (14:27 +0200)]
programs have their own tc7 now

* libguile/tags.h (scm_tc7_program):
* libguile/programs.h: Programs now have their own tc7 code. Fix up the
  macros appropriately.

* libguile/programs.c: Remove smobby bits, leaving marking, printing,
  and application for other parts of Guile.

* libguile/debug.c (scm_procedure_source):
* libguile/eval.c (scm_trampoline_0, scm_trampoline_1)
  (scm_trampoline_2): Add cases for tc7_program.
* libguile/eval.i.c (CEVAL, SCM_APPLY):
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/gc-card.c (scm_i_sweep_card, scm_i_tag_name):
* libguile/gc-mark.c (1):
* libguile/print.c (iprin1):
* libguile/procs.c (scm_procedure_p, scm_thunk_p)
* libguile/vm-i-system.c (make-closure): Adapt to new procedure
  representation.

* libguile/procprop.c (scm_i_procedure_arity): Do the right thing for
  programs.
* test-suite/tests/procprop.test ("procedure-arity"): Arity test now
  succeeds.

* libguile/goops.c (scm_class_of): Programs now belong to the class
  <procedure>, not a smob class.

* libguile/vm.h (struct vm, struct vm_cont):
* libguile/vm-engine.c (vm_engine):
* libguile/frames.h (SCM_FRAME_BYTE_CAST, struct vm_frame):
* libguile/frames.c (scm_c_make_vm_frame): Fix usages of scm_byte_t,
  changing them to scm_t_uint8.

14 years agoeval-elisp uses primitive-eval
Andy Wingo [Thu, 20 Aug 2009 10:55:05 +0000 (12:55 +0200)]
eval-elisp uses primitive-eval

* lang/elisp/interface.scm (eval-elisp): Use primitive-eval, as we will
  be switching the evaluator soon.

14 years agodefine @bind using syntax-case
Andy Wingo [Thu, 20 Aug 2009 10:48:11 +0000 (12:48 +0200)]
define @bind using syntax-case

* module/ice-9/boot-9.scm (@bind): Define a VM-compatible syntax
  definition for this old evaluator primitive.

* test-suite/tests/dynamic-scope.test: Change the expected error
  messages.

14 years agouse primitive-eval in run-vm-tests.scm
Andy Wingo [Thu, 20 Aug 2009 10:47:11 +0000 (12:47 +0200)]
use primitive-eval in run-vm-tests.scm

* testsuite/run-vm-tests.scm (run-vm-tests): Use primitive-eval, as
  we'll be changing eval soon.

14 years agobetter VM error messages
Andy Wingo [Thu, 20 Aug 2009 10:46:36 +0000 (12:46 +0200)]
better VM error messages

* libguile/vm-engine.c: Attempt to make error messages more friendly
  and uniform with historical expectation.

14 years agoupdate docs for calling convention change
Andy Wingo [Sat, 15 Aug 2009 12:27:15 +0000 (14:27 +0200)]
update docs for calling convention change

* doc/ref/vm.texi: Update.

14 years agopush new frame on stack before procedure & args
Andy Wingo [Sat, 15 Aug 2009 12:15:56 +0000 (14:15 +0200)]
push new frame on stack before procedure & args

* 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.

* test-suite/tests/tree-il.test: Fix to expect new-frame.

14 years agoreorder frame layout
Andy Wingo [Sat, 15 Aug 2009 12:13:08 +0000 (14:13 +0200)]
reorder frame layout

* 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.

14 years agoremove dead weight from vm-i-system.c
Andy Wingo [Sat, 15 Aug 2009 12:11:51 +0000 (14:11 +0200)]
remove dead weight from vm-i-system.c

* 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.

* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.

14 years agodisable autocompilation in the test suite
Andy Wingo [Thu, 20 Aug 2009 16:46:09 +0000 (18:46 +0200)]
disable autocompilation in the test suite

* check-guile.in: Disable autocompilation while working in the test
  suite, for now at least. We'll enable it again later.

14 years agoautocompiled files before installation go to a cache dir in the builddir
Andy Wingo [Thu, 20 Aug 2009 15:56:44 +0000 (17:56 +0200)]
autocompiled files before installation go to a cache dir in the builddir

* libguile/load.c (scm_init_load_path): Append a slash after
  XDG_CACHE_HOME.

* meta/gdb-uninstalled-guile.in:
* meta/guile.in (XDG_CACHE_HOME): Export this var so we write to a cache
  within the build directory. Probably we should have a GUILE_CACHE_DIR
  to be more specific, though.

* Makefile.am (clean-local): Clear the cache when making clean.

14 years agotype limits error in string-tabulate
Michael Gran [Thu, 20 Aug 2009 14:23:22 +0000 (07:23 -0700)]
type limits error in string-tabulate

* libguile/srfi-13.c (scm_string_tabulate): test range of signed integer
  before casting it to unsigned size_t

14 years agoUpdate srfi-13 functions for Unicode
Michael Gran [Wed, 19 Aug 2009 12:25:47 +0000 (05:25 -0700)]
Update srfi-13 functions for Unicode

* libguile/srfi-13.c (MY_SUBF_VALIDATE_SUBSTRING_SPEC): new macro
  (MY_VALIDATE_SUBSTRING_SPEC_COPY): now unused, removed
  (MY_VALIDATE_SUBSTRING_SPEC_UCOPY): now unused, removed
  (REF_IN_CHARSET): new macro
  (race_error)[0]: unused, removed
  (scm_string_any, scm_string_every, scm_string_tabulate)
  (scm_substring_to_list, scm_reverse_string_to_list)
  (scm_reverse_list_to_string, scm_string_join)
  (s_scm_srfi13_substring_copy, scm_string_copy, scm_string_copy_x)
  (scm_string_pad, scm_string_pad_right, scm_string_trim)
  (scm_string_trim_right, scm_string_trim_both, scm_substring_fill_x):
  (scm_string_compare, scm_string_compare_ci): modified for
  both wide and narrow strings
  (compare_string): new function
  (scm_string_eq, scm_string_neq, scm_string_lt, scm_string_gt)
  (scm_string_le, scm_string_ge, scm_string_ci_eq, scm_string_ci_neq)
  (scm_string_ci_lt, scm-string_ci_gt, scm_string_ci_le, scm_string_ci_gt)
  (scm_substring_hash, scm_string_prefix_length, scm_string_suffix_length)
  (scm_string_prefix_length_ci, scm_string_suffix_length_ci)
  (scm_string_prefix_p, scm_string_prefix_ci_p, scm_string_suffix_p)
  (scm_string_suffix_ci_p, scm_string_index, scm_string_index_right)
  (scm_string_skip, scm_string_skip_right, scm_string_count)
  (scm_string_contains, scm_string_contains_ci, string_upcase_x)
  (scm_substring_upcase_x, scm_substring_upcase, string_downcase_x)
  (scm_string_downcase_x, scm_string_downcase, scm_string_titlecase_x)
  (scm_string_titlecase, scm_string_capitalize, scm_string_reverse)
  (scm_string_reverse_x, scm_string_map, scm_string_map_x)
  (scm_string_fold, scm_string_fold_right, scm_string_unfold)
  (scm_string_unfold_right, scm_xsubstring, scm_string_xcopy_x)
  (scm_string_replace, scm_string_tokenize, scm_string_split)
  (scm_string_filter, scm_string_delete): modified for both wide and
  narrow strings

14 years agoSome srfi-13 test with wide strings
Michael Gran [Thu, 20 Aug 2009 06:21:18 +0000 (23:21 -0700)]
Some srfi-13 test with wide strings

* test-suite/tests/srfi-13.test: more tests

14 years agoUpdates to benchmarks for srfi-13
Michael Gran [Thu, 20 Aug 2009 04:21:29 +0000 (21:21 -0700)]
Updates to benchmarks for srfi-13

Test more of the positive paths.  Add test for string-prefix-ci?
string-suffix-ci? and string-hash-ci.  Update the counts per test
to give approximately the same bench/interp time for each test for
1.8.7.

* benchmark-suite/benchmarks/srfi-13.bm: update benchmarks

14 years agoAvoid possible mutex hang on error message output
Michael Gran [Thu, 20 Aug 2009 04:47:19 +0000 (21:47 -0700)]
Avoid possible mutex hang on error message output

Avoid possible mutex hang when scm_lfwrite_substr is used in error
message output and when an error has caused the stringbuf write
mutex to not be unlocked.  scm_lfwrite_substr makes a substring:
making a substring requires that mutex.

Hopefully, all cases of non-local jumps when the stringbuf write
lock is held have been eliminated anyway, making this O.B.E.

* libguile/ports.c (scm_lfwrite_str): include functionality in this
  function instead of making this a special case of scm_lfwrite_substr

14 years agoAdd VM exception in strings.test
Michael Gran [Thu, 20 Aug 2009 05:12:33 +0000 (22:12 -0700)]
Add VM exception in strings.test

* test-suite/tests/strings.test (exception:wrong-type-arg): change regex

14 years agoTry to optimize scm_string for speed
Michael Gran [Thu, 20 Aug 2009 04:26:11 +0000 (21:26 -0700)]
Try to optimize scm_string for speed

* libguile/strings.c (scm_string): optimize for speed

14 years agoRename string-width to string-bytes-per-char
Michael Gran [Thu, 20 Aug 2009 04:24:23 +0000 (21:24 -0700)]
Rename string-width to string-bytes-per-char

* libguile/strings.h: rename scm_string_width to scm_string_bytes_per_char

* libguile/strings.c (scm_string_width): renamed to scm_string_bytes_per_char
  (scm_string_bytes_per_char): renamed from scm_string_width

* module/language/assembly/compile-bytecode.scm (write-bytecode): string-width
  -> string-bytes-per-char

* module/language/glil/compile-assembly.scm (dump-object): string-width
  -> string-bytes-per-char

14 years agoMisleading error message text in scm_i_string_writable_wide_chars
Michael Gran [Thu, 20 Aug 2009 04:25:23 +0000 (21:25 -0700)]
Misleading error message text in scm_i_string_writable_wide_chars

* libguile/strings.c (scm_i_string_writable_wide_chars): change error text

14 years agoprocedure-documentation works on vm procedures
Andy Wingo [Wed, 19 Aug 2009 10:20:58 +0000 (12:20 +0200)]
procedure-documentation works on vm procedures

* libguile/procs.c (scm_procedure_documentation): Add a hack so that
  this function works for compiled procedures too.

14 years agoDisplay wide strings using escapes
Michael Gran [Wed, 19 Aug 2009 05:32:08 +0000 (22:32 -0700)]
Display wide strings using escapes

* libguile/print.c (iprin1): for now, display wide strings
  as escaped strings

14 years agoAvoid double-casts of stringbuf
Michael Gran [Wed, 19 Aug 2009 04:14:56 +0000 (21:14 -0700)]
Avoid double-casts of stringbuf

Conversion from char to scm_t_wchar require an intermediate cast to
unsigned char.  By changing the return type of SCM_STRINGBUF_INLINE_CHARS
to unsigned char *, doublecasts in the code can be avoided.  Also,
some clarification of return types.

* libguile/strings.c (STRINGBUF_OUTLINE_CHARS)
(STRINGBUF_INLINE_CHARS): now returns unsigned char *; all callers changed.

14 years agoAvoid compilation warnings in SCM_MAKE_CHAR
Michael Gran [Wed, 19 Aug 2009 04:13:38 +0000 (21:13 -0700)]
Avoid compilation warnings in SCM_MAKE_CHAR

* libguile/chars.h (SCM_MAKE_CHAR): change inequality

14 years agoBenchmarks for common character and string procedures
Michael Gran [Wed, 19 Aug 2009 02:42:38 +0000 (19:42 -0700)]
Benchmarks for common character and string procedures

* benchmark-suite/benchmarks/chars.bm: new benchmarks

* benchmark-suite/benchmarks/srfi-13.bm: new benchmarks

14 years agoremove (ice-9 lineio)'s dependency on (ice-9 readline)
Andy Wingo [Tue, 18 Aug 2009 15:52:46 +0000 (17:52 +0200)]
remove (ice-9 lineio)'s dependency on (ice-9 readline)

* module/ice-9/lineio.scm: Use (ice-9 rdelim) instead of (ice-9
  readline) to remove readline dependency.

14 years ago`load' autocompiles
Andy Wingo [Tue, 18 Aug 2009 09:05:17 +0000 (11:05 +0200)]
`load' autocompiles

* libguile/load.h:
* libguile/load.c (scm_sys_warn_autocompilation_enabled): New primitive,
  not exported. Since `load' autocompiles now, it should warn in the
  same way that the bits hardcoded into C warn.
  (scm_try_autocompile): Use scm_sys_warn_autocompilation_enabled.

* module/ice-9/boot-9.scm (autocompiled-file-name): New helper.
  (load): Try autocompiling the argument, if appropriate. Will
  autocompile files passed on Guile's command line. `primitive-load' is
  unaffected.

14 years agoThanks, Mike.
Ludovic Courtès [Mon, 17 Aug 2009 21:06:49 +0000 (23:06 +0200)]
Thanks, Mike.

14 years agoUpdate `NEWS' for commit d8dd381fa781c236ae777ca1ac55b73d3ca91c2a.
Ludovic Courtès [Mon, 17 Aug 2009 21:05:50 +0000 (23:05 +0200)]
Update `NEWS' for commit d8dd381fa781c236ae777ca1ac55b73d3ca91c2a.

14 years agoBump version number for 1.9.2.
Ludovic Courtès [Sat, 15 Aug 2009 12:41:46 +0000 (14:41 +0200)]
Bump version number for 1.9.2.

* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.

14 years agoTurn off auto-compilation to stand-alone tests.
Ludovic Courtès [Sat, 15 Aug 2009 12:35:29 +0000 (14:35 +0200)]
Turn off auto-compilation to stand-alone tests.

* test-suite/standalone/Makefile.am (TESTS_ENVIRONMENT): Add
  "GUILE_AUTO_COMPILE=0".

14 years agoUpdate the manual and `NEWS' regarding `guile-2.0.pc'.
Ludovic Courtès [Sat, 15 Aug 2009 12:26:17 +0000 (14:26 +0200)]
Update the manual and `NEWS' regarding `guile-2.0.pc'.

* NEWS: Mention `guile-2.0.pc'.

* doc/ref/autoconf.texi (Autoconf Macros): Update to `guile-2.0'.

14 years agoAdd proper `--help' and `--version' for `guile-tools compile'.
Ludovic Courtès [Sat, 15 Aug 2009 10:53:59 +0000 (12:53 +0200)]
Add proper `--help' and `--version' for `guile-tools compile'.

* configure.ac: Produce `meta/guile-tools'.

* meta/Makefile.am (EXTRA_DIST): Add `guile-tools.in'.
  (bin_SCRIPTS): Remove `guile-tools'.

* meta/uninstalled-env.in (PATH): Add "${top_builddir}/meta".

* module/scripts/compile.scm (%options): Add `--version'.
  (parse-args): Show the offending option name upon error.
  (show-version): New.
  (compile): Use `%guile-bug-report-address'.

14 years agoupdate NEWS for 1.9.2
Andy Wingo [Sat, 15 Aug 2009 10:49:44 +0000 (12:49 +0200)]
update NEWS for 1.9.2

* NEWS: Update.

14 years agoUpdate `.gitignore' for GNU Global.
Ludovic Courtès [Sat, 15 Aug 2009 10:06:28 +0000 (12:06 +0200)]
Update `.gitignore' for GNU Global.

14 years agoSwitch from `guile-1.8.pc' to `guile-2.0.pc'.
Ludovic Courtès [Sat, 15 Aug 2009 10:05:36 +0000 (12:05 +0200)]
Switch from `guile-1.8.pc' to `guile-2.0.pc'.

* 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.

14 years agoUncomment run-time objcode alignment check.
Ludovic Courtès [Thu, 13 Aug 2009 21:59:51 +0000 (23:59 +0200)]
Uncomment run-time objcode alignment check.

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.

14 years agoRemove deprecated semi-public memoizers.
Ludovic Courtès [Thu, 13 Aug 2009 21:36:46 +0000 (23:36 +0200)]
Remove deprecated semi-public memoizers.

* 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.

14 years agoMake the evaluator's memoizers private.
Ludovic Courtès [Thu, 13 Aug 2009 21:08:35 +0000 (23:08 +0200)]
Make the evaluator's memoizers private.

* 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.

14 years agocompiler.test: Enforce evaluation order.
Ludovic Courtès [Thu, 13 Aug 2009 14:16:08 +0000 (16:16 +0200)]
compiler.test: Enforce evaluation order.

* test-suite/tests/compiler.test ("psyntax")["redefinition", "compile in
  current module", "compile in fresh module"]: Use `begin' to enforce
  evaluation order.  Thanks Andy!

14 years agoAllow fresh modules to be passed to `compile'.
Ludovic Courtès [Wed, 12 Aug 2009 17:22:19 +0000 (19:22 +0200)]
Allow fresh modules to be passed to `compile'.

* 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.

14 years agoAllow redefinitions in compiled code as in `(define round round)'.
Ludovic Courtès [Thu, 13 Aug 2009 13:39:12 +0000 (15:39 +0200)]
Allow redefinitions in compiled code as in `(define round round)'.

* 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.

14 years agoupdate docs for recent vm/compiler work
Andy Wingo [Wed, 12 Aug 2009 21:38:05 +0000 (23:38 +0200)]
update docs for recent vm/compiler work

* 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.

14 years ago"fix" <let>-bound lambda expressions too
Andy Wingo [Wed, 12 Aug 2009 18:44:30 +0000 (20:44 +0200)]
"fix" <let>-bound lambda expressions too

* 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.

14 years agoDon't include libunistring headers in Guile public headers
Michael Gran [Wed, 12 Aug 2009 15:30:59 +0000 (08:30 -0700)]
Don't include libunistring headers in Guile public headers

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

14 years agoRegression, scm_string fails to test for circular lists
Michael Gran [Wed, 12 Aug 2009 16:21:37 +0000 (09:21 -0700)]
Regression, scm_string fails to test for circular lists

* 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

14 years agoSome signed/unsigned comparison and conversions
Michael Gran [Wed, 12 Aug 2009 15:50:12 +0000 (08:50 -0700)]
Some signed/unsigned comparison and conversions

* libguile/ports.c (scm_lfwrite_str, scm_lfwrite_substr): signed/unsigned
  conversion and comparison

* libguile/strings.c (scm_string_append): signed/unsigned comparison

14 years agorework the vm support for wide strings
Andy Wingo [Wed, 12 Aug 2009 14:33:49 +0000 (16:33 +0200)]
rework the vm support for wide strings

* 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.

14 years agoFix disassembly of strings and symbols
Michael Gran [Wed, 12 Aug 2009 07:26:12 +0000 (00:26 -0700)]
Fix disassembly of strings and symbols

* module/language/assembly/decompile-bytecode.scm (decode-bytecode):
  fix disassembly of strings, symbols, keywords, and defines

14 years agoQuiet signed/unsigned comparison warnings in chars.[ch]
Michael Gran [Wed, 12 Aug 2009 05:52:49 +0000 (22:52 -0700)]
Quiet signed/unsigned comparison warnings in chars.[ch]

* 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

14 years agoAvoid unitialized and unused warnings in scm_string_append
Michael Gran [Wed, 12 Aug 2009 05:01:20 +0000 (22:01 -0700)]
Avoid unitialized and unused warnings in scm_string_append

* libguile/strings.c (scm_string_append): avoid warnings

14 years agoRevert to locale-dependent toupper and tolower
Michael Gran [Wed, 12 Aug 2009 04:27:20 +0000 (21:27 -0700)]
Revert to locale-dependent toupper and tolower

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

14 years agoOnly pass ints to tolower and toupper
Michael Gran [Wed, 12 Aug 2009 04:12:52 +0000 (21:12 -0700)]
Only pass ints to tolower and toupper

* 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

14 years agodebitrot the ecmascript compiler
Andy Wingo [Tue, 11 Aug 2009 22:14:44 +0000 (00:14 +0200)]
debitrot the ecmascript compiler

* 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.

14 years agomake the fallback path look less like line noise
Andy Wingo [Tue, 11 Aug 2009 19:16:05 +0000 (21:16 +0200)]
make the fallback path look less like line noise

* libguile/_scm.h:
* libguile/load.c: Rework to only include the relevant pieces in the
  fallback path.

14 years agoinclude objcode cookie in the fallback path
Andy Wingo [Tue, 11 Aug 2009 18:25:19 +0000 (20:25 +0200)]
include objcode cookie in the fallback path

* 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.

14 years agoMore string and symbol tests
Michael Gran [Tue, 11 Aug 2009 05:55:29 +0000 (22:55 -0700)]
More string and symbol tests

        * test-suite/tests/strings.test: more tests

        * test-suite/tests/symbols.test: more tests

14 years agoFix %string-dump and %symbol-dump fields
Michael Gran [Tue, 11 Aug 2009 05:18:47 +0000 (22:18 -0700)]
Fix %string-dump and %symbol-dump fields

        * 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.

14 years agoChange `defined?' to accept a module as its second argument.
Ludovic Courtès [Mon, 10 Aug 2009 17:24:34 +0000 (19:24 +0200)]
Change `defined?' to accept a module as its second argument.

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.

14 years agoMake scm_charprint and scm_i_string_wide_chars SCM_INTERNAL.
Michael Gran [Mon, 10 Aug 2009 12:51:05 +0000 (05:51 -0700)]
Make scm_charprint and scm_i_string_wide_chars SCM_INTERNAL.

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.

14 years agoImprove %string-dump and %symbol-dump
Michael Gran [Mon, 10 Aug 2009 07:09:33 +0000 (00:09 -0700)]
Improve %string-dump and %symbol-dump

%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

14 years agoMore comments for string functions
Michael Gran [Mon, 10 Aug 2009 01:06:59 +0000 (18:06 -0700)]
More comments for string functions

        * libguile/strings.c: comments

14 years agoMissing parentheses in SCM_MAKE_CHAR macro
Michael Gran [Sun, 9 Aug 2009 23:01:20 +0000 (16:01 -0700)]
Missing parentheses in SCM_MAKE_CHAR macro

* libguile/chars.h (SCM_MAKE_CHAR): missing parentheses

14 years agoPort position macros shouldn't require enclosing braces
Michael Gran [Sun, 9 Aug 2009 22:58:49 +0000 (15:58 -0700)]
Port position macros shouldn't require enclosing braces

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

14 years agoUse a linker version script for libguile.
Ludovic Courtès [Sun, 9 Aug 2009 21:40:11 +0000 (23:40 +0200)]
Use a linker version script for libguile.

* libguile/Makefile.am (libguile_la_LDFLAGS)[HAVE_LD_VERSION_SCRIPT]:
  Use `libguile.map'.
  (EXTRA_DIST): Add `libguile.map'.

* libguile/libguile.map: New file.

14 years agoUse Gnulib's `lib-symbol-versions' module.
Ludovic Courtès [Sun, 9 Aug 2009 21:05:37 +0000 (23:05 +0200)]
Use Gnulib's `lib-symbol-versions' module.

* m4/gnulib-cache.m4: Add `lib-symbol-versions'.

14 years agoRemove bogus `configure' test for GNU libunistring.
Ludovic Courtès [Sun, 9 Aug 2009 18:21:41 +0000 (20:21 +0200)]
Remove bogus `configure' test for GNU libunistring.

* configure.ac: Remove explicit test for libunistring, which conflicted
  with Gnulib's own test.  This fixes commit
  f4863880f5ef539cb545999c19b6b5c0eec9382d.

14 years agoMisc GOOPS chapter updates
Neil Jerram [Sun, 9 Aug 2009 14:01:59 +0000 (15:01 +0100)]
Misc GOOPS chapter updates

* doc/ref/goops-tutorial.texi: Update intro text.  Fix `an' typo.

* doc/ref/goops.texi: Update quick start intro text.  Simplify
  example that uses `format'.

14 years agoUse #:keyword syntax in preference to :keyword
Neil Jerram [Sun, 9 Aug 2009 13:59:21 +0000 (14:59 +0100)]
Use #:keyword syntax in preference to :keyword

because that is Guile's default.

14 years agoIn general, use @lisp in preference to @smalllisp
Neil Jerram [Sun, 9 Aug 2009 13:54:18 +0000 (14:54 +0100)]
In general, use @lisp in preference to @smalllisp

because it looks better in the DVI output.  Exceptions are

- wide examples, which would cause overfull hboxes if they
  used the bigger @lisp font

- very large examples, which may look too big at the @lisp size.

14 years agoUse @result{} instead of -->
Neil Jerram [Sun, 9 Aug 2009 10:40:01 +0000 (11:40 +0100)]
Use @result{} instead of -->

* doc/ref/goops.texi: Use @result{} instead of -->.

14 years agoUpdate GOOPS Getting Started section
Neil Jerram [Sun, 9 Aug 2009 09:53:14 +0000 (10:53 +0100)]
Update GOOPS Getting Started section

* doc/ref/goops.texi (Getting Started): Renamed `Quick Start', to fit
  better with following Tutorial.  Also add a bit more text to the
  Methods subsection.

14 years agoMinor textual improvements to slot sections
Neil Jerram [Sat, 8 Aug 2009 18:41:10 +0000 (19:41 +0100)]
Minor textual improvements to slot sections

14 years agoMove tutorial sections on slots before inheritance
Neil Jerram [Sat, 8 Aug 2009 18:10:59 +0000 (19:10 +0100)]
Move tutorial sections on slots before inheritance

* doc/ref/goops-tutorial.texi (Instance creation and slot access, Slot
  description): Move to before Inheritance.

14 years agoChange <complex> to <my-complex> in GOOPS tutorial
Neil Jerram [Sat, 8 Aug 2009 18:05:06 +0000 (19:05 +0100)]
Change <complex> to <my-complex> in GOOPS tutorial

* doc/ref/goops-tutorial.texi (Class Definition): Minor text
  improvements.  Change the class being defined to <my-complex>, to
  reduce the confusion with the built in <complex> class.

14 years agoStart updating/merging GOOPS getting started / tutorial text
Neil Jerram [Sat, 8 Aug 2009 15:34:21 +0000 (16:34 +0100)]
Start updating/merging GOOPS getting started / tutorial text

* doc/ref/goops-tutorial.texi (Introduction): Merge this subsection's
  non-duplicate text into the introductory text of the whole section,
  then remove this subsection.

  (Tutorial): Textual updates to introductory text.

  (Class definition and instantiation): Rename `Class definition',
  since that's all it covers.  Remove unnecessary footnote about
  loading (oop goops) module.

  (All @nodes): Remove explicit up, next and prev nodes.  (They make
  the document harder to change.)

* doc/ref/goops.texi (Tutorial): Move from the end of the GOOPS
  chapter to the beginning of it.

  (Running GOOPS): Removed; useful text merged into containing
  section.

14 years agoRemove page break after heading of Chapter 6 (Modules)
Neil Jerram [Sat, 8 Aug 2009 15:26:58 +0000 (16:26 +0100)]
Remove page break after heading of Chapter 6 (Modules)

This brings this chapter into line with the others, which do not have
page breaks before the first section.