Announcement: IdealOS

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
kerravon
Member
Member
Posts: 277
Joined: Fri Nov 17, 2006 5:26 am

Re: Announcement: IdealOS

Post by kerravon »

Alexey1994 wrote: Thu Sep 12, 2024 9:05 am
iansjack wrote: Wed Sep 11, 2024 11:29 pm The MIT licence requires exactly what you scorn. You are demanding of others something that you are too lazy to do.
Ok, the license has been changed.
Wow - I'm impressed. Released to the public domain.
But remember that it was you who forced me to take this action. You are not a very good person.
He seems pretty good to me if we now have more code in the public domain!
User avatar
iansjack
Member
Member
Posts: 4671
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: Announcement: IdealOS

Post by iansjack »

None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).

I make no claims to be a good person - it's irrelevant in this context. :wink:
kerravon
Member
Member
Posts: 277
Joined: Fri Nov 17, 2006 5:26 am

Re: Announcement: IdealOS

Post by kerravon »

iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Sure. Alexei - there are public domain assemblers available. That's what I use for PDOS/86 and PDOS/386. The 16-bit one (as86) is sufficiently masm-compatible for my purposes and the 32-bit one (pdas) is sufficiently gas-compatible for my purposes. Both are included on the PDOS/386 distribution as source and win32 executables.
Alexey1994
Member
Member
Posts: 47
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Announcement: IdealOS

Post by Alexey1994 »

iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Nasm is needed for assembly. Is it not possible for them to collect unlicensed software?

If so, then I am able to write an assembler https://github.com/Alexey1994/x86-disas ... me-ov-file Moreover, I began to rewrite a similar language into my own C language.

Those exe files that are in the repository are my own, collected from a C library written by me, but with the compiler of Fabricius Bellard.
Alexey1994
Member
Member
Posts: 47
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Announcement: IdealOS

Post by Alexey1994 »

kerravon wrote: Thu Sep 19, 2024 4:01 am
iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Sure. Alexei - there are public domain assemblers available. That's what I use for PDOS/86 and PDOS/386. The 16-bit one (as86) is sufficiently masm-compatible for my purposes and the 32-bit one (pdas) is sufficiently gas-compatible for my purposes. Both are included on the PDOS/386 distribution as source and win32 executables.
I have an idea to write intel style assembler like
EAX = 1 => mov EAX, 1
EAX += 1 => add EAX, 1
Do you think this syntax would be useful?
kerravon
Member
Member
Posts: 277
Joined: Fri Nov 17, 2006 5:26 am

Re: Announcement: IdealOS

Post by kerravon »

Alexey1994 wrote: Fri Sep 20, 2024 4:00 am
kerravon wrote: Thu Sep 19, 2024 4:01 am
iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Sure. Alexei - there are public domain assemblers available. That's what I use for PDOS/86 and PDOS/386. The 16-bit one (as86) is sufficiently masm-compatible for my purposes and the 32-bit one (pdas) is sufficiently gas-compatible for my purposes. Both are included on the PDOS/386 distribution as source and win32 executables.
I have an idea to write intel style assembler like
EAX = 1 => mov EAX, 1
EAX += 1 => add EAX, 1
Do you think this syntax would be useful?
I consider that masm sets the standard for assembler syntax.

If you want to write a public domain masm-compatible assembler at least as good as as86 (which has been abandoned other than for bug fixes), I am interested.

Also - I just remembered that as86 also does masm 386 syntax so I have already converted my handwritten assembler to that format.

Note that I code to a common subset of masm for both 86 and 386 that also works under wasm.

So I have 3 assemblers that can assemble my code written in what I consider to be "industry standard x86 assembler". I realize that some dispute that - so please stop sending me hate mail via DM.

BFN. Paul.
Alexey1994
Member
Member
Posts: 47
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Announcement: IdealOS

Post by Alexey1994 »

So, I got the idea to write my own assembler. This morning I implemented the calculation of link addresses and was pleasantly surprised that I calculate short links better than nasm. Looks like I'm writing the ideal x86 assembler.
better.png
User avatar
iansjack
Member
Member
Posts: 4671
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: Announcement: IdealOS

Post by iansjack »

Although some might argue that 4 misaligned instructions is not an improvement on 1 misaligned instruction.
Alexey1994
Member
Member
Posts: 47
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Announcement: IdealOS

Post by Alexey1994 »

So now I have a ideal assembler. So far only for bare 8086.
https://github.com/Alexey1994/ideal-@$$
nullplan
Member
Member
Posts: 1743
Joined: Wed Aug 30, 2017 8:24 am

Re: Announcement: IdealOS

Post by nullplan »

Alexey1994 wrote: Tue Oct 01, 2024 9:06 am So now I have a ideal assembler. So far only for bare 8086.
https://github.com/Alexey1994/ideal-@$$
It seems our profanity filter is suffering from the Penistone problem. :lol: I'll try to start a thread in the mod-only forum. In the mean time, all users of that link, please perform the obvious reverse substitution.
Carpe diem!
Alexey1994
Member
Member
Posts: 47
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Announcement: IdealOS

Post by Alexey1994 »

So, I tried to write in my assembler myself. The feeling is pleasant, but I found a couple of critical flaws. Of course, I will commit. I found one interesting feature in the unfolding of if inside a loop or another if, namely, an unconditional jmp on the code, which contains the same unconditional jmp, can be done immediately on the second jmp. Assembler can optimize this, you just need to solve the "system of equations". I got interested in such optimization and found out that my beloved TCC can't do it. Nasm especially. I wonder if there are tools that can cut such jmp? I understand that there is gcc, but it's a piece of crap and not a compiler.
Attachments
problem.png
thewrongchristian
Member
Member
Posts: 417
Joined: Tue Apr 03, 2018 2:44 am

Re: Announcement: IdealOS

Post by thewrongchristian »

Alexey1994 wrote: Sun Oct 06, 2024 8:38 am So, I tried to write in my assembler myself. The feeling is pleasant, but I found a couple of critical flaws. Of course, I will commit. I found one interesting feature in the unfolding of if inside a loop or another if, namely, an unconditional jmp on the code, which contains the same unconditional jmp, can be done immediately on the second jmp. Assembler can optimize this, you just need to solve the "system of equations". I got interested in such optimization and found out that my beloved TCC can't do it. Nasm especially. I wonder if there are tools that can cut such jmp? I understand that there is gcc, but it's a piece of crap and not a compiler.
Such optimisations are probably done for good reasons, with empirical evidence as to their effectiveness.

Assemblers generally don't do such optimisations, or undo such optimisations.

Assemblers assemble the code given to them.

TCC is quick because it is simple, and can do simple optimisations only, but won't do more complex optimisations GCC or LLVM is capable of (which is more work and thus slower.)

TCC generated code won't match what GCC or LLVM can generate.
Alexey1994
Member
Member
Posts: 47
Joined: Sat Jan 28, 2023 11:41 am
Location: Belarus
Contact:

Re: Announcement: IdealOS

Post by Alexey1994 »

thewrongchristian wrote: Sun Oct 06, 2024 5:03 pm
Alexey1994 wrote: Sun Oct 06, 2024 8:38 am So, I tried to write in my assembler myself. The feeling is pleasant, but I found a couple of critical flaws. Of course, I will commit. I found one interesting feature in the unfolding of if inside a loop or another if, namely, an unconditional jmp on the code, which contains the same unconditional jmp, can be done immediately on the second jmp. Assembler can optimize this, you just need to solve the "system of equations". I got interested in such optimization and found out that my beloved TCC can't do it. Nasm especially. I wonder if there are tools that can cut such jmp? I understand that there is gcc, but it's a piece of crap and not a compiler.
Such optimisations are probably done for good reasons, with empirical evidence as to their effectiveness.

Assemblers generally don't do such optimisations, or undo such optimisations.

Assemblers assemble the code given to them.

TCC is quick because it is simple, and can do simple optimisations only, but won't do more complex optimisations GCC or LLVM is capable of (which is more work and thus slower.)

TCC generated code won't match what GCC or LLVM can generate.
Well, these are obvious things. You seem to justify these tools. Nasm has an option -Ox, which supposedly does not affect optimization. Gcc has an option -fthread-jumps, which does much more than simply replace the address of one jump with another. And you only need to do such optimization always. Because this happens when expanding the if, while, for statements.
Post Reply