November 28th, 2022
I’ve been meaning to go back to Ely ever since I walked there a month or so ago but arrived after dark. Well I finally did this weekend and went inside the cathedral, and very impressive it is too!
It seems a bit silly having enormous cathedral in such a tiny town (one of England’s smallest). You can see it from miles around too owing to the fens being completely flat. The entrance ticket is a pretty reasonable £8.50: take that, York Minster!
November 6th, 2022
It was my birthday last weekend so we took my niece for her first ever trip on the Romney, Hythe, and Dymchurch railway which has been feature multiple times previously on this blog.
The train is indeed minature
It rained a lot in the morning but still a great day out. And I found something interesting! Here we see an earlier version of your correspondent standing next to engine number 12 in the distant past:
Around 1988 ish
And in exactly the same location, here’s number 12 again! (It’s the same engine, I asked, they just painted it black at some point.)
2022, note the platform refurbishment
October 30th, 2022
I’ve used mu4e as an email client for several years now and by and large I’m happy with it. However one big change with the 1.8 release was the switch from the “old” message view to the new one based on Gnus article mode. Functionally it’s fine but I did prefer the look and feel of the old message view. Despair not, as Gnus is sufficiently customisable that we can tweak it to look almost the same.
First we do the easy bit which is just setting the font-lock highlighting to match the old message view:
(gnus-signature ((t (:inherit font-lock-comment-face))))
(gnus-header-name ((t (:inherit message-header-name :weight bold))))
(gnus-header-from ((t (:inherit font-lock-variable-name-face))))
(gnus-header-subject ((t (:inherit font-lock-type-face))))
(gnus-header-content ((t (:inherit font-lock-type-face))))
(gnus-cite-attribution ((t (:inherit default))))
(I’m using the excellent use-package.)
These aren’t strictly the same as the original message view, but I prefer them to Gnus default of multiple subtly different shades of blue:
(gnus-cite-1 ((t (:foreground "light salmon"))))
(gnus-cite-2 ((t (:foreground "turquoise"))))
(gnus-cite-3 ((t (:foreground "light goldenrod"))))
(gnus-cite-4 ((t (:foreground "chartreuse2"))))
Mu4e used to highlight some of the header fields in different faces:
(add-to-list 'gnus-header-face-alist '("To" nil font-lock-variable-name-face))
(add-to-list 'gnus-header-face-alist '("Reply-To" nil font-lock-variable-name-face))
(add-to-list 'gnus-header-face-alist '("Cc" nil font-lock-variable-name-face))
Restore the previous sort order for header fields:
(setq gnus-sorted-header-list '("^From:" "^To:" "^Reply-To:" "^Cc:" "^Subject:"
"^Flags:" "^Summary:" "^Keywords:" "^Newsgroups:"
"^Followup-To:" "^Date:" "^Organization:"))
>>, etc. at the start of quote lines in addition to the quoted text itself (this really bothered me for some reason):
(defun filter-gnus-cite-args (args)
"Replace PREFIX argument with the empty string."
(setf (cadr args) "")
(advice-add 'gnus-cite-add-face :filter-args 'filter-gnus-cite-args)
October 23rd, 2022
Another surprise relocation! I’ve moved to Cambridge after being turfed out of my parents’ home. Earlier this month I set off northwards on an initial exploration towards the city of Ely.
I ended up doing this over two days due to illness (not covid) but still I somehow didn’t manage to arrive in Ely until after dark so I didn’t really see anything of England’s third smallest city.
Oh, how flat and featureless the fens are! Flat terrain can sometimes be interesting to walk through if there’s some navigation challenges or other obstacles (see my recent adventures on the Romney marsh) but as I was along this river for most of the journey the middle section after leaving Cambridge was really boring. The scenery picked up a little bit towards the end though when I could see Ely cathedral in the distance from miles away.
September 16th, 2022
I went for another walk along the Kent coast a few weeks ago, this time around the back of Folkestone near the Channel Tunnel and on to Dover.
Channel Tunnel terminal
I thought maybe I’d get a good view of the tunnel entrance from the hills above but it wasn’t as impressive as I’d imagined. Back when it first opened there was an exhibition centre somewhere around here but it must have been demolished.
A precipitous drop near Dover
The section of cliff-top path between Folkestone and Dover was awesome, I’ll give it 9/10 for walking experience. Dover itself doesn’t seem to have a lot worth visiting except the castle and the port. I dimly remember a family trip to the castle, but might warrant a repeat visit.
August 7th, 2022
I’ve just released another version of my VHDL simulator. The highlight of this release is greatly improved VHDL-2008 support. It’s now sufficiently complete to run OSVVM, UVVM, and NEORV32.
A special thank you to Brian Padalino and T. Meissner for sponsoring me!
This release is signed with my PGP key ID
- Breaking change: In-tree builds are no longer supported: use a separate build directory instead.
- Breaking change: The
--force-init command is deprecated and has no effect.
- Added support for VHDL-2008 type generics on packages and entities.
- Diagnostic messages have been enhanced with more contextual information.
- Added support for record element constraints and record fields with unconstrained array types.
- Alias of multidimensional array allowed in VHDL-2008 mode.
- Implemented VHDL-2008 rules for aggregates with slices.
- VHPI is now always enabled at build time and the
--enable-vhpi configure option has no effect.
- Arithmetic operations that overflow the underlying machine type now produce an error (#101).
- Added support for VHDL-2008 force/release assignments.
- Basic support for external names in VHDL-2008.
- Matching case
case? statements are supported in VHDL-2008 mode.
- Fixed several bugs in the implementation of guarded signals.
- Implemented VHDL-2008 rules for generic visibility.
- Shared variable declaration permitted in entity declaration.
- Case expression no longer requires a locally static subtype in VHDL-2008 mode (#460).
- The VHDL heap is now garbage collected as required by VHDL-2019 and the
deallocate operator has no effect other than setting the access to
- A new global option
-H specifies the size of the simulation heap and defaults to 16 megabytes.
- Concurrent procedure call allowed in entity statement part.
- Added support for
'ELEMENT attributes in VHDL-2008.
- The new top-level
--init command creates a new empty library directory.
-a analysis command now reads from the standard input if the file name is
- Added support for array element constraints in VHDL-2008.
--prefer-explicit analysis option which was deprecated before the 1.0 release has been removed.
- A new
--relaxed analysis option enables “relaxed rules” mode. This has the same effect as enabling all the existing
--relax= options. However some constructs will still produce warnings.
--relax= analysis option is deprecated and is now equivalent to passing
--relaxed. The individual options are ignored.
- Added support for generic subprograms in VHDL-2008.
- New command
--install allows easy installation of common third-party packages such as OSVVM and UVVM.
- Identifiers in waveform dumps are now in lower case instead of upper case.
- The function
NVC.SIM_PKG can be used to query the current delta cycle number.
August 3rd, 2022
I went for a walk last weekend near Folkestone and to my surprise I discovered a castle!
It’s Saltwood castle and is, somewhat incredibly, someone’s private residence so you can’t go inside which is a shame.
July 22nd, 2022
A little walk I did recently along the South Downs Way near Eastbourne.
Nothing really remarkable happened but I got free tea and cake from a church (thanks Jesus!) and the scenery was nice. I missed these open chalk downlands.
June 30th, 2022
As promised I went out to explore the nearby wind farm and in doing so made another crossing of the Romney marsh!
The place is called Little Cheyne Court wind farm and it was built in 2008 after a lot of local opposition. There’s a public footpath running right through it so you can get up really close to the turbines. It’s actually pretty scary standing underneath them with the blades spinning.
After that I plodded over the marsh to Dymchurch. Dymchurch is lovely! It’s a very stereotypical slightly-tacky British seaside resort, like a time capsule from the 60s or 70s. I had a 99 with a flake from an ice cream van, it was wonderful.
June 25th, 2022
I recently added support for VHDL-2008 generic subprograms to NVC. As far as I know it’s the first open source VHDL simulator to support them and allows you to write type-generic functions and procedures like this:
function fact generic (type t;
function "*"(l, r : t) return t is <>;
function "-"(l, r : t) return t is <>;
function "<"(l, r : t) return boolean is <>;
one : t)
(n : t) return t is
if n < one then
return n * fact(n - one);
And then make concrete instances of the generic function:
function fact_int is new fact
generic map (t => integer, one => 1);
function fact_real is new fact
generic map (t => real, one => 1.0);
is <> syntax in the declaration above picks up the default
< operators for that type from the context so there’s no need to specify them in the generic map.
assert fact_int(5) = 120;
assert fact_real(4.0) = 24.0;