|
I dunno, the youth of today ... I died in two World Wars for the likes of them! Bring back National Insurance, that's what I say! Couple of years in a Building Society, do 'em a world of good!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You know Mike - I just got the joke.
Charlie Gilley
“Microsoft is the virus..."
"the problem with socialism is that eventually you run out of other people's money"
|
|
|
|
|
test again
Charlie Gilley
“Microsoft is the virus..."
"the problem with socialism is that eventually you run out of other people's money"
|
|
|
|
|
Btw. you can test anonymous, when you reply to an old post to one of your answers ![Wink | ;)](https://codeproject.global.ssl.fastly.net/script/Forums/Images/smiley_wink.gif)
|
|
|
|
|
I temporarily abandoned SVG processing in favor of TinyVG. I'm not done with it. The specification document for the file format is atrocious so I'm looking at the code.
But the code they provide is in Zig and although that will interface with native C, my embedded toolchains don't support Zig.
So C++ it is. Lots of porting. Zig is Rusty. That is to say, somewhat Rustish, syntactically. I don't care for it. Particularly I don't like the exception handling. Ugh. What is wrong with try catch?
And local functions (functions nested in functions) are annoying. Remind me never to use those in C# either.
I don't get why people would produce a potential standard using a newish language that hasn't really matriculated or cemented itself among developers yet.
Providing a C or even C# reference implementation would get a lot more mileage, IMO, just because more people know it, and what happens if Zig never catches on like happens to so many new languages?
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Many have tried to find a better C then C but C and C++ are so embedded in embedded that it will be almost impossible to unembed them.
Although I kinda like Rust, it's not well enough established yet to make it to production.
ZIG is interesting but I don't think it will take off.
Plus I found years ago that most developers are not willing to learn another language for day-to-day work and with the way that code is currently developed I can't say as I blame them.
If it ain't broke don't fix it.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
Zig is neat, but "neat" doesn't deliver.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
honey the codewitch wrote: Zig is neat, but "neat" doesn't deliver.
and don't buy the groceries, or rent, etc..
I once was in a large shop that used C exclusively and I was asked to rewrite a huge project, I did it in C++ and the manage called in a associate that I was friendly with and she asked him; "Does he know what he's doing?"
The project got completed and worked great.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
C++ has really endeared itself to me over the past few years. Before that I was kind of favoring C#, because for all its power, C++ can be really stodgy and finicky.
That being said, embedded kind of forced me back to it, and using it regularly again has smoothed out the rough edges for me, better than ever before, so I'm proficient and productive with it.
Well, not the STL. I'm so rusty with that, because I don't use it with embedded. Frankly I stick to the C standard libraries mostly, because they're more consistent implementationwise platform to platform on embedded. I'm pretty good with the language features though, and reimplementing basic STL functionality as I need it.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I agree, I also have been using it since doing embedded. I'm starting to use it on the STM32 platform now and really liking it. To me using C is like going back to black and white after seeing color. C++ just has so much more to offer.
I won't say I'm proficient using C++ but am picking it up as I go. Don't have any project to really challenge my skills and so I only use the basics.
I've never used STL so I don't miss it.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
The STM32s w/ CubeMX are alright. You can use them with Zephyr too.
I'm kind of disappointed in the hardware selection offered by STM32. They don't really push the envelope for ARM devices the way NXP does.
The issue with NXP is coding w/ MCUXpresso is like having your teeth pulled.
But 1GHz ARM Cortex M (not a typo) in the NXP MIMIXRT1170 that can take various types of external "flash" including - get this - m.2 storage, plus external RAM including DDR3 is an absolute beast. It has a second 400MHz lower power Cortex M core as well. It is, as far as I know, the only realtime MCU that can run Linux.
Really amazing kit. I have a $200 devkit w/ it but MCUXpresso has kept me from doing more with it.
There's scuttlebutt on the PJRC forums that the next Teensy will use this chip. If so, they will support Arduino. What a world.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
To me, Zig is to C as Rust is to C++.
The thing with Zig's exception handling is that it doesn't really have exception handling. IMO Zig having try and catch keywords just makes things confusing. I like the idea behind what they do in Zig. They give you a nice way to do Golang-style error handling without needing to write if err != nil everywhere. But calling them try and catch can add confusion given what those keywords do in other languages. Having said said, I find Zig's try , catch , defer , and errdefer are a decent but not perfect way to deal with errors.
As for what's wrong with traditional try-catch exceptions, I imagine Zig's creator would argue they violate the language's "No hidden control flow" principle. Kind of the same argument Joel Spolsky made here 20ish years ago. As a member of the Golang dev team put it: "The reason we didn't include exceptions in Go is not because of expense. It's because exceptions thread an invisible second control flow through your programs making them less readable and harder to reason about."
It's really a matter opinion, of course. It's fine to prefer traditional exceptions, too.
As for why use Zig instead of something else: I suspect that's personal to the developer. Maybe they liked the simplicity and flexibility of C, but wanted more sophisticated metaprogramming and fewer footguns. It might be that Zig gave them the little bit of extra joy that was the difference between creating and not creating the project.
I've been there. Sometimes when you're feeling a bit burned out and jaded, trying a new language brings back that little spark of joy that reminds you of why you started programming in the first place, and inspires you to take on an ambitious project you might not have been otherwise been able to muster the energy for.
|
|
|
|
|
I get it. While I still don't understand the exception handling flow vs. syntax (i've only gleaned what I have about the language from reading actual code, not the manual) I'll defer to your position that it's more elegant that C style error bubbling via return values.
I don't like the syntax of zig. "fn", types trailing the name, etc. it's like all the things i didn't like about pascal anew.
But my major sticking point here is the reference implementation provided with the TinyVG package. It should not be in Zig, even if the original proof of concept was written in Zig. It needs to be ported to a more traditional language. I'd recommend C.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
and ran across this one; Mouse Pad[^]
Suitable for when I run into coding problems.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
They could do a little better with the framing.
I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.
I’m begging you for the benefit of everyone, don’t be STUPID.
|
|
|
|
|
|
I'm honored.
Would this [^] be our theme song.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
Sho nuff!
Jeremy Falcon
|
|
|
|
|
Raccoon city cult?
Just in case... resident evil joke
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Nelek wrote: resident evil joke I was about to say... I don't get it.
Had a buddy back in the day who played Resident Evil (talking like PS1 days), but I never played it. Sim City on the other hand...
Jeremy Falcon
|
|
|
|
|
Film serie (Mila Jovovic) or Animation Films (at least 5) and a Netflix Serie or 2 are out there too
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
My Mice have a pad in the garage
I know because they keep stepping on the Mouse Trap
I guess they like Peanut Butter Crunchy style
10 this summer I need a Cat NOT sorry HoneyWitch
|
|
|
|
|
I'll make some statements I believe to be true and then you can respond to each statement with true/false & reasoning.
On Windows x64 (and maybe Linux too) a (normal) process
1. gets an address space which is 4GB in size when the process starts
2. OS modules take up certain portion of that address space (1GB?)
3. The rest (3GB) is used for the stack & heap of the running process
4. As the app instantiates new objects (allocates memory for objects) on the heap, the amount of memory the process uses grows -- but it can never grow beyond the 3GB (4GB total) anyways, right?
5 ## This is a biggie ## A process can never eat up more memory than its address space allows 3GB (4GB total) so a process can never really impact another process anyways because each one is limited to 4GB anyways, right?
6. Extreme Example - If there is 128GB RAM in the hardware and we say OS (associated services) take up 28GB (to make things easy) and there are two services running (2 X 4GB = 8GB) then this machine could never run out of memory, since it would have 92GB just sitting idle
7 Driving A Point Home - So when a developer notices that the app he wrote running on the Server keeps crashing with "out of memory" error, then looks around and says, "Hey, wait a second, I think your service (which has been running on the Server long before aforementioned dev's app) is eating up memory and making mine die", then that developer doesn't understand process address space, right? Right? Right!
This is also why
A. you can solve memory problems created by lots of processes running, by installing more memory (if hardware is further expandable)
B. You cannot solve memory problems of a service or app that crashes due to low memory (since it is simply eating it's own memory) by installing more memory (even if hardware is furhter expandable).
Agree? Agree some? Disagree? Disagree entirely?
modified 3 days ago.
|
|
|
|
|
The 4GB limit is a Windows 32 limit, and the default in Win32 is 4 GB with 2 GB being granted the OS, effectively limiting the application to 2 GB. There is an option to make this 1 & 3 GB but I don't remember how to do this. Exchange Server and SQL Server versions designed to run on 32 bit Windows server used this option.
For Windows 64, the limits are listed at Memory Limits for Windows and Windows Server Releases - Win32 apps | Microsoft Learn. Note that 32-bit applications are still limited to 4GB simply because 2^32 is 4GB. 64 bit application limits vary by OS version, generally growing with each new version of Windows.
|
|
|
|
|
Yes, that makes sense. I'm stuck in a Win32 mindset.
That's all very good info. I appreciate you reading and replying.
Thanks for your time. ![Thumbs Up | :thumbsup:](https://www.codeproject.com/script/Forums/Images/thumbs_up.gif)
|
|
|
|