Ariana
The samples are in the osce course which is not free , But there are many samples on the net about this
please ive been ctfing for a year and making money off it and you’re telling me im overcomplicating all pwn challenges
Ludovic 'Archivist'
Making a language that transpiles to C then compiling that code in memory and running it
BinaryByter
Making a language that transpiles to C then compiling that code in memory and running it
transpiling adds another layer making the jit ing slower tho
Ludovic 'Archivist'
You don't transpile 150 times while executing
BinaryByter
once everytime i run
BinaryByter
but its still slower than no overhead
Ludovic 'Archivist'
once everytime i run
That is why JIT are only suitable for long running programs anyway
BinaryByter
Sure, but the less overhead you have the better
Ludovic 'Archivist'
But making a JIT using TCC is not that worse compared to another way of doing so
BinaryByter
it is worse though
BinaryByter
especially on older archs
Ludovic 'Archivist'
it is worse though
Worse than an interpreted script?
Ludovic 'Archivist'
I doubt it
ᡕᠵ᠊ᡃ࡚ࠢ࠘ ⸝່ࠡࠣ᠊߯᠆ࠣ࠘ᡁࠣ࠘᠊᠊ࠢ࠘𐡏⁻
Hello I looking for a ready project with data base can someone send me please?
Ludovic 'Archivist'
especially on older archs
Mind you, on Atari, a linked list is more than 50 times faster to explore than an array
BinaryByter
Worse than an interpreted script?
worse than a direct compiler
Ludovic 'Archivist'
worse than a direct compiler
Not an apple to apples comparison
Ludovic 'Archivist'
i doubt that lol
Doubt it all you want, it is a peculiarity of the platform
BinaryByter
Lol
Ludovic 'Archivist'
What?
So if you want an embedded language in a software, the embedded language should be entirely compiled before running, this is slower and wasteful and require complex tooling
Ludovic 'Archivist'
While using a JIT here is a compromise
Ludovic 'Archivist'
And a good one at it
BinaryByter
JIT compiles too
BinaryByter
both do the samr
Ludovic 'Archivist'
Which is why people have gone the way of making JIT for Javascript and libraries like LibJIT and LibLightning
BinaryByter
except if you jit to cpp and let tcc jit the output of the first jit you lose time
Ludovic 'Archivist'
JIT compiles too
Then why are you saying it is worse?
BinaryByter
i didnt say that jit is worse than compilation
BinaryByter
well it is since you lose enrgy
BinaryByter
but shrug.
Ludovic 'Archivist'
except if you jit to cpp and let tcc jit the output of the first jit you lose time
You will always have intermediate representations, it is a good way to make a JIT with it because it provides you a readable intermediate representation, and one that you can output for exclusion of that allow you to include C libraries in you embedded programming language without overcomplicating its design
BinaryByter
intermediate representations slow down stuff
Ludovic 'Archivist'
intermediate representations slow down stuff
Strange that your compiler use two of them right?
BinaryByter
No
two compilers are slower than one
BinaryByter
Strange that your compiler use two of them right?
shouldnt a good compiler output a binarh and the linker then links it against shit?
Ludovic 'Archivist'
Also, note that TCC is actually pretty fast, about 250 times faster than GCC
Daniele°
Daniele°
gcc use two compiler
BinaryByter
gcc use two compiler
both conpilers you mentioned are rather slow though
Ludovic 'Archivist'
shouldnt a good compiler output a binarh and the linker then links it against shit?
Except you transform the source in an abstract syntax tree, optimize said tree, then make a output syntax tree, optimize that, them make a binary that you will link
Daniele°
both conpilers you mentioned are rather slow though
faster than their old "direct" compilers
Ludovic 'Archivist'
Except you want to use twice that
TCC is not that complex, it only have one tree intermediate form and no optimization
BinaryByter
faster than their old "direct" compilers
😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂
Ludovic 'Archivist'
TCC is not that complex, it only have one tree intermediate form and no optimization
Because it is designed exactly to be simple and fast even if it have to generate imperfect code
Daniele°
😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂
Another example is bytecode. Intermediate step for increase performance
BinaryByter
Ludovic 'Archivist'
Another example is bytecode. Intermediate step for increase performance
Bytecode is generally the binary form of the abstract syntax tree
Mihail
Except you want to use twice that
nope. cfe only converts your C/C++ code to a .bc (no optimizations) file containing LLVM bytecode. llvm-opt then optimizes that and llc compiles it
BinaryByter
Ludovic 'Archivist'
Ludovic 'Archivist'
Well, thats still worse than instantly output bytecode
But not that worse, you may have a loss of a ten of percents or two
Ludovic 'Archivist'
But look at the price of complexity you actually eliminate
BinaryByter
But not that worse, you may have a loss of a ten of percents or two
If your first compiler is as good as tcc, you might have a slowdown of 100%
Ludovic 'Archivist'
If your first compiler is as good as tcc, you might have a slowdown of 100%
But your "first compiler" will have to be hand rolled and support about 10 to 20 architectures
Ludovic 'Archivist'
Are you ready to have a handrolled complete compiler to accelerate filters on your spreadsheet application?
Ludovic 'Archivist'
werent you the one saying that yacc is bad?
Yacc is just a parser generator
BinaryByter
A compiler compiler ;-)
Ludovic 'Archivist'
It is very limited if you ask me and that is the issue I have with it
Ludovic 'Archivist'
A compiler compiler ;-)
It doesn't make a compiler, just a parser
BinaryByter
Flex does that
Ludovic 'Archivist'
Flex does that
No, it is a syntax checking tool
Anonymous
then bitching about it maybe isn't the best idea?
I do FreeBSD too, and bitching about Linux is what you can do in that platform. I am sorry but thats true.
Ludovic 'Archivist'
Anonymous
Agree
Ludovic 'Archivist'
Flex does that
Also, flex and bison and yacc do not work in lots of cases
Mihail
I do FreeBSD too, and bitching about Linux is what you can do in that platform. I am sorry but thats true.
I get it Linux isn't good, that's true, but now every second message from Maxi is about that and it's quite annoying
Mihail
btw why couldn't you build the llvm toolchain?