<commit_before>#ifndef ___NOOMR_STACK_H
#include <stdint.h>
#include <stdlib.h>

typedef struct {
  struct node_t * next;
} node_t;

typedef struct {
  union {
    struct {
      uint64_t age;
      node_t * head;
    };
    __int128 combined;
  };
} stack_t;


stack_t * new_stack(void);

node_t * pop(volatile stack_t *);

void push(volatile stack_t *, node_t *);

#endif<commit_msg>[stack] simply stack_t, 32b support<commit_after>#ifndef ___NOOMR_STACK_H
#define ___NOOMR_STACK_H
#include <stdlib.h>
#include <stdint.h>

#if __SIZEOF_POINTER__ == 8
// 64b pointers
#define combined_stack_t unsigned __int128
#define stack_age_t uint64_t
#else
#define combined_stack_t uint64_t
#define stack_age_t uint32_t
#endif

typedef struct {
  struct node_t * next;
} node_t;

typedef union {
  struct {
    node_t * head;
    stack_age_t age;
  };
  combined_stack_t combined;
} stack_t;


stack_t * new_stack(void);

node_t * pop(volatile stack_t *);

void push(volatile stack_t *, node_t *);

#endif
{'fraction_non_alphanumeric': 0.10452261306532663, 'fraction_numerical': 0.019095477386934675, 'mean_word_length': 4.32620320855615, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, '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': '2661708', 'n_tokens_mistral': 419, 'n_tokens_neox': 384, 'n_words': 90}