Skip to content
/ ferret Public
forked from nakkaya/ferret

Ferret is a free software lisp implementation for real time embedded control systems.

License

Notifications You must be signed in to change notification settings

chr15m/ferret

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ferret

Current Release CI Build Status BSD 2 Clause License

Ferret is a free software lisp implementation designed to be used in real time embedded control systems. Ferret lisp compiles down to self contained C++11. Generated code is portable between any Operating System and/or Microcontroller that supports a C++11 compliant compiler. It has been verified to run on architectures ranging from embedded systems with as little as 2KB of RAM to general purpose computers running Linux/Mac OS X/Windows.

This repository contains the Ferret compiler. For more information about Ferret, including downloads and documentation for the latest release, check out Ferret's website

General Information

Quick Start

Download latest Ferret release,

wget https://ferret-lang.org/builds/ferret.jar

A program that sums the first 5 positive numbers.

;;; lazy-sum.clj
(defn positive-numbers
  ([]
   (positive-numbers 1))
  ([n]
   (cons n (lazy-seq (positive-numbers (inc n))))))

(println (->> (positive-numbers)
              (take 5)
              (apply +)))

Compile to binary using,

$ java -jar ferret.jar -i lazy-sum.clj
$ g++ -std=c++11 -pthread lazy-sum.cpp
$ ./a.out

About

Ferret is a free software lisp implementation for real time embedded control systems.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Makefile 100.0%