social.tulsa.ok.us is one of the many independent Mastodon servers you can use to participate in the fediverse.
Green Country's regional fediverse instance.

Server stats:

14
active users

#Scheme

5 posts4 participants0 posts today
Replied to screwlisp

@screwtape Scheme (50 years) had a similar breaking change version, R6RS, that handles Unicode and has some essential libraries built in. And then the recidivists rejected it and made a broken R7RS that doesn't do that stuff, and maybe in 5-10 years there'll be an R7RS-large that's halfway usable.

All these languages have problems with churn or lack thereof, both are bad.
#lisp #scheme

Continued thread

Good news, updated eloston-chromium works again.

All my Scheme unit tests pass, and nothing tried to launch xquartz. Only interesting in the 10.1.0 release notes
github.com/cisco/ChezScheme/re

> 2.3. New machine types for iOS (10.1.0)
The a6ios, ta6ios, arm64ios and tarm64ios machine types correspond to an iOS compilation target. Native-code support for iOS is currently limited to applications attached to a debugger as the platform does not allow executable code to be loaded at runtime.
<
#scheme

Updates and bug fixes since February 1, 2024. See the release notes for details.
The attached executable ChezScheme10.1.0.exe contains the Windows binary installation built with Visual Studio 2022 ...
GitHubRelease Version 10.1.0 · cisco/ChezSchemeUpdates and bug fixes since February 1, 2024. See the release notes for details. The attached executable ChezScheme10.1.0.exe contains the Windows binary installation built with Visual Studio 2022 ...

Made more progress cleaning up my maze generators.

I ran out of steam to do dungeons and towns, which are a whole giant set of logic. I started reading some old code, and making notes, and went OOOF.

(the emoji art is just for debugging, it goes into sprites for actual rendering)
#gamedev #scheme

Continued thread

ALSØ also, you may note that I'm violating my "tabs not spaces" preference here, but that's for C, Java, Python, etc. I'd like to use tabs in Scheme but indentation runs out of control if you do that. I go back and forth and currently I'm on "spaces in Scheme".

The LISP religious fanatics (Erik Naggum rot in Hell (doesn't exist)) who threaten your life if you don't indent like they do are wrong, but something like that style is useful.
#lisp #scheme

Replied in thread

@ksaj
% ls -l
-rw-r--r-- 1 mdh staff 1729 Feb 18 18:56 hello.class
-rw-r--r-- 1 mdh staff 272 Feb 18 18:56 hello.scm
% ls -l /usr/local/share/kawa/lib/kawa.jar
-rw-r--r-- 1 mdh admin 3332103 Feb 18 17:14 /usr/local/share/kawa/lib/kawa.jar

Plus whatever the JVM is these days. It should be possible to unzip kawa.jar, put my stuff in, and ship a single jar file. On Mac, you can just double-click jars and they run.

I'm gonna add it to my #Scheme module examples.
mdhughes.tech/scheme/

scheme-brained-hare-simply-scheme
Mark writes · Scheme - Mark writes
More from mdhughes
Continued thread

Compiling!

% cat hello.scm
;; hello.scm
;; -*- coding: utf-8 -*-

(module-name <hello>)
(module-compile-options main: #t)

(let* ( (args (command-line))
(name (cond
((<= (length args) 1) "World" )
(else (cadr args) )
))
)
(format #t "Hello, ~A!~%" name)
)

% kawa -C hello.scm
(compiling hello.scm to hello)
# the classpath is ugly:
% java -cp /usr/local/share/kawa/lib/kawa.jar:. hello
Mark
Hello, Mark!

Uuuuuuugh. I thought I'd get a current (2020) version of Kawa Scheme running.
gnu.org/software/kawa/Source-d

There's two compile errors in current Java. Fixed one by adding
import kawa.lang.Record;
The other by deleting Sequence<Char> from a file, because I know that generic types are stupid and do nothing.

make check mostly works, but then errors on some XML shit I can't care about.

Launcher script `kawa` errors, readlink doesn't take -f arg in MacOS.

% kawa
#|kawa:1|# (display (+ 2 3))
5
#scheme

www.gnu.orgKawa: Installing and using the source distribution
Replied to screwlisp

@screwtape (a . (b . nil)) is just list (a b), but ((nil . (a . nil)) . (b . nil)) etc makes a tree, (value . leafs) style. But usually you'd do that with records instead, not as efficient but more readable.

I really only use dotted pairs for alists, so nil in non-terminal position is rare, even an on/off set could be coded with (foo . #f)

Swift LispKit is a Scheme written in Swift

It is odd that I had not heard about this #Scheme implementation until very recently. I can find almost no reference to it anywhere on the scheme.org website or the r7rs.org website, although they advertise compliance with the R7RS standard.

I installed the “LispPad” app (the Mac OS front-end to Swift LispKit) and

  • it follows the modern Mac OS user interface guidelines pretty well
  • implements a large number of SRFI extensions
  • provides a very large array of libraries to extend the core features of R7RS
  • provides thorough online documentation

That said, I have found the LispPad GUI prety difficult to use, mostly because when I use the REPL, pressing enter does not execute the input, it seem like you must use the mouse to press a little “execute” button instead. The GUI seems to be designed more for use on tablets than on PCs. And I haven’t figured out how to use it from the terminal yet either.

It seem like a pretty good implementation though, and I am wondering why I haven’t heard much talk about it anywhere?

GitHubGitHub - objecthub/swift-lispkit: Interpreter framework for Lisp-based extension and scripting languages on macOS and iOS. LispKit is based on the R7RS standard for Scheme. Its compiler generates bytecode for a virtual machine. LispKit is fully implemented in Swift 5.Interpreter framework for Lisp-based extension and scripting languages on macOS and iOS. LispKit is based on the R7RS standard for Scheme. Its compiler generates bytecode for a virtual machine. Lis...
#tech#software#Lisp