Skip to content

Instantly share code, notes, and snippets.

Avatar

Nenad Rakocevic dockimbel

View GitHub Profile
@dockimbel
dockimbel / gist:cb5607b0696558d44aa4a3537e930095
Created Feb 8, 2022
Global space function stats per type
View gist:cb5607b0696558d44aa4a3537e930095
Red []
count: function [][
list: [native! 0 action! 0 op! 0 function! 0 routine! 0]
foreach w words-of system/words [
if pos: find list type?/word get/any w [pos/2: pos/2 + 1]
]
list
]
@dockimbel
dockimbel / gist:3ebf48b58acdb3781c6e8f7adefe2959
Created Dec 21, 2021
Tracing handler for extracting top expressions
View gist:3ebf48b58acdb3781c6e8f7adefe2959
Red []
detect: function [
event [word!]
code [any-block! none!]
offset [integer!]
value [any-type!]
ref [any-type!]
frame [pair!]
][
View gist:76e82d462b2ebe4032c593e2b16201d7
* PROLOG: when entering a function.
* EPILOG: when exiting a function.
* ENTER: when a block is about to be evaluated.
* EXIT: when current evaluated block's end has been reached.
* OPEN: when a new function (any-function!) call is pushed on stack and a new stack frame is opened.
* RETURN: when a function call has returned and its stack frame has been closed.
* FETCH: a value is read from the input block to be evaluated.
* PUSH: a value has been pushed on the stack.
* SET: a set-word is set to a value.
@dockimbel
dockimbel / surprise-msg.red
Last active Aug 15, 2019
Red generator for encoded messaged
View surprise-msg.red
Red [
Purpose: {
Red generator for encoded messaged as in:
http://www.rebol.com/oneliners.html#section-17
}
]
gen-hack: function [secret [string!]][
;-- First build a list of integers from 1 to the last index of the secret string
table: collect [repeat i len: length? secret [keep i]]
@dockimbel
dockimbel / redbox-joypad.red
Last active Jul 18, 2019
Rebox game in Red with gpio-powered joypad. Asset files: https://github.com/hyzwhu/redbox
View redbox-joypad.red
Red [
Needs: View
Title: "red-box"
Author: "Huang Yongzhao"
File: %redbox.red
Tabs: 4
Version: "Alpha"
Purpose: "Famous BoxWorld! game ported to red"
Rights: "Copyright (C) 2015-2018 Red Foundation. All rights reserved."
License: {
@dockimbel
dockimbel / rloc.red
Last active Jan 11, 2019
Lines of code statistics from Red files
View rloc.red
Red [
Title: "Lines of code statistics from Red files"
Author: "Nenad Rakocevic"
File: %rloc.reds
Tabs: 4
Purpose: {
Counts the number of files, lines of code and inline comments in Red/Rebol files, across folders,
filtering files using a list of suffixes and excluding files from a given list of subfolders.
}
]
@dockimbel
dockimbel / check-brackets.red
Last active Jan 4, 2019
PoC script for checking if brackets/parens are matching in a Red file
View check-brackets.red
Red [
Purpose: "PoC script for checking if brackets/parens are matching in a Red file"
]
check-brackets: function [file [file!]][
line: 1
stack: clear []
skip-chars: complement charset "[]()^/"
parse read file [
View Verifying my Peepeth
Verifying my identity on Peepeth.com 0x1e33e78b9fc22c63740b0ed0cd441acbac5109f2
@dockimbel
dockimbel / get-arguments.red
Last active Oct 4, 2018
Extracting current stack frame values using R/S.
View get-arguments.red
Red []
get-arguments: routine [
/local
list [red-block!]
s [red-value!]
t [red-value!]
top
][
top: stack/ctop - 3 ;-- might need adjustments depending on interpreted vs compiled code.
@dockimbel
dockimbel / draw-text-area.red
Created May 18, 2018
Mixes drawing with text in area widget
View draw-text-area.red
Red [
Note: "from: https://gitter.im/red/red/gui-branch?at=5afc55a05a1d895fae45588e"
]
view [
area 200x100 focus wrap
at 10x10 base 255.255.255.254 200x100 all-over
draw [line-width 20 pen 200.50.50.200]
on-down [repend face/draw ['line event/offset event/offset]]
on-over [if event/down? [change back tail face/draw event/offset]]