| Commit-Queue | +1 |
PTAL, AI managed to do a thing maybe
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
Love it! LGTM with nits.
Next time please review the AI's work yourself before sending it out.
#include "src/wasm/wasm-objects.h"Can you teach the AI to never include both `foo.h` and `foo-inl.h`?
#include "src/objects/string.h"Unrelated: wait, line 33 said that line 34 had to be the last include?
How does that even work without breaking the build?!
// clang-format offWhy?
If the aim was to block automatic alpha-sorting, just add a comment:
```
// Include the non-inl header before the rest of the headers.
```
after the `map-word.h` line. (See e.g. `map-inl.h` for precedent.)
namespace v8 {
namespace internal {If you want to be modern: `namespace v8::internal {` (and corresponding close at the end of the file)
Same in the other new files.
class Object;
class HeapObject;
class Smi;
class Isolate;
class LocalIsolate;
class ReadOnlyRoots;
class EarlyReadOnlyRoots;nit: alpha-sort please
// This should be in objects/map-inl.h, but can't, because of a cyclic
// dependency.Orphaned (and hopefully outdated?) comment
#include "src/objects/map-word-inl.h"No, this one does _not_ have to be the last include. Neither does line 73.
// Heap objects typically have a map pointer in their first word. However,
// during GC other data (e.g. mark bits, forwarding addresses) is sometimes
// encoded in the first word. The class MapWord is an abstraction of the
// value in a heap object's first word.
//
// When external code space is enabled forwarding pointers are encoded asOrphaned comment. This has actually been moved, but hasn't been deleted here.
// For compatibility with TaggedImpl, and users of this header that don't pull
// in objects-inl.h
// TODO(leszeks): Remove once no longer needed.Orphaned comment. Either move an adapted version to `object-predicates.h`, or drop it entirely.
#include "src/objects/instance-type.h"This can go now, replaced by the line above.
Same for lines 39, 45, 47.
factory_impl << "#include \"src/heap/factory-base.h\"\n";This shouldn't be here, and neither should line 4923.
factory_impl << "#include \"src/wasm/wasm-objects-inl.h\"\n";Perhaps `wasm-objects-inl.h` should be added to `all-objects-inl.h` instead? That would also address the next two diff chunks.
#include "src/wasm/wasm-objects.h"Replaced by the line below.
#include "src/objects/heap-number.h"Replaced by the line above.
#include "src/objects/js-array-buffer-inl.h"Before line 27 would be a good place for this.
#include "src/wasm/wasm-objects.h"Subsumed by the line below.
#include "src/wasm/wasm-objects.h"Replaced by the line below.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Love it! LGTM with nits.
Next time please review the AI's work yourself before sending it out.
yeah sorry, I reviewed one version but not the version I'd sent out...
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
ready for another round, this time artisinally pre-reviewed
Can you teach the AI to never include both `foo.h` and `foo-inl.h`?
Done
Unrelated: wait, line 33 said that line 34 had to be the last include?
How does that even work without breaking the build?!
Yeah no idea how this doens't break more often...
Why?
If the aim was to block automatic alpha-sorting, just add a comment:
```
// Include the non-inl header before the rest of the headers.```
after the `map-word.h` line. (See e.g. `map-inl.h` for precedent.)
Done
If you want to be modern: `namespace v8::internal {` (and corresponding close at the end of the file)
Same in the other new files.
Nice, done.
class Object;
class HeapObject;
class Smi;
class Isolate;
class LocalIsolate;
class ReadOnlyRoots;
class EarlyReadOnlyRoots;Leszek Swirskinit: alpha-sort please
Done
// This should be in objects/map-inl.h, but can't, because of a cyclic
// dependency.Orphaned (and hopefully outdated?) comment
Done
Too many empty lines here
Done
No, this one does _not_ have to be the last include. Neither does line 73.
Done
// Heap objects typically have a map pointer in their first word. However,
// during GC other data (e.g. mark bits, forwarding addresses) is sometimes
// encoded in the first word. The class MapWord is an abstraction of the
// value in a heap object's first word.
//
// When external code space is enabled forwarding pointers are encoded asOrphaned comment. This has actually been moved, but hasn't been deleted here.
Done
// For compatibility with TaggedImpl, and users of this header that don't pull
// in objects-inl.h
// TODO(leszeks): Remove once no longer needed.Orphaned comment. Either move an adapted version to `object-predicates.h`, or drop it entirely.
Done
This can go now, replaced by the line above.
Same for lines 39, 45, 47.
Done
factory_impl << "#include \"src/heap/factory-base.h\"\n";This shouldn't be here, and neither should line 4923.
Done
factory_impl << "#include \"src/wasm/wasm-objects-inl.h\"\n";Perhaps `wasm-objects-inl.h` should be added to `all-objects-inl.h` instead? That would also address the next two diff chunks.
I like it.
Replaced by the line below.
Done
Replaced by the line above.
Done
Before line 27 would be a good place for this.
Done
Subsumed by the line below.
Done
Replaced by the line below.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[objects] Extract object predicates and MapWord to separate header
Many headers include objects-inl.h because they want access to the IsFoo
object type predicates. We can extract these predicates out into a
smaller header, which can reduce the number of objects-inl.h includes
and hopefully let us resolve some include cycles.
Notably, I break the cycle of map-inl.h including objects-inl.h. I could
then also remove map-inl.h's reliance on wasm-objects-inl.h, fixing the
cascade of failures by including wasm-objects-inl.h elsewhere.
I also break the dependency of heap-inl.h needing objects-inl.h, by both
using the new object-predicates header, and splitting off MapWord into
its own header.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |