Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLVM 10.0.1 Bindings #679

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

VictorMiasnikov
Copy link
Contributor

Initial steps of
llvmv10
and
llvmv10bindings

 Initial steps of
llvmv10
 and
llvmv10bindings
@VictorMiasnikov
Copy link
Contributor Author

In additional, I prepared some diff-s in:
VictorMiasnikov@0bd6adf

For view code changes, etc.

@jaykrell
Copy link
Contributor

per-LLVM version fork is very bad

Can we leverage C preprocessor or split out common parts?

@VictorMiasnikov
Copy link
Contributor Author

VictorMiasnikov commented Jun 19, 2021 via email

@jaykrell
Copy link
Contributor

m3-sys/llvm/llvmv10/src/M3CG_LLVM.m3 looks like 7,000 copy/pasted lines.
Please don't do that.

For example, what you can maybe do, is split it up into multiple files.
Functions that are identical across multiple versions, need not be duplicated.

Or delegate varying functions to ifdefed C. Seriously.

It is a huge mess otherwise.

And ideally generated files would not even be checked in. But that is a different problem.

I wonder how bad/slow it'd be to write out the LLVM "bitcode" instead of linking to LLVM.
That would also help, at quite some cost.

@VictorMiasnikov
Copy link
Contributor Author

VictorMiasnikov commented Jun 19, 2021 via email

@VictorMiasnikov
Copy link
Contributor Author

See LLVM 11.0.1 Bindings inside VictorMiasnikov@e908738
Initial steps. temp-ry in llvm9bindings folder.

@jaykrell
Copy link
Contributor

I really don't love this stuff but we have no official policies or authority so I guess squash&merge if you feel confident.
It really does seem like we are copy/pasting a lot of code.
Also generated files ideally are never or almost commited. Like the huge docs we have, ugh.
I realize swig is kinda kinda special 'cause nobody has it...you should provide a link to it somewhere, in some readme, directions, commit, etc. 'cause this is all just essentially an unreproducible binary dump. Horrible.

@VictorMiasnikov
Copy link
Contributor Author

VictorMiasnikov commented Jun 23, 2021

LLVM 11.0.1 Bindings
^^^^^^^^^^^^^^^^ this is "only for reading" . I.e. it is not part of pool request

} essentially an unreproducible binary dump. Horrible.

Today it is true, because "special version of SWIG" work very well.
But in future may be need some "changes by manual"

} guess squash&merge

at fist we need solve the way:
-- rename llvm9* or not
-- rename to llvmv10 or llvmv11
-- if "llvmv10 way" I will prepare v9 and v11 as small ".patch" files

@ghost
Copy link

ghost commented Dec 6, 2021

Possibly no longer relevant now that LLVM 13 has been added to the tree?

@VictorMiasnikov
Copy link
Contributor Author

VictorMiasnikov commented Dec 6, 2021 via email

@VictorMiasnikov
Copy link
Contributor Author

VictorMiasnikov commented May 24, 2022

This:

at fist we need solve the way:
-- rename llvm9* or not
-- rename to llvmv10 or llvmv11
-- if "llvmv10 way" I will prepare v9 and v11 as small ".patch" files

and ( as variant):


I think we can at first rename folder "LLVM9" and Co to "LLVM10", after this I prepare new variant of pool r-st.
( and small patch to revert to LLVM v9 state)

As results we will be have both LLVM13 and LLVM10 ( with possibility to revert by manual to LLVM9)

steal actual

@VictorMiasnikov
Copy link
Contributor Author

VictorMiasnikov commented May 24, 2022

About "testing LLVM 13":

I create release named "d5.11.9-ZZYYXX-20220208_13-48".

See
https://github.com/VictorMiasnikov/cm3/releases/tag/d5.11.9-ZZYYXX-20220208_13-48

a)
File

cm3-all_with_m3llvm-AMD64_LINUX-d5.11.9-AMD64_LINUX(Debian_11.3.0-1_and_{{GCC_11.3.0}})-2022-02-08_13-48__FIXed__by__VVM__2022-05-18_14-06__AMD64_LINUX__Target__cm3-3be819e.deb

contain

═ ...__cm3-3be819e.deb\usr\local\cm3\bin ═
w         Name      │ Size │  Date  │Time
..                  │  Up  │20.05.22│18:45
config              │Folder│18.05.22│12:06
m3llvm              │2325 K│20.05.22│18:45

═ ...__cm3-3be819e.deb\usr\local\cm3\pkg ═
w         Name      │ Size │  Date  │Time
..                  │  Up  │20.05.22│18:45
llvm13              │Folder│20.05.22│18:45
llvm13bindings      │Folder│20.05.22│17:33


b)

...\ZZ v5.11.9-VC2019-20220208_13-48 16bit-Unicode ( 16-bit WIDECHAR ) AMD64_NT Target\

llvm13__and__llvm13bindings_cm3-all-AMD64_NT-d5.11.9-VC142(2019)-2022-02-08_13-48__FIXed__by__VVM__2022-04-26_17-22__16bit__Unicode__AMD64_NT__Target__cm3-69f22c9.7z

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants