[ Content | Sidebar ]

New NVC version 1.5.3

November 13th, 2021

I’ve released a new version 1.5.3 of NVC, the VHDL compiler I’m working on. This is hopefully the final bug fix release on the 1.5 branch containing the following changes back-ported from the development branch:

  • Handle access(2) returning EPERM in macOS sandbox.
  • Fix race when multiple processes concurrently update a library.
  • Fix --syntax command when file contains multiple design units.
  • Allow constant folding of nand/nor/xor/xnor.
  • Fix potential out of memory condition when evaluating complex assert expressions.
  • Fix incorrect result of mod operator with negative operands.
  • Fixed intermittent crash when evaluating nested constant records.
  • Buffer too small for printing TIME’HIGH.

nvc-1.5.3.tar.gz
nvc-1.5.3.tar.gz.sig

This release is signed with GPG key fingerprint 0784 505A DB5D 7D86 D2BD E6DA BCDB 295F 7431 9F1A. Download both the .sig and .tar.gz files and verify with:

gpg --keyserver pgp.mit.edu --recv-keys BCDB295F74319F1A
gpg --verify nvc-1.5.3.tar.gz

How I Accidentally Discovered Gnome’s Emoji Keyboard

October 31st, 2021

After I updated Gnome recently I was alarmed to discover my usual C-. key binding in Emacs was broken and also now stealing the keyboard input. Turns out it’s Gnome/Ibus’s emoji input method which was previously bound by default to C-Shift-e and I was completely unaware of. It’s quite fun! (You can change the shortcut key to whatever you want in ibus-setup.)

Shengsi Island

October 3rd, 2021

Got out of Shanghai for the first time in 2021 last weekend. Not far though, just to a little island off the coast. You can get there quite conveniently with a combined coach and ferry ticket from Nanpu Bridge tourist coach centre. The ferry actually leaves from another island, Yangshan island, which is home to a huge container port and connected to the mainland by a long sea bridge.

There’s enough small attractions to spend a weekend, including beaches, temples, and a lot of cliffs, which you can see pictures of below. I liked the relaxed style of the little fishing villages.

Carol Vorderman’s Best Selling Compiler Textbook

September 19th, 2021

Now I’ve heard Amazon has being going downhill recently but…

I love how Carol Vorderman hasn’t aged at all since I watched her on Coutdown after school in the 90s. And how did the “Salter Air Fryer Cookbook” end up on there? The first book seems a solid recommendation though…

Transferring Money Home From China

September 5th, 2021

If you work in China sooner or later you’re going to want to transfer some of your salary back home. After a few initial failures and now three straight successes I thought I’d document the process here in the hope that it avoids frustration for others.

The main problem is China’s currency controls. You can’t just wire RMB outside the country and have it automatically converted into your home currency like can for say, USD to GBP. You first need to convert RMB to a freely convertible currency inside China, and then wire transfer that money out. That means you need a foreign currency account with your Chinese bank in addition to the normal bank account where you get paid.

Don’t think you can just walk into the bank and do this though. First you need to collect a lot of paperwork. You’ll need:

  • Your bank card.
  • Your passport, and any previous passports if another document references the old passport number.
  • Your work permit.
  • A signed copy of your employment contract.
  • The name, address, SWIFT code, and IBAN of your home bank account.
  • 完税证明, a certificate that shows tax paid (see below).
  • Physical payslips for each month shown on the tax certificate. If you only have electronic payslips you need to print them out and get your company to stamp them.

The tax certificate is most troublesome. To get it you need to visit the local tax office (税务总局) and say you want to 开完税证明 kāiwánshuìzhèngmíng. In Shanghai at least they have a special counter for foreigner tax services. You have to tell them the date range you want the certificate to cover: the certificate needs to show income after tax of at least the amount you want to transfer. It might also be possible to get this online if you have an account on the 个人所得税 app (the one you’re supposed to use for tax returns), although I’ve not done this myself.

At last you can go to the bank. Every bank I’ve been to only handles currency conversion Monday-Friday, and only before 3pm. So I suggest you go in the morning and leave a lot of time. Tell them you want to 换外币 huànwàibì or something to that effect and they’ll give you a ticket. Wait for your turn and then tell them how much you want to exchange and into what currency. Give them all the documents and get ready for a lot more waiting.

As I mentioned earlier the first step is to open a foreign currency account. You can either ask for this explicitly or just act confused and hope they do it for you (worked for me). As part of this they’ll ask you to sign some scary looking legal agreements about money laundering and so on. Whatever, just sign them. You only have to do this the first time.

Then you can actually do the currency exchange. With luck this won’t require much interaction, just wait while they check and photocopy the documentation and finally you’ll have to enter your PIN and sign something to confirm.

They’ll stamp the tax certificate with how much you transferred and the date. Make sure you keep this for your next trip or things will get confusing.

The last step is to wire transfer the money back home. The first time I did this I had to go to a different counter to input my bank’s details. It seems like it’s easy to make a mistake here but I suspect all that matters is the name, SWIFT code, and account number are correct. Subsequent times the account information was saved so I could just do the wire transfer from the bank’s app which was super convenient. The fees are a bit steep though: expect to pay 300 RMB or so plus any fee on the receiving side, so it’s best to only transfer large amounts. Every time I’ve transferred to the UK its arrived on the same day.

Some Flyover

August 27th, 2021

It’s so hot at the moment I can’t really face going outside. Occasionally in the evening it’s tolerable though and here’s a large mass of concrete I passed under the other evening.

Filed in photos - Comments closed

New NVC version 1.5.2

July 28th, 2021

I’ve released a new version 1.5.2 of the VHDL compiler I’m working on. This is the second bug fix release on the 1.5 branch containing the following changes back-ported from the development branch:

  • Link libexecinfo on FreeBSD.
  • Implement textio READ procedure for BIT and TIME.
  • Fixed a crash when a long running procedure suspends in a loop.
  • Fix static linking with LLVM 12.0.
  • Fix crash when assigning to a signal declared in a package.
  • Fix incorrect recording of dependencies which caused a failure to load generated DLLs on Windows.
  • Fix file locking error when a library is located on NFS.
  • Optimise loading large library index from disk.
  • Fix a crash when using ‘VALUE with enumeration subtypes.
  • Fix a crash when a signal with more than 256 elements is declared in a package.

nvc-1.5.2.tar.gz
nvc-1.5.2.tar.gz.sig

This release is signed with GPG key fingerprint 0784 505A DB5D 7D86 D2BD E6DA BCDB 295F 7431 9F1A. Download both the .sig and .tar.gz files and verify with:

gpg --keyserver pgp.mit.edu --recv-keys BCDB295F74319F1A
gpg --verify nvc-1.5.2.tar.gz

There is now a public git mirror at https://git.nickg.me.uk/nvc.git if you prefer not to use GitHub.

Filed in vhdl - Comments closed

Get Vaccinated Win An iPhone

July 25th, 2021

Throughout June and July the Shanghai local government has been trying a new tactic to convince people to take the coronavirus vaccine: bribes. At many vaccination centres you can be entered into a draw to win a phone or receive some other free gift. It’s clearly working as apparently 70% of adults have now been vaccinated. I’ve collected a few examples below that I either saw myself or were shared around on WeChat.

I passed this one on the way to work. The text says “get the coronavirus vaccination here and receive five litres of cooking oil”.

This district is clearly lacking imagination: the sign says “take the vaccine and receive 300 RMB cash after the second injection”.

A sign at Shanghai International Tourism Resort. It says “take the vaccine inside the resort and receive a free entrance ticket”.

This one says if you take the vaccine here, you’ll be entered into a prize draw. The top prize is an iPhone 12 and the second one is a Macbook, although the seventh prize is just some eggs.

This lady won a phone at another location after getting her vaccination. There’s a maximum of one per day but if you don’t win anything you still get five litres of cooking oil.