[Libre-silicon-devel] Hard show stopper for tools

Hagen SANKOWSKI hsank at posteo.de
Sun Nov 10 22:40:23 CET 2019


Don't Panic :-)

On 11/10/19 2:49 PM, Christoph Maier wrote:
>>From https://en.wikipedia.org/wiki/Scheme_(programming_language):
> 
> "Scheme has a diverse user base due to its compactness and elegance,
> but its minimalist philosophy has also caused wide divergence between
> practical implementations, so much that the Scheme Steering Committee
> calls it "the world's most unportable programming language" and "a
> family of dialects" rather than a single language."
> 
> Any programming language is only as compact and elegant as its
> installation procedure on different computers and operating systems.

I am understand your concern as we talked about that today in the Mumble
session.

Well, I am not a programmer or software engineer.

Regarding the huge amount of effort which has to be done for the cell
library and my tiny steps of progress as I started in Spring 2018 - I
faced non-scaling productivity.

So I thought about a languages I could take for the Standard Cell
Generator (Popcorn) - and started with Tcl. Month before the last
congress in 2018 I also recognized the not sufficient code quality in
Tcl for the Popcorn.

I went to a Rust course also, and start rewriting the Cell Generator in
a language I already learned at University in the nineties. Beside
Pascal, Prolog and a little bit of C this was Scheme. I did not wanted
to waste time by learning another language which could attract more
people. IMHO a LISPish language isn't the biggest problem we are facing.

So, as Tcl, Scheme is also used in the EDA field, the SKILL language you
are using to glue functionality together under the big Cadence tool
suite is Scheme. Magic has beside Tcl a Scheme command line interface
also. gEDA/gaf for schematic entry uses heavily Scheme for exporting the
netlist and for configuration. Anybody in the ASIC business area got -
beside Tcl - his first contact with Scheme; and unfortunately with Perl.

Over the years, scheme got a couple of revisions. R5RS was a big step
ahead to unify the implementations for teaching on the market around the
Millenium. With the overloaded, full blown R6RS later a contrary effect
occur, less implementation did the step to R6RS. So in R7RS the scheme
language get IMHO the best solution for being easy enough for teaching
functional programming and being sufficient enough for productive pieces
of software. I decide to use R7RS, which is already 6 years old - or had
to stuck on old R5RS implementations. R6RS isn't an option while nowhere
fully implemented.

There are a couple of R7RS runtimes/environments on the market, even the
not compatible Racket has the biggest current hype. But I decide to use
the GNU scheme shell "gosh" which is GPLed and supports R7RS with
version 0.9.6 onwards. BTW, this versions are shipped with Debian
unstable und Ubuntu 19.04 onwards. Hence I expect R7RS scheme support in
the next 20.04 LTS version of Ubuntu also.

Back to your topic in the Mumble session today..

Once, the Standard Cells are generated you can use all cells without
becoming a hard-core Scheme programmer or updating your secured Ubuntu
LTS box.

Being earnest, we are still using the languages, which fits our purpose
and we are kind of familiar with. Andreas uses Haskel, David eg. Python.

Nevertheless, I hope you'll find your way into LibreSilicon's heavy
development. :-)

Best Regards,
Hagen.

-- 
support LibreSilicon to get back into the Clean Room
https://www.gofundme.com/f/libresilicon-cleanroom-rent


More information about the Libresilicon-developers mailing list