Replies: 5 comments 6 replies
-
On Fri, 30 Aug 2024, vmz9poa5 wrote:
Will be better than Rust. A lot of drama about Rust in Linux kernel
recently.
Interesting, what drama is there?
But I think they will never accept a non-curly braces languages.
I think garbage collection is unacceptable in a kernel and Rust is the
only mainstream language, that allows to handle allocation issues properly
for system programming.
Otherwise we should have Pascal and M2 code in Linux kernel already. M2
has a working GCC frontend.
It might be easier to contribute to the Oberon operating system, then?
|
Beta Was this translation helpful? Give feedback.
5 replies
-
On 8/30/24 03:36, Mika Nyström wrote:
Yes but lots of the "cool stuff" in M3 doesn't work if you start using untraced references. I suppose you could turn off the GC and use all the other stuff but DISPOSE things...? Topaz used GC in part of the kernel didn't it? But yeah certainly unacceptable in Linux.
You don't even have to turn off GC, just make all your reference types UNTRACED. But
apparently Rust has some sort of static checking that prevents dangling pointers, which
M3 does not. I have long wondered how it works, but time, priorities, etc. have kept
me from looking at it.
… —
Reply to this email directly, view it on GitHub <#1184 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABSVZNG5NP6G5IBALHTLMNTZUAVIXAVCNFSM6AAAAABNL6Y7W6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANBZGYYDAMQ>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
0 replies
-
You wouldn't have to turn GC off, just don't use the traced heap. Make all
the reference types UNTRACED and DISPOSE.
However, I understand that Rust has some kind of static system for preventing
dangling pointers with explicit deallocation, which Modula3 does not. I haven't
looked at it.
…On 8/30/24 03:36, Mika Nyström wrote:
Yes but lots of the "cool stuff" in M3 doesn't work if you start using untraced references. I suppose you could turn off the GC and use all the other stuff but DISPOSE things...? Topaz used GC in part of the kernel didn't it? But yeah certainly unacceptable in Linux.
—
Reply to this email directly, view it on GitHub <#1184 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABSVZNG5NP6G5IBALHTLMNTZUAVIXAVCNFSM6AAAAABNL6Y7W6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANBZGYYDAMQ>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
0 replies
-
exactly.
rust was suggested and accepted because it had to bring memory safety to the table.
m3 without gc doesn't have that amount of memory safety. well it has some, it won't allow to easily write or read over the array bounds, and even m2 is a safer language than c in many cases.
ada could be suitable for writing parts of the kernel, but here we come to the other, non technical stuff. i think rust developers were passionate enough about inclusion of rust to the kernel build infrastructure, and linus torvalds was at that time moderate enough to accept it, and be more liberal.
no community behind other languages were eager or active enough. and perhaps nobody would even imagine that some other language could be accepted for kernel development. and now when rust is there, we wonder: wow, was it possible? and we start to ask questions about m3 or some other language.
p. s. there was a thread in openbsd mailing list about inclusion of rust in the openbsd development. theo was very much against it. mostly because:
a) low level development must be done in many cases by unsafe code anyway.
b) rust cannot even build itself on 32bit architectures because it requires so many memory for the build that it gets out of address space limit.
On Sun, 01 Sep 2024 12:28:35 -0700
"Rodney M. Bates" ***@***.***> wrote:
… You wouldn't have to turn GC off, just don't use the traced heap. Make all
the reference types UNTRACED and DISPOSE.
However, I understand that Rust has some kind of static system for preventing
dangling pointers with explicit deallocation, which Modula3 does not. I haven't
looked at it.
On 8/30/24 03:36, Mika Nyström wrote:
>
> Yes but lots of the "cool stuff" in M3 doesn't work if you start using untraced references. I suppose you could turn off the GC and use all the other stuff but DISPOSE things...? Topaz used GC in part of the kernel didn't it? But yeah certainly unacceptable in Linux.
>
> —
> Reply to this email directly, view it on GitHub <#1184 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABSVZNG5NP6G5IBALHTLMNTZUAVIXAVCNFSM6AAAAABNL6Y7W6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTANBZGYYDAMQ>.
> You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
>
--
Reply to this email directly or view it on GitHub:
#1184 (comment)
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
--
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
-- C.A.R. Hoare
|
Beta Was this translation helpful? Give feedback.
0 replies
-
On Sun, 1 Sep 2024, Norayr Chilingarian wrote:
exactly.
rust was suggested and accepted because it had to bring memory safety to the table.
m3 without gc doesn't have that amount of memory safety. well it has
some, it won't allow to easily write or read over the array bounds, and
even m2 is a safer language than c in many cases.
Modula-3 with Extended Static Checking (ESC) would be an interesting
alternative. With wide availability of SMT solvers like Z3, Modula-3 ESC
might be revamped?
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Will be better than Rust. A lot of drama about Rust in Linux kernel recently. But I think they will never accept a non-curly braces languages. Otherwise we should have Pascal and M2 code in Linux kernel already. M2 has a working GCC frontend.
Beta Was this translation helpful? Give feedback.
All reactions