1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-19 18:20:22 +02:00
Commit graph

12687 commits

Author SHA1 Message Date
Neil Jerram
d93c0bc4c6 Bring the manual organisation section a little closer to reality
FWIW I'm not sure I like this bullety presentation - but for now this
just aligns the descriptions a bit closer to the actual chapters and
chapter contents.

* doc/ref/intro.texi (Organisation of this Manual): Cover `Hello
  Guile!' and `Hello Scheme!' chapters.  Thin out text for
  `Programming in Scheme'.  Renumber other chapters.
2010-04-26 05:24:24 +01:00
Neil Jerram
1d84577c6a Assorted minor manual changes
* doc/ref/guile.texi (Programming in Scheme): Remove "awful" and add
  "as opposed to having to dive into C code", to explain what we
  really mean here.  Remove incorrect para about the `Hello Scheme!'
  material.

* doc/ref/intro.texi (Interactive Programming): Change "allows" to "is
  designed for" - sounds less accidental!

* doc/ref/scheme-ideas.texi (Hello Scheme!): Remove unnecessary
  "reference", and inappropriate "randomness".
2010-04-26 04:27:01 +01:00
Neil Jerram
5bcaf46b75 More `Guile and the GNU Project' text
* doc/ref/intro.texi (Guile and the GNU Project): More text about
  extensibility and software freedom.
2010-04-26 02:43:54 +01:00
Neil Jerram
79bd99b3e4 Move description of manual organisation from Preface to Introduction
This material isn't "meta-" enough to be in the Preface, and it
supports (by its structure) some of the points that the Introduction
makes about Guile, so I think it belongs here.

* doc/ref/intro.texi (Introduction): Add `Organisation of this Manual'
  menu item and material to here...

* doc/ref/preface.texi (Preface): ...from here.
2010-04-25 18:58:14 +01:00
Neil Jerram
de3ba527c4 Remove weird instruction
* doc/ref/intro.texi: Remove `Do not confuse the two.'  (Or else
  what?)
2010-04-25 18:28:19 +01:00
Neil Jerram
42a438e893 Fix typo
* doc/ref/compiler.texi (Bytecode and Objcode): Remove extraneous
  comma.
2010-04-25 18:12:01 +01:00
Neil Jerram
46733b4284 Move `Reporting Bugs' section out of Introduction
I think it's too detailed, when compared with the other Introduction
sections.  It probably also refers to concepts that haven't been
mentioned yet, but are mentioned in the following quick tour chapter;
so let's move it there.

* doc/ref/guile.texi: Move @raisesections and @lowersections for
  tour.texi material from here to inside tour.texi.

* doc/ref/intro.texi (Introduction): Don't mention reporting problems
  in first para.  Move menu item and material for `Reporting Bugs'
  from here...

* doc/ref/tour.texi (Hello Guile!): ...to here.  Also mention
  reporting problems in the introductory para.
2010-04-25 17:56:56 +01:00
Neil Jerram
45a272c5be Move whirlwind tour material to its own chapter
* doc/ref/guile.texi (Top): New top level `Hello Guile!' menu item;
  include new file tour.texi.

* doc/ref/intro.texi (Introduction): Remove whirlwind tour menu item
  and material from here...

* doc/ref/tour.texi: ...to new file here.
2010-04-25 17:01:01 +01:00
Neil Jerram
d665f75f5b Move Scheme introduction (Guile-independent) to its own chapter
This magically fixes all the internal wordings that say "chapter"
rather than "section", and separates Guile-independent and skippable
material from material that is Guile-specific and
probably-not-skippable - which I think is helpful.

* doc/ref/guile.texi (Top): New `Hello Scheme!' menu item, and removed
  `Basic Ideas' item.  Move include of scheme-ideas.texi before
  `Programming in Scheme' chapter, using @raisesections and
  @lowersections.  Also move scheme-reading.texi to same place.

* doc/ref/scheme-ideas.texi: Change name from `Basic Ideas' (which is
  a bit boring) to `Hello Scheme!'.  Move `Further Reading' menu item
  here.
2010-04-25 13:20:17 +01:00
Andy Wingo
cb67c838f5 deprecate %app
* module/ice-9/boot-9.scm (module-name): Don't rely on (%app modules),
  use other tricks to name anonymous modules.
  (resolve-module): Instead of relying on %app, close over the root of
  the module hierarchy -- the module that was '(%app modules).

* module/ice-9/deprecated.scm (%app): Provide a compatible %app shim.
2010-04-22 15:37:04 +02:00
Andy Wingo
bbd1d13333 refactorings for the module boot process
* module/ice-9/boot-9.scm (%app): Bind %app and (%app modules) within
  the nested hierarchy before making (guile).
  (the-root-module): Define to '(%app modules guile) together with
  the-root-module's definition.
  (resolve-module): Define a "phase 2" resolve-module that only works on the
  root module.
  (try-module-autoload): No need for stub definition, as modules.c does
  not reference this binding.
  (resolve-module): Redefine, after modules have been loaded, to
  actually do its job, without any hacks for the pre-boot phase.

  Move up the boot code before the definition of resolve-module's
  helpers.
2010-04-22 15:36:42 +02:00
Andy Wingo
dbbbc2a1d0 add comments to resolve-module
* module/ice-9/boot-9.scm (resolve-module): Add comments.
2010-04-22 15:31:02 +02:00
Andy Wingo
c9904ab040 formally deprecate `app'
* module/ice-9/deprecated.scm (app): Deprecate.
* module/ice-9/boot-9.scm: Remove app definition.
2010-04-22 15:31:02 +02:00
Andy Wingo
30ce621c5a (app modules) -> (%app modules)
* module/ice-9/debugging/breakpoints.scm (module-if-already-loaded):
  (all-loaded-modules):
* module/oop/goops/stklos.scm: Fix instances of (app modules) to be
  (%app modules).
2010-04-22 15:31:02 +02:00
Andy Wingo
53ab624703 fix comment about "local-define" and "local-remove".
* module/ice-9/boot-9.scm: Fix comment about "local-define!", whereas
  it's "local-define". Same for "local-remove".
2010-04-20 12:43:15 +02:00
Andy Wingo
31ac29b621 module-type defined programmatically
* module/ice-9/boot-9.scm (make-record-type): Add an explanatory
  comment.
  (%print-module): Remove a hacky comment about redefinitions being
  difficult, because now the module-printer is called by name from
  module-type's printer.
  (module-type): Define the module type, its constructor, predicate, and
  accessors programmatically, at expansion time. Should reduce any
  errors in transcription, between adding fields and adding accessors.

* libguile/modules.c (scm_lookup_closure_module): Move an explanatory
  comment here from boot-9.scm.
2010-04-20 12:34:05 +02:00
Andy Wingo
e31f22ebf0 avoid primitive-eval in record-constructor
* module/ice-9/boot-9.scm (record-type-vtable): Add a third field, a
  precomputed constructor. There is an unfortunate circularity here,
  though.
  (make-record-type): If the record has fewer than 20 fields,
  return a constructor pre-generated to suit. Otherwise just check the
  length, and dispatch to `apply' and not `primitive-eval'. FWIW the
  current module record has something like 12 fields.
  (record-constructor): If we're asking for the standard constructor,
  return the precomputed constructor.
2010-04-19 20:19:24 +02:00
Andy Wingo
51797cec09 make-record-type slight refactor
* test-suite/tests/records.test ("records"): Add tests for printers.

* module/ice-9/boot-9.scm (make-record-type): Refactor the code that
  makes the default printer.
2010-04-19 19:33:57 +02:00
Andy Wingo
22457d5730 filesystem trickery to scm_i_relativize_path in filesys.c; bugfix.
* libguile/filesys.h:
* libguile/filesys.c (scm_i_relativize_path): New function, moved here
  from fports.c. Internal for now; we can make it external though if
  people like its interface.

* libguile/fports.c (fport_canonicalize_filename): Move all of the
  tricky bits to filesys.c. Also fixes a bug in which a delimiter wasn't
  stripped.
2010-04-19 16:39:11 +02:00
Andy Wingo
0abc210944 deprecate @bind
* module/ice-9/boot-9.scm:
* module/ice-9/deprecated.scm (@bind): Deprecate @bind, which was a
  thread-unsafe dynamic scoping mechanism, used in the old elisp
  support. Fluids are more correct, and are probably faster, given the
  VM support for with-fluids.

* test-suite/tests/dynamic-scope.test: Remove.
* test-suite/tests/fluids.test: Move relevant tests from
  dynamic-scope.test here, recast in terms of with-fluids.
2010-04-19 14:00:23 +02:00
Andy Wingo
b9e67767ae compile-file gets #:canonicalization arg, defaults to 'relative
* module/system/base/compile.scm (compile-file, compile-and-load): Add a
  keyword arg #:canonicalization, which defaults to 'relative. In this
  way, one might compile "../module/ice-9/boot-9.scm", but the path that
  gets residualized into the .go is "ice-9/boot-9.scm".
2010-04-19 13:34:29 +02:00
Andy Wingo
69cac23837 %file-port-name-canonicalization is a fluid
* libguile/fports.c (fport_canonicalize_filename):
  (scm_init_fports): Change %file-port-name-canonicalization to be a
  fluid.
2010-04-19 13:18:07 +02:00
Andy Wingo
0157a34157 add %file-port-name-canonicalization option
* libguile/fports.c (%file-port-name-canonicalization): New global var.
  (fport_canonicalize_filename): New helper. If
  %file-port-name-canonicalization is 'absolute, then run file port
  names through canonicalize_path; if it's 'relative, then canonicalize
  the name, but strip off load paths; otherwise leave the port name
  alone.
  (scm_open_file): Use fport_canonicalize_filename.
  (scm_init_fports): Define %file-port-name-canonicalization.
2010-04-19 13:14:43 +02:00
Andy Wingo
427c73b9ca formatting fix
* libguile/filesys.c (scm_canonicalize_path): Format fix.
2010-04-19 13:12:26 +02:00
Andy Wingo
4597cd2027 use procedure-minimum-arity in tests
* test-suite/tests/procprop.test ("procedure-arity"): Fix tests to use
  procedure-minimum-arity.
2010-04-19 12:05:27 +02:00
Andy Wingo
3fc7e2c123 deprecate arity access via (procedure-properties proc 'arity)
* libguile/procprop.h (scm_sym_arity): Deprecate. I didn't move it to
  deprecated.h though, because that might have some boot implications --
  though I didn't check.

* libguile/procprop.c (scm_procedure_properties)
  (scm_set_procedure_properties_x, scm_procedure_property)
  (scm_set_procedure_property_x): Deprecate access to a procedure's
  arity via procedure-properties. Users should use
  procedure-minimum-arity.

* module/ice-9/channel.scm (eval):
* module/ice-9/session.scm (arity):
* module/language/tree-il/analyze.scm (validate-arity): Fix up instances
  of (procedure-property x 'arity) to use procedure-minimum-arity.
2010-04-17 16:28:52 +02:00
Andy Wingo
cb2ce54844 add procedure_minimum_arity
* libguile/procprop.h:
* libguile/procprop.c (scm_procedure_minimum_arity): New public
  function, will replace (procedure-property foo 'arity).

* libguile/programs.c (scm_i_program_arity): Rework to always provide
  the most permissive arity.
2010-04-17 16:03:51 +02:00
Andy Wingo
1e23b461ec remove program-name, program-documentation
* libguile/programs.h:
* libguile/programs.c (scm_program_name): Remove. procedure-name is
  sufficient.

* module/system/vm/program.scm (program-name): Remove from exports list.
  (program-documentation): Remove; procedure-documentation is
  sufficient.

* libguile/debug.c (scm_procedure_name): Remove special case for
  programs.

* module/language/tree-il/analyze.scm (validate-arity): Use
  procedure-name.

* module/ice-9/documentation.scm (object-documentation): Just use
  procedure-documentation, without special cases for programs.
2010-04-17 15:21:08 +02:00
Andy Wingo
07e424b753 scm_i_program_properties is internal; just use procedure-properties
* libguile/programs.h:
* libguile/programs.c (scm_i_program_properties): Make internal.
  (scm_program_name): Use scm_i_program_properties.

* libguile/procprop.c (scm_procedure_properties): Use
  scm_i_program_properties, for programs.

* libguile/procs.c (scm_procedure_documentation): Use procedure-property
  to get to 'documentation, not program-property.

* module/system/vm/program.scm (program-properties, program-property):
  Remove from the exports list.
  (program-documentation): Use procedure-property.

* module/texinfo/reflection.scm (macro-arguments)
  (macro-additional-stexi)
  (object-stexi-documentation): Use procedure-property, not
  program-property.
2010-04-17 15:21:08 +02:00
Andy Wingo
90fa152c1d tweaks to procprop.c
* libguile/procprop.c (scm_procedure_property)
  (scm_set_procedure_property_x): Fix up some variable naming.
2010-04-17 15:21:02 +02:00
Andy Wingo
e1bdf9e2a5 procedure-properties incorporates program-properties
* libguile/procprop.c (overrides, overrides_lock): Rename from props and
  props_lock.
  (scm_procedure_properties): If no overrides have been set, default to
  scm_program_properties (if it's a program).
  (scm_set_procedure_properties_x): Error if 'arity is in the alist.
  (scm_procedure_property): Just do a lookup in the
  scm_procedure_properties.
  (scm_set_procedure_properties_x): Init the overrides to
  scm_procedure_properties.
2010-04-17 15:20:03 +02:00
Andy Wingo
689af21100 fix read.bm
* benchmark-suite/benchmarks/read.bm (%files-to-load): psyntax-pp.scm,
  not psyntax.scm.
2010-04-17 14:04:49 +02:00
Neil Jerram
892cf97107 Merge branch 'wip-manual-2'
Conflicts:

	doc/ref/api-translation.texi
2010-04-16 22:26:32 +01:00
Andy Wingo
4bd4b6e67f fold in feedback to api-languages
* doc/ref/api-languages.texi: Fold in feedback.
2010-04-16 17:43:42 +02:00
Andy Wingo
b390b00834 NEWS tweaks for nil
* NEWS: Some nil-related news fixes; after 1.9.10, I know, but hey ;-)
2010-04-16 10:36:04 +02:00
Andy Wingo
bcbfc9400d more nil docs
* doc/ref/api-languages.texi (Nil): Be a bit more thorough, and
  positive.
2010-04-16 10:36:04 +02:00
Andy Wingo
3279b6b1f5 add docs on `nil'
* doc/ref/api-languages.texi (Nil): Write about `nil'.
2010-04-16 10:36:04 +02:00
Andy Wingo
698307a08a fix bugs in ice-9 i18n demo (invalid input)
* doc/ref/api-i18n.texi (Accessing Locale Information): Crucial
  bugfixes.
2010-04-16 10:36:04 +02:00
Andy Wingo
4d0fd3467c fixes to api-i18n.texi
* doc/ref/api-i18n.texi (Character Case Mapping): Remove note about lack
  of support for multibute characters.
2010-04-16 10:36:04 +02:00
Andy Wingo
e6709db63f flesh out docs on multiple languages a bit more
* doc/ref/api-languages.texi: Move here from api-translation. Still
  stubbed in parts, but it's getting better.
* doc/ref/Makefile.am: Adapt to api-languages.texi name change.
* doc/ref/guile.texi: Likewise.
2010-04-16 10:36:04 +02:00
Ludovic Courtès
2d1ff3ba52 Bump version number for 1.9.10.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
2010-04-15 22:21:40 +02:00
Neil Jerram
0a864beb31 Improvements to Introduction chapter
* doc/ref/intro.texi (Introduction): Change "some" to "the".
  (Guile and Scheme): "multithreading" -> "multithreaded".
  (Combining with C): Mention "libguile" as library name.
  (Guile and the GNU Project): New text.
  (Interactive Programming): New text.
  (Supporting Multiple Languages): New text, reflecting currently
  supported languages.
  (Obtaining and Installing Guile): Use @var for version placeholder.
  Remove mention of separate tutorial.
2010-04-11 01:25:12 +01:00
Neil Jerram
26b9f90900 Merge branch 'master' into wip-manual-2
Conflicts:

	doc/ref/api-procedures.texi
	doc/ref/misc-modules.texi

(Caused by me removing `@page' from a couple of sections that have been modified
by others.)
2010-04-10 13:32:42 +01:00
Andy Wingo
96ec2c9c65 elisp.test cleanups
* test-suite/tests/elisp.test: Use quote and #nil instead of quasiquote
  and ,#nil.
2010-04-09 22:33:46 +02:00
Andy Wingo
2860ff4675 re-enable elisp test
* test-suite/tests/elisp.test: Rework for #nil, to actually be enabled,
  to always run, and to use the new compiler. Comment out some failing tests, to
  be dealt with in the future.
2010-04-09 21:06:29 +02:00
Andy Wingo
92a61010bd change remaining %nil -> #nil
* doc/ref/vm.texi:
* libguile/boolean.h:
* libguile/pairs.h:
* module/language/elisp/README:
* test-suite/tests/elisp-compiler.test:
* test-suite/tests/load.test: Change remaining mentions of %nil to #nil.
2010-04-09 21:06:29 +02:00
Andy Wingo
474060a23c elisp fixes for nil, and, or
* module/language/elisp/runtime/macro-slot.scm (or, and): Fix one-arg
  case to return the arg as-is.

* module/language/elisp/runtime.scm (nil-value): Fix to be #nil.
2010-04-09 21:06:29 +02:00
Andy Wingo
cd038da546 remove libguile/lang.h, deprecate %nil (in favor of #nil)
* libguile/Makefile.am:
* libguile/init.c:
* libguile/lang.c:
* libguile/lang.h: Remove lang.c and lang.h.

* libguile/pairs.h (SCM_NIL_P, SCM_NULL_OR_NIL_P): Moved here.

* module/ice-9/deprecated.scm (%nil): %nil definition moved here.

* libguile/alist.c:
* libguile/async.c:
* libguile/backtrace.c:
* libguile/boolean.c:
* libguile/dynl.c:
* libguile/eval.c:
* libguile/filesys.c:
* libguile/fluids.c:
* libguile/list.c:
* libguile/load.c:
* libguile/options.c:
* libguile/posix.c:
* libguile/print.c:
* libguile/promises.c:
* libguile/sort.c:
* libguile/throw.c:
* libguile/trees.c:
* libguile/vectors.c:
* libguile/vm.c:
* libguile/weaks.c:
* srfi/srfi-1.c: <libguile/lang.h> references removed.
2010-04-09 14:26:31 +02:00
Andy Wingo
54e53aa430 %nil -> #nil
* module/language/assembly.scm (object->assembly, assembly->object):
* module/language/elisp/compile-tree-il.scm (compile-pair):
* module/language/glil/decompile-assembly.scm (decompile-load-program):
  Change instances of %nil to #nil.
2010-04-09 14:17:04 +02:00
Andy Wingo
7c4aad9cc7 add read syntax for #nil
* libguile/evalext.c (scm_self_evaluating_p): #nil is self-evaluating.

* libguile/read.c (scm_read_nil, scm_read_sharp): Add read syntax for
  #nil.
2010-04-09 14:15:16 +02:00