It is still a beta, because I wanted to do some more work on it. But it works fine, and is Snow Leopard compatible. Likely no longer 10.4 compatible.
This leaves behind the hack to expose some internal screen saver API, in favor of apple sanctioned API (which was not available when I started AntiRSI).
Download it here: AntiRSI
To be fair, after the last hotel blog post in October, not much has happend. The status than was a c implemented parser, emitting a total of 50 different bytecodes, and a runtime that was somewhat functional. However, it didn't seem like I was going to reach the goal of simplicity.
Development on attempt 1 stalled, and died. (Also because my day job became very demanding; we are working on something new and cool. More on that in the near future.)
But ...
Because java is garbage collected, detecting how you are doing memory wise is difficult. You can use the Runtime.freeMemory() and other methods, but they count all memory, ignoring all garbage.
So ideally, what you want to know is how the memory was doing just after the last garbage collection round. Internally, the jvm has the cpp function Universe::get_heap_used_at_last_gc() which could be used for that, but it is not exposed anywhere (AFAIK).
So why ...
I'm getting closer to finally implementing and expirementing with the features that set hotel apart: its objects, modules and closures with importing. Just today I made the following Queue implementation work:
fun Queue() {
var _content
fun fragment(v, prev) {
return self
}
fun is_empty() {
return _content == null
}
fun size() {
fun size(c) {
if (c == null) return 0
return 1 + size(c.prev)
...
No I haven't been working on hotel much; seems like every weekend there is something to do. But something does keep moving every now and then.
Already two weeks ago, I added some expiremental extension support, and added an ncurses binding. The following works and moves an x around in the (terminal) screen:
initscr()
var x = 10
var y = 10
var ch = 1
while (true) {
ch = getch()
if (ch == 65) x = x - 1 # up
if (ch == 66) x = x + 1 # down
if (ch == ...