yamlscript

Ingy döt Net 2024-05-26T10:59:57.682129Z

This is surprising me:

$ bb '(resolve (quote file-seq))'
#'clojure.core/file-seq
$ ys -pe '(resolve (quote file-seq))'
nil
$ ys -pe 'file-seq'
Error: Could not resolve symbol: file-seq
ys refers all of clojure.core like bb does. Where is file-seq??

Ingy döt Net 2024-05-26T11:15:03.697689Z

Yeah I know it's there. Just don't know why:

$ ys -pe 're-find'
#object[clojure.core$re_find 0x57ef75c3 "clojure.core$re_find@57ef75c3"]
$ ys -pe 'clojure::core/re-find'
#object[clojure.core$re_find 0x57ef75c3 "clojure.core$re_find@57ef75c3"]
$ ys -pe 'file-seq'
Error: Could not resolve symbol: file-seq
  in file '/home/ingy/NO-NAME' line 1 column 1

$ ys -pe 'clojure::core/file-seq'
Error: Could not resolve symbol: clojure.core/file-seq
  in file '/home/ingy/NO-NAME' line 1 column 1
I've never seen anything missing from clojure.core before.

Ingy döt Net 2024-05-26T11:19:13.205939Z

Ah. https://github.com/babashka/babashka/blob/master/src/babashka/impl/clojure/core.clj#L147 I have seen this before with spit and slurp. @borkdude said something about them being special because in bb because of clojure releases but I forget the specifics...

Ingy döt Net 2024-05-26T11:23:05.821429Z

Speciall in SCI rather: https://github.com/yaml/yamlscript/blob/main/core/src/yamlscript/runtime.clj#L59

Ingy döt Net 2024-05-26T11:28:29.270979Z

~/src/yamlscript main $ YS -pe 'file-seq: io/file("perl")'
(#object[java.io.File 0x52d0f583 "perl"]
 #object[java.io.File 0x353f472a "perl/.gitignore"]
 #object[java.io.File 0x4525e9e8 "perl/doc"]
 #object[java.io.File 0x443a53df "perl/doc/YAMLScript.md"]
 #object[java.io.File 0x6c33da7a "perl/Makefile"]
 #object[java.io.File 0x69aabcb0 "perl/lib"]
 #object[java.io.File 0x32a72c4 "perl/lib/YAMLScript"]
 #object[java.io.File 0x15986dd5 "perl/lib/YAMLScript/Alien.pm"]
 #object[java.io.File 0x678a9516 "perl/lib/YAMLScript.pm"]
 #object[java.io.File 0x5bf9ea6b "perl/test"]
 #object[java.io.File 0xb950f82 "perl/test/load.t"]
 #object[java.io.File 0x5d352de0 "perl/Meta"]
 #object[java.io.File 0x6e243175 "perl/Changes"])
Yay! Happy!

Ingy döt Net 2024-05-26T11:30:55.617029Z

YS is a little shell script I use to test local changes to ys from the command line: https://github.com/yaml/yamlscript/blob/main/.profile#L10-L17 Since ys takes a long time to re-compile (native-image)