/usr/lib/mlton/include/gc/hash-cons.h is in mlton-basis 20100608-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | /* Copyright (C) 1999-2008 Henry Cejtin, Matthew Fluet, Suresh
* Jagannathan, and Stephen Weeks.
* Copyright (C) 1997-2000 NEC Research Institute.
*
* MLton is released under a BSD-style license.
* See the file MLton-LICENSE for details.
*/
#if (defined (MLTON_GC_INTERNAL_TYPES))
/* ---------------------------------------------------------------- */
/* Object hash consing */
/* ---------------------------------------------------------------- */
typedef uint32_t GC_hash;
#define GC_HASH_SIZE sizeof(GC_hash)
#define PRIxHASH PRIx32
#define FMTHASH "0x%08"PRIxHASH
typedef struct GC_objectHashElement {
GC_hash hash;
pointer object;
} *GC_objectHashElement;
typedef struct GC_objectHashTable {
struct GC_objectHashElement *elements;
bool elementsIsInHeap;
uint32_t elementsLengthCur;
uint32_t elementsLengthMax;
uint32_t elementsLengthMaxLog2;
bool mayInsert;
} *GC_objectHashTable;
#endif /* (defined (MLTON_GC_INTERNAL_TYPES)) */
#if (defined (MLTON_GC_INTERNAL_FUNCS))
static inline GC_objectHashTable allocHashTable (GC_state s);
static inline void freeHashTable (GC_objectHashTable t);
static inline pointer insertHashTableElem (GC_state s,
GC_objectHashTable t, GC_hash hash,
pointer object, pointer max, bool mightBeThere);
static inline void growHashTableMaybe (GC_state s, GC_objectHashTable t);
static pointer hashConsPointer (GC_state s, pointer object, bool countBytesHashConsed);
static inline void shareObjptr (GC_state s, objptr *opp);
static void printBytesHashConsedMessage (size_t bytesHashConsed, size_t bytesExamined);
#endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */
|