tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] github


From: Michael Matz
Subject: Re: [Tinycc-devel] github
Date: Tue, 21 Apr 2020 16:04:43 +0200 (CEST)
User-agent: Alpine 2.21 (LSU 202 2017-01-01)

Hello,

On Sun, 19 Apr 2020, Giovanni Mascellani wrote:

TinyCC is great because it supports so much configurations (3 OSes, even
more CPU archs).

But the downside is, that nobody can ensure that his change wont break
any of these configurations.
(Probably most of us are testing only on their own PC, which is one OS
with probably x86-64).

How about a CI?

I am not a core dev, but I set up a CI for tcc:

 https://gitlab.com/giomasce/tinycc/pipelines

Unfortunately it is currently broken. I believe the CI is broken, not
tcc, because it wasn't broken before my last round of CI script
maintenance. I'll try to fix them as soon as I have some time, but if
someone wants to check them out in the meantime I won't complain.

Yeah, I've seen the breakages, but had no bright idea, see below.

Currently armhf fails with "Illegal instruction", and I don't know if
the problem is QEMU emulation or tcc itself, because the same commit did
work before I did my last round of changes.

Yeah, I figured something must be up with the emulator. No way TCC is generating genuinely illegal instructions :) It would be helpful if the emulator would give some hint of the instruction bytes it thinks are illegal :) (One guess of mine was that the emulator is run in a mode where e.g. Neon instructions are invalid?)

riscv64 has a failing test, and that could be a genuine tcc bug. If so, it is probably introduced by recent "win32: long double as distinct C-type" commit. Broken test is "70_floating_point_literals", see the log[1].

Yeah, but I don't think there's a TCC problem. The failure in riscv64 is random (i.e. changes place from test to test, when the pipelines are re-triggered by unrelated changes, just browse the different fails). I've looked at one of the testcases claimed to be failing and it's definitely correct code.

[1] https://gitlab.com/giomasce/tinycc/-/jobs/507946108

As soon as I have some time, I'd like to fix these problems and eventually support Windows and macOS too. I believe this architecture with QEMU running in GitLab CI can work, but suitable Windows and macOS images have to be prepared and compilation scripts adapted. QEMU TCG emulation is slowish, but if we prepare images with a snapshot so that the VM doesn't have to go through the whole boot sequence it might be reasonable.

Are there macOS images? Because if so, I could probably look at adding Mach-O support on a rainy day. Without access to MacOS that's going to be difficult :)


Ciao,
Michael.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]