[HN Gopher] GCC now includes Modula-2 and Rust. Do they work on ...
___________________________________________________________________
GCC now includes Modula-2 and Rust. Do they work on OpenBSD?
Author : solene
Score : 99 points
Date : 2022-12-19 18:19 UTC (4 hours ago)
(HTM) web link (briancallahan.net)
(TXT) w3m dump (briancallahan.net)
| bentt wrote:
| Modula-2! Now that's a name I've not heard in a long time. A long
| time.
| SoftTalker wrote:
| Indeed. Used it for one semester in my undergrad CS program.
| oytis wrote:
| Wonder who had enough motivation and time for Modula-2 work.
| anonymousiam wrote:
| Very cool. Pascal can be compiled with GCC by feeding it through
| the p2c front end. Obviously this isn't native support, but it's
| something!
|
| http://users.fred.net/tds/lab/p2c/
|
| and more here:
|
| http://www.garret.ru/ptoc/Readme.htm
|
| http://freesourcecode.net/cprojects/94701/Pascal-to-c-conver...
|
| https://web.archive.org/web/20060426224216/http://directory....
| doomrobo wrote:
| My guess is println! wasn't defined because the std crate isn't
| supported for the OpenBSD target yet
| saghm wrote:
| From looking at the supported platforms, the standard library
| seems to work for most OpenBSD targets, but they don't provide
| official builds (presumably due to not having anyone
| volunteering to maintain dedicated hardware for them to use for
| CI); the Tier 3 platforms[1] list OpenBSD on x86_64, i686,
| aarch64, sparc64, powerpc64, and riscv64gc as all having the
| standard library functioning. Due to there not being official
| builds, I'm guessing that there would either have to be an
| officially maintained package to install or you'd have to build
| it from scratch, though, but it seems likely that having a
| functioning compiler already means that you wouldn't have to
| fully bootstrap everything (and if you did, maybe it would be
| possible to bootstrap from rustc?)
|
| [1]: https://doc.rust-lang.org/nightly/rustc/platform-
| support.htm...
| nevi-me wrote:
| I think the simpler answer is that regardless of platform,
| gccrs can't yet compile core or std libraries, so println!
| won't work (https://github.com/Rust-GCC/gccrs/issues/1389).
|
| I don't think it's about what tier is supported in rustc, as
| that's compiled by LLVM in that case.
| scrame wrote:
| This is the first I've heard of Objective-C++ [1]. What kind of
| masochist would you have to be to pick that?
|
| [1] https://en.wikipedia.org/wiki/Objective-C#Objective-C++
| dagmx wrote:
| It's really great when you need to call ObjC APIs from C++ or
| vice versa.
|
| For the most part you can keep things as regular C++ and then
| just mix in some ObjC APIs when needed without splitting out
| your files and targets.
|
| It's extra useful because macOS provides a lot of really great
| utility libraries like dealing with media or networking, which
| means you can greatly reduce your dependency count on Apple
| platforms.
|
| I try and take the approach of reducing dependencies in favour
| of platform native APIs where possible when making multi
| platform code, and this is great for that.
|
| Of course it means you have different details on each platform,
| but I find it much more pleasant than having to keep building
| dependencies, and dealing with all the corresponding issues
| like security, size or dealing with platform specific
| acceleration.
| pjmlp wrote:
| NeXT, as means to bring C++ software into NeXTSTEP.
| arcticbull wrote:
| Objective-C is a superset of C, and Objective-C++ extends that
| to C++. It's really only meant as a shim layer to bridge C++
| libraries with Objective-C. Or at least, that was the case in
| the pre-Swift days.
| jaas wrote:
| The OS X platform code for Firefox is written in Objective-C++.
| It's not without issues, but overall it's a nice way to use
| Objective-C from within a larger C++ code base. I didn't find
| it difficult to work with, particularly as opposed to what we'd
| have to do if Objective-C++ didn't exist.
|
| If you want to see what this looks like, look at the .mm files
| here:
|
| https://github.com/mozilla/gecko-dev/tree/master/widget/coco...
|
| If you want a specific file to look at with good examples of
| how this works, here's one:
|
| https://github.com/mozilla/gecko-dev/blob/master/widget/coco...
|
| Basically what you're looking for is being able to make Obj-C
| calls (e.g. [[ChildView alloc] initWithFrame:r
| geckoChild:this]) from within what is otherwise normal C++, and
| vice-versa.
| MBCook wrote:
| Thanks! I remember hearing it existed long ago but I've never
| heard of it being used. Great explanation.
| fathyb wrote:
| I did, mostly for Metal-based rendering. It's great if you want
| to mix Apple's Objective-C APIs with your own C++ code.
| pjmlp wrote:
| Which is a much better solution than using the incomplete C++
| bindings released earlier this year.
| jxy wrote:
| this? https://developer.apple.com/metal/cpp/
|
| Doesn't it just use objc/runtime.h and if anything is
| missing you can just add your custom api calls?
| pjmlp wrote:
| That is exactly it, the additional effort to add missing
| calls, no Metal frameworks integration, it is mostly for
| basic workloads.
| chungy wrote:
| Seems a nice way to bury a lede :) No links back to GCC including
| the languages, and a look at https://gcc.gnu.org/ doesn't reveal
| it either, even if you click on changes for GCC 13.
___________________________________________________________________
(page generated 2022-12-19 23:00 UTC)