The diff updates the wren_cli.vcxproj file by replacing the PlatformToolset from v142 to v141 across all four active build configurations (Release 64bit, Release 32bit, Debug 64bit, Debug 32bit). Additionally, it removes four orphaned PropertyGroup entries that referenced mismatched platform/architecture combinations (e.g., Debug 32bit|x64, Debug 64bit|Win32, Release 64bit|Win32, Release 32bit|x64) which were left over from a previous toolset migration and no longer correspond to valid build targets.
Wren CLI
The CLI project is a small and simple REPL and CLI tool for running Wren scripts.
It is backed by [libuv][http://libuv.org/] to implement IO functionality, and is a work in progress.
To build the Wren CLI
Windows
The projects/vs20xx folders contain Visual Studio projects.
macOS
The projects/xcode folder contains an Xcode project.
Linux
The projects/gmake folder contains a make project.
From that folder, run make.
cd projects/gmake
make
FreeBSD
The projects/gmake folder contains a gmake project.
From that folder, run gmake.
cd projects/gmake
gmake
Alternative build options
The projects are generated by projects/premake.
You can use premake5 (alpha 14 was used) to generate other projects.
Wren is a small, fast, class-based concurrent scripting language
Think Smalltalk in a Lua-sized package with a dash of Erlang and wrapped up in a familiar, modern syntax.
System.print("Hello, world!")
class Wren {
flyTo(city) {
System.print("Flying to %(city)")
}
}
var adjectives = Fiber.new {
["small", "clean", "fast"].each {|word| Fiber.yield(word) }
}
while (!adjectives.isDone) System.print(adjectives.call())
-
Wren is small. The VM implementation is under 4,000 semicolons. You can skim the whole thing in an afternoon. It's small, but not dense. It is readable and lovingly-commented.
-
Wren is fast. A fast single-pass compiler to tight bytecode, and a compact object representation help Wren compete with other dynamic languages.
-
Wren is class-based. There are lots of scripting languages out there, but many have unusual or non-existent object models. Wren places classes front and center.
-
Wren is concurrent. Lightweight fibers are core to the execution model and let you organize your program into an army of communicating coroutines.
-
Wren is a scripting language. Wren is intended for embedding in applications. It has no dependencies, a small standard library, and an easy-to-use C API. It compiles cleanly as C99, C++98 or anything later.
If you like the sound of this, let's get started. You can even try it in your browser! Excited? Well, come on and get involved!