<commit_before>fn	void	ouroboros_stack_init	ouroboros_stack_t
fn	int	ouroboros_stack_items	ouroboros_stack_t
#: XSprePUSH
fn	void	ouroboros_stack_prepush	ouroboros_stack_t
#: PUTBACK
fn	void	ouroboros_stack_putback	ouroboros_stack_t
fn	SV*	ouroboros_stack_fetch	ouroboros_stack_t	SSize_t
fn	void	ouroboros_stack_store	ouroboros_stack_t	SSize_t	SV*
fn	void	ouroboros_stack_extend	ouroboros_stack_t	SSize_t

fn	void	ouroboros_stack_pushmark	ouroboros_stack_t

#: XPUSHs
fn	void	ouroboros_stack_xpush_sv	ouroboros_stack_t	SV*
#: mXPUSHs
fn	void	ouroboros_stack_xpush_sv_mortal	ouroboros_stack_t	SV*
#: mXPUSHi
fn	void	ouroboros_stack_xpush_iv	ouroboros_stack_t	IV
#: mXPUSHu
fn	void	ouroboros_stack_xpush_uv	ouroboros_stack_t	UV
#: mXPUSHn
fn	void	ouroboros_stack_xpush_nv	ouroboros_stack_t	NV
#: mXPUSHp
fn	void	ouroboros_stack_xpush_pv	ouroboros_stack_t	const char*	STRLEN

#: PUSHs
fn	void	ouroboros_stack_push_sv	ouroboros_stack_t	SV*
#: mPUSHs
fn	void	ouroboros_stack_push_sv_mortal	ouroboros_stack_t	SV*
#: mPUSHi
fn	void	ouroboros_stack_push_iv	ouroboros_stack_t	IV
#: mPUSHu
fn	void	ouroboros_stack_push_uv	ouroboros_stack_t	UV
#: mPUSHn
fn	void	ouroboros_stack_push_nv	ouroboros_stack_t	NV
#: mPUSHp
fn	void	ouroboros_stack_push_pv	ouroboros_stack_t	const char*	STRLEN

#: SvIV
fn	IV	ouroboros_sv_iv	SV*
#: SvUV
fn	UV	ouroboros_sv_uv	SV*
#: SvNV
fn	NV	ouroboros_sv_nv	SV*
#: SvPV(,*)
fn	const char*	ouroboros_sv_pv	SV*	STRLEN*
#: SvPV_nolen
fn	const char*	ouroboros_sv_pv_nolen	SV*
#: SvROK
fn	U32	ouroboros_sv_rok	SV*
#: SvRV
fn	SV*	ouroboros_sv_rv	SV*
#: SvTYPE
fn	IV	ouroboros_sv_type	SV*

#: SvREFCNT
fn	U32	ouroboros_sv_refcnt	SV*

# The next four functions actually wrap SvREFCNT_inc_simple_* macros.
# SvREFCNT_inc(_void)?(_nn)? are implemented as static functions to force
# one-time evaluation of their argument - we have it for free because
# we are wrapping it. These wrappers are necessary because SvREFCNT_*
# functions are declared as static and their symbols are not exported by Perl
# executable.

#: SvREFCNT_inc_simple
fn	SV*	ouroboros_sv_refcnt_inc	SV*
#: SvREFCNT_inc_simple_NN
fn	SV*	ouroboros_sv_refcnt_inc_nn	SV*
#: SvREFCNT_inc_simple_void
fn	void	ouroboros_sv_refcnt_inc_void	SV*
#: SvREFCNT_inc_simple_void_NN
fn	void	ouroboros_sv_refcnt_inc_void_nn	SV*

#: SvREFCNT_dec
fn	void	ouroboros_sv_refcnt_dec	SV*
#: SvREFCNT_dec_NN
fn	void	ouroboros_sv_refcnt_dec_nn	SV*

#: ENTER
fn	void	ouroboros_enter
#: LEAVE
fn	void	ouroboros_leave
#: SAVETMPS
fn	void	ouroboros_savetmps
#: FREETMPS
fn	void	ouroboros_freetmps

# Elements of svtype
enum	SVt_NULL
enum	SVt_IV
enum	SVt_NV
enum	SVt_PV
enum	SVt_PVIV
enum	SVt_PVNV
enum	SVt_PVMG
enum	SVt_REGEXP
enum	SVt_PVGV
enum	SVt_PVLV
enum	SVt_PVAV
enum	SVt_PVHV
enum	SVt_PVCV
enum	SVt_PVFM
enum	SVt_PVIO
enum	SVt_LAST

# Assorted SV related flags and constants. SV_CONST is not a const, but all SV_CONST_* are.
# r !awk '/\#define SV_/ && \!/SV_CHECK_/ && \!/SV_CONST[^_]/ { print("const\t" $2) }' sv.h

const	SV_IMMEDIATE_UNREF
const	SV_GMAGIC
const	SV_COW_DROP_PV
const	SV_UTF8_NO_ENCODING
const	SV_NOSTEAL
const	SV_CONST_RETURN
const	SV_MUTABLE_RETURN
const	SV_SMAGIC
const	SV_HAS_TRAILING_NUL
const	SV_COW_SHARED_HASH_KEYS
const	SV_COW_OTHER_PVS
const	SV_UNDEF_RETURNS_NULL
const	SV_FORCE_UTF8_UPGRADE
const	SV_SKIP_OVERLOAD
const	SV_CATBYTES
const	SV_CATUTF8
const	SV_CONST_TIESCALAR
const	SV_CONST_TIEARRAY
const	SV_CONST_TIEHASH
const	SV_CONST_TIEHANDLE
const	SV_CONST_FETCH
const	SV_CONST_FETCHSIZE
const	SV_CONST_STORE
const	SV_CONST_STORESIZE
const	SV_CONST_EXISTS
const	SV_CONST_PUSH
const	SV_CONST_POP
const	SV_CONST_SHIFT
const	SV_CONST_UNSHIFT
const	SV_CONST_SPLICE
const	SV_CONST_EXTEND
const	SV_CONST_FIRSTKEY
const	SV_CONST_NEXTKEY
const	SV_CONST_SCALAR
const	SV_CONST_OPEN
const	SV_CONST_WRITE
const	SV_CONST_PRINT
const	SV_CONST_PRINTF
const	SV_CONST_READ
const	SV_CONST_READLINE
const	SV_CONST_GETC
const	SV_CONST_SEEK
const	SV_CONST_TELL
const	SV_CONST_EOF
const	SV_CONST_BINMODE
const	SV_CONST_FILENO
const	SV_CONST_CLOSE
const	SV_CONST_DELETE
const	SV_CONST_CLEAR
const	SV_CONST_UNTIE
const	SV_CONST_DESTROY

# vim: set ts=12 tw=0 noet
<commit_msg>Add SPAGAIN.<commit_after>fn	void	ouroboros_stack_init	ouroboros_stack_t
fn	int	ouroboros_stack_items	ouroboros_stack_t
#: XSprePUSH
fn	void	ouroboros_stack_prepush	ouroboros_stack_t
#: PUTBACK
fn	void	ouroboros_stack_putback	ouroboros_stack_t
fn	SV*	ouroboros_stack_fetch	ouroboros_stack_t	SSize_t
fn	void	ouroboros_stack_store	ouroboros_stack_t	SSize_t	SV*
fn	void	ouroboros_stack_extend	ouroboros_stack_t	SSize_t

fn	void	ouroboros_stack_pushmark	ouroboros_stack_t
#: SPAGAIN
fn	void	ouroboros_stack_spagain	ouroboros_stack_t

#: XPUSHs
fn	void	ouroboros_stack_xpush_sv	ouroboros_stack_t	SV*
#: mXPUSHs
fn	void	ouroboros_stack_xpush_sv_mortal	ouroboros_stack_t	SV*
#: mXPUSHi
fn	void	ouroboros_stack_xpush_iv	ouroboros_stack_t	IV
#: mXPUSHu
fn	void	ouroboros_stack_xpush_uv	ouroboros_stack_t	UV
#: mXPUSHn
fn	void	ouroboros_stack_xpush_nv	ouroboros_stack_t	NV
#: mXPUSHp
fn	void	ouroboros_stack_xpush_pv	ouroboros_stack_t	const char*	STRLEN

#: PUSHs
fn	void	ouroboros_stack_push_sv	ouroboros_stack_t	SV*
#: mPUSHs
fn	void	ouroboros_stack_push_sv_mortal	ouroboros_stack_t	SV*
#: mPUSHi
fn	void	ouroboros_stack_push_iv	ouroboros_stack_t	IV
#: mPUSHu
fn	void	ouroboros_stack_push_uv	ouroboros_stack_t	UV
#: mPUSHn
fn	void	ouroboros_stack_push_nv	ouroboros_stack_t	NV
#: mPUSHp
fn	void	ouroboros_stack_push_pv	ouroboros_stack_t	const char*	STRLEN

#: SvIV
fn	IV	ouroboros_sv_iv	SV*
#: SvUV
fn	UV	ouroboros_sv_uv	SV*
#: SvNV
fn	NV	ouroboros_sv_nv	SV*
#: SvPV(,*)
fn	const char*	ouroboros_sv_pv	SV*	STRLEN*
#: SvPV_nolen
fn	const char*	ouroboros_sv_pv_nolen	SV*
#: SvROK
fn	U32	ouroboros_sv_rok	SV*
#: SvRV
fn	SV*	ouroboros_sv_rv	SV*
#: SvTYPE
fn	IV	ouroboros_sv_type	SV*

#: SvREFCNT
fn	U32	ouroboros_sv_refcnt	SV*

# The next four functions actually wrap SvREFCNT_inc_simple_* macros.
# SvREFCNT_inc(_void)?(_nn)? are implemented as static functions to force
# one-time evaluation of their argument - we have it for free because
# we are wrapping it. These wrappers are necessary because SvREFCNT_*
# functions are declared as static and their symbols are not exported by Perl
# executable.

#: SvREFCNT_inc_simple
fn	SV*	ouroboros_sv_refcnt_inc	SV*
#: SvREFCNT_inc_simple_NN
fn	SV*	ouroboros_sv_refcnt_inc_nn	SV*
#: SvREFCNT_inc_simple_void
fn	void	ouroboros_sv_refcnt_inc_void	SV*
#: SvREFCNT_inc_simple_void_NN
fn	void	ouroboros_sv_refcnt_inc_void_nn	SV*

#: SvREFCNT_dec
fn	void	ouroboros_sv_refcnt_dec	SV*
#: SvREFCNT_dec_NN
fn	void	ouroboros_sv_refcnt_dec_nn	SV*

#: ENTER
fn	void	ouroboros_enter
#: LEAVE
fn	void	ouroboros_leave
#: SAVETMPS
fn	void	ouroboros_savetmps
#: FREETMPS
fn	void	ouroboros_freetmps

# Elements of svtype
enum	SVt_NULL
enum	SVt_IV
enum	SVt_NV
enum	SVt_PV
enum	SVt_PVIV
enum	SVt_PVNV
enum	SVt_PVMG
enum	SVt_REGEXP
enum	SVt_PVGV
enum	SVt_PVLV
enum	SVt_PVAV
enum	SVt_PVHV
enum	SVt_PVCV
enum	SVt_PVFM
enum	SVt_PVIO
enum	SVt_LAST

# Assorted SV related flags and constants. SV_CONST is not a const, but all SV_CONST_* are.
# r !awk '/\#define SV_/ && \!/SV_CHECK_/ && \!/SV_CONST[^_]/ { print("const\t" $2) }' sv.h

const	SV_IMMEDIATE_UNREF
const	SV_GMAGIC
const	SV_COW_DROP_PV
const	SV_UTF8_NO_ENCODING
const	SV_NOSTEAL
const	SV_CONST_RETURN
const	SV_MUTABLE_RETURN
const	SV_SMAGIC
const	SV_HAS_TRAILING_NUL
const	SV_COW_SHARED_HASH_KEYS
const	SV_COW_OTHER_PVS
const	SV_UNDEF_RETURNS_NULL
const	SV_FORCE_UTF8_UPGRADE
const	SV_SKIP_OVERLOAD
const	SV_CATBYTES
const	SV_CATUTF8
const	SV_CONST_TIESCALAR
const	SV_CONST_TIEARRAY
const	SV_CONST_TIEHASH
const	SV_CONST_TIEHANDLE
const	SV_CONST_FETCH
const	SV_CONST_FETCHSIZE
const	SV_CONST_STORE
const	SV_CONST_STORESIZE
const	SV_CONST_EXISTS
const	SV_CONST_PUSH
const	SV_CONST_POP
const	SV_CONST_SHIFT
const	SV_CONST_UNSHIFT
const	SV_CONST_SPLICE
const	SV_CONST_EXTEND
const	SV_CONST_FIRSTKEY
const	SV_CONST_NEXTKEY
const	SV_CONST_SCALAR
const	SV_CONST_OPEN
const	SV_CONST_WRITE
const	SV_CONST_PRINT
const	SV_CONST_PRINTF
const	SV_CONST_READ
const	SV_CONST_READLINE
const	SV_CONST_GETC
const	SV_CONST_SEEK
const	SV_CONST_TELL
const	SV_CONST_EOF
const	SV_CONST_BINMODE
const	SV_CONST_FILENO
const	SV_CONST_CLOSE
const	SV_CONST_DELETE
const	SV_CONST_CLEAR
const	SV_CONST_UNTIE
const	SV_CONST_DESTROY

# vim: set ts=12 tw=0 noet

{'fraction_non_alphanumeric': 0.03947684185265179, 'fraction_numerical': 0.0026397888168946484, 'mean_word_length': 7.195673549655851, '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': '1497912', 'n_tokens_mistral': 4009, 'n_tokens_neox': 3887, 'n_words': 856}