This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
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!
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.
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?
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?
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.
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.
It seems our profanity filter is suffering from the Penistone problem. 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.
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.
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 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.
It seems our profanity filter is suffering from the Penistone problem. 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.