Recent submissions

Comment · 5 years ago
Comment · 5 years ago
All diagrams were created with Inkscape.
Comment · 5 years ago
My experience in the lower-level aspects of hardware synthesis is limited but I would love to explore this topic.

I use proprietary synthesis tools for FPGAs everyday but I do not develop them. My situation is similar to that of a software engineer who uses compilers and who could only explain how they work in general terms.

Comment · 5 years ago
Comment · 5 years ago
Author here.

This post is part of an ongoing experiment to use Racket as a platform for hardware description languages. Describing a RISC-V core in Racket is a step in this direction, but the ultimate goal is neither to use Racket itself as an HDL, nor to define an embedded hardware description DSL in Racket. The long-term goal is to create an HDL that would benefit from Racket's "language-oriented programming" facilities, with the ability to simulate digital hardware, but also to generate standard Verilog or VHDL.

Comment · 6 years ago
I thing it was Borland Turbo C++ 3.0 for MS-DOS. It had syntax highlighting, integrated help with full language and API documentation. Which was useful because I didn't have Internet access back then, at the beginning of the 1990's.

I had to buy a new PC with an Intel 386 CPU, and add "extended memory" to run the IDE. It couldn't run with only 640 Ko of RAM.

Comment · 6 years ago
I am the author of the question at stackoverflow.

The racket topic on SO does not seem very active, so I thought I could get answers here as well.

Comment · 6 years ago
I didn't know that. I will fix the README of the project as well.
Comment · 6 years ago
Definitely. This could be the next step in my exploration of programming techniques to solve this problem. I will have a look at your implementation.
Comment · 6 years ago
The authors of the Gecode solver could explain it better than me, but I think that -O3 and -O4 perform a first pass that pre-compute variable bounds and values, which could reduce the exploration space significantly.
Comment · 6 years ago
I agree with that and I definitely will try.

As explained in the first comment, one of the motivations for the project was to learn constraint programming. The tablature generator could be a nice example to compare different paradigms and algorithms.

Comment · 6 years ago
Comment · 6 years ago
I think I understand what you mean. A trained guitar player would not need such a tool, and a beginner should probably avoid using it :). My original idea was to explore how I could rapidly get playable tablatures of jazz solos from available sheet music that I still cannot read fluently.

> It’s nice that computing the good fingerings takes a while

Actually, a few tweaks and the use of optimization options allowed to dramatically reduce the execution time for my 20-note example.

> Would be good to see some harmony and how the solver would deal with multiple notes at once.

Yes. I think it would take some effort to adapt the current set of constraints but it should be feasible.

> If you’re seriously writing out tabs and need some software, I’ve been using Dorico and it’s pretty damn good

Thanks for the tip. They don't seem to offer a Linux version though.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton