<commit_before>(define-library (cyclone concurrency)
;; TODO:
;how to determine if an object can be shared between threads (EG: on the heap)?
;
;what data type to use for concurrency objects?
;what data structures to support - queue, ??
;what operations to support - promises, ??
;what objects to support - atomics, refs, ??
;
;what role do atomics play? how does that affect GC?
 (import
   (scheme base)
 )
 (export
   immutable?
 )
 (begin
   (define (dummy) #f)
   (define-c immutable?
     "(void *data, int argc, closure _, object k, object obj)"
     "object result = boolean_f;
      if (is_object_type(obj) &&<commit_msg>Added notes<commit_after>(define-library (cyclone concurrency)
;; TODO:
;how to determine if an object can be shared between threads (EG: on the heap)?
;
;what data type to use for concurrency objects?
;what data structures to support - queue, ??
;what operations to support - promises, ??
;what objects to support - atomics, refs, ??
;
;what role do atomics play? how does that affect GC?

;; Some additional notes:
;; Add atomic bit field to cvar, maybe even an atomic type field too (?)
;; 
;; (Make-shared exprs)
;; Safe way to allocate vars on heap. Tbd if an obj with pointers always necessitates a minor GC 
;;
 (import
   (scheme base)
 )
 (export
   immutable?
 )
 (begin
   (define (dummy) #f)
   (define-c immutable?
     "(void *data, int argc, closure _, object k, object obj)"
     "object result = boolean_f;
      if (is_object_type(obj) &&
{'fraction_non_alphanumeric': 0.10969044414535666, 'fraction_numerical': 0.0, 'mean_word_length': 3.796774193548387, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5189265', 'n_tokens_mistral': 452, 'n_tokens_neox': 449, 'n_words': 195}