Skip to content

Instantly share code, notes, and snippets.

@GiuseppeChillemi
GiuseppeChillemi / quote-elements.red
Last active March 20, 2025 23:37
Delimits elements to be used with parse
Red [
Title: "Delimit elements"
Description: "Delimit and quotes elements for parse"
Version: 1.1
]
delimit-elements: func [
"Delimits and quotes a block of elements to be used with parse"
block [block!]
/local
@GiuseppeChillemi
GiuseppeChillemi / context-reusing-simulations.red
Last active February 8, 2025 13:34
Context reuse speed test
Red [
Title: "Speed comparison with context keeping"
Description: {
This test compares the same function with and without the
initialization phase
The purpose of this the is to test context reusing:
A function has ofen an check and init phase. In stict loops
many of these checks and inits could be bypassed after the first
one if part of the function context could be passed again
at each run.
@GiuseppeChillemi
GiuseppeChillemi / Refinements-by-lenght
Last active February 8, 2025 13:37
Functions-Sorted-by-refinements-length.txt
Red [
Title: "List of function by refinements length"
Description: {
This is a list of function sorted by number of refinements
It was obtained with the help of my parse-specs function
}
Date: 07/02/2025
RED-VERSION: [ branch: "master" tag: #v0.6.5 ahead: 222 date: 4-Dec-2024/13:53:00 commit: #ba5228d9a1afe5f6005df0f72f47f1c18f3e85a5 ]
]
Red [
Title: "Leak checks"
Description: {
Checks the system/words context for words leaking
* You can use inline in your code or
* Check a block
* Check a file (it must have an #assert [code] test inside and
run at least once
}
Usage: {
@GiuseppeChillemi
GiuseppeChillemi / func-ctx.red
Last active December 31, 2024 01:24
Func-ctx Function creator
Red [
Title: "Func-ctx Function creator"
Description: "100% compatible Function creator for functions that could accept a context to set its one to"
Usage: {
func-ctx body specs
To pass a context, simply
myfunc/ctx arg1 arg2... context [arg1: value arg2: value....]
@GiuseppeChillemi
GiuseppeChillemi / replica.red
Created November 30, 2024 01:23
Replicates a function adding custom code handling
Red [
title: "Replica"
Description: "Creates another function that calls the original, with context manipulation capabilities"
Author: "Giuseppe Chillemi"
Copyright: "MIT license"
Version: 1.00
Needs: [
func-spec-words
quotes
get-all
@GiuseppeChillemi
GiuseppeChillemi / Propagate.red
Last active November 29, 2024 02:51
Field propagation between objects with transformations
Red [
title: "Propagate"
Description: "Propagates fields values accross objects with transformations"
Author: "Giuseppe Chillemi"
Copyright: "MIT license"
Version: 2.00
Needs: {
`Mirror` function
https://gist.github.com/GiuseppeChillemi/99e77fa72f8a417b82d3e7502068c1a8
}
@GiuseppeChillemi
GiuseppeChillemi / mirror.red
Last active November 29, 2024 02:42
Mirrors a field value to another object using a map. It could use a block for modification
Red [
Title: "Mirror fields"
Description: "Mirrors a field from a context to another. A modification code can be used"
Usage: mirror [obj1 obj2] [src-word | :src-word dest-word | 'dst-word [code]....]
Version: 2.0
]
mirror: func [
"Mirrors the value of a word in a context to a word in another"
objects [block!] "The objects to link"
@GiuseppeChillemi
GiuseppeChillemi / composable-vid
Created October 29, 2024 20:55
Composable library
Red [
Title: "VID Composablel library test"
]
library: [
p1 [
code-segment [
panel 600x40 [
b: button "Hit me!" [
@GiuseppeChillemi
GiuseppeChillemi / Compose-where.red
Created October 24, 2024 22:07
compose-where 1.0
Red [
title: "Compose-where"
Description: "A dialected compose with filtering and auto composition"
]
compose-where: func [
"Compose where groups match using CMP/GROUP/(code). Use CMPO for ONLY"
series [block!] "The block to compose"
/group "Specify a group to compose"
grp [word! block!] "The group(s) to compose"