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

Cordl 1.0.0 #12

Open
wants to merge 686 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
686 commits
Select commit Hold shift + click to select a range
317a128
Anonymous namespace
Fernthedev Sep 17, 2023
45ff3ce
Generic methods in impl 🎉
Fernthedev Sep 17, 2023
c96a050
Include base type impl
Fernthedev Sep 17, 2023
82b865a
Move array in constructor
Fernthedev Sep 17, 2023
5781440
Add header includes for il2cpp-utils
Fernthedev Sep 17, 2023
6e2ab99
Fix missing include
Fernthedev Sep 17, 2023
8ad86d2
Use anonymous namespace prefixes everywhere
Fernthedev Sep 17, 2023
d720786
Move macros out of anonymous namespace
Fernthedev Sep 17, 2023
e98db20
Sort forward declares into anonymous namespace
Fernthedev Sep 17, 2023
91a535e
Don't include interfaces
Fernthedev Sep 17, 2023
f0144f8
use include dir for internals so cordl can run standalone
RedBrumbler Sep 20, 2023
e71b5db
Merge pull request #3 from RedBrumbler/dev/generic_methods_redo
Fernthedev Sep 20, 2023
47e2862
Write all by default
Fernthedev Sep 21, 2023
9aa5c1e
Update cargo lock
Fernthedev Sep 21, 2023
6e8c9ec
use cargo manifest for base path
Fernthedev Sep 21, 2023
aecdbc3
Use trace for spam log
Fernthedev Sep 22, 2023
2b40789
Minor cleanups
Fernthedev Sep 22, 2023
1b776ff
Change default log level
Fernthedev Sep 22, 2023
c031465
Disable anonymous namespaces
Fernthedev Sep 22, 2023
9233a58
Remove methods from ValueType and EnumType
Fernthedev Sep 22, 2023
6c5b228
Remove anonymous namespace prefix
Fernthedev Sep 22, 2023
aad6502
Move cordl internals to anonymous namespace
Fernthedev Sep 22, 2023
14d6b2f
Add method for handling pointers
Fernthedev Sep 22, 2023
c8fb01b
Refactor, unnest nested types to their own header
Fernthedev Sep 23, 2023
4dd30c2
add todo
Fernthedev Sep 23, 2023
d3c34e8
Forward declare nested types
Fernthedev Sep 23, 2023
c8485e0
Include generic args for reference instantiations
Fernthedev Sep 23, 2023
d49b66f
Switch to `New_ctor` for allocating objects
Fernthedev Sep 23, 2023
bdd4efb
Fix some headers
Fernthedev Sep 23, 2023
af1dd72
Fix duplicated forward declares and includes
Fernthedev Sep 23, 2023
2d172c5
Add support for enums in generic specializations
Fernthedev Sep 24, 2023
b9fa329
Improve num generic args
Fernthedev Sep 24, 2023
a4f619f
Fix generic inst convert for CppTypeTag
Fernthedev Sep 24, 2023
163e7c7
Cleanup and fallback parent dependency
Fernthedev Sep 24, 2023
fc0dbb6
Attempt to depend on generic instantiations with same TDI
Fernthedev Sep 24, 2023
f045770
Cleanup
Fernthedev Sep 24, 2023
145e866
Remove method size structs for generic types
Fernthedev Sep 24, 2023
2a193e7
Add declaring type's template
Fernthedev Sep 24, 2023
f0ba009
Not necessary for declarations
Fernthedev Sep 24, 2023
2368a12
Concat declaring type template args with method args
Fernthedev Sep 26, 2023
b5cd6d1
Format
Fernthedev Sep 26, 2023
208f0cc
Fix field templates
Fernthedev Sep 26, 2023
2adf025
Revert "Concat declaring type template args with method args"
Fernthedev Sep 26, 2023
60729d1
Fix banned literals in names (),
Fernthedev Sep 28, 2023
fda7a24
Add template to constructor impl
Fernthedev Sep 28, 2023
8d6e2df
Fix instance field usage in methods
Fernthedev Sep 28, 2023
9eb1a01
Recursive generic params
Fernthedev Sep 29, 2023
777b66c
Mangle inner template args
Fernthedev Sep 29, 2023
3f24fa4
Add docs
Fernthedev Sep 29, 2023
1c921dc
Add declaring type template for value type ctor
Fernthedev Sep 30, 2023
73313b1
Wrap around char
Fernthedev Sep 30, 2023
ce3672f
Add template to interface convert operator
Fernthedev Sep 30, 2023
a8d1ed9
Add sanitize for `[]`
Fernthedev Sep 30, 2023
880ed6b
Static assert string
Fernthedev Sep 30, 2023
5e3275c
Fix char quotes
Fernthedev Sep 30, 2023
2d8ad3f
Fix declspec issue with `void*`
Fernthedev Sep 30, 2023
2e27157
Fix enum generic sharing
Fernthedev Sep 30, 2023
3e96f3b
Use impl template for generic methods
Fernthedev Sep 30, 2023
b848f9b
Fix impl template when empty
Fernthedev Sep 30, 2023
64ad851
Fix reference to generic declaring type
Fernthedev Sep 30, 2023
dfb795f
Sanitize reserved names
Fernthedev Sep 30, 2023
75031e2
Include enum impl for constexpr fields
Fernthedev Sep 30, 2023
291a625
Fix declaring + method template mixing
Fernthedev Sep 30, 2023
1a334e3
Rename empty param name fix
Fernthedev Sep 30, 2023
a13118a
More fixes and blacklisting types
Fernthedev Oct 1, 2023
30a4e36
Refactored to use name components everywhere
Fernthedev Oct 1, 2023
b4577f2
Fix generic arg mixing in name
Fernthedev Oct 1, 2023
468d8bf
Fix nested type aliases
Fernthedev Oct 1, 2023
f955fd1
Fix generic instantiations aliases, nested types, and no longer black…
Fernthedev Oct 1, 2023
023c48d
Fix template arg concat on type if itself
Fernthedev Oct 1, 2023
77436fb
Add default value comment to constant field
Fernthedev Oct 1, 2023
bf9616a
Illegal words addition
Fernthedev Oct 1, 2023
57640ab
Even more blacklisted names
Fernthedev Oct 1, 2023
715f036
Sanitize fields with same name as declaring type
Fernthedev Oct 1, 2023
1a50c35
Add errno to the reserved list
Fernthedev Oct 1, 2023
a787e4d
Format and fix generic depending on itself
Fernthedev Oct 1, 2023
9e46850
Attempted to fix the generic arg usage in itself, part 1
Fernthedev Oct 1, 2023
25b9169
Add ref type trait part 2
Fernthedev Oct 1, 2023
949a797
Fix ref type trait name qualifier
Fernthedev Oct 2, 2023
bbe6659
Blacklist recursive types and improve includes
Fernthedev Oct 3, 2023
0e40c81
Squashed commit of the following:
Fernthedev Oct 3, 2023
7d2f8ec
Fix concepts for ListW
Fernthedev Oct 3, 2023
acc624b
ByRefConst temporary alias
Fernthedev Oct 3, 2023
eff0ec7
Fix issue with namespace and name clash causing reference issues
Fernthedev Oct 3, 2023
d57d66f
Squashed commit of the following:
Fernthedev Oct 5, 2023
dea04f4
Initial generic layouts and offsets. IS NOT WORKING AS INTENDED
Fernthedev Oct 5, 2023
32f23b4
Making a bigger mess
Fernthedev Oct 5, 2023
4160d1d
More tweaks, generic type reorder pass and fix parent generic instant…
Fernthedev Oct 5, 2023
862340d
Minor fixups
Fernthedev Oct 5, 2023
ab8e7a1
Avoid overflow subtract
Fernthedev Oct 5, 2023
9f016e1
Reorganize, reduce complexity and cleanup
Fernthedev Oct 5, 2023
efbff2c
Switch to `>=` for offset size check
Fernthedev Oct 5, 2023
ae457f6
Make static fields different name convention
Fernthedev Oct 5, 2023
dfd711d
Use hex for offset comments
Fernthedev Oct 6, 2023
61359a0
Inflate Var of GenericInst field with declaring type's generic args
Fernthedev Oct 6, 2023
394593c
Cleanup comments and redundancies
Fernthedev Oct 6, 2023
8c95439
Improve generic template check
Fernthedev Oct 6, 2023
eaa876b
Fix constexpr + inline redundancy
Fernthedev Oct 6, 2023
9e40c5c
Add static asserts for value/enum wrappers
Fernthedev Oct 6, 2023
09b109f
Prune header files on start
Fernthedev Oct 6, 2023
27e8f11
Fix name collision with reserved identifier
RedBrumbler Oct 6, 2023
9df02f9
Remove another invalid type
RedBrumbler Oct 6, 2023
ca56467
Merge remote-tracking branch 'RedBrumbler/dev/generic_methods_redo' i…
Fernthedev Oct 6, 2023
e17847b
Remove only if exist
Fernthedev Oct 6, 2023
28e2e3d
Various changes to support a base value type that stores the instance…
RedBrumbler Oct 6, 2023
bec6275
Calculate size of value/enum type when aliasing
Fernthedev Oct 6, 2023
793bf80
Improve generic inst cppify correctness
Fernthedev Oct 6, 2023
082ee14
Remove println
Fernthedev Oct 6, 2023
b236b0f
Fix wrapper type size for enums and value types
Fernthedev Oct 6, 2023
d60dbce
Fix generic instantiation regressions
Fernthedev Oct 6, 2023
f91de67
Blacklist table
Fernthedev Oct 6, 2023
4a88a53
Add comment
Fernthedev Oct 6, 2023
17d5c74
Make System.Enum and System.ValueType box repr
Fernthedev Oct 6, 2023
904b751
Method args as VT or Enum Ptrs
RedBrumbler Oct 6, 2023
ef387ed
Make type traits use typename for template
Fernthedev Oct 6, 2023
5c4c1d6
Make slightly more concise
Fernthedev Oct 6, 2023
20804bb
Rework type traits for generic instances so we don't loop on checks
RedBrumbler Oct 6, 2023
acb4be5
Use offset table for explicit layout types
Fernthedev Oct 7, 2023
62f36dd
Fix offsets for value/enum types
Fernthedev Oct 7, 2023
2439236
Don't subtract object size, fix later
Fernthedev Oct 7, 2023
d7ad707
Squashed commit of the following:
Fernthedev Oct 7, 2023
a33c745
Add conditional include for `impl` to reduce Intellisense load
Fernthedev Oct 7, 2023
b298387
Fix omitting properties
Fernthedev Oct 7, 2023
c827193
Squashed commit of the following:
Fernthedev Oct 8, 2023
abecd26
Cleanup slightly
Fernthedev Oct 8, 2023
94c4c9c
Squashed commit of the following:
Fernthedev Oct 9, 2023
08fcca5
Squashed commit of the following:
Fernthedev Oct 9, 2023
b08b4f4
Move to type handlers and cleanup
Fernthedev Oct 9, 2023
e91b436
More fixes and only replace directory \\ on Windows
Fernthedev Oct 9, 2023
4072113
Fix type handlers
Fernthedev Oct 9, 2023
fb4823b
Squashed commit of the following:
Fernthedev Oct 9, 2023
ecebcb1
More cleaning!
Fernthedev Oct 9, 2023
465a98f
Cleanup type include code
Fernthedev Oct 11, 2023
5cb9547
Squashed commit of the following:
Fernthedev Oct 12, 2023
07310c4
Fix include guard for impl
Fernthedev Oct 12, 2023
a4442e7
Small negligible cleanup
Fernthedev Oct 12, 2023
86710c6
Squashed commit of the following:
Fernthedev Oct 15, 2023
22f6f4c
Use System.Object instead of bs-hook wrapper type
Fernthedev Oct 15, 2023
eed50b1
Add bs-hook inheritance to System.Object
Fernthedev Oct 17, 2023
57fec9a
Fix constructor forwarding
Fernthedev Oct 17, 2023
4bacf5f
Fix nested type names
Fernthedev Oct 17, 2023
951e447
Add default ctor for nullptr
Fernthedev Oct 17, 2023
284de44
Prelimenary C++ 20 module support
Fernthedev Oct 20, 2023
8bea38d
Fix module macros when not present
Fernthedev Oct 22, 2023
d63054b
Rename size variable, use bs hook macro for size
RedBrumbler Dec 1, 2023
e265c9c
Merge pull request #4 from RedBrumbler/dev/generic_methods_redo
Fernthedev Dec 1, 2023
5848209
Change declspec property placement
Fernthedev Dec 8, 2023
5a9de5d
Sort members
Fernthedev Dec 8, 2023
a4d3579
Add size checks
Fernthedev Dec 8, 2023
2e9d494
Add field sizing to ref types
Fernthedev Dec 8, 2023
ddf8174
make types pointer when reference type
Fernthedev Dec 8, 2023
fa1d34f
Add size header
Fernthedev Dec 8, 2023
c9da370
Tweaks and fixes for ref types to be pointers
RedBrumbler Dec 9, 2023
7c64a9c
More tweaks
RedBrumbler Dec 9, 2023
7e7b1af
More fixes for compilation
RedBrumbler Dec 10, 2023
a554d44
Squashed commit of the following:
Fernthedev Dec 10, 2023
e99fe27
Fixups, rewrite and refactor code
Fernthedev Dec 10, 2023
f32a4ca
Fix compile errors
Fernthedev Dec 10, 2023
d137d4a
Fix line ending
Fernthedev Dec 10, 2023
faa6895
Use std::array
Fernthedev Dec 10, 2023
bc02780
Fix include
Fernthedev Dec 10, 2023
0d98863
Forward decalre and support ArrayW
Fernthedev Dec 10, 2023
510a8ff
Respecting const in value types
Fernthedev Dec 10, 2023
e5891da
Merge branch 'dev/generic_methods_redo' of https://github.com/Fernthe…
RedBrumbler Dec 11, 2023
259c08e
Tweak concepts, fix field getters, add non-const field getter overloa…
RedBrumbler Dec 11, 2023
be5f93c
More tweaks to concepts
RedBrumbler Dec 11, 2023
9db5df4
More tweaking
RedBrumbler Dec 12, 2023
7af037f
Refactor offset calcs
Fernthedev Dec 12, 2023
a616140
Experiment
Fernthedev Dec 12, 2023
b06c8c3
Format
Fernthedev Dec 12, 2023
1f545e4
Rewrite cppify to use NameCOmponents. Might break everything
Fernthedev Dec 12, 2023
7f95b9b
Reduce clones
Fernthedev Dec 12, 2023
7eef9da
Merge remote-tracking branch 'RedBrumbler/dev/generic_methods_redo' i…
Fernthedev Dec 12, 2023
6f76f17
FMT and fix
Fernthedev Dec 12, 2023
42eaa4d
Fix internals
RedBrumbler Dec 12, 2023
dddb18a
Fixes to how things are used with pointers or not
RedBrumbler Dec 12, 2023
0f5504a
generics can't join with spaces in them because c identifiers don't f…
RedBrumbler Dec 12, 2023
eb69998
Delete default ctor for ref types
RedBrumbler Dec 12, 2023
56beab2
Remove unneeded special case in assert, handled in seperate handler
RedBrumbler Dec 12, 2023
fff17ec
Make blacklisted ref types use il2cppobject*
RedBrumbler Dec 12, 2023
d625e52
Fix typename prepending with ::
RedBrumbler Dec 12, 2023
4af64ed
Fix pointers being used correctly for method args
RedBrumbler Dec 12, 2023
799b8e6
Fix valuetype check
RedBrumbler Dec 12, 2023
652cf7d
Make multidimensional arrays return Il2CppObject* instead
RedBrumbler Dec 13, 2023
d89ac6f
balance file formatting by file size so each thread is doing more or …
RedBrumbler Dec 14, 2023
59a93f6
Use Rayon parallelism for formatting
RedBrumbler Dec 14, 2023
5ac4e7d
Add column limit
RedBrumbler Dec 14, 2023
fa9275f
Make logging of current file something cordl does instead of --verbos…
RedBrumbler Dec 14, 2023
bdedff1
print parallelism from what rayon is doing
RedBrumbler Dec 14, 2023
361bca7
Fix off by 1 in logging
RedBrumbler Dec 14, 2023
fdf0b2e
Include typedefs.h first
RedBrumbler Dec 14, 2023
ebb2198
Add default ctors back
RedBrumbler Dec 14, 2023
db9ecbe
Fix typo
RedBrumbler Dec 14, 2023
b06fa1f
Add VT default ctors
RedBrumbler Dec 15, 2023
5b1d03b
Make struct specializations hidden symbol
Fernthedev Dec 16, 2023
c637864
Default reference type ctor
Fernthedev Dec 16, 2023
b9ebd4b
Merge remote-tracking branch 'RedBrumbler/dev/generic_methods_redo' i…
Fernthedev Dec 16, 2023
1556d02
Fix file size on non-Windows platforms
Fernthedev Dec 16, 2023
420472b
Fix generics converting value types to reference types
Fernthedev Dec 16, 2023
c7a2b6e
Add file size
Fernthedev Dec 16, 2023
dba5fd3
Add to_const_pointer concept
Fernthedev Dec 16, 2023
5f64e4a
Use System.Object parent for all and Il2CppObject as parent of System…
Fernthedev Dec 16, 2023
0803599
Emit size check
Fernthedev Dec 16, 2023
1177480
Fix warnings
Fernthedev Dec 16, 2023
1dab8b0
Fix pointer on template param
Fernthedev Dec 16, 2023
f24a432
Make value type ctors default public
Fernthedev Dec 16, 2023
ff714b6
Make ctor params use default value
Fernthedev Dec 16, 2023
e80e7f7
Revert "Make ctor params use default value"
Fernthedev Dec 16, 2023
d5e78be
Fix missing include for System.Object
Fernthedev Dec 17, 2023
26f26bc
Format
Fernthedev Dec 17, 2023
b04ce26
Update dependencies
Fernthedev Dec 17, 2023
9c6e5bf
Update rust and clippy fix
Fernthedev Dec 18, 2023
9558651
Fix run method call
Fernthedev Dec 19, 2023
08a54b9
Revert "Fix run method call"
Fernthedev Dec 19, 2023
0d87205
Make method calls on ref types use 'this' instead of '*this'
RedBrumbler Dec 19, 2023
e76e781
Remove accidental log
RedBrumbler Dec 19, 2023
fe5b966
Emit metadata getters for methods of an interface different
RedBrumbler Dec 20, 2023
758c046
Fix instance method calls on value types
RedBrumbler Dec 20, 2023
e68bfd3
Properly resolve vtable slots
RedBrumbler Dec 22, 2023
9d083ea
Add cordl_hidden to method size struct
Fernthedev Dec 22, 2023
e0193d8
Preparations and implementation for actually emitting fields properly…
RedBrumbler Dec 23, 2023
4eec2aa
Preparations and implementation for actually emitting fields properly…
RedBrumbler Dec 23, 2023
849d7f7
Refactor and messy iterator
Fernthedev Dec 23, 2023
2d9423a
Merge branch 'dev/generic_methods_redo' of https://github.com/Fernthe…
RedBrumbler Dec 23, 2023
1c1b300
Unionize instance fields where required
RedBrumbler Dec 23, 2023
f054cd7
Fix unionizing, packing & field setter value extraction
RedBrumbler Dec 23, 2023
e6bb4da
Disable packing completely
RedBrumbler Dec 23, 2023
91c1673
More field, packing and offset tweaks
RedBrumbler Dec 24, 2023
5981a40
Rewritten fields to be phase based. Needs finishing touches and testing
Fernthedev Dec 25, 2023
c94bb50
Fix field access
Fernthedev Dec 25, 2023
53ecc2c
Fix reference type field names
Fernthedev Dec 25, 2023
d26c2d9
Make packing optional
Fernthedev Dec 25, 2023
f517345
Ignore constants when making statics
Fernthedev Dec 25, 2023
cb5bfe0
Fix field writes on ref types for value fields
Fernthedev Dec 25, 2023
6d54672
Document and learn packing logic
Fernthedev Dec 25, 2023
221774f
Make `0` None and allow `8` even if redundant
Fernthedev Dec 25, 2023
6b08db0
Reduce uint size
Fernthedev Dec 25, 2023
50eaa9e
Revert casts
Fernthedev Dec 25, 2023
d5f5ecf
Pack fields into unions like il2cpp does for explicitly laid out types
RedBrumbler Dec 26, 2023
da4118f
Merge remote-tracking branch 'RedBrumbler/dev/generic_methods_redo' i…
Fernthedev Dec 26, 2023
4dcea34
Add size padding when possible to types which require it
Fernthedev Dec 26, 2023
49a0428
Fix padding to align correctly, Fix double padding, add accessors for…
RedBrumbler Dec 26, 2023
e4e58cc
Tweaking of emitted data
RedBrumbler Dec 26, 2023
e67184a
Fix typo emitting all instance declspec as props for ref types
RedBrumbler Dec 26, 2023
66eb82f
Fix static field read
RedBrumbler Dec 26, 2023
f4f5b59
All VT fields should include def in def, and impl in impl
RedBrumbler Dec 26, 2023
7c3d243
Emit field prop accessors as ref
RedBrumbler Dec 27, 2023
3122ac4
Fixes and tweaks to compile with optional codegen wrappers, also fix …
RedBrumbler Dec 27, 2023
ee69369
Small tweaks
RedBrumbler Dec 28, 2023
877b87a
Fix invokes for virtual methods to use vtable resolve
RedBrumbler Jan 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
BasedOnStyle: LLVM

#Stolen from scad
AllowShortBlocksOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: true
CommentPragmas: NOLINT:.*
DerivePointerAlignment: false
IncludeBlocks: Preserve
PointerAlignment: Left
UseTab: Never
Cpp11BracedListStyle: false
QualifierAlignment: Right
SortIncludes: Never
Loading