FreeWRL

 view release on metacpan or  search on metacpan

JS/js/README  view on Meta::CPAN

  The one "not-quite-a-macro macro" is the PR_CeilingLog2 function in prlog2.c.

- prarena.c, prarena.h

  Last-In-First-Out allocation macros that amortize malloc costs and allow for
  en-masse freeing.  See the paper mentioned in prarena.h's major comment.

- prassert.c, prassert.h

  The PR_ASSERT macro is used throughout JSRef source as a proof device to make
  invariants and preconditions clear to the reader, and to hold the line during
  maintenance and evolution against regressions or violations of assumptions
  that it would be too expensive to test unconditionally at run-time.  Certain
  assertions are followed by run-time tests that cope with assertion failure,
  but only where I'm too smart or paranoid to believe the assertion will never
  fail...

- prclist.h

  Doubly-linked circular list struct and macros.

- prcpucfg.c

  This standalone program generates prcpucfg.h, a header file containing bytes
  per word and other constants that depend on CPU architecture and C compiler
  type model.  It tries to discover most of these constants by running its own
  experiments on the build host, so if you are cross-compiling, beware.

- prdtoa.c, prdtoa.h

  David Gay's portable double-precision floating point to string conversion
  code, with Permission To Use notice included.

- prhash.c, prhash.h

  Portable, extensible hash tables.  These use multiplicative hash for strength
  reduction over division hash, yet with very good key distribution over power
  of two table sizes.  Collisions resolve via chaining, so each entry burns a
  malloc and can fragment the heap.

- prlong.c, prlong.h

  64-bit integer emulation, and compatible macros that use C's long long type
  where it exists (my last company mapped long long to a 128-bit type, but no
  real architecture does 128-bit ints yet).

- prosdep.h, prmacos.h, prpcos.h, prunixos.h, os/*.h

  A bunch of annoying OS dependencies rationalized into a few "feature-test"
  macros such as HAVE_LONG_LONG.

- prprintf.c, prprintf.h

  Portable, buffer-overrun-resistant sprintf and friends.

  For no good reason save lack of time, the %e, %f, and %g formats cause your
  system's native sprintf, rather than PR_dtoa, to be used.  This bug doesn't
  affect JSRef, because it uses its own PR_dtoa call in jsnum.c to convert
  from double to string, but it's a bug that we'll fix later, and one you
  should be aware of if you intend to use a PR_*printf function with your own
  floating type arguments -- various vendor sprintf's mishandle NaN, +/-Inf,
  and some even print normal floating values inaccurately.

- prtime.c, prtime.h

  Time functions.  These interfaces are named in a way that makes local vs.
  universal time confusion likely.  Caveat emptor, and we're working on it.
  To make matters worse, Java (and therefore JavaScript) uses "local" time
  numbers (offsets from the epoch) in its Date class.



( run in 0.509 second using v1.01-cache-2.11-cpan-39bf76dae61 )