Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into endian-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
bernardnormier committed Feb 29, 2024
2 parents 5c6cd76 + 3e4c90a commit 6e10589
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 33 deletions.
45 changes: 44 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
ci:
name: Build Doxygen documentation
name: Build documentation

runs-on: macos-14
steps:
Expand All @@ -28,6 +28,10 @@ jobs:
- name: Install doxygen and graphviz (a dependency of Doxygen for generating diagrams)
run: brew install doxygen graphviz || true

- name: Build C++
working-directory: ./cpp
run: make -j3 V=1 srcs

- name: Generate Doxygen Documentation for Slice
working-directory: ./doxygen
run: doxygen
Expand All @@ -39,6 +43,39 @@ jobs:
cd doxygen
doxygen
- name: Generate Documentation for Swift
working-directory: ./swift
run: |
make -j3 V=1
xcodebuild docbuild \
-project ice.xcodeproj \
-scheme 'Ice macOS' \
-derivedDataPath /tmp/docbuild \
-destination 'generic/platform=macOS'
mkdir docs
$(xcrun --find docc) process-archive \
transform-for-static-hosting /tmp/docbuild/Build/Products/Debug/Ice.doccarchive \
--hosting-base-path /api/ice/main/swift/ice \
--output-path docs/ice;
$(xcrun --find docc) process-archive \
transform-for-static-hosting /tmp/docbuild/Build/Products/Debug/Glacier2.doccarchive \
--hosting-base-path /api/ice/main/swift/glacier2 \
--output-path docs/glacier2;
$(xcrun --find docc) process-archive \
transform-for-static-hosting /tmp/docbuild/Build/Products/Debug/IceGrid.doccarchive \
--hosting-base-path /api/ice/main/swift/icegrid \
--output-path docs/icegrid;
$(xcrun --find docc) process-archive \
transform-for-static-hosting /tmp/docbuild/Build/Products/Debug/IceStorm.doccarchive \
--hosting-base-path /api/ice/main/swift/icestorm \
--output-path docs/icestorm;
# This will perform a full sync of the documentation to S3 every time the workflow is run since
# the timestamps will always be different. Using --size-only is not sufficient since the
# documentation may be updated without changing the size of the files. S3 does not offer a hash based sync.
Expand All @@ -51,6 +88,12 @@ jobs:
aws s3 sync ./cpp/doxygen/cpp s3://${AWS_S3_DOC_BUCKET}/api/ice/main/cpp --delete
aws s3 cp ./cpp/doxygen/icecpp.tag s3://${AWS_S3_DOC_BUCKET}/api/ice/main/icecpp.tag
aws s3 sync ./swift/docs/ice s3://${AWS_S3_DOC_BUCKET}/api/ice/main/swift/ice --delete
aws s3 sync ./swift/docs/glacier2 s3://${AWS_S3_DOC_BUCKET}/api/ice/main/swift/glacier2 --delete
aws s3 sync ./swift/docs/icegrid s3://${AWS_S3_DOC_BUCKET}/api/ice/main/swift/icegrid --delete
aws s3 sync ./swift/docs/icestorm s3://${AWS_S3_DOC_BUCKET}/api/ice/main/swift/icestorm --delete
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Expand Down
14 changes: 1 addition & 13 deletions cpp/src/slice2cpp/Gen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1047,11 +1047,6 @@ Slice::Gen::MetaDataVisitor::visitOperation(const OperationPtr& p)
const UnitPtr ut = p->unit();
const DefinitionContextPtr dc = ut->findDefinitionContext(p->file());
assert(dc);
if(p->hasMetaData("cpp:noexcept"))
{
dc->warning(InvalidMetaData, p->file(), p->line(), "ignoring metadata `cpp:noexcept' for non local interface");
metaData.remove("cpp:noexcept");
}

TypePtr returnType = p->returnType();
if(!returnType)
Expand Down Expand Up @@ -1145,7 +1140,7 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin
continue;
}

if(operation && (s == "cpp:const" || s == "cpp:noexcept"))
if(operation && s == "cpp:const")
{
continue;
}
Expand All @@ -1164,13 +1159,6 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin
continue;
}
}
if(dynamic_pointer_cast<Builtin>(cont) && (ss.find("type:") == 0 || ss.find("view-type:") == 0))
{
if(dynamic_pointer_cast<Builtin>(cont)->kind() == Builtin::KindString)
{
continue;
}
}
if(dynamic_pointer_cast<Sequence>(cont))
{
if(ss.find("type:") == 0 || ss.find("view-type:") == 0 || ss == "array")
Expand Down
17 changes: 9 additions & 8 deletions cpp/test/Slice/errorDetection/WarningInvalidMetaData.err
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ WarningInvalidMetaData.ice: warning: ignoring invalid file metadata `cpp:dll-exp
WarningInvalidMetaData.ice: warning: ignoring invalid file metadata `cpp:dll-export:'
WarningInvalidMetaData.ice: warning: ignoring invalid file metadata `cpp:include'
WarningInvalidMetaData.ice: warning: ignoring invalid file metadata `cpp:include:'
WarningInvalidMetaData.ice:35: warning: ignoring invalid metadata `cpp:type:std::list< ::std::string>' for operation with void return type
WarningInvalidMetaData.ice:38: warning: ignoring invalid metadata `cpp:view-type:std::string_view' for operation with void return type
WarningInvalidMetaData.ice:41: warning: ignoring invalid metadata `cpp:array' for operation with void return type
WarningInvalidMetaData.ice:46: warning: ignoring invalid metadata `cpp:const'
WarningInvalidMetaData.ice:46: warning: ignoring invalid metadata `cpp:ice_print'
WarningInvalidMetaData.ice:52: warning: ignoring invalid metadata `cpp:virtual'
WarningInvalidMetaData.ice:57: warning: ignoring invalid metadata `cpp98:foo'
WarningInvalidMetaData.ice:57: warning: ignoring invalid metadata `cpp11:bar'
WarningInvalidMetaData.ice:35: warning: ignoring invalid metadata `cpp:type:std::list<::std::string>' for operation with void return type
WarningInvalidMetaData.ice:38: warning: ignoring invalid metadata `cpp:array' for operation with void return type
WarningInvalidMetaData.ice:40: warning: ignoring invalid metadata `cpp:type:my_string'
WarningInvalidMetaData.ice:42: warning: ignoring invalid metadata `cpp:view-type:my_string'
WarningInvalidMetaData.ice:47: warning: ignoring invalid metadata `cpp:const'
WarningInvalidMetaData.ice:47: warning: ignoring invalid metadata `cpp:ice_print'
WarningInvalidMetaData.ice:53: warning: ignoring invalid metadata `cpp:virtual'
WarningInvalidMetaData.ice:58: warning: ignoring invalid metadata `cpp98:foo'
WarningInvalidMetaData.ice:58: warning: ignoring invalid metadata `cpp11:bar'
13 changes: 7 additions & 6 deletions cpp/test/Slice/errorDetection/WarningInvalidMetaData.ice
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,18 @@ module Test

interface I
{
// ["cpp:noexcept"]
// void op();
["cpp:noexcept"]
void op();

["cpp:type:std::list< ::std::string>"]
["cpp:type:std::list<::std::string>"]
void op1();

["cpp:view-type:std::string_view"]
["cpp:array"]
void op2();

["cpp:array"]
void op3();
void op3(["cpp:type:my_string"] string s);

void op4(["cpp:view-type:my_string"] string s);
}

["cpp:const", "cpp:ice_print"]
Expand Down
14 changes: 9 additions & 5 deletions cpp/test/Slice/errorDetection/WarningSuppressInvalidMetaData.ice
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,15 @@ interface I
["cpp:noexcept"]
void op();

["cpp:type:std::list< ::std::string>"]
["cpp:type:std::list<::std::string>"]
void op1();

["cpp:view-type:std::string_view"]
["cpp:array"]
void op2();

["cpp:array"]
void op3();
void op3(["cpp:type:my_string"] string s);

void op4();
void op4(["cpp:view-type:my_string"] string s);
}

["cpp:const", "cpp:ice_print"]
Expand All @@ -56,4 +55,9 @@ exception E
{
}

["cpp98:foo", "cpp11:bar"] // The cpp98 and cpp11 attributes were removed in 3.8. We issue a friendly warning.
class P
{
}

}

0 comments on commit 6e10589

Please sign in to comment.